현재 백킹 및 너비가 모두 15로 설정된 OpenGL ES 렌더 버퍼에 문제가 있습니다. 너비를 320으로 설정하는 방법이 있습니까? 480? 내 프로젝트는 Apple의 EAGLView 클래스와 ES1Renderer에 구축되어 있지만 앱 대리인에서 컨트롤러로 옮겼습니다. 또한 CADisplayLink를 외부로 옮겼습니다 (게임 타임을이 게임의 타임 스탬프로 업데이트합니다).렌더 버퍼 너비 및 높이 설정 (Open GL ES)
도움이 될만한 점이 많습니다. 다음과 같이
나는 창에 glview을 추가
CGRect applicationFrame = [[UIScreen mainScreen] applicationFrame];
[window addSubview:gameController.glview];
[window makeKeyAndVisible];
나는 컨트롤러와 그 안에 glview을 합성. 그렇지 않으면 EAGLView와 Renderer가 수정되지 않습니다.
렌더러 초기화 :
// Get the layer
CAEAGLLayer *eaglLayer = (CAEAGLLayer *)self.layer;
eaglLayer.opaque = TRUE;
eaglLayer.drawableProperties = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:FALSE], kEAGLDrawablePropertyRetainedBacking, kEAGLColorFormatRGBA8, kEAGLDrawablePropertyColorFormat, nil];
renderer = [[ES1Renderer alloc] init];
"레이어에서 크기 조정"렌더 방법
- (BOOL)resizeFromLayer:(CAEAGLLayer *)layer
{
// Allocate color buffer backing based on the current layer size
glBindRenderbufferOES(GL_RENDERBUFFER_OES, colorRenderbuffer);
[context renderbufferStorage:GL_RENDERBUFFER_OES fromDrawable:layer];
glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_WIDTH_OES, &backingWidth);
glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_HEIGHT_OES, &backingHeight);
NSLog(@"Backing Width:%i and Height: %i", backingWidth, backingHeight);
if (glCheckFramebufferStatusOES(GL_FRAMEBUFFER_OES) != GL_FRAMEBUFFER_COMPLETE_OES)
{
NSLog(@"Failed to make complete framebuffer object %x", glCheckFramebufferStatusOES(GL_FRAMEBUFFER_OES));
return NO;
}
return YES;
} 당신이 renderbufferStorage 호출 할 때
, 값을 layer.bounds을 위해 : 나를 위해 완벽하게 작동 -Origin : (50, 1650) | 크기 : w : 30, h : 1675 –
올바른 길로 나를 설정해 주셔서 고마워요. 알아 냈어. –