void GLESRender::Swap(TngWindow* wnd) { if (__eglDisplay && __eglSurface) { int rc =eglSwapBuffers(__eglDisplay, __eglSurface); if (rc != EGL_TRUE) { EGLint error = eglGetError(); if (error == EGL_BAD_NATIVE_WINDOW) { if (OS::state__->window != NULL) { destroyEGLSurface(); Log::GetLog()->Printf(Log::SYS_CHN,"recreate gles surface"); CreateRenderDevice(wnd); } else { Log::GetLog()->Printf(Log::SYS_CHN,"widow is null"); } } else { Log::GetLog()->Printf(Log::SYS_CHN,"other error %d",error); } } // else // { // Log::GetLog()->Printf(Log::DBG_CHN,"swap"); // } } }
static void destroyEGLMain() { destroyEGLSurface(); if (__eglContext != EGL_NO_CONTEXT) { eglDestroyContext(__eglDisplay, __eglContext); __eglContext = EGL_NO_CONTEXT; } if (__eglDisplay != EGL_NO_DISPLAY) { eglTerminate(__eglDisplay); __eglDisplay = EGL_NO_DISPLAY; } }
void GLESRender::OnDestroySurface() { destroyEGLSurface(); }