Return to the previous surface after swapchain create / destroy. (#1815)

This commit is contained in:
dom607 2019-07-13 11:37:51 +09:00 коммит произвёл Бранимир Караџић
Родитель 541a379722
Коммит f1f2d9ff27
1 изменённых файлов: 7 добавлений и 0 удалений

Просмотреть файл

@ -107,6 +107,8 @@ EGL_IMPORT
: m_nwh(_nwh)
, m_display(_display)
{
EGLSurface defaultSurface = eglGetCurrentSurface(EGL_DRAW);
m_surface = eglCreateWindowSurface(m_display, _config, _nwh, NULL);
BGFX_FATAL(m_surface != EGL_NO_SURFACE, Fatal::UnableToInitialize, "Failed to create surface.");
@ -119,13 +121,18 @@ EGL_IMPORT
swapBuffers();
GL_CHECK(glClear(GL_COLOR_BUFFER_BIT) );
swapBuffers();
eglMakeCurrent(m_display, defaultSurface, defaultSurface, _context);
}
~SwapChainGL()
{
EGLSurface defaultSurface = eglGetCurrentSurface(EGL_DRAW);
EGLContext defaultContext = eglGetCurrentContext();
eglMakeCurrent(m_display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
eglDestroyContext(m_display, m_context);
eglDestroySurface(m_display, m_surface);
eglMakeCurrent(m_display, defaultSurface, defaultSurface, defaultContext);
}
void makeCurrent()