Esempio n. 1
0
	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");
// 			}
		}

	}
Esempio n. 2
0
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;
    }
}
Esempio n. 3
0
	void GLESRender::OnDestroySurface()
	{
		destroyEGLSurface();
	}