Прозрачность рендеринга OpenGL на glkView во время снимка
Так что у меня есть OpenGL-рендеринг в виде библиотеки под названием iOS. Уровень iOS создает контекст и передает его в библиотеку. Уровень iOS должен быть в состоянии настроить вещи. Я заметил, что и GLKView, и GLKView.layer (CAEAGLLayer) имеют похожие слоты, как у GLKView есть drawableColorFormat, в то время как CAEAGLLayer нужны drawableProperties для установки kEAGLDrawablePropertyColorFormat. И оба они имеют непрозрачное свойство.
Так что я должен установить оба на GLKView и CAEAGLLayer или только одного из них должно быть достаточно?
И у меня есть некоторая отрисовка openGL с альфа-значениями, когда я вызываю снимок glkView, он получит белую полосу на тех пикселях, чья альфа не равна единице. Неважно, я установил opaque в yes на GLKView/CAEAGLLayer или нет, это происходит. Я знаю, что он может видеть через GLLayer к UILayer сзади, но этого не должно происходить, если для opakque GLKView установлено значение YES, верно?
И я также могу дать черный слой под OpenGL, так что это нормально во время рендеринга в реальном времени, без белых полос. Но если мы используем функцию снимка glkView для получения снимка экрана, он снова дает белую полосу. Единственный способ решить эту проблему сейчас - установить для colorFormat значение RGB565. Но я не хочу выбирать это направление, если это необходимо.
Итак, как правильно установить OpenGL в iOS, учитывая, что у меня могут быть некоторые пиксели GL с альфа-каналом, но я не хочу видеть слой под слоем openGL?