| 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/GrGLExtensions.h" |
| 8 #include "gl/GrGLInterface.h" | 8 #include "gl/GrGLInterface.h" |
| 9 #include "gl/GrGLUtil.h" | 9 #include "gl/GrGLUtil.h" |
| 10 | 10 |
| (...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 183 functions->fGetRenderbufferParameteriv = glGetRenderbufferParameteriv; | 183 functions->fGetRenderbufferParameteriv = glGetRenderbufferParameteriv; |
| 184 functions->fRenderbufferStorage = glRenderbufferStorage; | 184 functions->fRenderbufferStorage = glRenderbufferStorage; |
| 185 #if GL_OES_mapbuffer | 185 #if GL_OES_mapbuffer |
| 186 functions->fMapBuffer = glMapBufferOES; | 186 functions->fMapBuffer = glMapBufferOES; |
| 187 functions->fUnmapBuffer = glUnmapBufferOES; | 187 functions->fUnmapBuffer = glUnmapBufferOES; |
| 188 #else | 188 #else |
| 189 functions->fMapBuffer = (GrGLMapBufferProc) eglGetProcAddress("glMapBufferOE
S"); | 189 functions->fMapBuffer = (GrGLMapBufferProc) eglGetProcAddress("glMapBufferOE
S"); |
| 190 functions->fUnmapBuffer = (GrGLUnmapBufferProc) eglGetProcAddress("glUnmapBu
fferOES"); | 190 functions->fUnmapBuffer = (GrGLUnmapBufferProc) eglGetProcAddress("glUnmapBu
fferOES"); |
| 191 #endif | 191 #endif |
| 192 | 192 |
| 193 if (extensions.has("GL_EXT_debug_marker")) { |
| 194 functions->fInsertEventMarker = (GrGLInsertEventMarkerProc) eglGetProcAd
dress("glInsertEventMarkerEXT"); |
| 195 functions->fPushGroupMarker = (GrGLInsertEventMarkerProc) eglGetProcAddr
ess("glPushGroupMarkerEXT"); |
| 196 functions->fPopGroupMarker = (GrGLPopGroupMarkerProc) eglGetProcAddress(
"glPopGropuMarkerEXT"); |
| 197 } |
| 198 |
| 193 return interface; | 199 return interface; |
| 194 } | 200 } |
| 195 | 201 |
| 196 static GrGLInterface* create_desktop_interface(GrGLVersion version, | 202 static GrGLInterface* create_desktop_interface(GrGLVersion version, |
| 197 const GrGLExtensions& extensions)
{ | 203 const GrGLExtensions& extensions)
{ |
| 198 // Currently this assumes a 4.4 context or later. Supporting lower GL versio
ns would require | 204 // Currently this assumes a 4.4 context or later. Supporting lower GL versio
ns would require |
| 199 // getting suffixed versions of pointers for supported extensions. | 205 // getting suffixed versions of pointers for supported extensions. |
| 200 if (version < GR_GL_VER(4,4)) { | 206 if (version < GR_GL_VER(4,4)) { |
| 201 return NULL; | 207 return NULL; |
| 202 } | 208 } |
| (...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 382 functions->fGetPathColorGeniv = (GrGLGetPathColorGenivProc) eglGetProcAd
dress("glGetPathColorGenivNV"); | 388 functions->fGetPathColorGeniv = (GrGLGetPathColorGenivProc) eglGetProcAd
dress("glGetPathColorGenivNV"); |
| 383 functions->fGetPathColorGenfv = (GrGLGetPathColorGenfvProc) eglGetProcAd
dress("glGetPathColorGenfvNV"); | 389 functions->fGetPathColorGenfv = (GrGLGetPathColorGenfvProc) eglGetProcAd
dress("glGetPathColorGenfvNV"); |
| 384 functions->fGetPathTexGeniv = (GrGLGetPathTexGenivProc) eglGetProcAddres
s("glGetPathTexGenivNV"); | 390 functions->fGetPathTexGeniv = (GrGLGetPathTexGenivProc) eglGetProcAddres
s("glGetPathTexGenivNV"); |
| 385 functions->fGetPathTexGenfv = (GrGLGetPathTexGenfvProc) eglGetProcAddres
s("glGetPathTexGenfvNV"); | 391 functions->fGetPathTexGenfv = (GrGLGetPathTexGenfvProc) eglGetProcAddres
s("glGetPathTexGenfvNV"); |
| 386 functions->fIsPointInFillPath = (GrGLIsPointInFillPathProc) eglGetProcAd
dress("glIsPointInFillPathNV"); | 392 functions->fIsPointInFillPath = (GrGLIsPointInFillPathProc) eglGetProcAd
dress("glIsPointInFillPathNV"); |
| 387 functions->fIsPointInStrokePath = (GrGLIsPointInStrokePathProc) eglGetPr
ocAddress("glIsPointInStrokePathNV"); | 393 functions->fIsPointInStrokePath = (GrGLIsPointInStrokePathProc) eglGetPr
ocAddress("glIsPointInStrokePathNV"); |
| 388 functions->fGetPathLength = (GrGLGetPathLengthProc) eglGetProcAddress("g
lGetPathLengthNV"); | 394 functions->fGetPathLength = (GrGLGetPathLengthProc) eglGetProcAddress("g
lGetPathLengthNV"); |
| 389 functions->fPointAlongPath = (GrGLPointAlongPathProc) eglGetProcAddress(
"glPointAlongPathNV"); | 395 functions->fPointAlongPath = (GrGLPointAlongPathProc) eglGetProcAddress(
"glPointAlongPathNV"); |
| 390 } | 396 } |
| 391 | 397 |
| 398 if (extensions.has("GL_EXT_debug_marker")) { |
| 399 functions->fInsertEventMarker = (GrGLInsertEventMarkerProc) eglGetProcAd
dress("glInsertEventMarkerEXT"); |
| 400 functions->fPushGroupMarker = (GrGLInsertEventMarkerProc) eglGetProcAddr
ess("glPushGroupMarkerEXT"); |
| 401 functions->fPopGroupMarker = (GrGLPopGroupMarkerProc) eglGetProcAddress(
"glPopGropuMarkerEXT"); |
| 402 } |
| 403 |
| 392 return interface; | 404 return interface; |
| 393 } | 405 } |
| 394 | 406 |
| 395 const GrGLInterface* GrGLCreateNativeInterface() { | 407 const GrGLInterface* GrGLCreateNativeInterface() { |
| 396 | 408 |
| 397 GrGLGetStringiProc getStringi = (GrGLGetStringiProc) eglGetProcAddress("glGe
tStringi"); | 409 GrGLGetStringiProc getStringi = (GrGLGetStringiProc) eglGetProcAddress("glGe
tStringi"); |
| 398 | 410 |
| 399 const char* verStr = reinterpret_cast<const char*>(glGetString(GR_GL_VERSION
)); | 411 const char* verStr = reinterpret_cast<const char*>(glGetString(GR_GL_VERSION
)); |
| 400 GrGLVersion version = GrGLGetVersionFromString(verStr); | 412 GrGLVersion version = GrGLGetVersionFromString(verStr); |
| 401 GrGLStandard standard = GrGLGetStandardInUseFromString(verStr); | 413 GrGLStandard standard = GrGLGetStandardInUseFromString(verStr); |
| 402 | 414 |
| 403 GrGLExtensions extensions; | 415 GrGLExtensions extensions; |
| 404 if (!extensions.init(standard, glGetString, getStringi, glGetIntegerv)) { | 416 if (!extensions.init(standard, glGetString, getStringi, glGetIntegerv)) { |
| 405 return NULL; | 417 return NULL; |
| 406 } | 418 } |
| 407 | 419 |
| 408 GrGLInterface* interface = NULL; | 420 GrGLInterface* interface = NULL; |
| 409 if (kGLES_GrGLStandard == standard) { | 421 if (kGLES_GrGLStandard == standard) { |
| 410 interface = create_es_interface(version, extensions); | 422 interface = create_es_interface(version, extensions); |
| 411 } else if (kGL_GrGLStandard == standard) { | 423 } else if (kGL_GrGLStandard == standard) { |
| 412 interface = create_desktop_interface(version, extensions); | 424 interface = create_desktop_interface(version, extensions); |
| 413 } | 425 } |
| 414 | 426 |
| 415 if (NULL != interface) { | 427 if (NULL != interface) { |
| 416 interface->fExtensions.swap(&extensions); | 428 interface->fExtensions.swap(&extensions); |
| 417 } | 429 } |
| 418 | 430 |
| 419 return interface; | 431 return interface; |
| 420 } | 432 } |
| OLD | NEW |