Вы можете увидеть действие OpenGL, используя экранные заставки OpenGL Windows XP. Щелкните правой кнопкой мыши по Рабочему столу и выберите пункт Свойства(Properties). Перейдите на вкладку Заставка(Screen Saver). В списке заставок укажите Трубопровод [Direct3D](3D Pipes). Нажмите кнопку Просмотр(Preview), после чего появится изображение, как на рис. 16.1 (обратите внимание, я немного увеличил картинку). Вы увидите набор высокоскоростных трехмерных графических программ в действии. Недостаток OpenGL заключается в том, что он не очень быстр и недостаточно прост. Сегодня большинство разработчиков используют DirectX-игры, тем не менее OpenGL очень популярен для бизнес-приложений.
Рисунок 16.1. Эта экранная заставка – пример того, как OpenGL улучшает динамику в трехмерной анимации
Архитектура графической подсистемы Windows XP
Теперь, когда у вас есть некоторое представление о трудностях, с которыми сталкивается корпорация Microsoft (и другие производители ПО), когда собирается выпустить на рынок что-то новое, подошло время обсудить, как это происходит. Видеоадаптеры обогнали простые требования того времени, когда IBM стояла у руля.
Использование разрешения 640x480 точек и 256 цветов уже устарело. Сегодня графический адаптер считается неполноценным при разрешении 1024x768 точек и 24-разрядном (16,7 млн, или True Color) цвете. Кроме того, пользователи теперь обращают внимание на скорость смены кадров (частоту вертикальной развертки), которую обеспечивает видеоадаптер (при которой он может отображать анимацию). Видеоадаптер должен поддерживать минимум 30 кадров в секунду для обеспечения соответствующего качества анимации. В настоящее время адаптеры дисплея обладают внутриплатным сопроцессором и огромным количеством видеопамяти.
Windows XP управляет этим широким диапазоном возможностей видеоадаптера с помощью того же централизованного механизма, который применяется для печати – сочетание мини-драйвера и механизма аппаратно-независимого растра (Device-Independent Bitmap – DIB). Одним из основных компонентов архитектуры является интерфейс графических устройств (Graphics Device Interface – GDI). Ваша программа взаимодействует с интерфейсами прикладного программирования.
Microsoft настраивала GDI для разных версий Windows. Неудивительно, что корпорация потратила так много времени в этой области, ведь многие аттестационные испытания сфокусированы на достижении высокоскоростной графики. В действительности пользователи чаще обращают внимание на работу графического устройства. Microsoft осуществила дополнительную настройку GDI для Windows XP, но я назвал бы такую настройку скорее промежуточной, чем окончательной. На самом деле Microsoft никогда не поясняет уровень настройки в своей литературе.
...
Примечание
Интерфейс графических устройств GDI Windows XP обладает интересным свойством: это одна из немногих программ, написанных в основном на C++ (для остальной части Windows XP использовалось сочетание C и C++). Почему Microsoft предприняла такой шаг? Думаю, по двум причинам. Во-первых, C++ позволяет максимально поддерживать MFC-библиотеки (Microsoft Foundation Class), построенные на C++, что сильно облегчает жизнь программистам. Во-вторых, применение объектов вместо процедурных кодов обеспечивает простоту использования GDI (особенно в мультиплатформенной среде типа Windows XP).
Архитектура графической подсистемы Windows XP очень похожа на аналогичную подсистему в Windows 2000. Она включает несколько дополнительных кодов для режима совместимости, например для поддержки 16– и 32-разрядных приложений. Кроме того, Microsoft убрала элементы OS/2 и POSIX из архитектуры, так как для Windows XP они больше не требуются. Я не буду вдаваться в подробности, что такое биты и байты, но расскажу о компонентах, используемых для отображения данных на экране.
В действительности архитектура графической подсистемы Windows XP имеет более сложную структуру, чем представленная на рис. 16.2. Я не стал включать некоторые дублирующие элементы, например двойной режим поддержки совместимости, поскольку он выглядит так же, как его 32-разрядный аналог. В следующем списке указывается, какую задачу выполняет каждый компонент:
Рисунок 16.2. Архитектура графической подсистемы Windows XP
• подсистема WIN32 (WIN32 subsistem). Windows XP использует принцип клиент/сервер для обеспечения требуемых средств различным приложениям, которые она поддерживает. Это происходит через подсистему WIN32 на уровне буфера, переводящего запросы других операционных систем в код, который Windows XP может распознать;
Читать дальше
Конец ознакомительного отрывка
Купить книгу