Core OpenGL

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

Core OpenGL или CGL - это Apple Inc.. Интерфейс оконной системы Macintosh Quartz с реализацией OS X спецификации OpenGL. CGL аналогичен GLX, который является интерфейсом X11 для OpenGL, а также WGL, который является интерфейсом Microsoft Windows для OpenGL.

Содержание
  • 1 История
  • 2 Характеристики
    • 2.1 Интерфейсы оконной системы
    • 2.2 Обработка неоднородности Mac OS X
    • 2.3 Управление рендерингом
    • 2.4 Программный рендерер
  • 3 См. Также
  • 4 Внешние ссылки
История

Все интерфейсы оконной системы к OpenGL возникли в результате миграции проприетарного интерфейса программирования приложений 3D-графики Silicon Graphics (API ) IrisGL в его текущую открытую стандартную форму OpenGL. Когда было принято решение сделать IrisGL открытым стандартом, основное необходимое изменение дизайна заключалось в том, чтобы сделать этот графический стандартный API-интерфейс независимой от оконной системы. Поэтому при переходе на OpenGL вся логика, относящаяся к оконной системе, была удалена из IrisGL. Логика оконной системы включает в себя любой механизм событий для сбора входных данных с таких устройств, как клавиатуры и мыши, а также любую логику упорядочивания окон или размера, используемую при рисовании в современном оконном пользовательском интерфейсе. Кроме того, все внутреннее управление буферами оконной памяти, иногда называемыми поверхностями, также было удалено из IrisGL для создания OpenGL.

Поскольку OpenGL не зависит от оконной системы, такие компании, как Apple, должны взять на себя бремя настройки и управления поверхностями, используемыми в качестве места назначения для рендеринга OpenGL.

Особенности

Интерфейсы оконной системы

В OS X CGL является базовым уровнем интерфейсов оконной системы к OpenGL. И AGL (графическая библиотека Apple), и Cocoa (API) (или AppKit) имеют интерфейсы для OpenGL и являются логическими уровнями программного обеспечения и зависят от CGL в своем поведении. CGL и AGL свободно взаимодействуют. CGL и Какао могут использоваться вместе, однако классы Какао могут неявно вносить изменения в состояние CGL. Вызовы функций из AGL и Какао не следует смешивать.

Конфигурация этих поверхностей выполняется посредством процесса выбора формата пикселей, в котором различные совместимые уровни информации визуализации объединяются для формирования буфера кадра. Примерами таких слоев являются буферы цвета, буферы прозрачности (альфа), буферы трафарета и буферы глубины. Функция CGL CGLChoosePixelFormat используется для выполнения этой проверки совместимости буфера. CGLChoosePixelFormat на основе входных параметров и их политики оценки выберет формат пикселей, который представляет совместимую конфигурацию буфера, поддерживаемую базовым средством визуализации, которое будет использоваться для обработки графических команд. Рендереры могут быть аппаратными, так что они соответствуют графическим картам, установленным в системе, или они могут быть программными, когда основной ЦП системы обрабатывает все графические команды. обработка и финальная растеризация работа.

Обработка неоднородности Mac OS X

В Mac OS X CGL также отвечает за обработку неоднородного характера установки и настройки графических устройств в системах Macintosh. В компьютерах Macintosh может быть установлено любое количество дисплеев и видеокарт. В этих конфигурациях рабочий стол пользователя может быть виртуализирован (расширен) или отражен на нескольких дисплеях, подключенных к нескольким графическим картам, которые могут быть или не быть от одного и того же поставщика графики.

Управление рендерингом

Когда пользователи настраивают свой Macintosh для использования виртуализированного рабочего стола и перетаскивают окна с одного дисплея на другой, CGL управляет состоянием графики OpenGL, которое должно быть затенено между устройствами. чтобы обеспечить согласованность обработки команд между ними. Перетаскивание окна через рабочий стол Macintosh между двумя разными дисплеями, которые поддерживаются двумя разными модулями визуализации, известно как «виртуальная смена экрана».

CGL также предоставляет механизм для получения информации о рендерере, который используется в данный момент. Основная структура данных, которая поддерживает состояние OpenGL в Mac OS X, - это CGLContextObj. Эти контексты CGL можно получить в любое время с помощью вызова CGLGetCurrentContext. Затем CGLContextObj может быть запрошен на предмет специфики связанного с ним средства визуализации.

Программный рендерер

Также включен программный рендерер OpenGL собственного производства Apple. Первоначально это был простой целочисленный пакет, в 10.3 был представлен новый пакет с плавающей запятой , который в конечном итоге заменил его. Программный рендерер, хотя и медленный, достаточно быстр для базовых приложений и сохраняет полную функциональность с реализацией OS X OpenGL для целей разработки.

См. Также
  • GLX : эквивалентный интерфейс X11 для OpenGL
  • WGL : эквивалентный интерфейс Microsoft Windows для OpenGL
  • AGL
  • OpenGL
  • GLUT : интерфейс более высокого уровня, скрывающий различия между WGL, GLX и т. Д.
Внешние ссылки
Последняя правка сделана 2021-05-15 12:21:38
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте