Ссылка CGL
CGL (Ядро OpenGL) является интерфейсом программирования самого низкого уровня для реализации Apple OpenGL. CGL поддерживает полноэкранное получение OpenGL и рисование к пиксельным буферам, которые являются аппаратно ускоренным внеэкранным расположением получения. Любое приложение Какао или Углерода может использовать CGL для получения наиболее прямого доступа к функциональности системы. Классы Какао, поддерживающие OpenGL и AGL API, каждый создаются поверх CGL.
-
Создает объект формата пикселя, удовлетворяющий ограничения указанного буфера и атрибутов средства рендеринга.
Объявление
Swift
func CGLChoosePixelFormat(_attribs: UnsafePointer<CGLPixelFormatAttribute>, _pix: UnsafeMutablePointer<CGLPixelFormatObj>, _npix: UnsafeMutablePointer<GLint>) -> CGLErrorObjective C
CGLError CGLChoosePixelFormat ( const CGLPixelFormatAttribute *attribs, CGLPixelFormatObj *pix, GLint *npix );Параметры
attribsA
0завершенный массив, содержащий список атрибутов средства рендеринга и буфера. Атрибуты могут быть булевской переменной или целым числом. Если атрибут является целым числом, необходимо сразу предоставить требуемое значение после атрибута. Если атрибут является булевской переменной, не предоставляйте значение, потому что его присутствие в массиве атрибутов подразумевает atrueзначение. Для получения информации об атрибутах, которые можно предоставить, посмотрите Атрибуты Буфера и Средства рендеринга и Обсуждение ниже.pixАдрес памяти объекта формата пикселя. По возврату, точкам к новому объекту формата пикселя, содержащему информацию о формате пикселя и список виртуальных экранов. Если нет никаких форматов пикселя или виртуальных экранов, удовлетворяющих ограничения буфера и атрибутов средства рендеринга, значения
pixустановлен вNULL.npixПо возврату, точкам к числу виртуальных экранов, на которые ссылаются
pix. ЕслиpixNULL, значениеnpixустановлен в0.Возвращаемое значение
Код результата. См. Коды Результата CGL.
Обсуждение
После того, как объект формата пикселя создается успешно, целочисленные атрибуты установлены в значения, которые являются как близко к требуемому значению, как может быть предоставлен системой. Атрибуты могут иметь различные значения для каждого виртуального экрана. Можно использовать
kCGLPFAMinimumPolicyиkCGLPFAMaximumPolicyатрибуты, чтобы управлять, как система выбирает установку. Для получения дополнительной информации о выборе атрибутов см. Руководство по программированию OpenGL для Mac.Булевы константы атрибута включают следующее:
Целочисленные константы атрибута должны сопровождаться значением:
Запускаясь в OS X v10.5, объекты формата пикселя являются считаемой ссылкой. Объекты формата пикселя создаются с подсчетом ссылок
1когда последняя ссылка на объект выпущена, и уничтожаются.Оператор импорта
Objective C
@import OpenGL;Swift
import OpenGLДоступность
Доступный в OS X v10.0 и позже.
-
Получает значения атрибута, связанного с объектом формата пикселя.
Объявление
Swift
func CGLDescribePixelFormat(_pix: CGLPixelFormatObj, _pix_num: GLint, _attrib: CGLPixelFormatAttribute, _value: UnsafeMutablePointer<GLint>) -> CGLErrorObjective C
CGLError CGLDescribePixelFormat ( CGLPixelFormatObj pix, GLint pix_num, CGLPixelFormatAttribute attrib, GLint *value );Параметры
pixОбъект формата пикселя запросить.
pix_numВиртуальное экранное число, значение атрибута которого Вы хотите получить. Это значение должно быть между
0и число виртуальных экранов минус один.attribАтрибут, значение которого Вы хотите получить. Для списка возможных атрибутов посмотрите Атрибуты Буфера и Средства рендеринга.
valueПо возврату, точкам к значению атрибута.
Возвращаемое значение
Код результата. См. Коды Результата CGL.
Обсуждение
Объект формата пикселя может содержать различные значения для каждого виртуального экрана, который является, почему необходимо предоставить виртуальное экранное число в
pix_numпараметр.Можно получить число виртуальных экранов, связанных с объектом формата пикселя путем вызывания функции
CGLDescribePixelFormat, передача объекта формата пикселя,0для виртуального экранного числа и постоянного атрибутаkCGLPFAVirtualScreenCount. Для получения дополнительной информации о виртуальных экранах, см. Руководство по программированию OpenGL для Mac.Оператор импорта
Objective C
@import OpenGL;Swift
import OpenGLДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Получает текущий формат пикселя, связанный с CGL рендеринг контекста.
Объявление
Swift
func CGLGetPixelFormat(_ctx: CGLContextObj) -> CGLPixelFormatObjObjective C
CGLPixelFormatObj CGLGetPixelFormat ( CGLContextObj ctx );Параметры
ctxРендеринг CGL контекста, формат которого Вы хотите получить.
Возвращаемое значение
Объект формата пикселя описание формата пикселя CGL рендеринг контекста.
Обсуждение
Объект формата пикселя не сохраняется прежде чем быть возвращенным к Вашему приложению. Если Ваше приложение должно поддержать этот объект, оно должно вызвать
CGLRetainPixelFormat.Оператор импорта
Objective C
@import OpenGL;Swift
import OpenGLДоступность
Доступный в OS X v10.5 и позже.
-
Постепенно увеличивает подсчет ссылок получателя.
Объявление
Swift
func CGLRetainPixelFormat(_pix: CGLPixelFormatObj) -> CGLPixelFormatObjObjective C
CGLPixelFormatObj CGLRetainPixelFormat ( CGLPixelFormatObj pix );Параметры
pixОбъект формата пикселя, подсчет ссылок которого должен быть постепенно увеличен.
Возвращаемое значение
Сохраняемый объект.
Обсуждение
Каждый вызов к
CGLRetainPixelFormatувеличивает подсчет ссылок1. Каждый вызов кCGLRetainPixelFormatдолжен быть соответствующим вызову кCGLReleasePixelFormat.Оператор импорта
Objective C
@import OpenGL;Swift
import OpenGLДоступность
Доступный в OS X v10.5 и позже.
-
Постепенно уменьшает подсчет ссылок объекта формата пикселя.
Объявление
Swift
func CGLReleasePixelFormat(_pix: CGLPixelFormatObj)Objective C
void CGLReleasePixelFormat ( CGLPixelFormatObj pix );Параметры
pixОбъект формата пикселя, подсчет ссылок которого должен быть постепенно уменьшен.
Обсуждение
Когда Вы вызываете функцию, система сохраняет объект формата пикселя
CGLCreateContext, таким образом, можно сразу выпустить объект формата пикселя после передачи его к функции создания контекста.Каждый вызов к
CGLReleasePixelFormatуменьшает подсчет ссылок1. Если достигает подсчет ссылок0, объект формата пикселя уничтожается.Оператор импорта
Objective C
@import OpenGL;Swift
import OpenGLДоступность
Доступный в OS X v10.5 и позже.
-
Возвраты сохранить количество объекта формата пикселя.
Объявление
Swift
func CGLGetPixelFormatRetainCount(_pix: CGLPixelFormatObj) -> GLuintObjective C
GLuint CGLGetPixelFormatRetainCount ( CGLPixelFormatObj pix );Параметры
pixОбъект формата пикселя.
Возвращаемое значение
Сохранить количество объекта формата пикселя.
Обсуждение
Можно использовать эту функцию для контроля сохранить количества объекта формата пикселя.
Оператор импорта
Objective C
@import OpenGL;Swift
import OpenGLДоступность
Доступный в OS X v10.5 и позже.
-
Освобождает память, связанную с объектом формата пикселя.
Объявление
Swift
func CGLDestroyPixelFormat(_pix: CGLPixelFormatObj) -> CGLErrorObjective C
CGLError CGLDestroyPixelFormat ( CGLPixelFormatObj pix );Параметры
pixОбъект формата пикселя уничтожить.
Возвращаемое значение
Код результата. См. Коды Результата CGL.
Обсуждение
Вызывание этой функции эквивалентно вызову
CGLReleasePixelFormat.Оператор импорта
Objective C
@import OpenGL;Swift
import OpenGLДоступность
Доступный в OS X v10.0 и позже.
-
Создает CGL рендеринг контекста.
Объявление
Swift
func CGLCreateContext(_pix: CGLPixelFormatObj, _share: CGLContextObj, _ctx: UnsafeMutablePointer<CGLContextObj>) -> CGLErrorObjective C
CGLError CGLCreateContext ( CGLPixelFormatObj pix, CGLContextObj share, CGLContextObj *ctx );Параметры
pixОбъект формата пикселя, создаваемый путем вызова функционального CGLChoosePixelFormat.
shareКонтекст рендеринга, с которым можно совместно использовать OpenGL, возражает состоянию — включая объекты текстуры, программы и дисплейные списки программы построения теней, объекты массива вершины, буферные объекты вершины, пиксельные буферные объекты и объекты кадрового буфера — и объектному состоянию, связанному который каждые из этих типов объектов. Передача
NULLуказать, что никакое совместное использование не должно иметь место.ctxАдрес памяти объекта контекста. По возврату, точкам к новому объекту контекста с буферами и приписывает указанный
pixпараметр. Если контекст не может быть создан, как указано, значениеctxустановлен вNULL.Возвращаемое значение
Код результата. См. Коды Результата CGL.
Обсуждение
Если формат пикселя возражает, что Вы предоставляете, в состоянии поддерживать многократные графические устройства, то контекст рендеринга может представить прозрачно через поддерживаемые устройства. С многократным контекстом рендеринга устройства совместное использование возможно только, когда отношение между средствами рендеринга и графическими устройствами, которые они поддерживают, является тем же для всех совместно использующихся контекстов рендеринга. Обычно Вы достигаете лучшего дисплея при помощи того же объекта формата пикселя для всех совместно использованные контексты рендеринга. Для получения дополнительной информации см. Руководство по программированию OpenGL для Mac.
Запускаясь в OS X v10.5, CGL представляющие объекты являются считаемой ссылкой. Объекты формата пикселя создаются с подсчетом ссылок
1когда последняя ссылка на объект выпущена, и уничтожаются.Оператор импорта
Objective C
@import OpenGL;Swift
import OpenGLДоступность
Доступный в OS X v10.0 и позже.
См. также
-
CGLCopyContext CGLCopyContext(OS X v10.8)Копирует указанные переменные состояния от одного контекста рендеринга до другого.
Объявление
Objective C
CGLError CGLCopyContext ( CGLContextObj src, CGLContextObj dst, GLbitfield mask );Параметры
srcИсходный контекст рендеринга.
dstМесто назначения, представляющее контекст.
maskМаска, указывающая переменные состояния для копирования. Передайте немного поля, содержащего поразрядное
ORиз имен переменной состояния, которые Вы хотите скопировать. Используйте символьные константы маски, передающиеся функции OpenGLglPushAttrib. Для копирования как можно большего количества переменных состояния предоставьте константуGL_ALL_ATTRIB_BITS. Для описания символьных констант маски см. Справочник OpenGL.Возвращаемое значение
Код результата. См. Коды Результата CGL.
Обсуждение
Не все значения состояния OpenGL могут быть скопированы. Например, пиксельный пакет и распаковывает состояние, представляет состояние режима, и выбор и состояние обратной связи не копируются. Состояние, которое может быть скопировано, является точно состоянием, которым управляет вызов OpenGL
glPushAttrib.Оператор импорта
Objective C
@import OpenGL;Доступность
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.8.
-
Постепенно увеличивается сохранение рассчитывают на CGL рендеринг контекста.
Объявление
Swift
func CGLRetainContext(_ctx: CGLContextObj) -> CGLContextObjObjective C
CGLContextObj CGLRetainContext ( CGLContextObj ctx );Параметры
ctxКонтекст рендеринга, который будет сохранен.
Возвращаемое значение
Тот же контекст, переданный в функцию.
Обсуждение
Каждый вызов к
CGLRetainContextувеличения сохранить количество1. Для предотвращения утечек памяти каждый сохраняет вызов, должен быть сбалансирован с вызова кCGLReleaseContext.Оператор импорта
Objective C
@import OpenGL;Swift
import OpenGLДоступность
Доступный в OS X v10.5 и позже.
-
Постепенно уменьшается сохранение рассчитывают на CGL рендеринг контекста.
Объявление
Swift
func CGLReleaseContext(_ctx: CGLContextObj)Objective C
void CGLReleaseContext ( CGLContextObj ctx );Параметры
ctxКонтекст рендеринга, который будет выпущен.
Обсуждение
Каждый вызов к
CGLReleaseContextуменьшения сохранить количество1.Когда достигает сохранить количество
0, освобождены все ресурсы, связанные с контекстом рендеринга. Если контекст рендеринга, который Вы передаете, является текущим контекстом рендеринга, и это освобождено, текущий контекст установлен вNULLи нет никакого текущего контекста рендеринга после того, как выполнится функция. После того, как контекст освобожден, необходимо удостовериться, что Вы не используете уничтоженный контекст рендеринга. Это включает использование макросы CGL, в которых контекст рендеринга явно передается OpenGL.Оператор импорта
Objective C
@import OpenGL;Swift
import OpenGLДоступность
Доступный в OS X v10.5 и позже.
См. также
-
Возвращается ток сохраняют количество CGL рендеринг контекста.
Объявление
Swift
func CGLGetContextRetainCount(_ctx: CGLContextObj) -> GLuintObjective C
GLuint CGLGetContextRetainCount ( CGLContextObj ctx );Параметры
ctxРендеринг CGL контекста, чей сохраняют количество, которое Вы хотите обнаружить.
Возвращаемое значение
Сохранить количество CGL рендеринг контекста.
Оператор импорта
Objective C
@import OpenGL;Swift
import OpenGLДоступность
Доступный в OS X v10.5 и позже.
См. также
-
Освобождает ресурсы, связанные с контекстом рендеринга.
Объявление
Swift
func CGLDestroyContext(_ctx: CGLContextObj) -> CGLErrorObjective C
CGLError CGLDestroyContext ( CGLContextObj ctx );Параметры
ctxКонтекст рендеринга для уничтожения.
Возвращаемое значение
Код результата. См. Коды Результата CGL.
Обсуждение
Запущение в Mac OS 10.5, CGL рендеринг контекстов является считаемой ссылкой. По причинам совместимости, вызывая
CGLDestroyContextочищает drawable, связанное с контекстом рендеринга. ВызовCGLDestroyContextэквивалент вызова обоихCGLClearDrawableиCGLReleaseContext).Оператор импорта
Objective C
@import OpenGL;Swift
import OpenGLДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Возвращает текущий контекст рендеринга.
Объявление
Swift
func CGLGetCurrentContext() -> CGLContextObjObjective C
CGLContextObj CGLGetCurrentContext ( void );Возвращаемое значение
Текущий контекст рендеринга. Если нет ни одного, возвратов
NULL.Оператор импорта
Objective C
@import OpenGL;Swift
import OpenGLДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Устанавливает указанный контекст рендеринга как текущий контекст рендеринга.
Объявление
Swift
func CGLSetCurrentContext(_ctx: CGLContextObj) -> CGLErrorObjective C
CGLError CGLSetCurrentContext ( CGLContextObj ctx );Параметры
ctxКонтекст рендеринга для установки как текущий контекст рендеринга. Передача
NULLвыпускать текущий контекст рендеринга, не присваивая новый.Возвращаемое значение
Код результата. См. Коды Результата CGL. Если функция перестала работать, текущий контекст остается неизменным.
Обсуждение
Может быть только один текущий контекст рендеринга. Последующие вызовы рендеринга OpenGL воздействуют на текущий контекст рендеринга для изменения drawable объекта, связанного с ним.
Можно использовать макросы AGL, чтобы обойти текущий механизм контекста рендеринга и поддержать собственный текущий контекст рендеринга.
Контекст является текущим на основе на поток. Многократные потоки должны сериализировать вызовы в тот же контекст.
Оператор импорта
Objective C
@import OpenGL;Swift
import OpenGLДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Включает опцию для контекста рендеринга.
Объявление
Swift
func CGLEnable(_ctx: CGLContextObj, _pname: CGLContextEnable) -> CGLErrorObjective C
CGLError CGLEnable ( CGLContextObj ctx, CGLContextEnable pname );Параметры
ctxКонтекст рендеринга.
pnameОпция включить. Для списка возможных вариантов посмотрите Опции Контекста.
Возвращаемое значение
Код результата. См. Коды Результата CGL.
Обсуждение
Некоторые опции контекста имеют значения, связанные с ними. Использовать
CGLSetParameterиCGLGetParameterустановить и получить значения параметров контекста.Оператор импорта
Objective C
@import OpenGL;Swift
import OpenGLДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Отключает опцию для контекста рендеринга.
Объявление
Swift
func CGLDisable(_ctx: CGLContextObj, _pname: CGLContextEnable) -> CGLErrorObjective C
CGLError CGLDisable ( CGLContextObj ctx, CGLContextEnable pname );Параметры
ctxКонтекст рендеринга.
pnameОпция отключить. Для списка возможных вариантов посмотрите Опции Контекста.
Возвращаемое значение
Код результата. См. Коды Результата CGL.
Оператор импорта
Objective C
@import OpenGL;Swift
import OpenGLДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Отчеты, включена ли опция для контекста рендеринга.
Объявление
Swift
func CGLIsEnabled(_ctx: CGLContextObj, _pname: CGLContextEnable, _enable: UnsafeMutablePointer<GLint>) -> CGLErrorObjective C
CGLError CGLIsEnabled ( CGLContextObj ctx, CGLContextEnable pname, GLint *enable );Параметры
ctxКонтекст рендеринга.
pnameОпция запросить. Для списка возможных вариантов посмотрите Опции Контекста.
enableПо возврату,
enableустановлен вtrueесли включена опция.Возвращаемое значение
Код результата. См. Коды Результата CGL.
Обсуждение
Установить или связать значения параметров с опцией контекста, использованием
CGLSetParameterилиCGLGetParameter.Оператор импорта
Objective C
@import OpenGL;Swift
import OpenGLДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Устанавливает значение параметра контекста рендеринга.
Объявление
Swift
func CGLSetParameter(_ctx: CGLContextObj, _pname: CGLContextParameter, _params: UnsafePointer<GLint>) -> CGLErrorObjective C
CGLError CGLSetParameter ( CGLContextObj ctx, CGLContextParameter pname, const GLint *params );Параметры
ctxКонтекст рендеринга.
pnameПараметр, значение которого Вы хотите установить. Для списка возможных параметров посмотрите Параметры Контекста.
paramsУказатель на значение для установки параметра на.
Возвращаемое значение
Код результата. См. Коды Результата CGL.
Обсуждение
Некоторые параметры, возможно, должны иметь соответствующую опцию контекста, позволенную для их значения вступить в силу. Можно включить, отключить и протестировать, включают ли с опцией
CGLEnable,CGLDisable, иCGLIsEnabled.Оператор импорта
Objective C
@import OpenGL;Swift
import OpenGLДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Получает значение параметра контекста рендеринга.
Объявление
Swift
func CGLGetParameter(_ctx: CGLContextObj, _pname: CGLContextParameter, _params: UnsafeMutablePointer<GLint>) -> CGLErrorObjective C
CGLError CGLGetParameter ( CGLContextObj ctx, CGLContextParameter pname, GLint *params );Параметры
ctxКонтекст рендеринга.
pnameПараметр, значение которого Вы хотите получить. Для списка возможных параметров посмотрите Параметры Контекста.
paramsПо возврату, точкам к значению параметра.
Возвращаемое значение
Код результата. См. Коды Результата CGL.
Обсуждение
Некоторые параметры, возможно, должны иметь соответствующую опцию контекста, позволенную для их значения вступить в силу. Можно включить, отключить и протестировать, включают ли с опцией
CGLEnable,CGLDisable, иCGLIsEnabled.Оператор импорта
Objective C
@import OpenGL;Swift
import OpenGLДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Блокирует CGL рендеринг контекста.
Объявление
Swift
func CGLLockContext(_ctx: CGLContextObj) -> CGLErrorObjective C
CGLError CGLLockContext ( CGLContextObj ctx );Параметры
ctxКонтекст CGL для блокировки.
Возвращаемое значение
Код результата. См. Коды Результата CGL.
Обсуждение
Функция
CGLLockContextблокирует поток, он идет, пока все другие потоки не разблокировали тот же контекст с помощью функцииCGLUnlockContext. Можно использоватьCGLLockContextрекурсивно. Зависящие от контекста вызовы CGL собой не требуют блокировки, но можно гарантировать последовательную обработку для группы вызовов путем окружения ихCGLLockContextиCGLUnlockContext. Следует иметь в виду, что вызовы от OpenGL API (API, предоставленный Наблюдательным советом Архитектуры), требуют блокировки.Приложения то использование
NSOpenGLклассы с многопоточностью могут заблокировать контексты с помощью функцийCGLLockContextиCGLUnlockContext. Для выполнения рендеринга в потоке кроме основного можно заблокировать контекст, что Вы хотите получить доступ и безопасно выполнить команды OpenGL. Вызовы блокировки должны быть помещены вокруг всех вызовов OpenGL во всех потоках.Для получения дополнительной информации о многопоточности приложения OpenGL см. Руководство по программированию OpenGL для Mac.
Оператор импорта
Objective C
@import OpenGL;Swift
import OpenGLДоступность
Доступный в OS X v10.4 и позже.
См. также
-
Разблокировал CGL рендеринг контекста.
Объявление
Swift
func CGLUnlockContext(_ctx: CGLContextObj) -> CGLErrorObjective C
CGLError CGLUnlockContext ( CGLContextObj ctx );Параметры
ctxКонтекст CGL для разблокирования.
Возвращаемое значение
Код результата. См. Коды Результата CGL.
Оператор импорта
Objective C
@import OpenGL;Swift
import OpenGLДоступность
Доступный в OS X v10.4 и позже.
См. также
-
CGLSetOffScreen CGLSetOffScreen(OS X v10.7)Присоединяет контекст рендеринга к внеэкранному буферу.
Объявление
Objective C
CGLError CGLSetOffScreen ( CGLContextObj ctx, GLsizei width, GLsizei height, GLint rowbytes, void *baseaddr );Параметры
ctxКонтекст рендеринга.
widthШирина, в пикселях, внеэкранного буфера.
heightВысота, в пикселях, внеэкранного буфера.
rowbytesЧисло байтов на строку внеэкранного буфера, который должен быть больше, чем или равным
widthбайты на пиксель времен.baseaddrУказатель на блок памяти для использования в качестве внеэкранного буфера. Размер памяти должен быть, по крайней мере,
rowbytes*heightбайты.Возвращаемое значение
Код результата. См. Коды Результата CGL.
Обсуждение
Прежде, чем вызвать эту функцию, необходимо установить контекст рендеринга с помощью объекта формата пикселя, создаваемого с
kCGLPFAOffScreenатрибут. Для получения дополнительной информации оkCGLPFAOffScreen, посмотрите Атрибуты Буфера и Средства рендеринга.После вызова этой функции последующее получение OpenGL представляется во внеэкранном буфере, и область просмотра контекста рендеринга установлена в полный размер внеэкранной области.
Для выхода из внеэкранного режима вызвать
CGLClearDrawable.Для получения функциональности, подобной внеэкранному режиму на средствах рендеринга, не поддерживающих его, присоедините контекст к скрытому окну и используйте функцию OpenGL
glReadPixels.Оператор импорта
Objective C
@import OpenGL;Доступность
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.7.
См. также
-
CGLGetOffScreen CGLGetOffScreen(OS X v10.7)Получает внеэкранный буфер и его параметры для указанного контекста рендеринга.
Объявление
Objective C
CGLError CGLGetOffScreen ( CGLContextObj ctx, GLsizei *width, GLsizei *height, GLint *rowbytes, void **baseaddr );Параметры
ctxКонтекст рендеринга.
widthПо возврату, точкам к ширине, в пикселях, внеэкранного буфера. Если контекст рендеринга не присоединен к внеэкранному drawable объекту, значению
widthустановлен в0.heightПо возврату, точкам к высоте, в пикселях, внеэкранного буфера. Если контекст рендеринга не присоединен к внеэкранному drawable объекту, значению
heightустановлен в0.rowbytesПо возврату, точкам к числу байтов на строку внеэкранного буфера. Если контекст не присоединен к внеэкранному drawable объекту, значению
rowbytesустановлен в0.baseaddrПо возврату, точкам к базовому адресу внеэкранного буфера. Если контекст не присоединен к внеэкранному drawable объекту, значению
baseaddrустановлен вNULL.Оператор импорта
Objective C
@import OpenGL;Доступность
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.7.
См. также
-
CGLSetFullScreen CGLSetFullScreen(OS X v10.6)Присоединяет контекст рендеринга к его полноэкранному drawable объекту.
Оператор осуждения
Использовать
CGLSetFullScreenOnDisplayвместо этого.Объявление
Objective C
CGLError CGLSetFullScreen ( CGLContextObj ctx );Параметры
ctxКонтекст рендеринга.
Возвращаемое значение
Код результата. См. Коды Результата CGL.
Обсуждение
Прежде, чем вызвать эту функцию, необходимо установить контекст рендеринга с помощью объекта формата пикселя, создаваемого с
kCGLPFAFullScreenатрибут (см. Атрибуты Буфера и Средства рендеринга). Некоторые средства рендеринга OpenGL, такие как средство рендеринга программного обеспечения, не поддерживают полноэкранный режим. После вызова функционального CGLChoosePixelFormat с полноэкранным атрибутом необходимо проверить, создается ли объект формата пикселя успешно.Необходимо получить дисплей до ввода полноэкранного режима и выпустить его после выхода. После вызова этой функции последующее получение OpenGL представляется во всем экране. Для получения дополнительной информации см. Руководство по программированию OpenGL для Mac.
Для выхода из полноэкранного режима вызвать
CGLClearDrawable.Оператор импорта
Objective C
@import OpenGL;Доступность
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.6.
-
CGLSetFullScreenOnDisplay CGLSetFullScreenOnDisplay(OS X v10.7)Присоединяет контекст рендеринга к полноэкранному drawable объекту.
Объявление
Objective C
CGLError CGLSetFullScreenOnDisplay ( CGLContextObj ctx, GLuint display_mask );Параметры
ctxКонтекст рендеринга.
display_maskНемного поля, содержащего маску дисплея OpenGL для экрана, который Вы хотите, чтобы контекст покрыл.
Возвращаемое значение
Код результата. См. Коды Результата CGL.
Обсуждение
Эта функция получает drawable объект, покрывающий весь экран и присоединяющий его к контексту рендеринга. Полноэкранный контекст рендеринга может позволить базовому средству рендеринга обеспечивать лучшую производительность по сравнению с контекстом, связанным с окном, частично покрывающим экран.
До вызывания этой функции Ваше приложение должно гарантировать, что контекст способен к рендерингу к этому дисплею путем запросов надлежащих свойств средства рендеринга. Для получения дополнительной информации посмотрите
CGLQueryRendererInfo. Обратите внимание на то, что некоторые средства рендеринга, включая средство рендеринга программного обеспечения, не поддерживают полноэкранный режим.Необходимо получить экран до ввода полноэкранного режима и выпустить его после выхода. После вызова этой функции последующее получение OpenGL представляется во всем экране. Для получения дополнительной информации см. Руководство по программированию OpenGL для Mac.
Для выхода из полноэкранного режима вызвать
CGLClearDrawable.В OS X v10.6 или позже, эта функция не осуждается, но обычно не необходима. Если Ваше приложение создает окно, полностью покрывающее экран, система неявно создает полноэкранный экземпляр для того же потенциального выигрыша в производительности.
Оператор импорта
Objective C
@import OpenGL;Доступность
Доступный в OS X v10.5 и позже.
Осуждаемый в OS X v10.7.
-
Разъединяет контекст рендеринга с любыми drawable объектами, присоединенными к нему.
Объявление
Swift
func CGLClearDrawable(_ctx: CGLContextObj) -> CGLErrorObjective C
CGLError CGLClearDrawable ( CGLContextObj ctx );Параметры
ctxКонтекст рендеринга.
Возвращаемое значение
Код результата. См. Коды Результата CGL.
Оператор импорта
Objective C
@import OpenGL;Swift
import OpenGLДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Копирует задний буфер контекста с двойной буферизацией к переднему буферу.
Объявление
Swift
func CGLFlushDrawable(_ctx: CGLContextObj) -> CGLErrorObjective C
CGLError CGLFlushDrawable ( CGLContextObj ctx );Параметры
ctxОбъект контекста.
Возвращаемое значение
Код результата. См. Коды Результата CGL.
Обсуждение
Для создания контекста с двойной буферизацией укажите
kCGLPFADoubleBufferатрибут (см. Атрибуты Буфера и Средства рендеринга), когда Вы создаете объект формата пикселя для контекста рендеринга. Если атрибут запоминающего устройства установлен вfalse, буферами можно обменяться, а не скопировать. Это часто имеет место в полноэкранном режиме. Если получатель не является контекстом с двойной буферизацией, этот вызов ничего не делает.Если Вы устанавливаете атрибут интервала подкачки (
kCGLCPSwapInterval) соответственно, копия имеет место во время вертикали, восстанавливают дисплея, а не сразу послеCGLFlushDrawableвызывается. НеявноеglFlushработа выполняетсяCGLFlushDrawableпрежде чем это возвратится. Для оптимальной производительности приложение не должно вызыватьglFlushсразу перед вызовомCGLFlushDrawable. Последующие команды OpenGL могут быть сразу даны после вызоваCGLFlushDrawable, но не выполняются, пока буферная копия не завершается. Для получения дополнительной информации оkCGLCPSwapInterval, посмотрите Параметры Контекста.Оператор импорта
Objective C
@import OpenGL;Swift
import OpenGLДоступность
Доступный в OS X v10.0 и позже.
-
CGLCreatePBuffer CGLCreatePBuffer(OS X v10.7)Создает пиксельный буфер указанного размера, совместимого с указанной целью текстуры.
Объявление
Objective C
CGLError CGLCreatePBuffer ( GLsizei width, GLsizei height, GLenum target, GLenum internalFormat, GLint max_level, CGLPBufferObj *pbuffer );Параметры
widthШирина, в пикселях, пиксельного буфера.
heightВысота, в пикселях, пиксельного буфера.
targetКонстанта, указывающая тип пиксельной буферной целевой текстуры. Можно предоставить любую из следующих целей текстуры:
GL_TEXTURE_2D, текстура, размерности которой являются питанием два.GL_TEXTURE_RECTANGLE_EXT, текстура, размерности которой не являются питанием два.GL_TEXTURE_CUBE_MAP, отображенная кубическая текстура.
internalFormatКонстанта, указывающая внутренний цветной формат пиксельного буфера, который может быть также
GL_RGBилиGL_RGBA. Управления форматом, используется ли альфа-канал пиксельного буфера для текстурирования операций.max_levelМаксимальный уровень допустимой подробности множественного отображения. Передача
0для не использующего пиксельного буфера множественно отображается. Значение передало, никогда не должен превышать фактическое максимальное количество уровней множественного отображения, которые могут быть представлены с данной шириной и высотой.pbufferПо возврату, точкам к новому пиксельному буферному объекту.
Возвращаемое значение
Код результата. См. Коды Результата CGL. Эта функция возвраты
kCGLBadAllocесли это не может выделить хранение для пиксельной буферной структуры данных. Это возвращаетсяkCGLBadValueдля любого из этих условий:Отрицание
max_levelзначение обеспечило или amax_levelзначение, больше, чем максимальные возможные уровни множественного отображения для данной ширины и высоты, обеспечило.A
max_levelзначение, больше, чем0используемый с aGL_TEXTURE_RECTANGLE_EXTцель текстурыРазмерности предусмотрели a
GL_TEXTURE_CUBE_MAPцель текстуры не равна.
Обсуждение
Эта функция не имеет никакого знания контекстов OpenGL или объектов формата пикселя и в частности не выделяет хранение, необходимое для буфера фактического пикселя. Эти операции происходят при вызове функционального CGLSetPBuffer.
Можно определить размерные пределы пиксельного буфера путем вызывания функции OpenGL
glGetInteger. Можно счесть максимальный размер поддерживаемым путем запросовGL_MAX_VIEWPORT_DIMSи минимальный размер путем запросовGL_MIN_PBUFFER_VIEWPORT_DIMS_APPLE, который возвращает два целочисленных значения (подобныйGL_MAX_VIEWPORT_DIMS). Все пиксельные буферные размерности, которые Вы запрашиваете с функциейaglCreatePBufferдолжен находиться в пределах этих пределов (включительно) и должен соответствовать любым ограничениям, наложенным текстурой, предназначаются для Вас выбор.Максимальный размер области просмотра, поддерживаемый в OS X, является довольно большим. Необходимо учесть сумму видеопамяти или системной памяти, требуемой поддерживать требуемый пиксельный размер буфера, включая дополнительную память, необходимую для многократных буферов и опций, таких как мультивыборка.
Запускаясь в OS X v10.5, пиксельные буферные объекты являются считаемой ссылкой. Пиксельные буферные объекты создаются с подсчетом ссылок
1когда последняя ссылка на объект выпущена, и уничтожаются.Оператор импорта
Objective C
@import OpenGL;Доступность
Доступный в OS X v10.3 и позже.
Осуждаемый в OS X v10.7.
См. также
-
CGLDescribePBuffer CGLDescribePBuffer(OS X v10.7)Получает информацию, описывающую указанный пиксельный буферный объект.
Объявление
Objective C
CGLError CGLDescribePBuffer ( CGLPBufferObj obj, GLsizei *width, GLsizei *height, GLenum *target, GLenum *internalFormat, GLint *mipmap );Параметры
objУказатель на пиксель буферизует объект.
widthПо возврату, точкам к ширине, в пикселях, пиксельного буфера.
heightПо возврату, точкам к высоте, в пикселях, пиксельного буфера.
targetПо возврату, точкам к константе, указывающей пиксельную буферную цель текстуры:
GL_TEXTURE_2D, текстура, размерности которой являются питанием два.GL_TEXTURE_RECTANGLE_EXT, текстура, размерности которой не являются питанием два.GL_TEXTURE_CUBE_MAP, отображенная кубическая текстура.
internalFormatПо возврату, точкам к константе, указывающей внутренний цветной формат пиксельного буфера — также
GL_RGBилиGL_RGBA.mipmapПо возврату, точкам к уровню множественного отображения пиксельного буфера или
0если это не использует, множественно отображается.Возвращаемое значение
Код результата. См. Коды Результата CGL.
Обсуждение
Ширина, высота, цель текстуры и внутренний цветной формат текстуры пиксельного буферного объекта установлены при его создании и не могут быть изменены, не уничтожая и воссоздавая объект. Когда пиксельный буферный объект присоединен к контексту рендеринга путем вызова функционального CGLSetPBuffer, уровень установлен.
Оператор импорта
Objective C
@import OpenGL;Доступность
Доступный в OS X v10.3 и позже.
Осуждаемый в OS X v10.7.
См. также
-
CGLRetainPBuffer CGLRetainPBuffer(OS X v10.7)Постепенно увеличивается сохранение рассчитывают на пиксельный буферный объект.
Объявление
Objective C
CGLPBufferObj CGLRetainPBuffer ( CGLPBufferObj pbuffer );Параметры
pbufferПиксельный буфер возражает, чей сохраняют количество, которое Вы хотите постепенно увеличить.
Возвращаемое значение
Пиксельный буфер возражает, что принял вызов.
Обсуждение
Каждый вызов к
CGLRetainPBufferувеличения сохранить количество1. Для препятствования пиксельному буферному объекту быть пропущенным каждый сохраняет вызов, должен быть соответствующим вызову кCGLReleasePBuffer.Оператор импорта
Objective C
@import OpenGL;Доступность
Доступный в OS X v10.5 и позже.
Осуждаемый в OS X v10.7.
-
CGLReleasePBuffer CGLReleasePBuffer(OS X v10.7)Постепенно уменьшается сохранение рассчитывают на пиксельный буферный объект.
Объявление
Objective C
void CGLReleasePBuffer ( CGLPBufferObj pbuffer );Параметры
pbufferПиксельный буфер возражает, чей сохраняют количество, которое Вы хотите постепенно уменьшить.
Обсуждение
Вызовите эту функцию только после того, как Вы больше не должны будете использовать пиксельный буферный объект. Прежде, чем выпустить пиксель буферизуют объект, необходимо удалить любые объекты текстуры, связанные с ним. Вы не должны удостоверяться, что все команды текстурирования завершились до вызывания этой функции, потому что платформа OpenGL управляет синхронизацией текстурирования.
Каждый вызов к
CGLReleasePBufferуменьшения сохранить количество1. Когда достигает сохранить количество0, пиксельные буферные ресурсы объекта освобождены, и объект уничтожается. Результаты выдачи команд к уничтоженному пиксельному буферному объекту не определены.Оператор импорта
Objective C
@import OpenGL;Доступность
Доступный в OS X v10.5 и позже.
Осуждаемый в OS X v10.7.
См. также
-
CGLGetPBufferRetainCount CGLGetPBufferRetainCount(OS X v10.7)Возвраты сохранить количество пикселя буферизуют объект.
Объявление
Objective C
GLuint CGLGetPBufferRetainCount ( CGLPBufferObj pbuffer );Параметры
pbufferПиксельный буфер возражает, чей сохраняют количество, которое Вы хотите получить.
Возвращаемое значение
Сохранить количество пикселя буферизует объект.
Оператор импорта
Objective C
@import OpenGL;Доступность
Доступный в OS X v10.5 и позже.
Осуждаемый в OS X v10.7.
См. также
-
CGLDestroyPBuffer CGLDestroyPBuffer(OS X v10.7)Высвобождает средства, связанные с пиксельным буферным объектом.
Объявление
Objective C
CGLError CGLDestroyPBuffer ( CGLPBufferObj pbuffer );Параметры
pbufferПиксельный буфер возражает, чьи средства Вы хотите высвободить.
Возвращаемое значение
Код результата. См. Коды Результата CGL.
Обсуждение
Запускаясь в OS X v10.5, пиксельные буферные объекты являются считаемой ссылкой. Вызывание этой функции эквивалентно вызову
CGLReleasePBuffer.Оператор импорта
Objective C
@import OpenGL;Доступность
Доступный в OS X v10.3 и позже.
Осуждаемый в OS X v10.7.
См. также
-
CGLGetPBuffer CGLGetPBuffer(OS X v10.7)Получает пиксельный буфер и его параметры для указанного контекста рендеринга.
Объявление
Objective C
CGLError CGLGetPBuffer ( CGLContextObj ctx, CGLPBufferObj *pbuffer, GLenum *face, GLint *level, GLint *screen );Параметры
ctxКонтекст рендеринга.
pbufferПо возврату, точкам к пиксельному буферному объекту, присоединенному к контексту рендеринга.
faceПо возврату, точкам к поверхности карты куба, установленной, если пиксельный буферный целевой тип текстуры
GL_TEXTURE_CUBE_MAP; иначе0поскольку вся другая текстура предназначается для типов.levelПо возврату, точкам к текущему уровню множественного отображения для рисования.
screenПо возврату, точкам к текущему виртуальному экранному числу, как установлено последним допустимым вызовом к CGLSetPBuffer.
Возвращаемое значение
Код результата. См. Коды Результата CGL.
Оператор импорта
Objective C
@import OpenGL;Доступность
Доступный в OS X v10.3 и позже.
Осуждаемый в OS X v10.7.
См. также
-
CGLSetPBuffer CGLSetPBuffer(OS X v10.7)Присоединяет пиксельный буферный объект к контексту рендеринга.
Объявление
Objective C
CGLError CGLSetPBuffer ( CGLContextObj ctx, CGLPBufferObj pbuffer, GLenum face, GLint level, GLint screen );Параметры
ctxКонтекст рендеринга для присоединения пикселя буферизует к.
pbufferПиксельный буферный объект.
faceЕсли пиксельный буферный целевой тип текстуры, карта куба обращается, чтобы нарисовать
GL_TEXTURE_CUBE_MAP; иначе передача0.levelУровень множественного отображения для рисования. Когда пиксельный буферный объект создавался, это не должно превышать максимальный набор уровня множественного отображения. Передача
0для не поддерживающей цели текстуры множественно отображается.screenВиртуальное экранное значение. Виртуальный экран определяет средство рендеринга использование OpenGL для рисования к пиксельному буферному объекту. Для лучшей производительности, для пиксельного буфера, используемого в качестве источника текстуры, необходимо предоставить виртуальное экранное значение, приводящее к использованию того же средства рендеринга, используемого контекстом, это - цель текстурирования.
Возвращаемое значение
Код результата. См. Коды Результата CGL.
Обсуждение
В первый раз, когда Вы вызываете эту функцию для определенного пиксельного буферного объекта, система создает необходимые буферы. Буферы создаются для поддержки атрибутов, продиктованных объектом формата пикселя, используемым для создания контекста рендеринга, и параметрами раньше создавал пиксельный буферный объект. Требования хранения для пикселя буферизуют объекты, которые могут быть довольно большими, очень подобны требованиям для окон или представлений с присоединенными контекстами OpenGL. Все drawable объекты конкурируют за те же дефицитные ресурсы. Эта функция может перестать работать, существует недостаточно непрерывного VRAM для каждого буфера. Лучше кодировать защитно со схемой, сокращающей потребление ресурсов, не заставляя приложение обратиться к отказу. Если, конечно, отказ не является единственной жизнеспособной альтернативой.
Возможность присоединить пиксельный буфер к контексту поддерживается только на средствах рендеринга тот экспорт
GL_APPLE_pixel_bufferвGL_EXTENSIONSстрока. Прежде, чем вызвать эту функцию, необходимо программно определить, возможно ли присоединить пиксельный буфер к контексту путем запросовGL_EXTENSIONSв контексте и поискеGL_APPLE_pixel_buffer. Если то расширение не будет присутствовать, то средство рендеринга не позволит устанавливать пиксельный буфер.В порядке производительности это средства рендеринга, которых необходимо рассмотреть использование при установке контекста рендеринга для присоединения к пиксельному буферу:
Аппаратное средство рендеринга.
Универсальный рендеринг, но только с внеэкранным форматом пикселя и
glTexSubImage.Средство рендеринга программного обеспечения Apple, поддерживающее пиксельные буферы в OS X v10.4.8 и позже.
Оператор импорта
Objective C
@import OpenGL;Доступность
Доступный в OS X v10.3 и позже.
Осуждаемый в OS X v10.7.
См. также
-
CGLTexImagePBuffer CGLTexImagePBuffer(OS X v10.7)Связывает содержание пиксельного буфера к источнику данных для объекта текстуры.
Объявление
Objective C
CGLError CGLTexImagePBuffer ( CGLContextObj ctx, CGLPBufferObj pbuffer, GLenum source );Параметры
ctxКонтекст рендеринга, который является целевым контекстом для работы текстуры. Это - контекст, к которому Вы планируете представить содержание. Это не контекст, присоединенный к пиксельному буферу.
pbufferПиксельный буферный объект.
sourceИсходный буфер для получения текстуры от, который должен быть допустимым буфером OpenGL такой как
GL_FRONTилиGL_BACKи должно быть совместимо с буфером и атрибутами средства рендеринга, что Вы раньше создавали контекст рендеринга, присоединенный к пиксельному буферу. Это означает, что пиксельный буфер должен обладать рассматриваемым буфером для работы текстурирования для следования.Возвращаемое значение
Код результата. См. Коды Результата CGL.
Обсуждение
Необходимо генерировать и связать имя текстуры (использующий стандартные вызовы текстурирования OpenGL), который совместим с пиксельной буферной целью текстуры. Не предоставляйте объект текстуры, использовавшийся ранее для непиксельного буфера текстурирование операций, если Вы сначала не вызываете
glDeleteTexturesрегенерировать имя текстуры.При изменении содержания пиксельного буфера, который использование множественно отображает уровни, необходимо вызвать эту функцию снова прежде, чем нарисовать с пиксельным буфером, гарантировать, что содержание синхронизируется с OpenGL. Для пиксельных буферов без множественных отображений просто снова переплетите к объекту текстуры синхронизировать содержание.
Никакие вызовы текстурирования OpenGL, изменяющие пиксельное буферное содержание текстуры, не разрешены (такой как
glTexSubImage2DилиglCopyTexImage2D) с пикселем буферизуют текстуру как место назначения. Разрешено использовать команды текстурирования для чтения данных из пиксельной буферной текстуры, такой какglCopyTexImage2D, с пикселем буферизуют текстуру как источник. Также законно использовать функции OpenGL такой какglReadPixelsдля чтения содержания пикселя буферизуют непосредственно через пиксельный буферный контекст.Обратите внимание на то, что текстурирование с
CGLTexImagePBufferфункция может не привести к намеченным результатам без ошибки таким же образом, другие команды текстурирования OpenGL могут обычно перестать работать. Функция перестала работать при установке несовместимого режима фильтра не включайте надлежащую цель текстуры или другие условия, описанные в спецификации OpenGL.Вы не должны совместно использовать контекст для использования пиксельного буферного объекта в качестве источника текстуры. Можно использовать независимые объекты формата пикселя и контексты OpenGL и для пиксельного буфера и для целевого drawable объекта, не совместно используя ресурсы, и все еще текстурировать использование пиксельного буфера в целевом контексте.
Для получения дополнительной информации о том, как использовать пиксельный буферный объект в качестве источника текстуры, см. Руководство по программированию OpenGL для Mac.
Оператор импорта
Objective C
@import OpenGL;Доступность
Доступный в OS X v10.3 и позже.
Осуждаемый в OS X v10.7.
См. также
-
Возвращает строку, описывающую указанный код результата.
Объявление
Swift
func CGLErrorString(_error: CGLError) -> UnsafePointer<Int8>Objective C
const char * CGLErrorString ( CGLError error );Параметры
errorКодовая константа результата CGL возвратилась из функции CGL. Для описания этих констант см. Коды Результата CGL.
Возвращаемое значение
Строка ошибки, описывающая кодовую константу результата, передала в
errorпараметр. Если код результата недопустим, возвращает строку “Никакой такой код ошибки”.Оператор импорта
Objective C
@import OpenGL;Swift
import OpenGLДоступность
Доступный в OS X v10.0 и позже.
-
Устанавливает значение глобальной опции.
Использовать
CGLSetGlobalOptionвместо этого.Объявление
Swift
func CGLSetOption(_pname: CGLGlobalOption, _param: GLint) -> CGLErrorObjective C
CGLError CGLSetOption ( CGLGlobalOption pname, GLint param );Параметры
pnameИмя опции, значение которой Вы хотите установить. Посмотрите Глобальные Опции для списка констант, которые можно передать.
paramЗначение для установки опции в.
Возвращаемое значение
Код результата. См. Коды Результата CGL.
Обсуждение
Эта функция изменяет значения опций, влияющих на работу OpenGL во всех контекстах рендеринга в приложении, не только текущем контексте рендеринга.
Оператор импорта
Objective C
@import OpenGL;Swift
import OpenGLДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Получает значение глобальной опции.
Использовать
CGLGetGlobalOptionвместо этого.Объявление
Swift
func CGLGetOption(_pname: CGLGlobalOption, _param: UnsafeMutablePointer<GLint>) -> CGLErrorObjective C
CGLError CGLGetOption ( CGLGlobalOption pname, GLint *param );Параметры
pnameИмя опции, значение которой Вы хотите получить. Посмотрите Глобальные Опции для списка констант, которые можно передать.
paramПо возврату, указателю на значение опции.
Возвращаемое значение
Код результата. См. Коды Результата CGL.
Оператор импорта
Objective C
@import OpenGL;Swift
import OpenGLДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Получает значение глобальной опции.
Объявление
Swift
func CGLGetGlobalOption(_pname: CGLGlobalOption, _params: UnsafeMutablePointer<GLint>) -> CGLErrorObjective C
CGLError CGLGetGlobalOption ( CGLGlobalOption pname, GLint *params );Параметры
pnameИмя опции, значение которой Вы хотите получить. Посмотрите Глобальные Опции для списка констант, которые можно передать.
paramsПо возврату, указателю на значение опции.
Возвращаемое значение
Код результата. См. Коды Результата CGL.
Оператор импорта
Objective C
@import OpenGL;Swift
import OpenGLДоступность
Доступный в OS X v10.6 и позже.
См. также
-
Устанавливает значение глобальной опции.
Объявление
Swift
func CGLSetGlobalOption(_pname: CGLGlobalOption, _params: UnsafePointer<GLint>) -> CGLErrorObjective C
CGLError CGLSetGlobalOption ( CGLGlobalOption pname, const GLint *params );Параметры
pnameИмя опции, значение которой Вы хотите установить. Посмотрите Глобальные Опции для списка констант, которые можно передать.
paramsЗначение для установки опции в.
Возвращаемое значение
Код результата. См. Коды Результата CGL.
Обсуждение
Эта функция изменяет значения опций, влияющих на работу OpenGL во всех контекстах рендеринга в приложении, не только текущем контексте рендеринга.
Оператор импорта
Objective C
@import OpenGL;Swift
import OpenGLДоступность
Доступный в OS X v10.6 и позже.
См. также
-
Получает номера основной версии и номера вспомогательной версии библиотеки CGL.
Объявление
Swift
func CGLGetVersion(_majorvers: UnsafeMutablePointer<GLint>, _minorvers: UnsafeMutablePointer<GLint>)Objective C
void CGLGetVersion ( GLint *majorvers, GLint *minorvers );Параметры
majorversПо возврату, точкам к номеру основной версии библиотеки CGL.
minorversПо возврату, точкам к номеру вспомогательной версии библиотеки CGL.
Обсуждение
Реализации CGL с тем же номером основной версии вверх совместимы, означая, что реализация с самым высоким незначительным числом является надмножеством версии с самым низким незначительным числом.
Оператор импорта
Objective C
@import OpenGL;Swift
import OpenGLДоступность
Доступный в OS X v10.0 и позже.
-
Получает значение, связанное со свойством средства рендеринга.
Объявление
Swift
func CGLDescribeRenderer(_rend: CGLRendererInfoObj, _rend_num: GLint, _prop: CGLRendererProperty, _value: UnsafeMutablePointer<GLint>) -> CGLErrorObjective C
CGLError CGLDescribeRenderer ( CGLRendererInfoObj rend, GLint rend_num, CGLRendererProperty prop, GLint *value );Параметры
rendНепрозрачный информационный объект средства рендеринга, содержащий описание возможностей средства рендеринга, которые Вы хотите проверить. Можно получить информационный объект средства рендеринга путем вызова функционального CGLQueryRendererInfo. Необходимо вызвать
CGLDestroyRendererInfoкогда Вам больше не нужен этот объект.rend_numИндекс средства рендеринга в информационном объекте средства рендеринга — значение между 0 и число средств рендеринга минус одно. Число средств рендеринга может быть получено путем вызова
CGLDescribeRenderer, передача вrend, средство рендеринга номер 0 и свойство средства рендерингаkCGLRPRendererCount.propСвойство средства рендеринга, значение которого Вы хотите получить. Посмотрите Свойства Средства рендеринга для списка констант, которые можно предоставить для этого параметра.
valueПо возврату, точкам к значению требуемого свойства.
Возвращаемое значение
Код результата. См. Коды Результата CGL.
Оператор импорта
Objective C
@import OpenGL;Swift
import OpenGLДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Освобождает ресурсы, связанные с информационным объектом средства рендеринга.
Объявление
Swift
func CGLDestroyRendererInfo(_rend: CGLRendererInfoObj) -> CGLErrorObjective C
CGLError CGLDestroyRendererInfo ( CGLRendererInfoObj rend );Параметры
rendИнформационный объект средства рендеринга для уничтожения.
Возвращаемое значение
Код результата. См. Коды Результата CGL.
Оператор импорта
Objective C
@import OpenGL;Swift
import OpenGLДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Создает информационный объект средства рендеринга, содержащий свойства и оценивающий за средства рендеринга, которые в состоянии управлять всеми указанными дисплеями в данной маске дисплея.
Объявление
Swift
func CGLQueryRendererInfo(_display_mask: GLuint, _rend: UnsafeMutablePointer<CGLRendererInfoObj>, _nrend: UnsafeMutablePointer<GLint>) -> CGLErrorObjective C
CGLError CGLQueryRendererInfo ( GLuint display_mask, CGLRendererInfoObj *rend, GLint *nrend );Параметры
display_maskНемного поля, содержащего поразрядное
ORиз OpenGL выводят на экран маски, возвращенныеCGDisplayIDToOpenGLDisplayMaskфункция. Если Вы хотите получить информацию для всех средств рендеринга в системе, необходимо вызватьCGLQueryRendererInfoодин раз для каждого дисплея укусил.rendАдрес памяти информационного объекта средства рендеринга. По возврату, точкам к информационному объекту средства рендеринга, описывающему все средства рендеринга, которые в состоянии управлять дисплеями, указанными
display_maskпараметр. Еслиdisplay_maskне указывает дисплеев, значенияrendустановлен вNULL. Необходимо вызватьCGLDestroyRendererInfoкогда Вам больше не нужен этот объект.nrendПо возврату, точкам к числу средств рендеринга, описанных в информационном объекте средства рендеринга. Если
display_maskне указывает дисплеев, значенияnrendустановлен в0.Возвращаемое значение
Код результата. См. Коды Результата CGL.
Оператор импорта
Objective C
@import OpenGL;Swift
import OpenGLДоступность
Доступный в OS X v10.0 и позже.
-
Вызывает последующие команды OpenGL к указанному виртуальному экрану.
Объявление
Swift
func CGLSetVirtualScreen(_ctx: CGLContextObj, _screen: GLint) -> CGLErrorObjective C
CGLError CGLSetVirtualScreen ( CGLContextObj ctx, GLint screen );Параметры
ctxКонтекст рендеринга.
screenВиртуальное экранное число, которое должно быть значением между
0и число виртуальных экранов минус один. Число виртуальных экранов, доступных в контексте, может быть получено путем вызывания функцииCGLDescribePixelFormat, передача в объекте формата пикселя раньше создавала контекст рендеринга,0для виртуального экранного числа (pix_numпараметр), и постоянный атрибутkCGLPFAVirtualScreenCount.Возвращаемое значение
Код результата. См. Коды Результата CGL.
Обсуждение
Установка виртуального экрана вынуждает средство рендеринга, связанное с виртуальным экраном обработать команды OpenGL, данные к указанному контексту. Изменение виртуального экрана изменяет текущее средство рендеринга. Необходимо использовать эту функцию только, когда необходимо переопределить поведение по умолчанию. Текущий виртуальный экран обычно устанавливается автоматически. Поскольку текущий виртуальный экран определяет, какое средство рендеринга OpenGL обрабатывает команды, возвращаемые значения всех
glGetXXXфункции могут быть затронуты текущим виртуальным экраном.Для получения дальнейшей информации на виртуальных экранах, см. Руководство по программированию OpenGL для Mac.
Оператор импорта
Objective C
@import OpenGL;Swift
import OpenGLДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Получает текущее виртуальное экранное число, связанное с контекстом рендеринга.
Объявление
Swift
func CGLGetVirtualScreen(_ctx: CGLContextObj, _screen: UnsafeMutablePointer<GLint>) -> CGLErrorObjective C
CGLError CGLGetVirtualScreen ( CGLContextObj ctx, GLint *screen );Параметры
ctxКонтекст рендеринга.
screenПо возврату, точкам на виртуальный экран, связанный с контекстом. Значение всегда
0в единственной системе отображения и–1если функция перестала работать по какой-либо причине.Возвращаемое значение
Код результата. См. Коды Результата CGL.
Обсуждение
Когда drawable объект перемещен или изменен через графические границы устройств, текущий виртуальный экран может измениться. Изменение на текущем виртуальном экране может влиять на возвращаемые значения некоторых функций OpenGL и в большинстве случаев также означает, что изменилось средство рендеринга.
Для получения дальнейшей информации на виртуальных экранах, см. Руководство по программированию OpenGL для Mac.
Оператор импорта
Objective C
@import OpenGL;Swift
import OpenGLДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Представляет указатель на непрозрачный объект контекста CGL.
Объявление
Swift
typealias CGLContextObj = UnsafeMutablePointer<_CGLContextObject>Objective C
typedef struct _CGLContextObject *CGLContextObj;Обсуждение
Этот тип данных указывает на структуру, что использование CGL для поддержания состояния и другой информации связалось с контекстом рендеринга OpenGL. Используйте функции, описанные в Управляющих Контекстах и Получении и Установке Опций Контекста создать, управлять, получить доступ, и освободить объект контекста CGL.
Оператор импорта
Objective C
@import OpenGL;Swift
import OpenGLДоступность
Доступный в OS X v10.0 и позже.
-
Представляет указатель на объект формата непрозрачного пикселя.
Объявление
Swift
typealias CGLPixelFormatObj = COpaquePointerObjective C
typedef struct _CGLPixelFormatObject *CGLPixelFormatObj;Обсуждение
Этот тип данных указывает на структуру что использование CGL для поддержания формата пикселя и виртуальной информации об экране для данного набора средства рендеринга и буферных опций. Используйте функции, описанные в Управлении Объектами Формата пикселя создать, управлять, получить доступ, и освободить объект формата пикселя.
Оператор импорта
Objective C
@import OpenGL;Swift
import OpenGLДоступность
Доступный в OS X v10.0 и позже.
-
Представляет указатель на непрозрачный информационный объект средства рендеринга.
Объявление
Swift
typealias CGLRendererInfoObj = COpaquePointerObjective C
typedef struct _CGLRendererInfoObject *CGLRendererInfoObj;Обсуждение
Этот тип данных указывает на структуру, что использование CGL для поддержания информации о средствах рендеринга связалось с дисплеем. Используйте функции, описанные в Получении информации Средства рендеринга, чтобы создать, получить доступ, и освободить информационный объект средства рендеринга.
Оператор импорта
Objective C
@import OpenGL;Swift
import OpenGLДоступность
Доступный в OS X v10.0 и позже.
-
Представляет указатель на буферный объект непрозрачного пикселя.
Объявление
Objective C
typedef struct _CGLPBufferObject *CGLPBufferObj;Обсуждение
Этот тип данных указывает на структуру, что CGL использует для аппаратно ускоренного внеэкранного получения. Используйте функции, описанные в Управлении Объектами Формата пикселя создать, управлять, получить доступ, и освободить пиксельный буферный объект.
Оператор импорта
Objective C
@import OpenGL;Доступность
Доступный в OS X v10.3 и позже.
Осуждаемый в OS X v10.7.
-
Определите константы, используемые для установки буферных режимов.
Объявление
Objective C
#define kCGLMonoscopicBit 0x00000001 #define kCGLStereoscopicBit x00000002 #define kCGLSingleBufferBit x00000004 #define kCGLDoubleBufferBit x00000008Константы
-
Укажите, что атрибуты раньше выбирали форматы пикселя и виртуальные экраны.
Объявление
Swift
typealias CGLPixelFormatAttribute = _CGLPixelFormatAttributeObjective C
typedef enum _CGLPixelFormatAttribute { kCGLPFAAllRenderers = 1, kCGLPFADoubleBuffer = 5, kCGLPFAStereo = 6, kCGLPFAAuxBuffers = 7, kCGLPFAColorSize = 8, kCGLPFAAlphaSize = 11, kCGLPFADepthSize = 12, kCGLPFAStencilSize = 13, kCGLPFAAccumSize = 14, kCGLPFAMinimumPolicy = 51, kCGLPFAMaximumPolicy = 52, kCGLPFAOffScreen = 53, kCGLPFAFullScreen = 54, kCGLPFASampleBuffers = 55, kCGLPFASamples = 56, kCGLPFAAuxDepthStencil = 57, kCGLPFAColorFloat = 58, kCGLPFAMultisample = 59, kCGLPFASupersample = 60, kCGLPFASampleAlpha = 61, kCGLPFARendererID = 70, kCGLPFASingleRenderer = 71, kCGLPFANoRecovery = 72, kCGLPFAAccelerated = 73, kCGLPFAClosestPolicy = 74, kCGLPFARobust = 75, kCGLPFABackingStore = 76, kCGLPFAMPSafe = 78, kCGLPFAWindow = 80, kCGLPFAMultiScreen = 81, kCGLPFACompliant = 83, kCGLPFADisplayMask = 84, kCGLPFAPBuffer = 90, kCGLPFARemotePBuffer = 91, kCGLPFAAllowOfflineRenderers = 96, kCGLPFAAcceleratedCompute = 97, kCGLPFAOpenGLProfile = 99, kCGLPFAVirtualScreenCount = 128, } CGLPixelFormatAttribute;Константы
-
kCGLPFAAllRendererskCGLPFAAllRenderersЭта константа является булевым атрибутом. Если это присутствует в массиве атрибутов, выбор формата пикселя открыт для всех доступных средств рендеринга, включая отладку и средства рендеринга специального назначения, которые не являются совместимым OpenGL. Не предоставляйте значение эту константу, потому что ее присутствие в массиве подразумевает
true.Доступный в OS X v10.0 и позже.
-
kCGLPFADoubleBufferkCGLPFADoubleBufferЭта константа является булевым атрибутом. Если это присутствует в массиве атрибутов, только форматы пикселя с двойной буферизацией рассматривают. Иначе, только однобуферные форматы пикселя рассматривают. Не предоставляйте значение эту константу, потому что ее присутствие в массиве подразумевает
true.Доступный в OS X v10.0 и позже.
-
kCGLPFAStereokCGLPFAStereoЭта константа является булевым атрибутом. Если это присутствует в массиве атрибутов, только форматы пикселя стерео рассматривают. Иначе, только monoscopic форматы пикселя рассматриваются. Не предоставляйте значение эту константу, потому что ее присутствие в массиве подразумевает
true.Доступный в OS X v10.0 и позже.
-
kCGLPFAAuxBufferskCGLPFAAuxBuffersПрисваиваемое значение является неотрицательным целым числом, указывающим желаемое число вспомогательных буферов. Предпочтены форматы пикселя с самым маленьким числом вспомогательных буферов, встречающих или превышающих конкретное количество.
Осуждаемый в OS X v10.7. Если массив атрибутов также запрашивает профиль кроме устаревшего профиля OpenGL, этот атрибут не должен быть указан; если настоящее, сбои создания формата пикселя.
Доступный в OS X v10.0 и позже.
-
kCGLPFAColorSizekCGLPFAColorSizeПрисваиваемое значение является неотрицательной спецификацией размера буфера. Предпочтен цветной буфер, наиболее близко соответствующий указанный размер. Если неуказанный, OpenGL выбирает цветной размер буфера, соответствующий экран.
Доступный в OS X v10.0 и позже.
-
kCGLPFAAlphaSizekCGLPFAAlphaSizeПрисваиваемое значение является неотрицательной спецификацией размера буфера. Предпочтен альфа-буфер, наиболее близко соответствующий указанный размер.
Доступный в OS X v10.0 и позже.
-
kCGLPFADepthSizekCGLPFADepthSizeПрисваиваемое значение является неотрицательной спецификацией размера буфера глубины. Предпочтен буфер глубины, наиболее близко соответствующий указанный размер.
Доступный в OS X v10.0 и позже.
-
kCGLPFAStencilSizekCGLPFAStencilSizeПрисваиваемое значение является неотрицательным целым числом, указывающим желаемое число битовых слоев шаблона. Самый маленький буфер шаблонов, по крайней мере, указанного размера предпочтен.
Доступный в OS X v10.0 и позже.
-
kCGLPFAAccumSizekCGLPFAAccumSizeПрисваиваемое значение является неотрицательной спецификацией размера буфера. Предпочтен буфер накопления, наиболее близко соответствующий указанный размер.
Осуждаемый в OS X v10.7. Если массив атрибутов также запрашивает профиль кроме устаревшего профиля OpenGL, этот атрибут не должен быть указан; если настоящее, сбои создания формата пикселя.
Доступный в OS X v10.0 и позже.
-
kCGLPFAMinimumPolicykCGLPFAMinimumPolicyЭта константа является булевым атрибутом. Если это присутствует в массиве атрибутов, политика выбора формата пикселя изменена для цвета, глубины и буферов накопления, таким образом, что только рассматривают буферы размера, больше, чем или равный желаемому размеру. Не предоставляйте значение эту константу, потому что ее присутствие в массиве подразумевает
true.Доступный в OS X v10.0 и позже.
-
kCGLPFAMaximumPolicykCGLPFAMaximumPolicyЭта константа является булевым атрибутом. Если это присутствует в массиве атрибутов, политика выбора формата пикселя изменена для цвета, глубины и буферов накопления, таким образом, что, если ненулевой размер буфера требуют, предпочтен самый большой доступный буфер. Не предоставляйте значение эту константу, потому что ее присутствие в массиве подразумевает
true.Доступный в OS X v10.0 и позже.
-
kCGLPFAOffScreenkCGLPFAOffScreenЭта константа является булевым атрибутом. Если это присутствует в массиве атрибутов, только средства рендеринга, которые способны к рендерингу к внеэкранной области памяти и имеют буферную глубину точно, равняются желаемой буферной глубине, рассматриваются.
kCGLPFAClosestPolicyатрибут подразумевается. Не предоставляйте значение эту константу, потому что ее присутствие в массиве подразумеваетtrue.Осуждаемый в OS X v10.7. Если массив атрибутов также запрашивает профиль кроме устаревшего профиля OpenGL, этот атрибут не должен быть указан; если настоящее, сбои создания формата пикселя.
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.7.
-
kCGLPFAFullScreenkCGLPFAFullScreenЭта константа является булевым атрибутом. Если это присутствует в массиве атрибутов, только средства рендеринга, которые способны к рендерингу к полноэкранному drawable объекту, рассматривают.
kCGLPFASingleRendererатрибут подразумевается. Не предоставляйте значение эту константу, потому что ее присутствие в массиве подразумеваетtrue.Осуждаемый в OS X v10.6 или позже. Если массив атрибутов также запрашивает профиль кроме устаревшего профиля OpenGL, этот атрибут не должен быть указан; если настоящее, сбои создания формата пикселя.
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.6.
-
kCGLPFAAuxDepthStencilkCGLPFAAuxDepthStencilЭта константа является булевым атрибутом. Если это присутствует в массиве атрибутов, каждый вспомогательный буфер имеет свой собственный буфер шаблонов глубины. Не предоставляйте значение эту константу, потому что ее присутствие в массиве подразумевает
true.Осуждаемый в OS X v.10.7 или позже. Если массив атрибутов также запрашивает профиль кроме устаревшего профиля OpenGL, этот атрибут не должен быть указан; если настоящее, сбои создания формата пикселя.
Доступный в OS X v10.2 и позже.
-
kCGLPFAColorFloatkCGLPFAColorFloatЭта константа является булевым атрибутом. Если это присутствует в массиве атрибутов, цветные буферы хранят пиксели с плавающей точкой. Не предоставляйте значение эту константу, потому что ее присутствие в массиве подразумевает
true.Доступный в OS X v10.2 и позже.
-
kCGLPFAMultisamplekCGLPFAMultisampleЭта константа является булевым атрибутом. Если это присутствует в массиве атрибутов, указывает подсказку к драйверу, чтобы предпочесть мультивыбирать. Не предоставляйте значение эту константу, потому что ее присутствие в массиве подразумевает
true.Доступный в OS X v10.3 и позже.
-
kCGLPFASupersamplekCGLPFASupersampleЭта константа является булевым атрибутом. Если это присутствует в массиве атрибутов, указывает подсказку к драйверу для предпочтения избыточной выборки. Не предоставляйте значение эту константу, потому что ее присутствие в массиве подразумевает
true.Доступный в OS X v10.3 и позже.
-
kCGLPFASampleAlphakCGLPFASampleAlphaЭта константа является булевым атрибутом. Если это присутствует в массиве атрибутов, альфа-фильтрации запроса при мультивыборке. Не предоставляйте значение эту константу, потому что ее присутствие в массиве подразумевает
true.Доступный в OS X v10.3 и позже.
-
kCGLPFASampleBufferskCGLPFASampleBuffersЧисло мультидемонстрационных буферов. Присваиваемое значение является неотрицательным целым числом, указывающим число существующих независимых демонстрационных буферов. Как правило, значение
0если никакой мультидемонстрационный буфер не существует или1.Доступный в OS X v10.2 и позже.
-
kCGLPFASampleskCGLPFASamplesЧисло выборок на мультидемонстрационный буфер. Присваиваемое значение является неотрицательным целым числом, указывающим желаемое число выборок, которые могут быть взяты в единственном пикселе. Самый маленький демонстрационный буфер с, по крайней мере, конкретным количеством выборок предпочтен.
Доступный в OS X v10.2 и позже.
-
kCGLPFARendererIDkCGLPFARendererIDПрисваиваемое значение является неотрицательным Идентификационным номером средства рендеринга и может быть любой из констант, определенных в Средстве рендеринга IDs. Предпочтены средства рендеринга OpenGL, соответствующие указанный ID. Знаменитый
kCGLRendererGenericFloatID, который выбирает средство рендеринга программного обеспечения Apple. Другие константы выбирают средства рендеринга для определенных поставщиков оборудования.Доступный в OS X v10.0 и позже.
-
kCGLPFASingleRendererkCGLPFASingleRendererЭта константа является булевым атрибутом. Если это присутствует в массиве атрибутов, единственный механизм рендеринга выбран. В системах с многократными дисплеями это отключает возможность OpenGL управлять различными дисплеями через различные карты графического акселератора с единственным контекстом. Этот атрибут не обычно полезен. Не предоставляйте значение эту константу, потому что ее присутствие в массиве подразумевает
true.Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.9.
-
kCGLPFANoRecoverykCGLPFANoRecoveryЭта константа является булевым атрибутом. Если это присутствует в массиве атрибутов, механизмы восстановления после отказа OpenGL отключены. Обычно, если ускоренное средство рендеринга перестало работать вследствие отсутствия ресурсов, OpenGL автоматически переключается на другое средство рендеринга. Этот атрибут отключает эти опции так, чтобы рендеринг был всегда выполнен выбранным средством рендеринга. Этот атрибут не обычно полезен. Не предоставляйте значение эту константу, потому что ее присутствие в массиве подразумевает
true.Доступный в OS X v10.0 и позже.
-
kCGLPFAAcceleratedkCGLPFAAcceleratedЭта константа является булевым атрибутом. Если это присутствует в массиве атрибутов, только аппаратно ускоренные средства рендеринга рассматривают. Если
false, ускоренные средства рендеринга все еще предпочтены. Не предоставляйте значение эту константу, потому что ее присутствие в массиве подразумеваетtrue.Доступный в OS X v10.0 и позже.
-
kCGLPFAClosestPolicykCGLPFAClosestPolicyЭта константа является булевым атрибутом. Если это присутствует в массиве атрибутов, политика выбора формата пикселя изменена для буфера цвета, таким образом, что буфер, самый близкий к требуемому размеру, предпочтен, независимо от фактической цветной буферной глубины поддерживаемого графического устройства. Не предоставляйте значение эту константу, потому что ее присутствие в массиве подразумевает
true.Доступный в OS X v10.0 и позже.
-
kCGLPFARobustkCGLPFARobustЭта константа является булевым атрибутом. Если это присутствует в массиве атрибутов, только средства рендеринга, не имеющие никаких видов отказа связанными с отсутствием ресурсов видеокарты, рассматривают. Этот атрибут не обычно полезен. Не предоставляйте значение эту константу, потому что ее присутствие в массиве подразумевает
true.Осуждаемый в OS X v10.5 и позже. Если массив атрибутов также запрашивает профиль кроме устаревшего профиля OpenGL, этот атрибут не должен быть указан; если настоящее, сбои создания формата пикселя.
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.5.
-
kCGLPFABackingStorekCGLPFABackingStoreЭта константа является булевым атрибутом. Если это присутствует в массиве атрибутов, OpenGL рассматривает только средства рендеринга, имеющие задний буфер цвета полный размер drawable объекта и той гарантии заднее содержимое буфера, чтобы быть допустимыми после вызова к
CGLFlushDrawable. Не предоставляйте значение эту константу, потому что ее присутствие в массиве подразумеваетtrue.Доступный в OS X v10.0 и позже.
-
kCGLPFAMPSafekCGLPFAMPSafeЭта константа является булевым атрибутом. Если это присутствует в массиве атрибутов, OpenGL рассматривает только средства рендеринга, которые ориентированы на многопотоковое исполнение. Поскольку все средства рендеринга ориентированы на многопотоковое исполнение, этот атрибут не полезен. Не предоставляйте значение эту константу, потому что ее присутствие в массиве подразумевает
true.Осуждаемый в OS X v10.5 и позже. Если массив атрибутов также запрашивает профиль кроме устаревшего профиля OpenGL, этот атрибут не должен быть указан; если настоящее, сбои создания формата пикселя.
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.5.
-
kCGLPFAWindowkCGLPFAWindowЭта константа является булевым атрибутом. Если это присутствует в массиве атрибутов, только средства рендеринга, которые способны к рендерингу к окну, рассматривают. Этот атрибут подразумевается если ни один
kCGLPFAFullScreenниkCGLPFAOffScreenуказан. Поскольку CGL поддерживает только полноэкранные или внеэкранные drawable объекты, этот атрибут не полезен. Не предоставляйте значение эту константу, потому что ее присутствие в массиве подразумеваетtrue.Осуждаемый в OS X v10.7. Если массив атрибутов также запрашивает профиль кроме устаревшего профиля OpenGL, этот атрибут не должен быть указан; если настоящее, сбои создания формата пикселя.
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.9.
-
kCGLPFAMultiScreenkCGLPFAMultiScreenЭта константа является булевым атрибутом. Если это присутствует в массиве атрибутов, только средства рендеринга, способные к управлению многократными дисплеями, рассматривают. Этот атрибут не обычно полезен. Не предоставляйте значение эту константу, потому что ее присутствие в массиве подразумевает
true.Осуждаемый в OS X v10.5 и позже. Если массив атрибутов также запрашивает профиль кроме устаревшего профиля OpenGL, этот атрибут не должен быть указан; если настоящее, сбои создания формата пикселя.
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.5.
-
kCGLPFACompliantkCGLPFACompliantЭта константа является булевым атрибутом. Если это присутствует в массиве атрибутов, выбор формата пикселя только открыт для OpenGL совместимые средства рендеринга. Этот атрибут подразумевается если
kCGLPFAAllRenderersуказан. Этот атрибут не полезен в массиве атрибута. Не предоставляйте значение эту константу, потому что ее присутствие в массиве подразумеваетtrue.Осуждаемый в OS X v10.7. Если массив атрибутов также запрашивает профиль кроме устаревшего профиля OpenGL, этот атрибут не должен быть указан; если настоящее, сбои создания формата пикселя.
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.9.
-
kCGLPFADisplayMaskkCGLPFADisplayMaskПрисваиваемое значение является небольшим количеством маски поддерживаемых физических дисплеев. Все дисплеи, указанные в битовой маске, как гарантируют, будут поддерживаться форматом пикселя. Дисплеи, не указанные в битовой маске, могут все еще поддерживаться. Битовой маской управляет Quartz Display Services, доступная в
CGDirectDisplay.hзаголовок платформы защиты Прикладных служб. ACGDirectDisplayIDдолжен быть преобразован в маску дисплея OpenGL с помощью функцииCGDisplayIDToOpenGLDisplayMask. Этот атрибут не обычно полезен.Доступный в OS X v10.0 и позже.
-
kCGLPFAPBufferkCGLPFAPBufferЭта константа является булевым атрибутом. Если это присутствует в массиве атрибутов, формат пикселя может использоваться для рендеринга к пиксельному буферу. Не предоставляйте значение эту константу, потому что ее присутствие в массиве подразумевает
true.Осуждаемый в OS X v10.7. Если массив атрибутов также запрашивает профиль кроме устаревшего профиля OpenGL, этот атрибут не должен быть указан; если настоящее, сбои создания формата пикселя.
Доступный в OS X v10.3 и позже.
Осуждаемый в OS X v10.7.
-
kCGLPFARemotePBufferkCGLPFARemotePBufferЭта константа является булевым атрибутом. Если это присутствует в массиве атрибутов, формат пикселя может использоваться для рендеринга оффлайн к пиксельному буферу. Не предоставляйте значение эту константу, потому что ее присутствие в массиве подразумевает
true.Осуждаемый в OS X v10.7. Если массив атрибутов также запрашивает профиль кроме устаревшего профиля OpenGL, этот атрибут не должен быть указан; если настоящее, сбои создания формата пикселя.
Доступный в OS X v10.3 и позже.
Осуждаемый в OS X v10.9.
-
kCGLPFAAllowOfflineRendererskCGLPFAAllowOfflineRenderersЭта константа является булевым атрибутом. Если это присутствует в массиве атрибута, средства рендеринга, которые доступны, но не в настоящее время подключаемые к дисплею, можно рассмотреть.
Доступный в OS X v10.5 и позже.
-
kCGLPFAAcceleratedComputekCGLPFAAcceleratedComputeЭта константа является булевым атрибутом. Если это присутствует в массиве атрибутов, только средства рендеринга, представляющие к устройству, которое способно к обработке OpenCL, рассматривают.
Доступный в OS X v10.6 и позже.
-
kCGLPFAOpenGLProfilekCGLPFAOpenGLProfileПрисваиваемое значение может быть любой из констант, определенных в Профилях OpenGL. Если это присутствует в массивах атрибута, только средства рендеринга, способные к поддержке контекста OpenGL, обеспечивающего, функциональность, обещанная профилем, рассматриваются.
Доступный в OS X v10.7 и позже.
-
kCGLPFAVirtualScreenCountkCGLPFAVirtualScreenCountЭтот атрибут может использоваться для получения числа виртуальных экранов, указанных существующим объектом формата пикселя. Для получения значения вызовите функцию
CGLDescribePixelFormat, передавая объект формата пикселя, виртуальное экранное число0, и этот атрибут. Этот атрибут не полезен в массиве атрибута, это используется для создания объекта формата пикселя.Доступный в OS X v10.0 и позже.
Обсуждение
Эти константы используются CGLChoosePixelFormat и CGLDescribePixelFormat. Существование булева атрибута в массиве атрибута
CGLChoosePixelFormatподразумевает atrueзначение. Другие константы атрибута должны сопровождаться значением.Оператор импорта
Objective C
@import OpenGL;Swift
import OpenGLДоступность
Доступный в OS X v10.0 и позже.
-
-
Укажите форматы для цветных и буферов накопления.
Объявление
Objective C
#define kCGLRGB444Bit 0x00000040 #define kCGLARGB4444Bit 0x00000080 #define kCGLRGB444A8Bit 0x00000100 #define kCGLRGB555Bit 0x00000200 #define kCGLARGB1555Bit 0x00000400 #define kCGLRGB555A8Bit 0x00000800 #define kCGLRGB565Bit 0x00001000 #define kCGLRGB565A8Bit 0x00002000 #define kCGLRGB888Bit 0x00004000 #define kCGLARGB8888Bit 0x00008000 #define kCGLRGB888A8Bit 0x00010000 #define kCGLRGB101010Bit 0x00020000 #define kCGLARGB2101010Bit 0x00040000 #define kCGLRGB101010_A8Bit x00080000 #define kCGLRGB121212Bit 0x00100000 #define kCGLARGB12121212Bit x00200000 #define kCGLRGB161616Bit 0x00400000 #define kCGLRGBA16161616Bit x00800000 #define kCGLRGBFloat64Bit 0x01000000 #define kCGLRGBAFloat64Bit 0x02000000 #define kCGLRGBFloat128Bit 0x04000000 #define kCGLRGBAFloat128Bit x08000000 #define kCGLRGBFloat256Bit 0x10000000 #define kCGLRGBAFloat256Bit x20000000Константы
-
kCGLRGB444BitkCGLRGB444BitФормат, имеющий 16 бит на пиксель с расположением канала RGB и каналы, расположенные в следующих битах: R=11:8, G=7:4, B=3:0.
-
kCGLARGB4444BitkCGLARGB4444BitФормат, имеющий 16 бит на пиксель с расположением канала ARGB и каналы, расположенные в следующих битах: A=15:12, R=11:8, G=7:4, B=3:0.
-
kCGLRGB444A8BitkCGLRGB444A8BitФормат, имеющий 8-16 бит на пиксель с расположением канала RGB и каналы, расположенные в следующих битах: A=7:0, R=11:8, G=7:4, B=3:0.
-
kCGLRGB555BitkCGLRGB555BitФормат, имеющий 16 бит на пиксель с расположением канала RGB и каналы, расположенные в следующих битах: R=14:10, G=9:5, B=4:0.
-
kCGLARGB1555BitkCGLARGB1555BitФормат, имеющий 16 бит на пиксель с расположением канала ARGB и каналы, расположенные в следующих битах: A=15, R=14:10, G=9:5, B=4:0.
-
kCGLRGB555A8BitkCGLRGB555A8BitФормат, имеющий 8-16 бит на пиксель с расположением канала ARGB и каналы, расположенные в следующих битах: A=7:0, R=14:10, G=9:5, B=4:0.
-
kCGLRGB565BitkCGLRGB565BitФормат, имеющий 16 бит на пиксель с расположением канала RGB и каналы, расположенные в следующих битах: R=15:11, G=10:5, B=4:0.
-
kCGLRGB565A8BitkCGLRGB565A8BitФормат, имеющий 8-16 бит на пиксель с расположением канала ARGB и каналы, расположенные в следующих битах: A=7:0, R=15:11, G=10:5, B=4:0.
-
kCGLRGB888BitkCGLRGB888BitФормат, имеющий 32 бита на пиксель с расположением канала RGB и каналы, расположенные в следующих битах: R=23:16, G=15:8, B=7:0.
-
kCGLARGB8888BitkCGLARGB8888BitФормат, имеющий 32 бита на пиксель с расположением канала ARGB и каналы, расположенные в следующих битах: A=31:24, R=23:16, G=15:8, B=7:0.
-
kCGLRGB888A8BitkCGLRGB888A8BitФормат, имеющий 8-32 бита на пиксель с расположением канала ARGB и каналы, расположенные в следующих битах: A=7:0, R=23:16, G=15:8, B=7:0.
-
kCGLRGB101010BitkCGLRGB101010BitФормат, имеющий 32 бита на пиксель с расположением канала RGB и каналы, расположенные в следующих битах: R=29:20, G=19:10, B=9:0.
-
kCGLARGB2101010BitkCGLARGB2101010BitФормат, имеющий 32 бита на пиксель с расположением канала ARGB и каналы, расположенные в следующих битах: A=31:30 R=29:20, G=19:10, B=9:0.
-
kCGLRGB101010_A8BitkCGLRGB101010_A8BitФормат, имеющий 8-32 бита на пиксель с расположением канала ARGB и каналы, расположенные в следующих битах: A=7:0 R=29:20, G=19:10, B=9:0.
-
kCGLRGB121212BitkCGLRGB121212BitФормат, имеющий 48 бит на пиксель с расположением канала RGB и каналы, расположенные в следующих битах: R=35:24, G=23:12, B=11:0.
-
kCGLARGB12121212BitkCGLARGB12121212BitФормат, имеющий 48 бит на пиксель с расположением канала ARGB и каналы, расположенные в следующих битах: A=47:36, R=35:24, G=23:12, B=11:0.
-
kCGLRGB161616BitkCGLRGB161616BitФормат, имеющий 64 бита на пиксель с расположением канала RGB и каналы, расположенные в следующих битах: R=63:48, G=47:32, B=31:16.
-
kCGLRGBA16161616BitkCGLRGBA16161616BitФормат, имеющий 64 бита на пиксель с расположением канала ARGB и каналы, расположенные в следующих битах: R=63:48, G=47:32, B=31:16, A=15:0.
-
kCGLRGBFloat64BitkCGLRGBFloat64BitФормат, имеющий 64 бита на пиксель с RGB половина расположения канала с плавающей точкой.
-
kCGLRGBAFloat64BitkCGLRGBAFloat64BitФормат, имеющий 64 бита на пиксель с половиной ARGB расположения канала с плавающей точкой.
-
kCGLRGBFloat128BitkCGLRGBFloat128BitФормат, имеющий 128 бит на пиксель с RGB IEEE расположение канала с плавающей точкой.
-
kCGLRGBAFloat128BitkCGLRGBAFloat128BitФормат, имеющий 128 бит на пиксель с IEEE ARGB расположение канала с плавающей точкой.
-
kCGLRGBFloat256BitkCGLRGBFloat256BitФормат, имеющий 256 бит на пиксель с RGB IEEE двойное расположение канала.
-
kCGLRGBAFloat256BitkCGLRGBAFloat256BitФормат, имеющий 256 бит на пиксель с IEEE ARGB двойное расположение канала.
-
-
Укажите опции, влияющие на контекст рендеринга.
Объявление
Swift
typealias CGLContextEnable = _CGLContextEnableObjective C
typedef enum _CGLContextEnable { kCGLCESwapRectangle = 201, kCGLCERasterization = 221, kCGLCEStateValidation = 301, kCGLCESurfaceBackingSize = 305, kCGLCEDisplayListOptimization = 307, kCGLCEMPEngine = 313 } CGLContextEnable;Константы
-
kCGLCESwapRectanglekCGLCESwapRectangleЕсли включено, область drawable объекта, затронутого
CGLFlushDrawableограничивается прямоугольником, указанным значениямиkCGLCPSwapRectangle. Однако часть drawable объекта, находящегося за пределами прямоугольника подкачки, может все еще быть сброшена на экран изменением видимости или другим действием пользовательского интерфейса. Установить или получить значенияkCGLCPSwapRectangle, используйте функцииCGLSetParameterилиCGLGetParameter, соответственно. Для получения дополнительной информации оkCGLCPSwapRectangle, посмотрите Параметры Контекста.Доступный в OS X v10.0 и позже.
-
kCGLCERasterizationkCGLCERasterizationЕсли отключено, вся растеризация 2D и 3D примитивов отключена. Это состояние полезно для отладки и охарактеризовать производительность драйвера OpenGL без фактического рендеринга.
Доступный в OS X v10.0 и позже.
-
kCGLCEStateValidationkCGLCEStateValidationЕсли включено, OpenGL проверяет состояние контекста каждый раз когда
CGLSetVirtualScreenвызывается, чтобы гарантировать, что это находится в надлежащем состоянии для переключения между средствами рендеринга. Обычно, состояние проверено только, когда фактически необходимо переключить средства рендеринга. В CGL переключается средство рендеринга, только если Вы вызываетеCGLSetVirtualScreenс виртуальным экранным числом, отличающимся от текущего.Доступный в OS X v10.0 и позже.
-
kCGLCESurfaceBackingSizekCGLCESurfaceBackingSizeЕсли включено, переопределяет размер поддержки поверхности.
Доступный в OS X v10.3 и позже.
-
kCGLCEDisplayListOptimizationkCGLCEDisplayListOptimizationЕсли отключено, выключает оптимизацию для дисплейного списка.
Доступный в OS X v10.3 и позже.
-
kCGLCEMPEnginekCGLCEMPEngineЕсли включено, OpenGL выполняет свои собственные внутренние вычисления на отдельном потоке.
Доступный в OS X v10.4 и позже.
Обсуждение
Они используются функциями CGLEnable, CGLDisable и CGLIsEnabled.
Оператор импорта
Objective C
@import OpenGL;Swift
import OpenGLДоступность
Доступный в OS X v10.0 и позже.
-
-
Укажите параметры, применяющиеся к определенному контексту рендеринга.
Объявление
Swift
typealias CGLContextParameter = _CGLContextParameterObjective C
typedef enum _CGLContextParameter { kCGLCPSwapRectangle = 200, kCGLCPSwapInterval = 222, kCGLCPDispatchTableSize = 224, kCGLCPClientStorage = 226, kCGLCPSurfaceTexture = 228, kCGLCPSurfaceOrder = 235, kCGLCPSurfaceOpacity = 236, kCGLCPSurfaceBackingSize = 304, kCGLCPSurfaceSurfaceVolatile = 306, kCGLCPReclaimResources = 308, kCGLCPCurrentRendererID = 309, kCGLCPGPUVertexProcessing = 310, kCGLCPGPUFragmentProcessing = 311, kCGLCPHasDrawable = 314, kCGLCPMPSwapsInFlight = 315, } CGLContextParameter;Константы
-
kCGLCPSwapRectanglekCGLCPSwapRectangleНабор или получает прямоугольник подкачки. Прямоугольник подкачки представлен как массив четыре
longзначения:{x, y, width, height}. Для этого прямоугольника для влияния на результат вызывания функцииCGLFlushDrawable, опция контекстаkCGLCESwapRectangleдолжен быть включен. Для получения дополнительной информации оkCGLCESwapRectangle, посмотрите Опции Контекста.Доступный в OS X v10.0 и позже.
-
kCGLCPSwapIntervalkCGLCPSwapIntervalНабор или получает интервал подкачки. Интервал подкачки представлен как один
longзначение. Если интервал подкачки установлен в0(значение по умолчанию),CGLFlushDrawableвыполняется как можно скорее, вне зависимости от частоты кадровой развертки монитора. Если интервал подкачки установлен в1, буферы подкачиваются только во время вертикали, восстанавливают монитора.Доступный в OS X v10.0 и позже.
-
kCGLCPDispatchTableSizekCGLCPDispatchTableSizeНабор или получает табличный размер отгрузки.
Доступный в OS X v10.3 и позже.
-
kCGLCPClientStoragekCGLCPClientStorageНабор или получает произвольное 32-разрядное значение. Типичное использование должно было бы сохранить указатель на специализированные данные, связанные с контекстом.
Доступный в OS X v10.0 и позже.
-
kCGLCPSurfaceTexturekCGLCPSurfaceTextureУстановите поверхностную текстуру. Предоставьте поверхностный ID, цель и внутренний формат.
Доступный в OS X v10.3 и позже.
Осуждаемый в OS X v10.9.
-
kCGLCPSurfaceOrderkCGLCPSurfaceOrderНабор или получает позицию поверхности OpenGL относительно окна. Значение
1средние значения, что позиция выше окна; значение–1указывает позицию, которая является ниже окна.Доступный в OS X v10.2 и позже.
-
kCGLCPSurfaceOpacitykCGLCPSurfaceOpacityНабор или получает поверхностную непрозрачность. Значение
1означает, что поверхность непрозрачна (значение по умолчанию);0абсолютно прозрачные средние значения.Доступный в OS X v10.2 и позже.
-
kCGLCPSurfaceBackingSizekCGLCPSurfaceBackingSizeНабор или получает высоту и ширину заднего буфера. Можно использовать это, чтобы позволить системе масштабировать изображение автоматически при свопинге к буферу переменного размера. Задний размер буфера остается фиксированным в размере, который Вы устанавливаете независимо от того, изменено ли изображение для отображения больше на экране.
Доступный в OS X v10.3 и позже.
-
kCGLCPSurfaceSurfaceVolatilekCGLCPSurfaceSurfaceVolatileНабор или получает энергозависимое состояние поверхности.
Доступный в OS X v10.3 и позже.
-
kCGLCPReclaimResourceskCGLCPReclaimResourcesВключите или отключите предъявление претензий в отношении ресурсов.
Доступный в OS X v10.4 и позже.
-
kCGLCPCurrentRendererIDkCGLCPCurrentRendererIDТекущее средство рендеринга ID. Можно получить эту установку.
Доступный в OS X v10.4 и позже.
-
kCGLCPGPUVertexProcessingkCGLCPGPUVertexProcessingGPU в настоящее время обрабатывает вершины с GPU. Можно получить это состояние.
Доступный в OS X v10.4 и позже.
-
kCGLCPGPUFragmentProcessingkCGLCPGPUFragmentProcessingCPU в настоящее время обрабатывает фрагменты с GPU. Можно получить это состояние.
Доступный в OS X v10.4 и позже.
-
kCGLCPHasDrawablekCGLCPHasDrawableВозвращает булевскую переменную, указывающую, присоединено ли drawable к контексту.
Доступный в OS X v10.5 и позже.
-
kCGLCPMPSwapsInFlightkCGLCPMPSwapsInFlightЧисло кадров, которые многопоточный механизм OpenGL может обработать перед остановкой. Значение по умолчанию
1. Когда приложение вызывает, новые кадры ставятся в очередьCGLFlushDrawable. Большее число может улучшить общую производительность, но добавляет задержку между тем, когда кадр представляется и когда кадр выведен на экран. Интерактивные приложения должны оставить это значение в значении по умолчанию.Доступный в OS X v10.5 и позже.
Обсуждение
Эти константы используются функциями CGLSetParameter и CGLGetParameter.
Оператор импорта
Objective C
@import OpenGL;Swift
import OpenGLДоступность
Доступный в OS X v10.0 и позже.
-
-
Укажите опции, применяющиеся глобально.
Объявление
Swift
typealias CGLGlobalOption = _CGLGlobalOptionObjective C
typedef enum _CGLGlobalOption { kCGLGOFormatCacheSize = 501, kCGLGOClearFormatCache = 502, kCGLGORetainRenderers = 503, kCGLGOResetLibrary = 504, kCGLGOUseErrorHandler = 505, kCGLGOUseBuildCache = 506, } CGLGlobalOption;Константы
-
kCGLGOFormatCacheSizekCGLGOFormatCacheSizeРазмер кэша формата пикселя, положительное целое число. После того, как приложение вызывает
CGLChoosePixelFormatв последний раз это может установить размер кэша в1минимизировать память, используемую CGL. Если приложение намеревается использоватьnразличные списки атрибутов для выбораnразличные форматы пикселя неоднократно, тогда приложение должно установить размер кэша вnмаксимизировать производительность. Размер кэша первоначально установлен в5.Доступный в OS X v10.0 и позже.
-
kCGLGOClearFormatCachekCGLGOClearFormatCacheЕсли установлено в a
trueзначение, содержимое кэша объекта формата пикселя освобождено. Это не влияет на размер кэша для будущего хранения объектов формата пикселя. Для минимизации памяти, использованной кэшем, приложение должно также установить размер кэша в1черезkCGLGOFormatCacheSizeглобальная опция.CGLGetGlobalOptionвсегда отчеты afalseзначение для этой константы.Доступный в OS X v10.0 и позже.
-
kCGLGORetainRendererskCGLGORetainRenderersЕсли
true, CGL не разгружает сменных средств рендеринга, даже если они больше не используются. Эта константа полезна для улучшения производительности приложений, неоднократно уничтожающих и воссоздающих их единственное (или в последний раз) рендеринг контекста. Обычно, когда последний контекст, создаваемый определенным сменным средством рендеринга, уничтожается, то средство рендеринга разгружено из памяти. Еслиfalse, CGL возвращается к его нормальному режиму работы и всем средствам рендеринга, не использующимся, разгружены.Доступный в OS X v10.0 и позже.
-
kCGLGOResetLibrarykCGLGOResetLibraryЕсли установлено в a
trueзначение, CGL сбрасывается к его начальному состоянию. Все контексты, создаваемые сCGLCreateContextуничтожаются, все сменные средства рендеринга разгружены из памяти, и глобальные опции сбрасываются к их начальным значениям. Информационные объекты средства рендеринга и объекты формата пикселя не уничтожаются.CGLGetGlobalOptionвсегда отчеты afalseзначение для этой константы.Осуждаемый в OS X v10.4 или позже.
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.4.
-
kCGLGOUseErrorHandlerkCGLGOUseErrorHandlerЕсли
true, Ошибки CGL распространены к Базовой Графике.Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.7.
-
kCGLGOUseBuildCachekCGLGOUseBuildCacheЕсли
true, компилятор программы построения теней использует больше памяти для кэширования частей скомпилированных программ построения теней. Программы построения теней, совместно использующие подобный код, могут быть скомпилированы более быстро, когда это включено. Эта опция прочь по умолчанию и должна быть активирована при запуске.Осуждаемый в OS X v 10.6 или позже.
Доступный в OS X v10.5 и позже.
Обсуждение
Эти константы используются функциями
CGLGetGlobalOptionиCGLSetGlobalOption.Оператор импорта
Objective C
@import OpenGL;Swift
import OpenGLДоступность
Доступный в OS X v10.0 и позже.
-
-
Определите константы, указывающие аппаратные и программные средства рендеринга.
Объявление
Swift
var kCGLRendererGenericFloatID: Int { get } var kCGLRendererAppleSWID: Int { get } var kCGLRendererATIRadeonX2000ID: Int { get } var kCGLRendererATIRadeonX3000ID: Int { get } var kCGLRendererGeForce8xxxID: Int { get } var kCGLRendererIntelHDID: Int { get }Objective C
kCGLRendererGenericID 0x00020200 kCGLRendererGenericFloatID 0x00020400 kCGLRendererAppleSWID 0x00020600 kCGLRendererATIRage128ID 0x00021000 kCGLRendererATIRadeonID 0x00021200 kCGLRendererATIRageProID 0x00021400 kCGLRendererATIRadeon8500ID 0x00021600 kCGLRendererATIRadeon9700ID 0x00021800 kCGLRendererATIRadeonX1000ID 0x00021900 kCGLRendererATIRadeonX2000ID 0x00021A00 kCGLRendererATIRadeonX3000ID 0x00021B00 kCGLRendererGeForce2MXID 0x00022000 kCGLRendererGeForce3ID 0x00022200 kCGLRendererGeForceFXID 0x00022400 kCGLRendererGeForce8xxxID 0x00022600 kCGLRendererVTBladeXP2ID 0x00023000 kCGLRendererIntel900ID 0x00024000 kCGLRendererIntelX3100ID 0x00024200 kCGLRendererIntelHDID 0x00024300 kCGLRendererMesa3DFXID 0x00040000 kCGLRendererIDMatchingMask 0x00FE7F00Константы
-
kCGLRendererGenericIDkCGLRendererGenericIDСредство рендеринга программного обеспечения.
Осуждаемый в OS X v10.5 или позже, и на всех основанных на Intel компьютерах Macintosh.
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.5.
-
kCGLRendererGenericFloatIDkCGLRendererGenericFloatIDСредство рендеринга программного обеспечения с плавающей точкой.
Доступный в OS X v10.3 и позже.
-
kCGLRendererAppleSWIDkCGLRendererAppleSWIDСредство рендеринга программного обеспечения Apple ID.
Доступный в OS X v10.9 и позже.
-
kCGLRendererATIRage128IDkCGLRendererATIRage128IDСредство рендеринга ATI Rage128.
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.5.
-
kCGLRendererATIRadeonIDkCGLRendererATIRadeonIDATI средство рендеринга Radeon.
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.6.
-
kCGLRendererATIRageProIDkCGLRendererATIRageProIDСредство рендеринга ATI RagePro.
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.6.
-
kCGLRendererATIRadeon8500IDkCGLRendererATIRadeon8500IDATI средство рендеринга Radeon 8500.
Доступный в OS X v10.2 и позже.
Осуждаемый в OS X v10.6.
-
kCGLRendererATIRadeon9700IDkCGLRendererATIRadeon9700IDУказывает ATI средство рендеринга Radeon 9700.
Доступный в OS X v10.2 и позже.
Осуждаемый в OS X v10.6.
-
kCGLRendererATIRadeonX1000IDkCGLRendererATIRadeonX1000IDATI средство рендеринга Radeon X1000.
Доступный в OS X v10.4 и позже.
Осуждаемый в OS X v10.8.
-
kCGLRendererATIRadeonX2000IDkCGLRendererATIRadeonX2000IDATI средство рендеринга Radeon X2000.
Доступный в OS X v10.4 и позже.
-
kCGLRendererATIRadeonX3000IDkCGLRendererATIRadeonX3000IDATI средство рендеринга Radeon X3000.
Доступный в OS X v10.6 и позже.
-
kCGLRendererGeForce2MXIDkCGLRendererGeForce2MXIDNVIDIA GeForce2MX или средство рендеринга GeForce4MX.
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.6.
-
kCGLRendererGeForce3IDkCGLRendererGeForce3IDNVIDIA GeForce3 или средство рендеринга GeForce4.
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.6.
-
kCGLRendererGeForceFXIDkCGLRendererGeForceFXIDNVIDIA GeForceFX, GeForce 6xxx или средство рендеринга GeForce 7xxx.
Доступный в OS X v10.2 и позже.
Осуждаемый в OS X v10.8.
-
kCGLRendererGeForce8xxxIDkCGLRendererGeForce8xxxIDNVIDIA GeForce 8xxx и 9xxx средства рендеринга.
Доступный в OS X v10.4 и позже.
-
kCGLRendererVTBladeXP2IDkCGLRendererVTBladeXP2IDСредство рендеринга VTBook.
Доступный в OS X v10.3 и позже.
Осуждаемый в OS X v10.6.
-
kCGLRendererIntel900IDkCGLRendererIntel900IDСредство рендеринга Intel GMA 900.
Доступный в OS X v10.4 и позже.
Осуждаемый в OS X v10.8.
-
kCGLRendererIntelX3100IDkCGLRendererIntelX3100IDСредство рендеринга Intel GMA X3100.
Доступный в OS X v10.5 и позже.
Осуждаемый в OS X v10.8.
-
kCGLRendererIntelHDIDkCGLRendererIntelHDIDСредство рендеринга Intel HD Graphics.
Доступный в OS X v10.6 и позже.
-
kCGLRendererMesa3DFXIDkCGLRendererMesa3DFXIDМезаструктура 3DFX средство рендеринга.
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.6.
-
kCGLRendererIDMatchingMaskkCGLRendererIDMatchingMaskСредство рендеринга IDs возвратилось из
CGLDescribePixelFormatдолжен быть объединен с этой маской с помощью операции И перед стать по сравнению с любым средством рендеринга IDs, найденный в этом разделе. Биты, которые являются вне этой маски, резервируются для использования Apple.
-
-
Определяет константы, указывающие функциональность, предоставленную средством рендеринга.
Объявление
Swift
typealias CGLOpenGLProfile = _CGLOpenGLProfileObjective C
typedef enum _CGLOpenGLProfile { kCGLOGLPVersion_Legacy = 0x1000, kCGLOGLPVersion_3_2_Core = 0x3200, } CGLOpenGLProfile;Константы
-
kCGLOGLPVersion_LegacykCGLOGLPVersion_LegacyТребуемый профиль является наследством (предварительный OpenGL 3.0) профиль.
Доступный в OS X v10.7 и позже.
-
kCGLOGLPVersion_3_2_CorekCGLOGLPVersion_3_2_CoreТребуемый профиль должен реализовать базовую функциональность OpenGL 3.2.
Доступный в OS X v10.7 и позже.
Обсуждение
Профиль OpenGL требуют как часть строки атрибутов формата пикселя. Когда контекст создается для профиля, контекст должен, по крайней мере, реализовать запрашиваемую версию спецификации OpenGL. Контекст может реализовать различную версию спецификации OpenGL пока версия, которую это реализует, совместимо с запрашиваемой версией.
Оператор импорта
Objective C
@import OpenGL;Swift
import OpenGLДоступность
Доступный в OS X v10.7 и позже.
-
-
Укажите свойства средства рендеринга.
Объявление
Swift
typealias CGLRendererProperty = _CGLRendererPropertyObjective C
typedef enum _CGLRendererProperty { kCGLRPOffScreen = 53, kCGLRPFullScreen = 54, kCGLRPRendererID = 70, kCGLRPAccelerated = 73, kCGLRPRobust = 75, kCGLRPBackingStore = 76, kCGLRPMPSafe = 78, kCGLRPWindow = 80, kCGLRPMultiScreen = 81, kCGLRPCompliant = 83, kCGLRPDisplayMask = 84, kCGLRPBufferModes = 100, kCGLRPColorModes = 103, kCGLRPAccumModes = 104, kCGLRPDepthModes = 105, kCGLRPStencilModes = 106, kCGLRPMaxAuxBuffers = 107, kCGLRPMaxSampleBuffers = 108, kCGLRPMaxSamples = 109, kCGLRPSampleModes = 110, kCGLRPSampleAlpha = 111, kCGLRPVideoMemory = 120, kCGLRPTextureMemory = 121, kCGLRPGPUVertProcCapable = 122, kCGLRPGPUFragProcCapable = 123, kCGLRPRendererCount = 128, kCGLRPOnline = 129, kCGLRPAcceleratedCompute = 130, kCGLRPVideoMemoryMegabytes = 131, kCGLRPTextureMemoryMegabytes = 132, } CGLRendererProperty;Константы
-
kCGLRPOffScreenkCGLRPOffScreenЭта константа является булевым атрибутом. Если
true, средство рендеринга поддерживает внеэкранные drawable объекты.Доступный в OS X v10.0 и позже.
-
kCGLRPFullScreenkCGLRPFullScreenЭта константа является булевым атрибутом. Если
true, средство рендеринга поддерживает полный экран drawable объекты.Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.6.
-
kCGLRPRendererIDkCGLRPRendererIDПрисваиваемое значение является средством рендеринга ID. Средство рендеринга константы ID связано с определенными поставщиками оборудования. Посмотрите Средство рендеринга IDs.
Доступный в OS X v10.0 и позже.
-
kCGLRPAcceleratedkCGLRPAcceleratedЭта константа является булевым атрибутом. Если
true, средство рендеринга аппаратно ускорено.Доступный в OS X v10.0 и позже.
-
kCGLRPRobustkCGLRPRobustЭта константа является булевым атрибутом. Если
true, средство рендеринга не имеет никаких видов отказа вызванными отсутствием ресурсов видеокарты.Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.5.
-
kCGLRPBackingStorekCGLRPBackingStoreЭта константа является булевым атрибутом. Если
true, средство рендеринга может обеспечить, задний цвет буферизуют полный размер drawable объекта и может гарантировать заднее содержимое буфера, чтобы быть допустимым после вызова кCGLFlushDrawable.Доступный в OS X v10.0 и позже.
-
kCGLRPMPSafekCGLRPMPSafeЭта константа является булевым атрибутом. Если
true, средство рендеринга ориентировано на многопотоковое исполнение. Все средства рендеринга ориентированы на многопотоковое исполнение в OS X.Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.5.
-
kCGLRPWindowkCGLRPWindowЭта константа является булевым атрибутом. Если
true, средство рендеринга поддерживает окно drawable объекты.Доступный в OS X v10.0 и позже.
-
kCGLRPMultiScreenkCGLRPMultiScreenЭта константа является булевым атрибутом. Если
true, средство рендеринга в настоящее время присоединено к многократным дисплеям.Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.5.
-
kCGLRPCompliantkCGLRPCompliantЭта константа является булевым атрибутом. Если
true, средством рендеринга является совместимый OpenGL. Всеми средствами рендеринга является OpenGL, совместимый в OS X.Доступный в OS X v10.0 и позже.
-
kCGLRPDisplayMaskkCGLRPDisplayMaskПрисваиваемое значение является небольшим количеством маски физических дисплеев, которыми может управлять средство рендеринга. Битовой маской управляет Quartz Display Services. A
CGDirectDisplayIDтип данных должен быть преобразован в маску дисплея OpenGL с помощью функцииCGDisplayIDToOpenGLDisplayMask. Для получения дополнительной информации об этой функции посмотрите Ссылку Quartz Display Services.Доступный в OS X v10.0 и позже.
-
kCGLRPBufferModeskCGLRPBufferModesПрисваиваемое значение является поразрядным
ORиз буферных флагов режима, поддерживаемых средством рендеринга. Значение может быть любой из констант, определенных в Буферных Флагах Режима.Доступный в OS X v10.0 и позже.
-
kCGLRPColorModeskCGLRPColorModesПрисваиваемое значение является поразрядным
ORиз флагов цветного формата, поддерживаемых средством рендеринга. Значение может быть любой из констант, определенных в цвете и Флаги Формата Буфера накопления.Доступный в OS X v10.0 и позже.
-
kCGLRPAccumModeskCGLRPAccumModesПрисваиваемое значение является поразрядным
ORиз цвета/буфера накопления форматируют флаги, поддерживаемые средством рендеринга. Значение может быть любой из констант, определенных в цвете и Флаги Формата Буфера накопления.Доступный в OS X v10.0 и позже.
-
kCGLRPDepthModeskCGLRPDepthModesПрисваиваемое значение является поразрядным
ORиз флагов глубины глубины/буфера шаблонов, поддерживаемых средством рендеринга. Значение может быть любой из констант, определенных в Режимах Шаблона и Глубины.Доступный в OS X v10.0 и позже.
-
kCGLRPStencilModeskCGLRPStencilModesПрисваиваемое значение является поразрядным
ORиз флагов глубины глубины/буфера шаблонов, поддерживаемых средством рендеринга. Значение может быть любой из констант, определенных в Режимах Шаблона и Глубины.Доступный в OS X v10.0 и позже.
-
kCGLRPMaxAuxBufferskCGLRPMaxAuxBuffersПрисваиваемое значение является максимальным количеством вспомогательных буферов, поддерживаемых средством рендеринга.
Доступный в OS X v10.0 и позже.
-
kCGLRPMaxSampleBufferskCGLRPMaxSampleBuffersПрисваиваемое значение является максимальным количеством независимых демонстрационных буферов, поддерживаемых средством рендеринга. Как правило, значение
0если никакой мультидемонстрационный буфер не существует, или1если Вы существуете.Доступный в OS X v10.2 и позже.
-
kCGLRPMaxSampleskCGLRPMaxSamplesПрисваиваемое значение является максимальным количеством выборок на пиксель, который поддерживает средство рендеринга.
Доступный в OS X v10.2 и позже.
-
kCGLRPSampleModeskCGLRPSampleModesНемного поля поддерживаемых демонстрационных режимов.
Доступный в OS X v10.3 и позже.
-
kCGLRPSampleAlphakCGLRPSampleAlphaЕсли
true, существует поддержка альфа-выборки.Доступный в OS X v10.3 и позже.
-
kCGLRPVideoMemorykCGLRPVideoMemoryПрисваиваемое значение является числом байтов видеопамяти, доступной средству рендеринга.
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.7.
-
kCGLRPTextureMemorykCGLRPTextureMemoryПрисваиваемое значение является числом байтов памяти текстуры, доступной средству рендеринга.
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.7.
-
kCGLRPGPUVertProcCapablekCGLRPGPUVertProcCapableЭта константа является булевым атрибутом. Если
true, средство рендеринга способно к выполнению программ вершинного шейдера.Доступный в OS X v10.4 и позже.
-
kCGLRPGPUFragProcCapablekCGLRPGPUFragProcCapableЭта константа является булевым атрибутом. Если
true, средство рендеринга способно к рабочим программам программы построения теней фрагмента.Доступный в OS X v10.4 и позже.
-
kCGLRPRendererCountkCGLRPRendererCountПрисваиваемое значение является числом средств рендеринга в определенном информационном объекте средства рендеринга. Для определения числа средств рендеринга в информационном объекте средства рендеринга вызовите функцию
CGLDescribeRenderer, передавая в объекте, числе средства рендеринга0, и это свойство средства рендеринга.Доступный в OS X v10.0 и позже.
-
kCGLRPOnlinekCGLRPOnlineЭта константа является булевым атрибутом. Если
true, средство рендеринга в настоящее время присоединено к дисплею.Доступный в OS X v10.5 и позже.
-
kCGLRPAcceleratedComputekCGLRPAcceleratedComputeЭта константа является булевым атрибутом. Если
true, устройство способно к выполнению программ OpenCL.Доступный в OS X v10.6 и позже.
-
kCGLRPVideoMemoryMegabyteskCGLRPVideoMemoryMegabytesПрисваиваемое значение является числом мегабайтов видеопамяти, доступной средству рендеринга.
Доступный в OS X v10.7 и позже.
-
kCGLRPTextureMemoryMegabyteskCGLRPTextureMemoryMegabytesПрисваиваемое значение является числом мегабайтов памяти текстуры, доступной средству рендеринга.
Доступный в OS X v10.7 и позже.
Обсуждение
Эти константы используются функциональным CGLDescribeRenderer.
Оператор импорта
Objective C
@import OpenGL;Swift
import OpenGLДоступность
Доступный в OS X v10.0 и позже.
-
-
Определите разрешения для буферов глубины и буферов шаблонов.
Объявление
Objective C
#define kCGL0Bit 0x00000001 #define kCGL1Bit 0x00000002 #define kCGL2Bit 0x00000004 #define kCGL3Bit 0x00000008 #define kCGL4Bit 0x00000010 #define kCGL5Bit 0x00000020 #define kCGL6Bit 0x00000040 #define kCGL8Bit 0x00000080 #define kCGL10Bit 0x00000100 #define kCGL12Bit 0x00000200 #define kCGL16Bit 0x00000400 #define kCGL24Bit 0x00000800 #define kCGL32Bit 0x00001000 #define kCGL48Bit 0x00002000 #define kCGL64Bit 0x00004000 #define kCGL96Bit 0x00008000 #define kCGL128Bit 0x00010000Константы
-
kCGL0BitkCGL0Bit0-разрядное разрешение.
-
kCGL1BitkCGL1Bit1-разрядное разрешение.
-
kCGL2BitkCGL2Bit2-разрядное разрешение.
-
kCGL3BitkCGL3Bit3-разрядное разрешение.
-
kCGL4BitkCGL4Bit4-разрядное разрешение.
-
kCGL5BitkCGL5Bit5-разрядное разрешение.
-
kCGL6BitkCGL6Bit6-разрядное разрешение.
-
kCGL8BitkCGL8Bit8-разрядное разрешение.
-
kCGL10BitkCGL10Bit10-разрядное разрешение.
-
kCGL12BitkCGL12Bit12-разрядное разрешение.
-
kCGL16BitkCGL16Bit16-разрядное разрешение.
-
kCGL24BitkCGL24Bit24-разрядное разрешение.
-
kCGL32BitkCGL32Bit32-разрядное разрешение.
-
kCGL48BitkCGL48Bit48-разрядное разрешение.
-
kCGL64BitkCGL64Bit64-разрядное разрешение.
-
kCGL96BitkCGL96Bit96-разрядное разрешение.
-
kCGL128BitkCGL128Bit128-разрядное разрешение.
-
Следующие кодовые константы результата, объявленные в CGLTypes.h заголовочный файл, может использоваться в качестве параметров к функции CGLErrorString.
-
Никакая ошибка.
Значение
0
Описание
Никакая ошибка.
Доступный в OS X v10.3 и позже.
-
Недопустимый атрибут формата пикселя. Допустимые атрибуты могут быть найдены в Атрибутах Буфера и Средства рендеринга.
Значение
10000
Описание
Недопустимый атрибут формата пикселя. Допустимые атрибуты могут быть найдены в Атрибутах Буфера и Средства рендеринга.
Доступный в OS X v10.0 и позже.
-
Недопустимое свойство средства рендеринга. Допустимые свойства средства рендеринга могут быть найдены в Свойствах Средства рендеринга.
Значение
10001
Описание
Недопустимое свойство средства рендеринга. Допустимые свойства средства рендеринга могут быть найдены в Свойствах Средства рендеринга.
Доступный в OS X v10.0 и позже.
-
Недопустимый объект формата пикселя. Допустимый объект формата пикселя может быть получен путем вызывания функции
CGLChoosePixelFormat.Значение
10002
Описание
Недопустимый объект формата пикселя. Допустимый объект формата пикселя может быть получен путем вызывания функции
CGLChoosePixelFormat.Доступный в OS X v10.0 и позже.
-
Недопустимый информационный объект средства рендеринга. Допустимый информационный объект средства рендеринга может быть получен путем вызывания функции
CGLQueryRendererInfo.Значение
10003
Описание
Недопустимый информационный объект средства рендеринга. Допустимый информационный объект средства рендеринга может быть получен путем вызывания функции
CGLQueryRendererInfo.Доступный в OS X v10.0 и позже.
-
Недопустимый объект контекста. Допустимый объект контекста может быть получен путем вызывания функции
CGLCreateContext.Значение
10004
Описание
Недопустимый объект контекста. Допустимый объект контекста может быть получен путем вызывания функции
CGLCreateContext.Доступный в OS X v10.0 и позже.
-
Значение
10005
Описание
Недопустимый drawable объект. Когда Вы пытаетесь присоединить второй, несовместимый, представляющий контекст к drawable объекту, эта ошибка происходит. Для получения дополнительной информации о несовместимых контекстах, посмотрите раздел обсуждения функции
CGLCreateContext. Эта ошибка также происходит, когда Вы пытаетесь присоединить контекст к полноэкранному drawable объекту, и глубина цвета drawable объекта отличается, чем указанный объектом формата пикселя, используемым для создания контекста.kCGLPFAColorSizeатрибут, описанный в Атрибутах Буфера и Средства рендеринга, указывает глубину цвета формата пикселя.Доступный в OS X v10.0 и позже.
-
Недопустимый дисплей.
Значение
10006
Описание
Недопустимый дисплей.
Доступный в OS X v10.0 и позже.
-
Значение
10007
Описание
Недопустимое состояние контекста. Когда состояние контекста проверено для готовности переключить средства рендеринга, эта ошибка происходит. Чтобы быть в допустимом состоянии, контекст быть в режиме рендеринга и иметь атрибут складывает глубину
0, и modelview, проекция и текстура складывают глубину1. Для получения дополнительной информации о проверке состояния, посмотрите, что контекст включает постоянныйkCGLCEStateValidation, описанный в Опциях Контекста.Доступный в OS X v10.0 и позже.
-
Недопустимое численное значение.
Значение
10008
Описание
Недопустимое численное значение.
Доступный в OS X v10.0 и позже.
-
Значение
10009
Описание
Недопустимый контекст доли. Если их объекты формата пикселя используют различные средства рендеринга, два контекста являются плохим соответствием.
Доступный в OS X v10.0 и позже.
-
Недопустимая константа.
Значение
10010
Описание
Недопустимая константа.
Доступный в OS X v10.0 и позже.
-
Недопустимый внеэкранный drawable объект.
Значение
10011
Описание
Недопустимый внеэкранный drawable объект.
Доступный в OS X v10.0 и позже.
-
Недопустимый полноэкранный drawable объект.
Значение
10012
Описание
Недопустимый полноэкранный drawable объект.
Доступный в OS X v10.0 и позже.
-
Недопустимое окно.
Значение
10013
Описание
Недопустимое окно.
Доступный в OS X v10.0 и позже.
-
Недопустимый адрес памяти. Эта ошибка происходит при передаче недопустимого указателя в функцию, требующую адреса памяти кроме
NULL.Значение
10014
Описание
Недопустимый адрес памяти. Эта ошибка происходит при передаче недопустимого указателя в функцию, требующую адреса памяти кроме
NULL.Доступный в OS X v10.0 и позже.
-
Недопустимый модуль кода.
Значение
10015
Описание
Недопустимый модуль кода.
Доступный в OS X v10.0 и позже.
-
Недопустимое выделение памяти. Когда CGL неспособен выделить память, эта ошибка происходит.
Значение
10016
Описание
Недопустимое выделение памяти. Когда CGL неспособен выделить память, эта ошибка происходит.
Доступный в OS X v10.0 и позже.
-
Неправильное соединение к Базовой Графике.
Значение
10017
Описание
Неправильное соединение к Базовой Графике.
Доступный в OS X v10.0 и позже.
