Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека Разработчика iOS

Разработчик

Системная ссылка платформы ссылка CVOpenGLESTextureCache

Опции
Развертывание Target:

На этой странице
Язык:

Ссылка CVOpenGLESTextureCache

Наследование


Не применимый

Соответствует


Не применимый

Оператор импорта


Swift

import CoreVideo

Objective C

@import CoreVideo;

Базовое Видео кэши текстуры OpenGLES используется, чтобы кэшироваться и управлять CVOpenGLESTextureRef текстуры. Эти кэши текстуры предоставляют Вам способ непосредственно читать и буферы записи с различными форматами пикселя, такой как 420v или BGRA, от GLES.

Функции

Функции в этом разделе воздействуют на Базовые Видео кэши текстуры, полученные из CVOpenGLESTextureCacheRef ввести.

  • Возвращает Базовый идентификатор типа Основы для Базового Видео кэша текстуры.

    Объявление

    Swift

    func CVOpenGLESTextureCacheGetTypeID() -> CFTypeID

    Objective C

    CFTypeID CVOpenGLESTextureCacheGetTypeID ( void );

    Возвращаемое значение

    Базовый идентификатор типа Основы для CVOpenGLESTextureCacheRef ввести.

    Оператор импорта

    Objective C

    @import CoreVideo;

    Swift

    import CoreVideo

    Доступность

    Доступный в iOS 5.0 и позже.

  • Создает новый Базовый Видео кэш текстуры.

    Объявление

    Swift

    func CVOpenGLESTextureCacheCreate(_ allocator: CFAllocator!, _ cacheAttributes: CFDictionary!, _ eaglContext: CVEAGLContext!, _ textureAttributes: CFDictionary!, _ cacheOut: UnsafeMutablePointer<Unmanaged<CVOpenGLESTextureCache>?>) -> CVReturn

    Objective C

    CVReturn CVOpenGLESTextureCacheCreate ( CFAllocatorRef allocator, CFDictionaryRef cacheAttributes, CVEAGLContext eaglContext, CFDictionaryRef textureAttributes, CVOpenGLESTextureCacheRef *cacheOut );

    Параметры

    allocator

    CFAllocatorRef использовать для выделения кэша текстуры. Этот параметр может быть NULL.

    cacheAttributes

    A CFDictionaryRef содержа атрибуты самого кэша текстуры. Этот параметр может быть NULL.

    eaglContext

    Контекст OpenGLES 2.0, в который будут создаваться объекты текстуры. Контексты OpenGLES 1.x не поддерживаются.

    textureAttributes

    A CFDictionaryRef содержа атрибуты, которые будут использоваться для создания CVOpenGLESTextureRef объекты. Этот параметр может быть NULL.

    cacheOut

    Указатель на a CVOpenGLESTextureCacheRef куда будет помещен недавно создаваемый кэш текстуры.

    Возвращаемое значение

    После успешного создания кэша текстуры, эта функция возвраты kCVReturnSuccess.

    Оператор импорта

    Objective C

    @import CoreVideo;

    Swift

    import CoreVideo

    Доступность

    Доступный в iOS 5.0 и позже.

  • Создает a CVOpenGLESTextureRef объект от существующего CVImageBufferRef.

    Объявление

    Swift

    func CVOpenGLESTextureCacheCreateTextureFromImage(_ allocator: CFAllocator!, _ textureCache: CVOpenGLESTextureCache!, _ sourceImage: CVImageBuffer!, _ textureAttributes: CFDictionary!, _ target: GLenum, _ internalFormat: GLint, _ width: GLsizei, _ height: GLsizei, _ format: GLenum, _ type: GLenum, _ planeIndex: Int, _ textureOut: UnsafeMutablePointer<Unmanaged<CVOpenGLESTexture>?>) -> CVReturn

    Objective C

    CVReturn CVOpenGLESTextureCacheCreateTextureFromImage ( CFAllocatorRef allocator, CVOpenGLESTextureCacheRef textureCache, CVImageBufferRef sourceImage, CFDictionaryRef textureAttributes, GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, size_t planeIndex, CVOpenGLESTextureRef *textureOut );

    Параметры

    allocator

    CFAllocatorRef использовать для выделения объекта текстуры. Этот параметр может быть NULL.

    textureCache

    Объект кэша текстуры, который будет управлять текстурой.

    sourceImage

    CVImageBufferRef то, что Вы хотите создать текстуру из.

    textureAttributes

    A CFDictionaryRef содержа атрибуты, которые будут использоваться для создания CVOpenGLESTextureRef объекты. Этот параметр может быть NULL.

    target

    Целевая текстура. GL_TEXTURE_2D и GL_RENDERBUFFER единственные цели, в настоящее время поддерживаемые.

    internalFormat

    Число компонентов цвета в текстуре. Примеры GL_RGBA, GL_LUMINANCE, GL_RGBA8_OES, GL_RED, и GL_RG.

    width

    Ширина изображения текстуры.

    height

    Высота изображения текстуры.

    format

    Формат пиксельных данных. Примеры GL_RGBA и GL_LUMINANCE.

    type

    Тип данных пиксельных данных. Один пример GL_UNSIGNED_BYTE.

    planeIndex

    Плоскость CVImageBufferRef для отображения связывают. Проигнорированный для непланарного CVImageBufferRefs.

    textureOut

    Указатель на a CVOpenGLESTextureRef куда будет помещен недавно создаваемый объект текстуры.

    Возвращаемое значение

    После успешного создания текстуры, эта функция возвраты kCVReturnSuccess.

    Обсуждение

    Эта функция или создает новое или возвращает кэшируемый CVOpenGLESTextureRef текстурируйте объект, отображенный на CVImageBufferRef и связанные параметры. Эта работа создает живую привязку между буфером изображения и базовым объектом текстуры. EAGLContext, связанный с кэшем, может быть изменен, чтобы создать, удалить, или связать текстуры. Когда используется в качестве исходной текстуры или GL_COLOR_ATTACHMENT, буфер изображения должен быть разблокирован перед рендерингом. Источник или буферная текстура рендеринга не должны быть снова использованы, пока рендеринг не завершился. Это может быть гарантировано путем вызова glFlush().

    Некоторые отображения в качестве примера могут быть замечены в следующем фрагменте кода.

    • //Mapping a BGRA buffer as a source texture:
    • CVOpenGLESTextureCacheCreateTextureFromImage(kCFAllocatorDefault, textureCache, pixelBuffer, NULL, GL_TEXTURE_2D, GL_RGBA, width, height, GL_RGBA, GL_UNSIGNED_BYTE, 0, &outTexture);
    • //Mapping a BGRA buffer as a renderbuffer:
    • CVOpenGLESTextureCacheCreateTextureFromImage(kCFAllocatorDefault, textureCache, pixelBuffer, NULL, GL_RENDERBUFFER, GL_RGBA8_OES, width, height, GL_RGBA, GL_UNSIGNED_BYTE, 0, &outTexture);
    • //Mapping the luma plane of a 420v buffer as a source texture:
    • CVOpenGLESTextureCacheCreateTextureFromImage(kCFAllocatorDefault, textureCache, pixelBuffer, NULL, GL_TEXTURE_2D, GL_LUMINANCE, width, height, GL_LUMINANCE, GL_UNSIGNED_BYTE, 0, &outTexture);
    • //Mapping the chroma plane of a 420v buffer as a source texture:
    • CVOpenGLESTextureCacheCreateTextureFromImage(kCFAllocatorDefault, textureCache, pixelBuffer, NULL, GL_TEXTURE_2D, GL_LUMINANCE_ALPHA, width/2, height/2, GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE, 1, &outTexture);
    • //Mapping a yuvs buffer as a source texture (note: yuvs/f and 2vuy are unpacked and resampled -- not colorspace converted)
    • CVOpenGLESTextureCacheCreateTextureFromImage(kCFAllocatorDefault, textureCache, pixelBuffer, NULL, GL_TEXTURE_2D, GL_RGB_422_APPLE, width, height, GL_RGB_422_APPLE, GL_UNSIGNED_SHORT_8_8_APPLE, 1, &outTexture);

    Оператор импорта

    Objective C

    @import CoreVideo;

    Swift

    import CoreVideo

    Доступность

    Доступный в iOS 5.0 и позже.

  • Выполняет внутренние операции обслуживания/переработки на кэше текстуры.

    Объявление

    Swift

    func CVOpenGLESTextureCacheFlush(_ textureCache: CVOpenGLESTextureCache!, _ options: CVOptionFlags)

    Objective C

    void CVOpenGLESTextureCacheFlush ( CVOpenGLESTextureCacheRef textureCache, CVOptionFlags options );

    Параметры

    textureCache

    Кэш текстуры возражает для сбрасывания.

    options

    Опции для работы сброса. Этот параметр в настоящее время не использован и должен быть установлен на 0.

    Обсуждение

    Когда Вы вызываете, кэш текстуры автоматически сбрасывает в настоящее время неиспользованные ресурсы CVOpenGLESTextureCacheCreateTextureFromImage функция, но может, можно также сбросить кэш явно путем вызывания этой функции. EAGLContext, связанный с кэшем, может использоваться, чтобы удалить или развязать текстуры.

    Оператор импорта

    Objective C

    @import CoreVideo;

    Swift

    import CoreVideo

    Доступность

    Доступный в iOS 5.0 и позже.

Типы данных

  • Ссылка на Базовое Видео OpenGLES текстурирует кэш.

    Объявление

    Swift

    typealias CVOpenGLESTextureCacheRef = CVOpenGLESTextureCache

    Objective C

    typedef struct __CVOpenGLESTextureCache *CVOpenGLESTextureCacheRef;

    Оператор импорта

    Objective C

    @import CoreVideo;

    Swift

    import CoreVideo

    Доступность

    Доступный в iOS 5.0 и позже.

  • Тип, решающий к EAGLContext указатель в надлежащих случаях.

    Объявление

    Swift

    typealias CVEAGLContext = EAGLContext

    Objective C

    typedef EAGLContext *CVEAGLContext;

    Обсуждение

    Базовое Видео может быть включено в процедурные проекты C, а также проекты Objective C, таким образом, этот тип разрешает void * при использовании прежнего.

    Оператор импорта

    Objective C

    @import CoreVideo;

    Swift

    import CoreVideo

    Доступность

    Доступный в iOS 6.0 и позже.

Константы

Константы CVOpenGLESTextureCache

  • Атрибуты для кэша текстуры.

    Объявление

    Swift

    let kCVOpenGLESTextureCacheMaximumTextureAgeKey: CFString!

    Objective C

    const CFStringRef kCVOpenGLESTextureCacheMaximumTextureAgeKey;

    Константы

    • kCVOpenGLESTextureCacheMaximumTextureAgeKey

      По умолчанию текстуры будут стареть после одной секунды. Установка максимального возраста текстуры нуля отключит механизм возраста полностью. CVOpenGLESTextureCacheFlush функция может использоваться для принуждения замещения в любом случае.

      Доступный в iOS 5.0 и позже.