iOS 5 방식 (GLKView 사용)을 사용하지만 구식 OpenGLES 1.1을 사용하여 텍스처를 얻는 데 문제가 있습니다. 나는 오래된 2D (sprites) 스타일의 게임 프레임 워크를 이전하려고합니다. Xcode에서 OpenGL 게임의 예제를 가져 와서 kEAGLRenderingAPIOpenGLES1로 EAGLContext를 초기화하도록 수정했습니다. 또한 이전의 텍스처 로더 알고리즘 (및 기본 효과는 셰이더에서 작동 함)을 사용하므로 GLKTextureLoader & GLKBaseEffect를 사용하려고하지 않습니다. 이것은 내가의 ViewController에 현재 가지고있는 것입니다 : GLKView와 OpenGLES 1.1의 텍스처?
- (void)viewDidLoad {
[super viewDidLoad];
[self setContext : [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES1]];
[EAGLContext setCurrentContext: [self context]];
GLKView *view = (GLKView *)self.view;
[view setContext: [self context]];
[view setDrawableDepthFormat: GLKViewDrawableDepthFormatNone];
[view setDrawableColorFormat: GLKViewDrawableColorFormatRGBA8888];
[view setMultipleTouchEnabled: NO];
[self setupGL];
}
그리고 setupGL에서
:glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrthof(0, backingWidth, 0, backingHeight, -1, 1);
glViewport(0, 0, backingWidth, backingHeight);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
//landscape mode
glTranslatef(backingWidth/2, backingHeight/2, 0);
glRotatef(90, 0, 0, 1);
glTranslatef(-backingHeight/2, -backingWidth/2, 0);
glDisable(GL_DEPTH_TEST);
glEnable(GL_BLEND);
glEnable(GL_TEXTURE_2D);
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glEnableClientState(GL_COLOR_ARRAY);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_ALPHA);
문제는 제가 위에서 마지막 줄의 OpenGL에서 0x0500 오류가있어, 여기에서 시작하십시오. 차이점은 무엇인지 알아낼 수 없습니다. 이전 코드에서 정상적으로 작동하기 때문입니다 (또는 적어도 문제가 아니라면 문제의 원인이 아님). GL_APLHA 대신 GL_MODULATE를 사용하면 GL 오류는 없지만 텍스처는 여전히 작동하지 않습니다. 이것은 내가 그들을로드하는 방법입니다
이glGenTextures(1, &textures[textureNum]);
glBindTexture(GL_TEXTURE_2D, textures[textureNum]);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, data);
나머지는 기본적으로 다음의 OpenGL에 정점 데이터를 전송 내 오랜 renderEngine의 호출이지만 이전 코드에서 작동하기 때문에 나는 그 확인을해야 가정합니다. 그래서 내가 여기서 무엇을 그리워합니까? 어떤 도움을 주시면 감사하겠습니다.
와우, StackOverflow가 인사말을 처음부터 제거한다는 것을 알지 못했습니다 ... – fishgen