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)targettextureInternalFormat:(GLenum)formattextureMaxMipMapLevel:(GLint)maxLevelpixelsWide:(GLsizei)pixelsWidepixelsHigh:(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_2DGL_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.
