NSOpenGLPixelBuffer
NSOpenGLPixelBuffer
класс предоставляет Какао доступ реализаций OpenGL к ускоренному внеэкранному рендерингу. С этим внеэкранным рендерингом Вы могли, например, вовлечь пиксельный буфер, затем использовать содержание в качестве текстурной карты в другом месте. Обычно Вы инициализируете NSOpenGLPixelBuffer
объект с помощью initWithTextureTarget:textureInternalFormat:textureMaxMipMapLevel:pixelsWide:pixelsHigh:
метод и присоединение полученный объект к контексту OpenGL с setPixelBuffer:cubeMapFace:mipMapLevel:currentVirtualScreen:
метод NSOpenGLContext
.
Каждый NSOpenGLPixelBuffer
возразите обертывает низкий уровень, специфичное для платформы Ядро OpenGL (CGL) пиксельный буферный объект. Ваше приложение может получить пиксельный буфер CGL путем вызова CGLPBufferObj
метод. Для получения дополнительной информации о подчиненном пиксельный буфер CGL см. Ссылку CGL.
Оператор импорта
Не применимый
Objective C
@import AppKit;
Доступность
Доступный в OS X v10.3 и позже.
Осуждаемый в OS X v10.7.
-
initWithTextureTarget:textureInternalFormat:textureMaxMipMapLevel:pixelsWide:pixelsHigh: - initWithTextureTarget:textureInternalFormat:textureMaxMipMapLevel:pixelsWide:pixelsHigh:
(OS X v10.7)Возвраты
NSOpenGLPixelBuffer
объект инициализируется с указанными параметрами.Объявление
Objective C
- (instancetype)initWithTextureTarget:(GLenum)
target
textureInternalFormat:(GLenum)format
textureMaxMipMapLevel:(GLint)maxLevel
pixelsWide:(GLsizei)pixelsWide
pixelsHigh:(GLsizei)pixelsHigh
Параметры
target
Объект текстуры. Это значение должно быть одним из следующего:
GL_TEXTURE_2D
,GL_TEXTURE_CUBE_MAP
, илиGL_TEXTURE_RECTANGLE_EXT
.format
Основной внутренний формат текстуры. Это значение должно быть
GL_RGB
,GL_RGBA
, илиGL_DEPTH_COMPONENT
.maxLevel
Желаемый максимальный уровень множественного отображения структуры, начиная с нуля.
pixelsWide
Ширина текстуры (в пикселях) в пиксельном буфере.
pixelsHigh
Высота текстуры (в пикселях) в пиксельном буфере.
Возвращаемое значение
Инициализированный
NSOpenGLPixelBuffer
объект илиnil
если инициализация перестала работать. Если существует несоответствие среди значений параметров, инициализация может перестать работать. См. документацию OpenGL дляglTexImage2D
для получения дополнительной информации.Обсуждение
Значение Вы передаете
target
параметр определяет несколько других ограничений, тогда применяющихся к остающимся параметрам. Список ниже дает значения, которым можно передатьtarget
и дополнительные ограничения.GL_TEXTURE_2D
GL_TEXTURE_CUBE_MAP
- значения вpixelsWide
иpixelsHigh
должно быть равным.GL_TEXTURE_RECTANGLE_EXT
-maxLevel
должен быть нуль.
Обычно, при использовании
GL_TEXTURE_2D
иGL_TEXTURE_CUBE_MAP
цели, необходимо указать значения ширины и высоты, которые являются полномочиями два. КогдаARB_texture_non_power_of_two
расширение присутствует, однако, некоторые типы аппаратных средств могут поддерживать значения, которые не являются полномочиями два. Необходимо проверить на присутствие этого расширения прежде, чем указать не power-two значения.Если текстурная карта не может быть создана, можно использовать
glGetError
функция для получения кода ошибки.Оператор импорта
Objective C
@import AppKit;
Доступность
Доступный в OS X v10.2 и позже.
Осуждаемый в OS X v10.7.
-
initWithCGLPBufferObj: - initWithCGLPBufferObj:
(OS X v10.7)Инициализирует и возвращается
NSOpenGLPixelBuffer
объект, инкапсулирующий существующий пиксельный буферный объект CGL.Объявление
Objective C
- (NSOpenGLPixelBuffer *)initWithCGLPBufferObj:(struct _CGLPBufferObject *)
pbuffer
Параметры
pbuffer
Пиксель CGL буферизует объект перенестись.
Возвращаемое значение
Инициализированный
NSOpenGLPixelBuffer
объект.Обсуждение
Если Ваше приложение уже имеет пиксельный буферный объект CGL, можно обернуть его в
NSOpenGLPixelBuffer
объект при помощи этого инициализатора. Этот метод сохраняет пиксельный буферный объект CGL путем вызоваCGLRetainPBuffer
функция.Ваше приложение не должно вызывать
CGLDestroyPBuffer
для избавления от пикселя CGL буферизуют объект. Вместо этого Ваше приложение должно вызватьCGLReleasePBuffer
постепенно уменьшать его подсчет ссылок.Оператор импорта
Objective C
@import AppKit;
Доступность
Доступный в OS X v10.6 и позже.
Осуждаемый в OS X v10.7.
-
CGLPBufferObj - CGLPBufferObj
(OS X v10.7)Возвращает базовое
CGLPBufferObj
объект связался сNSOpenGLPixelBuffer
объект.Объявление
Objective C
- (struct _CGLPBufferObject *)CGLPBufferObj
Возвращаемое значение
Пиксель CGL буферизует объект, инкапсулирующий буфер фактического пикселя.
Оператор импорта
Objective C
@import AppKit;
Доступность
Доступный в OS X v10.6 и позже.
Осуждаемый в OS X v10.7.
-
pixelsHigh - pixelsHigh
(OS X v10.7)Возвращает высоту текстуры получателя (в пикселях).
Объявление
Objective C
- (GLsizei)pixelsHigh
Возвращаемое значение
Высота текстуры (в пикселях).
Оператор импорта
Objective C
@import AppKit;
Доступность
Доступный в OS X v10.2 и позже.
Осуждаемый в OS X v10.7.
См. также
-
pixelsWide - pixelsWide
(OS X v10.7)Возвращает ширину текстуры получателя (в пикселях).
Объявление
Objective C
- (GLsizei)pixelsWide
Возвращаемое значение
Ширина текстуры (в пикселях).
Оператор импорта
Objective C
@import AppKit;
Доступность
Доступный в OS X v10.2 и позже.
Осуждаемый в OS X v10.7.
См. также
-
textureInternalFormat - textureInternalFormat
(OS X v10.7)Возвращает внутренний формат текстуры получателя.
Объявление
Objective C
- (GLenum)textureInternalFormat
Возвращаемое значение
Формат текстур, который может быть одним из следующих значений:
GL_RGB
,GL_RGBA
, илиGL_DEPTH_COMPONENT
.Оператор импорта
Objective C
@import AppKit;
Доступность
Доступный в OS X v10.2 и позже.
Осуждаемый в OS X v10.7.
-
textureMaxMipMapLevel - textureMaxMipMapLevel
(OS X v10.7)Возвращает максимальный уровень множественного отображения текстуры получателя.
Объявление
Objective C
- (GLint)textureMaxMipMapLevel
Возвращаемое значение
Максимальный уровень множественного отображения.
Оператор импорта
Objective C
@import AppKit;
Доступность
Доступный в OS X v10.2 и позже.
Осуждаемый в OS X v10.7.
-
textureTarget - textureTarget
(OS X v10.7)Возвращает цель текстуры получателя.
Объявление
Objective C
- (GLenum)textureTarget
Возвращаемое значение
Цель текстуры, которая может быть одним из следующих значений:
GL_TEXTURE_2D
,GL_TEXTURE_CUBE_MAP
, илиGL_TEXTURE_RECTANGLE_EXT
.Оператор импорта
Objective C
@import AppKit;
Доступность
Доступный в OS X v10.2 и позже.
Осуждаемый в OS X v10.7.