iOS와 Android에서 모두 작동하는 OpenGL ES 앱이 있습니다. 대부분의 코드는 다른 사람이 몇 년 전에 작성한 것이므로 이제는 유지해야합니다. OpenGL 사용법은 매우 간단합니다 (게임은 2D이며 질감이있는 스프라이트 만 사용합니다).iOS 및 Android 용 OpenGL ES 차이점
1) 아이폰 OS 코드는 코드가 포함되어 있습니다 : :하지만 iOS 및 Android를위한 그래픽 코드 실현의 두 가지 주요 차이점 참조
glGenFramebuffersOES(1, &m_defaultFramebuffer);
glGenRenderbuffersOES(1, &m_colorRenderbuffer);
glBindFramebufferOES(GL_FRAMEBUFFER_OES, m_defaultFramebuffer);
glBindRenderbufferOES(GL_RENDERBUFFER_OES, m_colorRenderbuffer);
glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_COLOR_ATTACHMENT0_OES, GL_RENDERBUFFER_OES, m_colorRenderbuffer);
과 안드로이드의 하나는하지 않습니다.
2) Android 앱이 백그라운드로 실행되면 eglTerminate
을 사용하여 모든 OpenGL 텍스처가 파괴되고 (glDeleteTextures
) EGL이 종료됩니다. 앱이 수면에서 돌아 오면 EGL이 다시 초기화되고 텍스처가 다시 생성됩니다.
iOS 코드는 이러한 작업을 수행하지 않습니다. [m_displayLink setPaused:YES];
다른 OpenGL 관련 코드는 iOS 및 Android에서 동일합니다.
모든 것이 두 플랫폼에서 모두 잘 작동하지만, 무슨 일이 벌어지고 있는지 완전히 알고 싶습니다. 아무도 나에게이 두 가지 차이점의 근거를 설명 할 수 있습니까?
두 코드 모두 ES 1.0을 사용합니까? 내가 볼 수 – NigelK
예 : 사람들을위한 # 만약 정의 PLATF_IOS 정의 PLATF_ANDROID #elif 사용법 #include 이 좋은 대답 (질문뿐만 아니라)이다 –
Nick