| OLD | NEW |
| 1 // Modified from chromium/src/webkit/glue/gl_bindings_skia_cmd_buffer.cc | 1 // Modified from chromium/src/webkit/glue/gl_bindings_skia_cmd_buffer.cc |
| 2 | 2 |
| 3 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 3 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 4 // Use of this source code is governed by a BSD-style license that can be | 4 // Use of this source code is governed by a BSD-style license that can be |
| 5 // found in the LICENSE file. | 5 // found in the LICENSE file. |
| 6 | 6 |
| 7 #include "gl/GrGLExtensions.h" |
| 7 #include "gl/GrGLInterface.h" | 8 #include "gl/GrGLInterface.h" |
| 8 | 9 |
| 9 #ifndef GL_GLEXT_PROTOTYPES | 10 #ifndef GL_GLEXT_PROTOTYPES |
| 10 #define GL_GLEXT_PROTOTYPES | 11 #define GL_GLEXT_PROTOTYPES |
| 11 #endif | 12 #endif |
| 12 | 13 |
| 13 #include <GLES2/gl2.h> | 14 #include <GLES2/gl2.h> |
| 14 #include <GLES2/gl2ext.h> | 15 #include <GLES2/gl2ext.h> |
| 15 | 16 |
| 16 #include <EGL/egl.h> | 17 #include <EGL/egl.h> |
| 17 | 18 |
| 18 const GrGLInterface* GrGLCreateNativeInterface() { | 19 const GrGLInterface* GrGLCreateNativeInterface() { |
| 19 static SkAutoTUnref<GrGLInterface> glInterface; | 20 static SkAutoTUnref<GrGLInterface> glInterface; |
| 20 if (!glInterface.get()) { | 21 if (!glInterface.get()) { |
| 22 GrGLExtensions extensions; |
| 23 if (!extensions.init(kES2_GrGLBinding, glGetString, NULL, glGetIntegerv)
) { |
| 24 return NULL; |
| 25 } |
| 21 GrGLInterface* interface = new GrGLInterface; | 26 GrGLInterface* interface = new GrGLInterface; |
| 22 glInterface.reset(interface); | 27 glInterface.reset(interface); |
| 23 interface->fBindingsExported = kES2_GrGLBinding; | 28 interface->fBindingsExported = kES2_GrGLBinding; |
| 24 interface->fActiveTexture = glActiveTexture; | 29 interface->fActiveTexture = glActiveTexture; |
| 25 interface->fAttachShader = glAttachShader; | 30 interface->fAttachShader = glAttachShader; |
| 26 interface->fBindAttribLocation = glBindAttribLocation; | 31 interface->fBindAttribLocation = glBindAttribLocation; |
| 27 interface->fBindBuffer = glBindBuffer; | 32 interface->fBindBuffer = glBindBuffer; |
| 28 interface->fBindTexture = glBindTexture; | 33 interface->fBindTexture = glBindTexture; |
| 29 interface->fBindVertexArray = glBindVertexArrayOES; | 34 interface->fBindVertexArray = glBindVertexArrayOES; |
| 30 interface->fBlendColor = glBlendColor; | 35 interface->fBlendColor = glBlendColor; |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 121 interface->fVertexAttrib4fv = glVertexAttrib4fv; | 126 interface->fVertexAttrib4fv = glVertexAttrib4fv; |
| 122 interface->fVertexAttribPointer = glVertexAttribPointer; | 127 interface->fVertexAttribPointer = glVertexAttribPointer; |
| 123 interface->fViewport = glViewport; | 128 interface->fViewport = glViewport; |
| 124 interface->fBindFramebuffer = glBindFramebuffer; | 129 interface->fBindFramebuffer = glBindFramebuffer; |
| 125 interface->fBindRenderbuffer = glBindRenderbuffer; | 130 interface->fBindRenderbuffer = glBindRenderbuffer; |
| 126 interface->fCheckFramebufferStatus = glCheckFramebufferStatus; | 131 interface->fCheckFramebufferStatus = glCheckFramebufferStatus; |
| 127 interface->fDeleteFramebuffers = glDeleteFramebuffers; | 132 interface->fDeleteFramebuffers = glDeleteFramebuffers; |
| 128 interface->fDeleteRenderbuffers = glDeleteRenderbuffers; | 133 interface->fDeleteRenderbuffers = glDeleteRenderbuffers; |
| 129 interface->fFramebufferRenderbuffer = glFramebufferRenderbuffer; | 134 interface->fFramebufferRenderbuffer = glFramebufferRenderbuffer; |
| 130 interface->fFramebufferTexture2D = glFramebufferTexture2D; | 135 interface->fFramebufferTexture2D = glFramebufferTexture2D; |
| 136 if (extensions.has("GL_EXT_multisampled_render_to_texture")) { |
| 137 #if GL_EXT_multisampled_render_to_texture |
| 138 interface->fFramebufferTexture2DMultisample = glFramebufferTexture2D
MultisampleEXT; |
| 139 interface->fRenderbufferStorageMultisample = glRenderbufferStorageMu
ltisampleEXT; |
| 140 #else |
| 141 interface->fFramebufferTexture2DMultisample = (GrGLFramebufferTextur
e2DMultisampleProc) eglGetProcAddress("glFramebufferTexture2DMultisampleEXT"); |
| 142 interface->fRenderbufferStorageMultisample = (GrGLRenderbufferStorag
eMultisampleProc) eglGetProcAddress("glRenderbufferStorageMultisampleEXT"); |
| 143 #endif |
| 144 } else if (extensions.has("GL_IMG_multisampled_render_to_texture")) { |
| 131 #if GL_IMG_multisampled_render_to_texture | 145 #if GL_IMG_multisampled_render_to_texture |
| 132 interface->fFramebufferTexture2DMultisample = glFramebufferTexture2DMult
isampleIMG; | 146 interface->fFramebufferTexture2DMultisample = glFramebufferTexture2D
MultisampleIMG; |
| 133 interface->fRenderbufferStorageMultisample = glRenderbufferStorageMultis
ampleIMG; | 147 interface->fRenderbufferStorageMultisample = glRenderbufferStorageMu
ltisampleIMG; |
| 148 #else |
| 149 interface->fFramebufferTexture2DMultisample = (GrGLFramebufferTextur
e2DMultisampleProc) eglGetProcAddress("glFramebufferTexture2DMultisampleIMG"); |
| 150 interface->fRenderbufferStorageMultisample = (GrGLRenderbufferStorag
eMultisampleProc) eglGetProcAddress("glRenderbufferStorageMultisampleIMG"); |
| 134 #endif | 151 #endif |
| 152 } |
| 135 interface->fGenFramebuffers = glGenFramebuffers; | 153 interface->fGenFramebuffers = glGenFramebuffers; |
| 136 interface->fGenRenderbuffers = glGenRenderbuffers; | 154 interface->fGenRenderbuffers = glGenRenderbuffers; |
| 137 interface->fGetFramebufferAttachmentParameteriv = glGetFramebufferAttach
mentParameteriv; | 155 interface->fGetFramebufferAttachmentParameteriv = glGetFramebufferAttach
mentParameteriv; |
| 138 interface->fGetRenderbufferParameteriv = glGetRenderbufferParameteriv; | 156 interface->fGetRenderbufferParameteriv = glGetRenderbufferParameteriv; |
| 139 interface->fRenderbufferStorage = glRenderbufferStorage; | 157 interface->fRenderbufferStorage = glRenderbufferStorage; |
| 140 #if GL_OES_mapbuffer | 158 #if GL_OES_mapbuffer |
| 141 interface->fMapBuffer = glMapBufferOES; | 159 interface->fMapBuffer = glMapBufferOES; |
| 142 interface->fUnmapBuffer = glUnmapBufferOES; | 160 interface->fUnmapBuffer = glUnmapBufferOES; |
| 143 #else | 161 #else |
| 144 interface->fMapBuffer = (GrGLMapBufferProc) eglGetProcAddress("glMapBuff
erOES"); | 162 interface->fMapBuffer = (GrGLMapBufferProc) eglGetProcAddress("glMapBuff
erOES"); |
| 145 interface->fUnmapBuffer = (GrGLUnmapBufferProc) eglGetProcAddress("glUnm
apBufferOES"); | 163 interface->fUnmapBuffer = (GrGLUnmapBufferProc) eglGetProcAddress("glUnm
apBufferOES"); |
| 146 #endif | 164 #endif |
| 147 } | 165 } |
| 148 glInterface.get()->ref(); | 166 glInterface.get()->ref(); |
| 149 return glInterface.get(); | 167 return glInterface.get(); |
| 150 } | 168 } |
| OLD | NEW |