2010-04-21 68 views
0

我一直在試圖弄清楚如何調整eaglview上的圖紙視圖的大小,而不是默認的320x480尺寸。我的Eaglview附加到UIViewController。我真正想要做的是找出viewrenderbuffer從哪裏調用它的寬度和高度參數。嘗試調整Eaglview顯示的圖像取決於風景或人像照片

在下面的代碼中,我可以看到背景寬度和高度取自綁定的viewRenderbuffer和renderbufferstorage調用。我不想使用屏幕默認的320x480,因爲如果我在縱向視圖上顯示橫向照片,它將伸展出來,反之亦然。

- (void)reshapeFramebuffer 
{ 
    glBindRenderbufferOES(GL_RENDERBUFFER_OES, viewRenderbuffer); 
    [context renderbufferStorage:GL_RENDERBUFFER_OES fromDrawable:(CAEAGLLayer*)self.layer]; 
    glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_WIDTH_OES, &backingWidth); 
    glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_HEIGHT_OES, &backingHeight); 

// This application only needs color. If depth and/or stencil are needed, ensure they are also resized here. 
//Debug.h 
rt_assert(GL_FRAMEBUFFER_COMPLETE_OES == glCheckFramebufferStatusOES(GL_FRAMEBUFFER_OES)); 
glCheckError(); 

}

回答

1

調用上下文renderbufferStorage:fromDrawable分配核心動畫層上的存儲。兩個後續調用

glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_WIDTH_OES, &backingWidth); 
glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_HEIGHT_OES, &backingHeight); 

隨後獲得其調用上下文renderbufferStorage:fromDrawable時所設置的渲染的高度和寬度。

如果你想爲UIView容器使用不同的大小,你應該設置它。推測你的EAGLView實例有一些調整子視圖大小的措施,例如- (void)layoutSubviews ...