WinG

редактировать

В сфере вычислений WinG (произносится Win Gee) - это интерфейс прикладного программирования, который был разработан для обеспечения более высокой производительности графики в Windows 3.x операционных средах и изначально позиционировался как способ помочь разработчикам игр более легко переносить свои игры DOS в Microsoft Windows, хотя это было быстро прекращено в пользу DirectX.

Содержание
  • 1 Предпосылки
  • 2 Реализация
  • 3 Поддержка
  • 4 Список приложений, использующих WinG API
  • 5 См. также
  • 6 Ссылки
Фон

WinG исправила две проблемы. Первая проблема, которую исправила WinG, заключалась в том, что Windows 3.x не поддерживала создание контекстов устройств (DC) на основе независимых от устройства растровых изображений, а поддерживала только фактические устройства отображения. Одним из основных ограничений контроллеров домена GDI было то, что они были доступны только для записи. После записи данные не могут быть получены. Вторая проблема заключалась в том, что все рисование GDI было реализовано в видеодрайверах Windows 3.x. Это включало рисование растровых изображений. Очевидно, что производительность таких программ различается для разных водителей.

Алекс Сент-Джон, один из создателей DirectX, сказал в интервью 2000 года, что

WinG - это технология, созданная Крисом Хекером в исследовательская группа, и в то время это был один из небольших проектов Microsoft Skunkworks, очень скромный и нестандартный. В основном это было исправление сломанных драйверов Windows, чтобы они работали быстрее и более приемлемо. Используя его, мы действительно смогли создать видео API, который мог бы запускать DOOM под Windows почти так же быстро, как и в DOS.

Microsoft анонсировала WinG на конференции разработчиков игр 1994 года, продемонстрировав его с помощью порт по id Software из Doom. WinG был выпущен 21 сентября 1994 года. WinG, хотя и был интересен, в основном основывался на отрисовке растровых изображений в памяти и выводе кадров после того, как отрисовка была сделана. В результате WinG была объявлена ​​устаревшей, и был создан DirectX. Однако в Windows NT 3.5 и Windows 95 появилась функция CreateDIBSection, обеспечивающая поддержку создания контроллеров домена на основе DIB, и видеодрайверы также в конечном итоге улучшились.

Реализация

WinG представила новый тип DC, названный WinGDC, который позволял программистам как читать, так и писать в него напрямую, используя независимые от устройства растровые изображения (DIB) с драйвер wingdib.drv. По сути, это дало программистам возможность делать с Windows то, что они делали без ограничений доступа к оборудованию в DOS в течение многих лет. Программисты могли записывать DIB в WinGDC, но все равно имели доступ к отдельным битам данных изображения. Это означало, что алгоритмы быстрой графики могли быть написаны для обеспечения быстрой прокрутки, перерисовки, грязных прямоугольников, двойной буферизации и других методов анимации. WinG также обеспечивает гораздо лучшую производительность при переносе графических данных в физическую память графического устройства. Поскольку WinG использовал формат DIB, можно было смешивать исходные вызовы API GDI и вызовы WinG.

WinG также выполняла тест профилирования графического оборудования / драйверов при первом запуске программы, чтобы определить наилучший способ рисовать DIB. Этот тест показал окно, заполненное красными изогнутыми линиями, части которых будут колебаться во время тестирования производительности. Как только WinG определит самые быстрые вызовы, которые не вызывают искажения графики, профиль будет сохранен, так что тест не нужно будет проводить снова.

Поддержка

Поддержка WinG «из коробки» (то есть как отдельный API для Win32) была исключена в Windows 98 Second Edition (которая интегрировала DirectX 6), поскольку он ничего не делал, кроме передачи API-интерфейсов Win32, которые он обертывал (включая CreateDIBSection). Библиотеки DLL WinG иногда распространялись вместе с приложением, и тогда оставалось просто скопировать файлы wing.dll, wing32.dll, wingde.dll, wingdib.drv и wingpal.wnd в каталог system32. (для 32-битной Windows) или каталог SysWOW64 (для 64-битной Windows) для восстановления общесистемной поддержки.

Список приложений, использующих WinG API
См. также
Ссылки
Последняя правка сделана 2021-06-21 10:20:18
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте