Сделать EAGLView прозрачным?

Можно ли поместить в объект UIViewController объект EAGLView и сделать фон EAGLView прозрачным, чтобы видеть, что находится позади?

Спасибо.

-ОБНОВИТЬ----

Я пробовал, что появляется в этом сообщении. Но все же слой EAGLView выглядит как черный квадрат. :(

Любая идея, почему это не работает для меня?


person NemeSys    schedule 23.02.2012    source источник


Ответы (2)


openGLView.opaque = NO

Также обратите внимание на правильную непрозрачность в альфа-канале фреймбуфера OpenGL. И обратите внимание на ответ Тарка о падении производительности.

person brigadir    schedule 23.02.2012

Не существует такой вещи, как EAGLView, но определенно возможно иметь CAEAGLLayer с прозрачным фоном поверх содержимого UIKit. Однако из документации не рекомендуется:

Поскольку поверхность рендеринга OpenGL ES предоставляется пользователю с помощью Core Animation, любые эффекты и анимации, которые вы применяете к слою, влияют на 3D-контент, который вы визуализируете. Однако для наилучшей производительности сделайте следующее:

  • Установите для атрибута непрозрачности слоя значение TRUE.
  • Установите границы слоя в соответствии с размерами дисплея.
  • Убедитесь, что слой не трансформирован.
  • Избегайте рисования других слоев поверх объекта CEAGLLayer. Если вам необходимо отрисовывать другой контент, отличный от OpenGL, вы можете счесть приемлемым снижение производительности, если поместите прозрачный 2D-контент поверх GL-контента, а также убедитесь, что контент OpenGL непрозрачный и не трансформированный.
  • При рисовании горизонтального содержимого на портретном дисплее следует поворачивать содержимое самостоятельно, а не использовать преобразование CAEAGLLayer для его поворота.
person Tark    schedule 23.02.2012