Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(554)

Side by Side Diff: src/gpu/gl/android/GrGLCreateNativeInterface_android.cpp

Issue 217503003: Add GL_ARB_invalidate_subdata functions to GrGLInterface. (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Fix compilation issues Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 185 matching lines...) Expand 10 before | Expand all | Expand 10 after
196 functions->fPopGroupMarker = (GrGLPopGroupMarkerProc) eglGetProcAddress( "glPopGroupMarker"); 196 functions->fPopGroupMarker = (GrGLPopGroupMarkerProc) eglGetProcAddress( "glPopGroupMarker");
197 // The below check is here because a device has been found that has the extension string but 197 // The below check is here because a device has been found that has the extension string but
198 // returns NULL from the eglGetProcAddress for the functions 198 // returns NULL from the eglGetProcAddress for the functions
199 if (NULL == functions->fInsertEventMarker || 199 if (NULL == functions->fInsertEventMarker ||
200 NULL == functions->fPushGroupMarker || 200 NULL == functions->fPushGroupMarker ||
201 NULL == functions->fPopGroupMarker) { 201 NULL == functions->fPopGroupMarker) {
202 extensions->remove("GL_EXT_debug_marker"); 202 extensions->remove("GL_EXT_debug_marker");
203 } 203 }
204 } 204 }
205 205
206 #if GL_ES_VERSION_3_0
207 functions->fInvalidateFramebuffer = glInvalidateFramebuffer;
208 functions->fInvalidateSubFramebuffer = glInvalidateSubFramebuffer;
209 #else
210 functions->fInvalidateFramebuffer = (GrGLInvalidateFramebufferProc) eglGetPr ocAddress("glInvalidateFramebuffer");
211 functions->fInvalidateSubFramebuffer = (GrGLInvalidateSubFramebufferProc) eg lGetProcAddress("glInvalidateSubFramebuffer");
212 #endif
213 functions->fInvalidateBufferData = (GrGLInvalidateBufferDataProc) eglGetProc Address("glInvalidateBufferData");
214 functions->fInvalidateBufferSubData = (GrGLInvalidateBufferSubDataProc) eglG etProcAddress("glInvalidateBufferSubData");
215 functions->fInvalidateTexImage = (GrGLInvalidateTexImageProc) eglGetProcAddr ess("glInvalidateTexImage");
216 functions->fInvalidateTexSubImage = (GrGLInvalidateTexSubImageProc) eglGetPr ocAddress("glInvalidateTexSubImage");
217
206 return interface; 218 return interface;
207 } 219 }
208 220
209 static GrGLInterface* create_desktop_interface(GrGLVersion version, 221 static GrGLInterface* create_desktop_interface(GrGLVersion version,
210 const GrGLExtensions& extensions) { 222 const GrGLExtensions& extensions) {
211 // Currently this assumes a 4.4 context or later. Supporting lower GL versio ns would require 223 // Currently this assumes a 4.4 context or later. Supporting lower GL versio ns would require
212 // getting suffixed versions of pointers for supported extensions. 224 // getting suffixed versions of pointers for supported extensions.
213 if (version < GR_GL_VER(4,4)) { 225 if (version < GR_GL_VER(4,4)) {
214 return NULL; 226 return NULL;
215 } 227 }
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
396 functions->fGetPathLength = (GrGLGetPathLengthProc) eglGetProcAddress("g lGetPathLengthNV"); 408 functions->fGetPathLength = (GrGLGetPathLengthProc) eglGetProcAddress("g lGetPathLengthNV");
397 functions->fPointAlongPath = (GrGLPointAlongPathProc) eglGetProcAddress( "glPointAlongPathNV"); 409 functions->fPointAlongPath = (GrGLPointAlongPathProc) eglGetProcAddress( "glPointAlongPathNV");
398 } 410 }
399 411
400 if (extensions.has("GL_EXT_debug_marker")) { 412 if (extensions.has("GL_EXT_debug_marker")) {
401 functions->fInsertEventMarker = (GrGLInsertEventMarkerProc) eglGetProcAd dress("glInsertEventMarkerEXT"); 413 functions->fInsertEventMarker = (GrGLInsertEventMarkerProc) eglGetProcAd dress("glInsertEventMarkerEXT");
402 functions->fPushGroupMarker = (GrGLInsertEventMarkerProc) eglGetProcAddr ess("glPushGroupMarkerEXT"); 414 functions->fPushGroupMarker = (GrGLInsertEventMarkerProc) eglGetProcAddr ess("glPushGroupMarkerEXT");
403 functions->fPopGroupMarker = (GrGLPopGroupMarkerProc) eglGetProcAddress( "glPopGroupMarkerEXT"); 415 functions->fPopGroupMarker = (GrGLPopGroupMarkerProc) eglGetProcAddress( "glPopGroupMarkerEXT");
404 } 416 }
405 417
418 functions->fInvalidateBufferData = (GrGLInvalidateBufferDataProc) eglGetProc Address("glInvalidateBufferData");
419 functions->fInvalidateBufferSubData = (GrGLInvalidateBufferSubDataProc) eglG etProcAddress("glInvalidateBufferSubData");
420 functions->fInvalidateFramebuffer = (GrGLInvalidateFramebufferProc) eglGetPr ocAddress("glInvalidateFramebuffer");
421 functions->fInvalidateSubFramebuffer = (GrGLInvalidateSubFramebufferProc) eg lGetProcAddress("glInvalidateSubFramebuffer");
422 functions->fInvalidateTexImage = (GrGLInvalidateTexImageProc) eglGetProcAddr ess("glInvalidateTexImage");
423 functions->fInvalidateTexSubImage = (GrGLInvalidateTexSubImageProc) eglGetPr ocAddress("glInvalidateTexSubImage");
424
406 return interface; 425 return interface;
407 } 426 }
408 427
409 const GrGLInterface* GrGLCreateNativeInterface() { 428 const GrGLInterface* GrGLCreateNativeInterface() {
410 429
411 GrGLGetStringiProc getStringi = (GrGLGetStringiProc) eglGetProcAddress("glGe tStringi"); 430 GrGLGetStringiProc getStringi = (GrGLGetStringiProc) eglGetProcAddress("glGe tStringi");
412 431
413 const char* verStr = reinterpret_cast<const char*>(glGetString(GR_GL_VERSION )); 432 const char* verStr = reinterpret_cast<const char*>(glGetString(GR_GL_VERSION ));
414 GrGLVersion version = GrGLGetVersionFromString(verStr); 433 GrGLVersion version = GrGLGetVersionFromString(verStr);
415 GrGLStandard standard = GrGLGetStandardInUseFromString(verStr); 434 GrGLStandard standard = GrGLGetStandardInUseFromString(verStr);
416 435
417 GrGLExtensions extensions; 436 GrGLExtensions extensions;
418 if (!extensions.init(standard, glGetString, getStringi, glGetIntegerv)) { 437 if (!extensions.init(standard, glGetString, getStringi, glGetIntegerv)) {
419 return NULL; 438 return NULL;
420 } 439 }
421 440
422 GrGLInterface* interface = NULL; 441 GrGLInterface* interface = NULL;
423 if (kGLES_GrGLStandard == standard) { 442 if (kGLES_GrGLStandard == standard) {
424 interface = create_es_interface(version, &extensions); 443 interface = create_es_interface(version, &extensions);
425 } else if (kGL_GrGLStandard == standard) { 444 } else if (kGL_GrGLStandard == standard) {
426 interface = create_desktop_interface(version, extensions); 445 interface = create_desktop_interface(version, extensions);
427 } 446 }
428 447
429 if (NULL != interface) { 448 if (NULL != interface) {
430 interface->fExtensions.swap(&extensions); 449 interface->fExtensions.swap(&extensions);
431 } 450 }
432 451
433 return interface; 452 return interface;
434 } 453 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698