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

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

Разработчик

Ссылка платформы OpenGLES ссылка класса EAGLContext

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

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

EAGLContext

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


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


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


Swift

import OpenGLES

Objective C

@import OpenGLES;

Доступность


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

EAGLContext объект управляет OpenGL контекст рендеринга ES — информация состояния, команды, и ресурсы должны были нарисовать использование OpenGL ES. Для выполнения команд OpenGL ES Вам нужен текущий контекст рендеринга.

Получением ресурсов, таких как текстуры и renderbuffers, управляют для EAGLContext объект EAGLSharegroup объект связался с контекстом. Когда Вы инициализируете новое EAGLContext объект, можно принять решение иметь его, создают новый sharegroup, или можно использовать тот, полученный из ранее создаваемого контекста.

Прежде, чем нарисовать к контексту, необходимо связать полный объект кадрового буфера с контекстом. Для получения дополнительной информации о конфигурировании контекстов рендеринга посмотрите OpenGL Руководство по программированию ES для iOS.

  • Инициализирует и возвращает недавно выделенный контекст рендеринга с указанной версией OpenGL ES, представляющий API.

    Объявление

    Swift

    convenience init!(API api: EAGLRenderingAPI)

    Objective C

    - (instancetype)initWithAPI:(EAGLRenderingAPI)api

    Параметры

    api

    Требуемая версия OpenGL ES, представляющий API. Для юридических значений посмотрите OpenGL Версии ES.

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

    Инициализированный объект контекста, или nil если не мог бы быть создан объект.

    Обсуждение

    Для выдачи команд OpenGL ES к этому контексту необходимо сначала сделать контекст текущим путем вызова setCurrentContext:.

    Вызов initWithAPI: создает новое EAGLSharegroup объект и присоединения это к этому контексту.

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

    Objective C

    @import OpenGLES;

    Swift

    import OpenGLES

    Доступность

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

  • init (API:sharegroup:) - initWithAPI:sharegroup: Определяемый инициализатор

    Инициализирует и возвращает недавно выделенный контекст рендеринга с указанной версией OpenGL ES, представляющий API и указанный sharegroup.

    Объявление

    Swift

    init!(API api: EAGLRenderingAPI, sharegroup sharegroup: EAGLSharegroup!)

    Objective C

    - (instancetype)initWithAPI:(EAGLRenderingAPI)api sharegroup:(EAGLSharegroup *)sharegroup

    Параметры

    api

    Требуемая версия OpenGL ES, представляющий API. Для юридических значений посмотрите OpenGL Версии ES.

    sharegroup

    sharegroup получен от другого EAGLContext объект.

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

    Инициализированный объект контекста, или nil если не мог бы быть создан объект.

    Обсуждение

    Для выдачи команд OpenGL ES к этому контексту необходимо сначала сделать его текущим контекстом получения путем вызова setCurrentContext:.

     Объекты ES OpenGL, такие как текстуры, renderbuffers, кадровые буферы и буферы вершины совместно используются через все контексты, создающиеся с тем же sharegroup. Чтобы указать, что новый контекст должен быть инициализирован в существующем sharegroup, получите sharegroup свойство от ранее инициализированного контекста и передачи это в качестве параметра к этому методу инициализации. Передача nil как sharegroup параметр для создания нового EAGLSharegroup объект, присоединенный к контексту.

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

    Objective C

    @import OpenGLES;

    Swift

    import OpenGLES

    Доступность

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

  • Делает указанный контекст текущим контекстом рендеринга для вызывающего потока.

    Объявление

    Swift

    class func setCurrentContext(_ context: EAGLContext!) -> Bool

    Objective C

    + (BOOL)setCurrentContext:(EAGLContext *)context

    Параметры

    context

    Контекст рендеринга, который Вы хотите сделать текущим.

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

    YEStrue если успешный; иначе, NOfalse. Если ошибка произошла, контекст рендеринга для текущего потока остается неизменным.

    Обсуждение

    Контекст инкапсулирует весь OpenGL состояние ES для единственного потока в Вашем приложении. При вызове любого OpenGL API-функция ES OpenGL , ES оценивает его относительно текущего контекста вызывающего потока. Поскольку OpenGL , функции ES требуют текущего контекста, необходимо использовать этот метод для выбора контекста для текущего потока прежде, чем вызвать любой OpenGL функция ES. Если не указано иное вызовы команд OpenGL ES сделали в том же контексте завершенный в порядке, их вызывают.

    OpenGL ES сохраняет контекст, когда это сделано текущим, и это выпускает предыдущий контекст. Чтобы препятствовать тому, чтобы нетекущий контекст был освобожден, Ваше приложение должно сохранить a strong ссылка на контекст (или сохраняют его, при использовании подсчета ссылки на руководство). Вызов этого метода с a nil параметр выпускает текущий контекст и оставляет OpenGL ES развязанный к любому контексту получения.

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

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

    Objective C

    @import OpenGLES;

    Swift

    import OpenGLES

    Доступность

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

  • Связывает хранение drawable объекта с OpenGL ES renderbuffer объект.

    Объявление

    Swift

    func renderbufferStorage(_ target: Int, fromDrawable drawable: EAGLDrawable!) -> Bool

    Objective C

    - (BOOL)renderbufferStorage:(NSUInteger)target fromDrawable:(id<EAGLDrawable>)drawable

    Параметры

    target

    OpenGL точка привязки ES для в настоящее время связанного renderbuffer. Значение этого параметра должно быть GL_RENDERBUFFER (или GL_RENDERBUFFER_OES в контексте OpenGL ES 1.1).

    drawable

    Объект, управляющий хранилищем данных для renderbuffer. В iOS значение этого параметра должно быть a CAEAGLLayer объект.

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

    YEStrue если успешный; иначе, NOfalse.

    Обсуждение

    Для создания renderbuffer, который может быть представлен экрану Вы связываете renderbuffer и затем выделяете совместно используемую память для него путем вызова этого метода. Этот вызов метода заменяет вызов, обычно выполненный к glRenderbufferStorage. renderbuffer, хранение которого было выделено с этим методом, может позже быть выведен на экран с вызовом к presentRenderbuffer:.

    Ширина, высота и внутренний цветной буферный формат получены из характеристик drawable объекта. Можно переопределить внутренний цветной буферный формат путем добавления kEAGLDrawablePropertyColorFormat ключ к drawableProperties словарь drawable объекта прежде, чем вызвать этот метод.

    Чтобы указать, что OpenGL ES renderbuffer должен быть отсоединен от drawable объекта, вызовите этот метод с drawable набор параметра к nil.

    Специальные замечания

    В iOS 6.0 и позже, этот метод автоматически сбрасывает OpenGL буфер команд ES, делая его неподходящим для вызова неоднократно в критическом по отношению к производительности коде.

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

    Objective C

    @import OpenGLES;

    Swift

    import OpenGLES

    Доступность

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

  • Выводит на экран содержание renderbuffer на экране.

    Объявление

    Swift

    func presentRenderbuffer(_ target: Int) -> Bool

    Objective C

    - (BOOL)presentRenderbuffer:(NSUInteger)target

    Параметры

    target

    OpenGL точка привязки ES для в настоящее время связанного renderbuffer. Значение этого параметра должно быть GL_RENDERBUFFER (или GL_RENDERBUFFER_OES в контексте OpenGL ES 1.1).

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

    YEStrue если успешный; иначе, NOfalse.

    Обсуждение

    renderbuffer, который будет выведен на экран, должно быть, был выделенным хранением с помощью renderbufferStorage:fromDrawable: метод. Точная семантика для того, как и тем, когда renderbuffer содержание выведено на экран, управляет drawable объект.

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

    Objective C

    @import OpenGLES;

    Swift

    import OpenGLES

    Доступность

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

  • API Свойство

    OpenGL ES, представляющий версию API, поддерживается контекстом. (только для чтения)

    Объявление

    Swift

    var API: EAGLRenderingAPI { get }

    Objective C

    @property(readonly) EAGLRenderingAPI API

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

    Objective C

    @import OpenGLES;

    Swift

    import OpenGLES

    Доступность

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

  • sharegroup Свойство

    Объект sharegroup контекста. (только для чтения)

    Объявление

    Swift

    var sharegroup: EAGLSharegroup! { get }

    Objective C

    @property(readonly) EAGLSharegroup *sharegroup

    Обсуждение

    Получите sharegroup контекста, когда Вы захотите создать два или больше контекста тот рендеринг доли ресурсы. Вызвать initWithAPI: для инициализации первого контекста получите его sharegroup, и затем инициализируйте дополнительные контексты путем вызова initWithAPI:sharegroup:, передача этого sharegroup как параметр.

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

    Objective C

    @import OpenGLES;

    Swift

    import OpenGLES

    Доступность

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

    См. также

    – initWithAPI:sharegroup:

  • debugLabel Свойство

    Метка, описывающая контекст для использования в отладке.

    Объявление

    Swift

    var debugLabel: String!

    Objective C

    @property(copy, nonatomic) NSString *debugLabel

    Обсуждение

    Используйте это свойство для обеспечения понятного имени для контекста. Эта метка, появляющаяся в интерфейсе Xcode OpenGL ES Frame Debugger, упрощает для Вас более легко отслеживать различные контексты при отладке приложения мультиконтекста.

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

    Objective C

    @import OpenGLES;

    Swift

    import OpenGLES

    Доступность

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

  • Возвращает текущий контекст рендеринга для вызывающего потока.

    Объявление

    Swift

    class func currentContext() -> EAGLContext!

    Objective C

    + (EAGLContext *)currentContext

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

    Текущий контекст для вызывающего потока.

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

    Objective C

    @import OpenGLES;

    Swift

    import OpenGLES

    Доступность

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

  • multiThreaded Свойство

    Булево значение, определяющее, задерживает ли OpenGL ES работу к другому потоку.

    Объявление

    Swift

    var multiThreaded: Bool

    Objective C

    @property(getter=isMultiThreaded, nonatomic) BOOL multiThreaded

    Обсуждение

    Установите значение этого свойства к YEStrue включить многопоточность в OpenGL ES. Многопоточный OpenGL контекст ES автоматически создает рабочий поток и передает некоторые его вычисления к тому потоку. Когда Вы включаете многопоточность на многожильном устройстве, внутренний OpenGL вычисления ES, выполняемые на действии CPU параллельно с Вашим приложением, улучшая производительность.

    Когда значение этого свойства NOfalse (значение по умолчанию), OpenGL, ES выполняет любые основанные на CPU вычисления для команды на потоке, от которого это вызвали.

    Если текущее устройство не поддерживает многопоточный OpenGL ES, значение этого свойства всегда NOfalse— попытка установить значение в YEStrue не имеет никакого эффекта.

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

    Objective C

    @import OpenGLES;

    Swift

    import OpenGLES

    Доступность

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

  • Версии OpenGL ES, который обеспечивает контекст рендеринга.

    Объявление

    Swift

    enum EAGLRenderingAPI : UInt { case OpenGLES1 case OpenGLES2 case OpenGLES3 }

    Objective C

    typedef NSUInteger EAGLRenderingAPI; enum { kEAGLRenderingAPIOpenGLES1 = 1, kEAGLRenderingAPIOpenGLES2 = 2, kEAGLRenderingAPIOpenGLES3 = 3, };

    Константы

    • OpenGLES1

      kEAGLRenderingAPIOpenGLES1

      Контекст поддерживает OpenGL ES 1.x рендеринг API.

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

    • OpenGLES2

      kEAGLRenderingAPIOpenGLES2

      Контекст поддерживает OpenGL ES 2.x рендеринг API.

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

    • OpenGLES3

      kEAGLRenderingAPIOpenGLES3

      Контекст поддерживает OpenGL ES 3.x рендеринг API.

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

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

    Objective C

    @import OpenGLES;

    Swift

    import OpenGLES

    Доступность

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