我想让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'会影响渲染的图元:三角形,线条等。清除操作不会渲染图元。 –