我想讓iOS的OpenGL項目,但glViewport無法工作。glViewport不能在iOS上工作
看看簡單的代碼示例:
- (void)viewDidLoad
{
[super viewDidLoad];
EAGLContext *context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
[EAGLContext setCurrentContext:context];
const CGRect frame = [[UIScreen mainScreen] bounds];
//GLKView *glView = [[GLKView alloc] initWithFrame:CGRectMake(100, 100, 300, 300)];
GLKView* glView = [[GLKView alloc] initWithFrame:frame context:context];
[self.view addSubview:glView];
GLuint renderbuffer;
glGenRenderbuffers(1, &renderbuffer);
glBindRenderbuffer(GL_RENDERBUFFER, renderbuffer);
[context renderbufferStorage:GL_RENDERBUFFER fromDrawable:(CAEAGLLayer*)glView.layer];
GLuint framebuffer;
glGenFramebuffers(1, &framebuffer);
glBindFramebuffer(GL_FRAMEBUFFER, framebuffer);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, renderbuffer);
// Set the viewport
glViewport(100, 100, 300, 300);
// Clear
glClearColor(1, 0, 0, 1);
glClear(GL_COLOR_BUFFER_BIT);
// Present renderbuffer
[context presentRenderbuffer:GL_RENDERBUFFER];
}
任何更改我glViewport做不`噸做任何的影響。
但是,如果我添加「initWithFrame:CGRectMake(100,100,300,300)」它會工作,但我真的需要glViewport。
我在做什麼錯?
謝謝你,它的工作我所需要的。但是,glViewport的真正建議是什麼?如果我評論它,屏幕上什麼也不會改變。 –
@EduardoDória:'glViewport'會影響渲染的圖元:三角形,線條等。清除操作不會渲染圖元。 –