ROS Newsletter64

Материал из Русский WINE
Перейти к: навигация, поиск

Выпуск новостей ReactOS №64

Цвет и заполнение

Цветные указатели мыши - это функционал, который редко необходим обычным программам, но используется играми и различными развлекательными приложениями, например Winamp'ом. Но во время работы Winamp'а в ReactOS курсор превращается в "черный квадрат". Грегор Шнайдер (Gregor Schneider) обратил внимание на это и занялся "раскопками" в коде, надеясь исправить ошибку. В нескольких местах были комментарии, отмечающие потребность в поддержке цвета, и поэтому у Грегора было несколько подсказок о том, где был необходим дополнительный код. К счастью, большая часть работы была простой, и модификации параметров функции отрисовки, наряду с использованием цветной поверхности было достаточно, чтобы получить основную функциональность. Однако, все еще остаются проблемы на более низком уровне кода подсистемы Win32, и поэтому его большая часть была фактически закоментирована. Не смотря на то, что сам курсор уже отображается, "черный квадрат", окружающий его, по прежнему остаётся на своем месте.

Тимо Крейцер (Timo Kreuzer), как и Грегор, также решил изучить проблемы с отображением графики. В то время как Paint Бенедикта Фрайзена (Benedikt Freisen) в Windows выглядит и работает отлично, Тимо ощутил, насколько ужасно выглядит эта программа в ReactOS. Он устранил проблему в графической подсистеме, которая, конечно же, касалась поддержки цветных курсоров. Ключевая функция - SetPointerShape, у которой есть версия Drv и версия Eng в зависимости от того, поддерживает ли драйвер графики функцию или требует, чтобы это сделала графическая подсистема Windows. Так или иначе, функция получает два растровых изображения, второе из которых содержит информацию о цвете для вывода курсора. Это растровое изображение было первоначально проигнорировано в коде, но Тимо добавил необходимые функциональные возможности, чтобы заставить этот код работать правильно. Далее в списке идет работа над поддержкой прозрачности (alphablending).

Другая проблема, над которой работал Грегор, также была вызвана приложением Paint. Используя его, он обратил внимание на то, что его любимый инструмент, заполняющий область цветом, не работает. Занимаясь исследованиями, он обнаружил, что возможность заливки работает не до конца правильно. Большая часть кода была на месте и вся цепочка вызовов функций, которые выполняют заливку, работала правильно, за исключением последней, которая фактически и должна была выполнять отрисовку. Грегор осуществил очень упрощенную реализацию и оптимизировал ее до тех пор, пока производительность не стала приемлемой для реального использования.

Отложенный импорт

Динамически загружаемые библиотеки - способ совместного использования кода и функциональных возможностей между приложениями, который не требует дублирования их в каждом приложении. Это экономит память, поскольку только единственный экземпляр библиотеки должен быть загружен, чтобы ее могли использовать различные приложения. В то же время, первичная загрузка той или иной библиотеки может занять некоторое время и даже задержать запуск приложения в целом. Один из способов избежать этого - загрузка библиотек по мере необходимости, т. е. после того, как приложение запущено. Фактически для этого и предназначено отложенное связывание, но его поддержка не была реализована в dlltool, и Тимо Крейцер (Timo Kreuzer) ее добавил. Сама реализация была относительно примитивной, хотя Тимо пришлось побороться с настройками среды компиляции ReactOS для dlltool. Патч был отправлен разработчикам dlltool, таким образом, мы надеемся, что больше людей извлечет выгоду из него, и команда разработчиков mingw x64 также выразила свой интерес к нему. По словам Тимо, портирование должно быть достаточно простым.

База совместимости

После нескольких лет "затишья" Дэнни Гетт (Danny Götte) переписал как внешний интерфейс, так и внутреннюю схему размещения базы совместимости, облегчив таким образом создание и редактирование записей. Теперь база выглядит намного лучше, чем в прошлом, и, даже после внедрения, Дэнни продолжает ее совершенствовать, получая замечания и предложения от пользователей. Конечное предназначение состоит в том, что в базу должны попадать также и записи об аппаратных средствах, заменяя список совместимости с оборудованием в wiki. Таким образом все приглашены проверить и посмотреть, насколько хорошо это работает. Чем больше записей там будет, тем проще будет людям увидеть что работает, а что не работает в ReactOS.

Победитель конкурса "Новый дизайна сайта ReactOS"

Поздравляем Чека-Ю Леунга (Shek-Yu Leung), также известного под именем numpy на форуме. Он предложил четыре варианта дизайна сайта, последний из которых был признан жюри лучшим. Среди оформлений, предложенных разными участниками, были как простые идеи перестановки элементов управления, так и полностью обновленные стили с использованием различных цветовых гамм. Было несколько творческих идей касающихся схем размещения, которые могут в конечном счете служить вдохновением для конечного обновления веб-сайта, но версия Леунга была одной из немногих, которые объединили визуальную регенерацию с некоторыми интересными идеями для новой главной страницы сайта. Команда ReactOS благодарит всех участников за их усилия.

Newsletters
30-39 #30#31#32#33#34#35#36#37#38#39
40-49 #40#41#42#43#44#45#46#47#48#49
50-59 #50#51#52#53#54#55#56#57#58#59
60-69 #60#61#62#63#64#65#66#67#68#69
70-79 #70#71#72#73#74#75#76#77#78#79
80-89 #80#81#82#83#84#85#86#87#88#89
90-99 #90#91#92#93#94#95#96#97#98#99