From 80f2deb54a26da1c6762464689680a370415fb0f Mon Sep 17 00:00:00 2001 From: bkaradzic Date: Tue, 12 Jun 2012 19:43:27 -0700 Subject: [PATCH] Added wglDeleteContext. --- src/bgfx_p.h | 15 ++++ src/glimports.h | 210 ++++++++++++++++++++++---------------------- src/renderer_gl.cpp | 25 +++++- src/renderer_gl.h | 5 +- 4 files changed, 145 insertions(+), 110 deletions(-) diff --git a/src/bgfx_p.h b/src/bgfx_p.h index 28dec6515..6df27e464 100644 --- a/src/bgfx_p.h +++ b/src/bgfx_p.h @@ -2487,6 +2487,21 @@ namespace bgfx } return 0; + case WM_SYSCOMMAND: + switch (_wparam) + { + case SC_MINIMIZE: + case SC_RESTORE: + { + HWND parent = GetWindow(_hwnd, GW_OWNER); + if (NULL != parent) + { + PostMessage(parent, _id, _wparam, _lparam); + } + } + } + break; + default: break; } diff --git a/src/glimports.h b/src/glimports.h index 5e59a30bb..d90542696 100644 --- a/src/glimports.h +++ b/src/glimports.h @@ -12,113 +12,115 @@ // http://www.opengl.org/sdk/docs/man/ #if BX_PLATFORM_WINDOWS -GL_IMPORT(false, PFNGLGETERRORPROC, glGetError); -GL_IMPORT(false, PFNGLREADPIXELSPROC, glReadPixels); -GL_IMPORT(false, PFNGLTEXIMAGE2DPROC, glTexImage2D); -GL_IMPORT(false, PFNGLTEXPARAMETERIPROC, glTexParameteri); -GL_IMPORT(false, PFNGLBINDTEXTUREPROC, glBindTexture); -GL_IMPORT(false, PFNGLGENTEXTURESPROC, glGenTextures); -GL_IMPORT(false, PFNGLDELETETEXTURESPROC, glDeleteTextures); -GL_IMPORT(false, PFNGLCOLORMASKPROC, glColorMask); -GL_IMPORT(false, PFNGLDEPTHFUNCPROC, glDepthFunc); -GL_IMPORT(false, PFNGLDISABLEPROC, glDisable); -GL_IMPORT(false, PFNGLVIEWPORTPROC, glViewport); -GL_IMPORT(false, PFNGLDRAWELEMENTSPROC, glDrawElements); -GL_IMPORT(false, PFNGLGETINTEGERVPROC, glGetIntegerv); -GL_IMPORT(false, PFNGLGETSTRINGPROC, glGetString); -GL_IMPORT(false, PFNGLDRAWARRAYSPROC, glDrawArrays); -GL_IMPORT(false, PFNGLBLENDFUNCPROC, glBlendFunc); -GL_IMPORT(false, PFNGLPOINTSIZEPROC, glPointSize); -GL_IMPORT(false, PFNGLCULLFACEPROC, glCullFace); -GL_IMPORT(false, PFNGLCLEARPROC, glClear); -GL_IMPORT(false, PFNGLSCISSORPROC, glScissor); -GL_IMPORT(false, PFNGLENABLEPROC, glEnable); -GL_IMPORT(false, PFNGLCLEARSTENCILPROC, glClearStencil); -GL_IMPORT(false, PFNGLDEPTHMASKPROC, glDepthMask); -GL_IMPORT(false, PFNGLCLEARDEPTHPROC, glClearDepth); -GL_IMPORT(false, PFNGLCLEARCOLORPROC, glClearColor); +GL_IMPORT(false, PFNGLGETERRORPROC, glGetError); +GL_IMPORT(false, PFNGLREADPIXELSPROC, glReadPixels); +GL_IMPORT(false, PFNGLTEXIMAGE2DPROC, glTexImage2D); +GL_IMPORT(false, PFNGLTEXPARAMETERIPROC, glTexParameteri); +GL_IMPORT(false, PFNGLBINDTEXTUREPROC, glBindTexture); +GL_IMPORT(false, PFNGLGENTEXTURESPROC, glGenTextures); +GL_IMPORT(false, PFNGLDELETETEXTURESPROC, glDeleteTextures); +GL_IMPORT(false, PFNGLCOLORMASKPROC, glColorMask); +GL_IMPORT(false, PFNGLDEPTHFUNCPROC, glDepthFunc); +GL_IMPORT(false, PFNGLDISABLEPROC, glDisable); +GL_IMPORT(false, PFNGLVIEWPORTPROC, glViewport); +GL_IMPORT(false, PFNGLDRAWELEMENTSPROC, glDrawElements); +GL_IMPORT(false, PFNGLGETINTEGERVPROC, glGetIntegerv); +GL_IMPORT(false, PFNGLGETSTRINGPROC, glGetString); +GL_IMPORT(false, PFNGLDRAWARRAYSPROC, glDrawArrays); +GL_IMPORT(false, PFNGLBLENDFUNCPROC, glBlendFunc); +GL_IMPORT(false, PFNGLPOINTSIZEPROC, glPointSize); +GL_IMPORT(false, PFNGLCULLFACEPROC, glCullFace); +GL_IMPORT(false, PFNGLCLEARPROC, glClear); +GL_IMPORT(false, PFNGLSCISSORPROC, glScissor); +GL_IMPORT(false, PFNGLENABLEPROC, glEnable); +GL_IMPORT(false, PFNGLCLEARSTENCILPROC, glClearStencil); +GL_IMPORT(false, PFNGLDEPTHMASKPROC, glDepthMask); +GL_IMPORT(false, PFNGLCLEARDEPTHPROC, glClearDepth); +GL_IMPORT(false, PFNGLCLEARCOLORPROC, glClearColor); #endif // BX_PLATFORM_WINDOWS -GL_IMPORT(false, PFNGLACTIVETEXTUREPROC, glActiveTexture); -GL_IMPORT(false, PFNGLCOMPRESSEDTEXIMAGE2DPROC, glCompressedTexImage2D); -GL_IMPORT(false, PFNGLCOMPRESSEDTEXIMAGE3DPROC, glCompressedTexImage3D); -GL_IMPORT(false, PFNGLBINDBUFFERPROC, glBindBuffer); -GL_IMPORT(false, PFNGLDELETEBUFFERSPROC, glDeleteBuffers); -GL_IMPORT(false, PFNGLGENBUFFERSPROC, glGenBuffers); -GL_IMPORT(false, PFNGLBUFFERDATAPROC, glBufferData); -GL_IMPORT(false, PFNGLBUFFERSUBDATAPROC, glBufferSubData); -GL_IMPORT(false, PFNGLCREATEPROGRAMPROC, glCreateProgram); -GL_IMPORT(false, PFNGLCREATESHADERPROC, glCreateShader); -GL_IMPORT(false, PFNGLDELETEPROGRAMPROC, glDeleteProgram); -GL_IMPORT(false, PFNGLDELETESHADERPROC, glDeleteShader); -GL_IMPORT(false, PFNGLATTACHSHADERPROC, glAttachShader); -GL_IMPORT(false, PFNGLCOMPILESHADERPROC, glCompileShader); -GL_IMPORT(false, PFNGLSHADERSOURCEPROC, glShaderSource); -GL_IMPORT(false, PFNGLGETSHADERIVPROC, glGetShaderiv); -GL_IMPORT(false, PFNGLGETSHADERINFOLOGPROC, glGetShaderInfoLog); -GL_IMPORT(false, PFNGLLINKPROGRAMPROC, glLinkProgram); -GL_IMPORT(false, PFNGLGETPROGRAMIVPROC, glGetProgramiv); -GL_IMPORT(false, PFNGLGETPROGRAMINFOLOGPROC, glGetProgramInfoLog); -GL_IMPORT(false, PFNGLUSEPROGRAMPROC, glUseProgram); -GL_IMPORT(false, PFNGLGETACTIVEATTRIBPROC, glGetActiveAttrib); -GL_IMPORT(false, PFNGLGETATTRIBLOCATIONPROC, glGetAttribLocation); -GL_IMPORT(false, PFNGLGETACTIVEUNIFORMPROC, glGetActiveUniform); -GL_IMPORT(false, PFNGLGETUNIFORMLOCATIONPROC, glGetUniformLocation); -GL_IMPORT(false, PFNGLENABLEVERTEXATTRIBARRAYPROC, glEnableVertexAttribArray); -GL_IMPORT(false, PFNGLDISABLEVERTEXATTRIBARRAYPROC, glDisableVertexAttribArray); -GL_IMPORT(false, PFNGLVERTEXATTRIBPOINTERPROC, glVertexAttribPointer); -GL_IMPORT(false, PFNGLVERTEXATTRIB1FPROC, glVertexAttrib1f); -GL_IMPORT(false, PFNGLVERTEXATTRIB2FPROC, glVertexAttrib2f); -GL_IMPORT(false, PFNGLVERTEXATTRIB3FPROC, glVertexAttrib3f); -GL_IMPORT(false, PFNGLVERTEXATTRIB4FPROC, glVertexAttrib4f); -GL_IMPORT(false, PFNGLBINDFRAMEBUFFERPROC, glBindFramebuffer); -GL_IMPORT(false, PFNGLGENFRAMEBUFFERSPROC, glGenFramebuffers); -GL_IMPORT(false, PFNGLDELETEFRAMEBUFFERSPROC, glDeleteFramebuffers); -GL_IMPORT(false, PFNGLCHECKFRAMEBUFFERSTATUSPROC, glCheckFramebufferStatus); -GL_IMPORT(false, PFNGLFRAMEBUFFERRENDERBUFFERPROC, glFramebufferRenderbuffer); -GL_IMPORT(false, PFNGLFRAMEBUFFERTEXTURE2DPROC, glFramebufferTexture2D); -GL_IMPORT(false, PFNGLBINDRENDERBUFFERPROC, glBindRenderbuffer); -GL_IMPORT(false, PFNGLGENRENDERBUFFERSPROC, glGenRenderbuffers); -GL_IMPORT(false, PFNGLDELETERENDERBUFFERSPROC, glDeleteRenderbuffers); -GL_IMPORT(false, PFNGLRENDERBUFFERSTORAGEPROC, glRenderbufferStorage); -GL_IMPORT(false, PFNGLUNIFORM1IPROC, glUniform1i); -GL_IMPORT(false, PFNGLUNIFORM1IVPROC, glUniform1iv); -GL_IMPORT(false, PFNGLUNIFORM1FPROC, glUniform1f); -GL_IMPORT(false, PFNGLUNIFORM1FVPROC, glUniform1fv); -GL_IMPORT(false, PFNGLUNIFORM2FVPROC, glUniform2fv); -GL_IMPORT(false, PFNGLUNIFORM3FVPROC, glUniform3fv); -GL_IMPORT(false, PFNGLUNIFORM4FVPROC, glUniform4fv); -GL_IMPORT(false, PFNGLUNIFORMMATRIX3FVPROC, glUniformMatrix3fv); -GL_IMPORT(false, PFNGLUNIFORMMATRIX4FVPROC, glUniformMatrix4fv); -GL_IMPORT(false, PFNGLTEXIMAGE3DPROC, glTexImage3D); -GL_IMPORT(false, PFNGLTEXSUBIMAGE3DPROC, glTexSubImage3D); -GL_IMPORT(false, PFNGLCOPYTEXSUBIMAGE3DPROC, glCopyTexSubImage3D); +GL_IMPORT(false, PFNGLACTIVETEXTUREPROC, glActiveTexture); +GL_IMPORT(false, PFNGLCOMPRESSEDTEXIMAGE2DPROC, glCompressedTexImage2D); +GL_IMPORT(false, PFNGLCOMPRESSEDTEXIMAGE3DPROC, glCompressedTexImage3D); +GL_IMPORT(false, PFNGLBINDBUFFERPROC, glBindBuffer); +GL_IMPORT(false, PFNGLDELETEBUFFERSPROC, glDeleteBuffers); +GL_IMPORT(false, PFNGLGENBUFFERSPROC, glGenBuffers); +GL_IMPORT(false, PFNGLBUFFERDATAPROC, glBufferData); +GL_IMPORT(false, PFNGLBUFFERSUBDATAPROC, glBufferSubData); +GL_IMPORT(false, PFNGLCREATEPROGRAMPROC, glCreateProgram); +GL_IMPORT(false, PFNGLCREATESHADERPROC, glCreateShader); +GL_IMPORT(false, PFNGLDELETEPROGRAMPROC, glDeleteProgram); +GL_IMPORT(false, PFNGLDELETESHADERPROC, glDeleteShader); +GL_IMPORT(false, PFNGLATTACHSHADERPROC, glAttachShader); +GL_IMPORT(false, PFNGLCOMPILESHADERPROC, glCompileShader); +GL_IMPORT(false, PFNGLSHADERSOURCEPROC, glShaderSource); +GL_IMPORT(false, PFNGLGETSHADERIVPROC, glGetShaderiv); +GL_IMPORT(false, PFNGLGETSHADERINFOLOGPROC, glGetShaderInfoLog); +GL_IMPORT(false, PFNGLLINKPROGRAMPROC, glLinkProgram); +GL_IMPORT(false, PFNGLGETPROGRAMIVPROC, glGetProgramiv); +GL_IMPORT(false, PFNGLGETPROGRAMINFOLOGPROC, glGetProgramInfoLog); +GL_IMPORT(false, PFNGLUSEPROGRAMPROC, glUseProgram); +GL_IMPORT(false, PFNGLGETACTIVEATTRIBPROC, glGetActiveAttrib); +GL_IMPORT(false, PFNGLGETATTRIBLOCATIONPROC, glGetAttribLocation); +GL_IMPORT(false, PFNGLGETACTIVEUNIFORMPROC, glGetActiveUniform); +GL_IMPORT(false, PFNGLGETUNIFORMLOCATIONPROC, glGetUniformLocation); +GL_IMPORT(false, PFNGLENABLEVERTEXATTRIBARRAYPROC, glEnableVertexAttribArray); +GL_IMPORT(false, PFNGLDISABLEVERTEXATTRIBARRAYPROC, glDisableVertexAttribArray); +GL_IMPORT(false, PFNGLVERTEXATTRIBPOINTERPROC, glVertexAttribPointer); +GL_IMPORT(false, PFNGLVERTEXATTRIB1FPROC, glVertexAttrib1f); +GL_IMPORT(false, PFNGLVERTEXATTRIB2FPROC, glVertexAttrib2f); +GL_IMPORT(false, PFNGLVERTEXATTRIB3FPROC, glVertexAttrib3f); +GL_IMPORT(false, PFNGLVERTEXATTRIB4FPROC, glVertexAttrib4f); +GL_IMPORT(false, PFNGLBINDFRAMEBUFFERPROC, glBindFramebuffer); +GL_IMPORT(false, PFNGLGENFRAMEBUFFERSPROC, glGenFramebuffers); +GL_IMPORT(false, PFNGLDELETEFRAMEBUFFERSPROC, glDeleteFramebuffers); +GL_IMPORT(false, PFNGLCHECKFRAMEBUFFERSTATUSPROC, glCheckFramebufferStatus); +GL_IMPORT(false, PFNGLFRAMEBUFFERRENDERBUFFERPROC, glFramebufferRenderbuffer); +GL_IMPORT(false, PFNGLFRAMEBUFFERTEXTURE2DPROC, glFramebufferTexture2D); +GL_IMPORT(false, PFNGLBINDRENDERBUFFERPROC, glBindRenderbuffer); +GL_IMPORT(false, PFNGLGENRENDERBUFFERSPROC, glGenRenderbuffers); +GL_IMPORT(false, PFNGLDELETERENDERBUFFERSPROC, glDeleteRenderbuffers); +GL_IMPORT(false, PFNGLRENDERBUFFERSTORAGEPROC, glRenderbufferStorage); +GL_IMPORT(false, PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC, glRenderbufferStorageMultisample); +GL_IMPORT(false, PFNGLUNIFORM1IPROC, glUniform1i); +GL_IMPORT(false, PFNGLUNIFORM1IVPROC, glUniform1iv); +GL_IMPORT(false, PFNGLUNIFORM1FPROC, glUniform1f); +GL_IMPORT(false, PFNGLUNIFORM1FVPROC, glUniform1fv); +GL_IMPORT(false, PFNGLUNIFORM2FVPROC, glUniform2fv); +GL_IMPORT(false, PFNGLUNIFORM3FVPROC, glUniform3fv); +GL_IMPORT(false, PFNGLUNIFORM4FVPROC, glUniform4fv); +GL_IMPORT(false, PFNGLUNIFORMMATRIX3FVPROC, glUniformMatrix3fv); +GL_IMPORT(false, PFNGLUNIFORMMATRIX4FVPROC, glUniformMatrix4fv); +GL_IMPORT(false, PFNGLTEXIMAGE3DPROC, glTexImage3D); +GL_IMPORT(false, PFNGLTEXSUBIMAGE3DPROC, glTexSubImage3D); +GL_IMPORT(false, PFNGLCOPYTEXSUBIMAGE3DPROC, glCopyTexSubImage3D); +GL_IMPORT(false, PFNGLTEXIMAGE2DMULTISAMPLEPROC, glTexImage2DMultisample); -GL_IMPORT(false, PFNGLGENQUERIESPROC, glGenQueries); -GL_IMPORT(false, PFNGLDELETEQUERIESPROC, glDeleteQueries); -GL_IMPORT(false, PFNGLBEGINQUERYPROC, glBeginQuery); -GL_IMPORT(false, PFNGLENDQUERYPROC, glEndQuery); -GL_IMPORT(false, PFNGLGETQUERYIVPROC, glGetQueryiv); -GL_IMPORT(false, PFNGLGETQUERYOBJECTIVPROC, glGetQueryObjectiv); -GL_IMPORT(false, PFNGLGETQUERYOBJECTUIVPROC, glGetQueryObjectuiv); - -GL_IMPORT(true, PFNGLGETPROGRAMBINARYPROC, glGetProgramBinary); -GL_IMPORT(true, PFNGLPROGRAMBINARYPROC, glProgramBinary); -GL_IMPORT(true, PFNGLPROGRAMPARAMETERIPROC, glProgramParameteri); - -GL_IMPORT(true, PFNGLBLITFRAMEBUFFEREXTPROC, glBlitFramebufferEXT); - -GL_IMPORT(true, PFNGLQUERYCOUNTERPROC, glQueryCounter); -GL_IMPORT(true, PFNGLGETQUERYOBJECTI64VPROC, glGetQueryObjecti64v); -GL_IMPORT(true, PFNGLGETQUERYOBJECTUI64VPROC, glGetQueryObjectui64v); -GL_IMPORT(true, PFNGLGETQUERYOBJECTI64VEXTPROC, glGetQueryObjecti64vEXT); -GL_IMPORT(true, PFNGLGETQUERYOBJECTUI64VEXTPROC, glGetQueryObjectui64vEXT); - -GL_IMPORT(true, PFNGLSAMPLECOVERAGEARBPROC, glSampleCoverageARB); - -#if BGFX_CONFIG_DEBUG_GREMEDY -GL_IMPORT(true, PFNGLSTRINGMARKERGREMEDYPROC, glStringMarkerGREMEDY); -GL_IMPORT(true, PFNGLFRAMETERMINATORGREMEDYPROC, glFrameTerminatorGREMEDY); +GL_IMPORT(false, PFNGLGENQUERIESPROC, glGenQueries); +GL_IMPORT(false, PFNGLDELETEQUERIESPROC, glDeleteQueries); +GL_IMPORT(false, PFNGLBEGINQUERYPROC, glBeginQuery); +GL_IMPORT(false, PFNGLENDQUERYPROC, glEndQuery); +GL_IMPORT(false, PFNGLGETQUERYIVPROC, glGetQueryiv); +GL_IMPORT(false, PFNGLGETQUERYOBJECTIVPROC, glGetQueryObjectiv); +GL_IMPORT(false, PFNGLGETQUERYOBJECTUIVPROC, glGetQueryObjectuiv); + +GL_IMPORT(true, PFNGLGETPROGRAMBINARYPROC, glGetProgramBinary); +GL_IMPORT(true, PFNGLPROGRAMBINARYPROC, glProgramBinary); +GL_IMPORT(true, PFNGLPROGRAMPARAMETERIPROC, glProgramParameteri); + +GL_IMPORT(true, PFNGLBLITFRAMEBUFFEREXTPROC, glBlitFramebufferEXT); + +GL_IMPORT(true, PFNGLQUERYCOUNTERPROC, glQueryCounter); +GL_IMPORT(true, PFNGLGETQUERYOBJECTI64VPROC, glGetQueryObjecti64v); +GL_IMPORT(true, PFNGLGETQUERYOBJECTUI64VPROC, glGetQueryObjectui64v); +GL_IMPORT(true, PFNGLGETQUERYOBJECTI64VEXTPROC, glGetQueryObjecti64vEXT); +GL_IMPORT(true, PFNGLGETQUERYOBJECTUI64VEXTPROC, glGetQueryObjectui64vEXT); + +GL_IMPORT(true, PFNGLSAMPLECOVERAGEARBPROC, glSampleCoverageARB); + +#if BGFX_CONFIG_DEBUG_GREMEDY +GL_IMPORT(true, PFNGLSTRINGMARKERGREMEDYPROC, glStringMarkerGREMEDY); +GL_IMPORT(true, PFNGLFRAMETERMINATORGREMEDYPROC, glFrameTerminatorGREMEDY); #endif // BGFX_CONFIG_DEBUG_GREMEDY #else diff --git a/src/renderer_gl.cpp b/src/renderer_gl.cpp index a9a301221..904c39966 100644 --- a/src/renderer_gl.cpp +++ b/src/renderer_gl.cpp @@ -20,6 +20,7 @@ namespace bgfx PFNWGLGETPROCADDRESSPROC wglGetProcAddress; PFNWGLMAKECURRENTPROC wglMakeCurrent; PFNWGLCREATECONTEXTPROC wglCreateContext; + PFNWGLDELETECONTEXTPROC wglDeleteContext; #endif // BX_PLATFORM_WINDOWS #define GL_IMPORT(_optional, _proto, _func) _proto _func @@ -132,6 +133,9 @@ namespace bgfx wglCreateContext = (PFNWGLCREATECONTEXTPROC)GetProcAddress(m_opengl32dll, "wglCreateContext"); BGFX_FATAL(NULL != wglCreateContext, bgfx::Fatal::OPENGL_UnableToCreateContext, "Failed get wglCreateContext."); + wglDeleteContext = (PFNWGLDELETECONTEXTPROC)GetProcAddress(m_opengl32dll, "wglDeleteContext"); + BGFX_FATAL(NULL != wglDeleteContext, bgfx::Fatal::OPENGL_UnableToCreateContext, "Failed get wglDeleteContext."); + m_hdc = GetDC(g_bgfxHwnd); BGFX_FATAL(NULL != m_hdc, bgfx::Fatal::OPENGL_UnableToCreateContext, "GetDC failed!"); @@ -347,6 +351,12 @@ namespace bgfx void shutdown() { #if BX_PLATFORM_WINDOWS + if (NULL != m_hdc) + { + wglMakeCurrent(NULL, NULL); + wglDeleteContext(m_context); + } + FreeLibrary(m_opengl32dll); #endif // BX_PLATFORM_WINDOWS } @@ -1288,6 +1298,7 @@ namespace bgfx m_width = _width; m_height = _height; +// m_msaa = s_msaa[(m_flags&BGFX_RENDER_TARGET_MSAA_MASK)>>BGFX_RENDER_TARGET_MSAA_SHIFT]; uint32_t colorFormat = (_flags&BGFX_RENDER_TARGET_COLOR_MASK)>>BGFX_RENDER_TARGET_COLOR_SHIFT; uint32_t depthFormat = (_flags&BGFX_RENDER_TARGET_DEPTH_MASK)>>BGFX_RENDER_TARGET_DEPTH_SHIFT; @@ -1311,7 +1322,7 @@ namespace bgfx { GL_CHECK(glFramebufferTexture2D(GL_FRAMEBUFFER , GL_COLOR_ATTACHMENT0 - , GL_TEXTURE_2D + , m_color.m_target , m_color.m_id , 0 ) ); @@ -1343,7 +1354,7 @@ namespace bgfx { GL_CHECK(glFramebufferTexture2D(GL_FRAMEBUFFER , GL_DEPTH_ATTACHMENT - , GL_TEXTURE_2D + , m_depth.m_target , m_depth.m_id , 0 ) ); @@ -2157,11 +2168,17 @@ namespace bgfx break; case BGFX_SAMPLER_RENDERTARGET_COLOR: - GL_CHECK(glBindTexture(GL_TEXTURE_2D, s_renderCtx.m_renderTargets[sampler.m_idx].m_color.m_id) ); + { + const RenderTarget& rt = s_renderCtx.m_renderTargets[sampler.m_idx]; + GL_CHECK(glBindTexture(rt.m_color.m_target, rt.m_color.m_id) ); + } break; case BGFX_SAMPLER_RENDERTARGET_DEPTH: - GL_CHECK(glBindTexture(GL_TEXTURE_2D, s_renderCtx.m_renderTargets[sampler.m_idx].m_depth.m_id) ); + { + const RenderTarget& rt = s_renderCtx.m_renderTargets[sampler.m_idx]; + GL_CHECK(glBindTexture(rt.m_depth.m_target, rt.m_depth.m_id) ); + } break; } } diff --git a/src/renderer_gl.h b/src/renderer_gl.h index 32d236fc8..a08f09bbd 100644 --- a/src/renderer_gl.h +++ b/src/renderer_gl.h @@ -65,8 +65,9 @@ typedef void (*PFNGLGETTRANSLATEDSHADERSOURCEANGLEPROC)(GLuint shader, GLsizei b #if BX_PLATFORM_WINDOWS typedef PROC (APIENTRYP PFNWGLGETPROCADDRESSPROC) (LPCSTR lpszProc); -typedef BOOL (APIENTRYP PFNWGLMAKECURRENTPROC) (HDC hDc, HGLRC newContext); -typedef HGLRC (APIENTRYP PFNWGLCREATECONTEXTPROC) (HDC hDc); +typedef BOOL (APIENTRYP PFNWGLMAKECURRENTPROC) (HDC hdc, HGLRC hglrc); +typedef HGLRC (APIENTRYP PFNWGLCREATECONTEXTPROC) (HDC hdc); +typedef BOOL (APIENTRYP PFNWGLDELETECONTEXTPROC) (HGLRC hglrc); // typedef GLenum (APIENTRYP PFNGLGETERRORPROC) (void); typedef void (APIENTRYP PFNGLREADPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);