Можно ли сделать слой OpenGL ES прозрачным? - PullRequest
7 голосов
/ 07 июля 2010

Можно ли сделать фон слоя OpenGL ES прозрачным, чтобы вы могли видеть, что скрывается за содержимым OpenGL ES?

1 Ответ

11 голосов
/ 16 декабря 2010

Вы должны сделать две вещи:

  1. Когда вы инициализируете свой CAEAGLLayer, установите для непрозрачного свойства значение NO (или FALSE).

    Вам также может потребоваться убедиться, что drawableProperties использует цветовой формат, который поддерживает прозрачность (kEAGLColorFormatRGBA8 поддерживает, но kEAGLColorFormatRGB565 - нет).

    eaglLayer.opaque = NO;

    eaglLayer.drawableProperties = [NSDictionary dictionaryWithObjectsAndKeys: [NSNumber numberWithBool:NO], kEAGLDrawablePropertyRetainedBacking, kEAGLColorFormatRGBA8, kEAGLDrawablePropertyColorFormat, nil];

    Если вы используете шаблон проекта XCode OpenGL, это будет в [EAGLView's initWithCoder].

  2. Нарисуйте фон в прозрачный цвет и альфа.

    glClearColor(0.0f, 0.0f, 0.0f, 0.0f);

    Если вы используете шаблон проекта XCode OpenGL, это будет в методах «рендеринга»: [ES1Renderer render] и [ES2Renderer render].
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...