diff options
Diffstat (limited to 'gpu/src/win/GrGLDefaultInterface_win.cpp')
-rw-r--r-- | gpu/src/win/GrGLDefaultInterface_win.cpp | 191 |
1 files changed, 0 insertions, 191 deletions
diff --git a/gpu/src/win/GrGLDefaultInterface_win.cpp b/gpu/src/win/GrGLDefaultInterface_win.cpp deleted file mode 100644 index 428abb1..0000000 --- a/gpu/src/win/GrGLDefaultInterface_win.cpp +++ /dev/null @@ -1,191 +0,0 @@ -/* - Copyright 2011 Google Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#include "GrGLInterface.h" - -#include <Windows.h> -#include <GL/GL.h> - -/* - * Windows makes the GL funcs all be __stdcall instead of __cdecl :( - * This implementation will only work if GR_GL_FUNCTION_TYPE is __stdcall. - * Otherwise, a springboard would be needed that hides the calling convention. - */ - -#define GR_GL_GET_PROC(F) gDefaultInterface.f ## F = (GrGL ## F ## Proc) wglGetProcAddress("gl" #F); -#define GR_GL_GET_PROC_SUFFIX(F, S) gDefaultInterface.f ## F = (GrGL ## F ## Proc) wglGetProcAddress("gl" #F #S); - -void GrGLSetDefaultGLInterface() { - static GrGLInterface gDefaultInterface; - static bool gDefaultInterfaceInit; - if (!gDefaultInterfaceInit) { - - // wglGetProcAddress requires a context. - if (NULL != wglGetCurrentContext()) { - int major, minor; - const char* versionString = (const char*) glGetString(GL_VERSION); - const char* extString = (const char*) glGetString(GL_EXTENSIONS); - gl_version_from_string(&major, &minor, versionString); - - if (major == 1 && minor < 5) { - // We must have array and element_array buffer objects. - return; - } - - // Functions that are part of GL 1.1 will return NULL in - // wglGetProcAddress - gDefaultInterface.fBlendFunc = glBlendFunc; - gDefaultInterface.fClear = glClear; - gDefaultInterface.fClearColor = glClearColor; - gDefaultInterface.fClearStencil = glClearStencil; - gDefaultInterface.fColor4ub = glColor4ub; - gDefaultInterface.fColorMask = glColorMask; - gDefaultInterface.fColorPointer = glColorPointer; - gDefaultInterface.fCullFace = glCullFace; - gDefaultInterface.fDeleteTextures = glDeleteTextures; - gDefaultInterface.fDepthMask = glDepthMask; - gDefaultInterface.fDisable = glDisable; - gDefaultInterface.fDisableClientState = glDisableClientState; - gDefaultInterface.fDrawArrays = glDrawArrays; - gDefaultInterface.fDrawElements = glDrawElements; - gDefaultInterface.fEnable = glEnable; - gDefaultInterface.fEnableClientState = glEnableClientState; - gDefaultInterface.fFrontFace = glFrontFace; - gDefaultInterface.fGenTextures = glGenTextures; - gDefaultInterface.fGetError = glGetError; - gDefaultInterface.fGetIntegerv = glGetIntegerv; - gDefaultInterface.fGetString = glGetString; - gDefaultInterface.fLineWidth = glLineWidth; - gDefaultInterface.fLoadMatrixf = glLoadMatrixf; - gDefaultInterface.fMatrixMode = glMatrixMode; - gDefaultInterface.fPixelStorei = glPixelStorei; - gDefaultInterface.fPointSize = glPointSize; - gDefaultInterface.fReadPixels = glReadPixels; - gDefaultInterface.fScissor = glScissor; - gDefaultInterface.fShadeModel = glShadeModel; - gDefaultInterface.fStencilFunc = glStencilFunc; - gDefaultInterface.fStencilMask = glStencilMask; - gDefaultInterface.fStencilOp = glStencilOp; - gDefaultInterface.fTexImage2D = glTexImage2D; - gDefaultInterface.fTexParameteri = glTexParameteri; - gDefaultInterface.fTexCoordPointer = glTexCoordPointer; - gDefaultInterface.fTexEnvi = glTexEnvi; - gDefaultInterface.fTexSubImage2D = glTexSubImage2D; - gDefaultInterface.fViewport = glViewport; - gDefaultInterface.fVertexPointer = glVertexPointer; - - GR_GL_GET_PROC(ActiveTexture); - GR_GL_GET_PROC(AttachShader); - GR_GL_GET_PROC(BindAttribLocation); - GR_GL_GET_PROC(BindBuffer); - GR_GL_GET_PROC(BindTexture); - GR_GL_GET_PROC(BlendColor); - GR_GL_GET_PROC(BufferData); - GR_GL_GET_PROC(BufferSubData); - GR_GL_GET_PROC(ClientActiveTexture); - GR_GL_GET_PROC(CompileShader); - GR_GL_GET_PROC(CompressedTexImage2D); - GR_GL_GET_PROC(CreateProgram); - GR_GL_GET_PROC(CreateShader); - GR_GL_GET_PROC(DeleteBuffers); - GR_GL_GET_PROC(DeleteProgram); - GR_GL_GET_PROC(DeleteShader); - GR_GL_GET_PROC(DisableVertexAttribArray); - GR_GL_GET_PROC(EnableVertexAttribArray); - GR_GL_GET_PROC(GenBuffers); - GR_GL_GET_PROC(GetBufferParameteriv); - GR_GL_GET_PROC(GetProgramInfoLog); - GR_GL_GET_PROC(GetProgramiv); - GR_GL_GET_PROC(GetShaderInfoLog); - GR_GL_GET_PROC(GetShaderiv); - GR_GL_GET_PROC(GetUniformLocation); - GR_GL_GET_PROC(LinkProgram); - GR_GL_GET_PROC(ShaderSource); - GR_GL_GET_PROC(StencilFuncSeparate); - GR_GL_GET_PROC(StencilMaskSeparate); - GR_GL_GET_PROC(StencilOpSeparate); - GR_GL_GET_PROC(Uniform1f); - GR_GL_GET_PROC(Uniform1i); - GR_GL_GET_PROC(Uniform1fv); - GR_GL_GET_PROC(Uniform1iv); - GR_GL_GET_PROC(Uniform2f); - GR_GL_GET_PROC(Uniform2i); - GR_GL_GET_PROC(Uniform2fv); - GR_GL_GET_PROC(Uniform2iv); - GR_GL_GET_PROC(Uniform3f); - GR_GL_GET_PROC(Uniform3i); - GR_GL_GET_PROC(Uniform3fv); - GR_GL_GET_PROC(Uniform3iv); - GR_GL_GET_PROC(Uniform4f); - GR_GL_GET_PROC(Uniform4i); - GR_GL_GET_PROC(Uniform4fv); - GR_GL_GET_PROC(Uniform4iv); - GR_GL_GET_PROC(UniformMatrix2fv); - GR_GL_GET_PROC(UniformMatrix3fv); - GR_GL_GET_PROC(UniformMatrix4fv); - GR_GL_GET_PROC(UseProgram); - GR_GL_GET_PROC(VertexAttrib4fv); - GR_GL_GET_PROC(VertexAttribPointer); - GR_GL_GET_PROC(BindFragDataLocationIndexed); - - // First look for GL3.0 FBO or GL_ARB_framebuffer_object (same since - // GL_ARB_framebuffer_object doesn't use ARB suffix.) - if (major >= 3 || has_gl_extension_from_string("GL_ARB_framebuffer_object", extString)) { - GR_GL_GET_PROC(GenFramebuffers); - GR_GL_GET_PROC(BindFramebuffer); - GR_GL_GET_PROC(FramebufferTexture2D); - GR_GL_GET_PROC(CheckFramebufferStatus); - GR_GL_GET_PROC(DeleteFramebuffers); - GR_GL_GET_PROC(RenderbufferStorage); - GR_GL_GET_PROC(GenRenderbuffers); - GR_GL_GET_PROC(DeleteRenderbuffers); - GR_GL_GET_PROC(FramebufferRenderbuffer); - GR_GL_GET_PROC(BindRenderbuffer); - GR_GL_GET_PROC(RenderbufferStorageMultisample); - GR_GL_GET_PROC(BlitFramebuffer); - } else if (has_gl_extension_from_string("GL_EXT_framebuffer_object", extString)) { - GR_GL_GET_PROC_SUFFIX(GenFramebuffers, EXT); - GR_GL_GET_PROC_SUFFIX(BindFramebuffer, EXT); - GR_GL_GET_PROC_SUFFIX(FramebufferTexture2D, EXT); - GR_GL_GET_PROC_SUFFIX(CheckFramebufferStatus, EXT); - GR_GL_GET_PROC_SUFFIX(DeleteFramebuffers, EXT); - GR_GL_GET_PROC_SUFFIX(RenderbufferStorage, EXT); - GR_GL_GET_PROC_SUFFIX(GenRenderbuffers, EXT); - GR_GL_GET_PROC_SUFFIX(DeleteRenderbuffers, EXT); - GR_GL_GET_PROC_SUFFIX(FramebufferRenderbuffer, EXT); - GR_GL_GET_PROC_SUFFIX(BindRenderbuffer, EXT); - if (has_gl_extension_from_string("GL_EXT_framebuffer_multisample", extString)) { - GR_GL_GET_PROC_SUFFIX(RenderbufferStorageMultisample, EXT); - } - if (has_gl_extension_from_string("GL_EXT_framebuffer_blit", extString)) { - GR_GL_GET_PROC_SUFFIX(BlitFramebuffer, EXT); - } - } else { - // we must have FBOs - return; - } - GR_GL_GET_PROC(MapBuffer); - GR_GL_GET_PROC(UnmapBuffer); - - gDefaultInterface.fBindingsExported = kDesktop_GrGLBinding; - - gDefaultInterfaceInit = true; - } - } - if (gDefaultInterfaceInit) { - GrGLSetGLInterface(&gDefaultInterface); - } -} |