У меня есть приложение IOS, которая использует GLKViewController и настроить рендер буфер следующим образом:GLKView с glDrawElements результатами буфера трафарета в черно экране
внутри @interface RootViewController : GLKViewController<UIKeyInput>
- viewDidLoad {
[super viewDidLoad];
_context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
GLKView* view = (GLKView*)self.view;
view.context = _context;
view.drawableColorFormat = GLKViewDrawableColorFormatRGBA8888;
view.drawableDepthFormat = GLKViewDrawableDepthFormat24;
view.drawableStencilFormat = GLKViewDrawableStencilFormat8;
view.drawableMultisample = GLKViewDrawableMultisampleNone;
self.preferredFramesPerSecond = 60;
[EAGLContext setCurrentContext:_context];
}
Однако, когда я звоню ничья позже:
glDrawElements(getGlPrimitiveType(ePrimType), numIndis, GL_UNSIGNED_SHORT, startIndis);
Это приводит к черному экрану и на Capture GPU Frame
, эта ошибка появляется:
Your app rendered with STENCIL_TEST enabled into a framebuffer without an attached stencil buffer.
Есть ли что-нибудь, что я пропустил?
Я вспомнил, с той же проблемой, прежде чем из-за тестирование глубины, и я могу это исправить с view.drawableDepthFormat = GLKViewDrawableDepthFormat24;
на viewDidLoad
Я не уверен, что тестирование трафарета, документация Apple, либо очень минимальны или очень общие с теориями все вокруг (т.е. довольно много бесполезно).