Add macro to decide GrGLStandard
This allows us to remove certain interfaces at compile time.
This replaces most (all?) of the cases where it was
if (gl) else [implicit gles] to be explicitly
if (gl) else if (gles)
in preparation for adding a WebGL standard.
For consistency, I tried to check first for GL, then for
GLES, which involved re-arranging a few if blocks.
PS 3 removes about 1.2KB (0.4 KB gzipped) from CanvasKit by
removing the GrGLInterface related checks from
GrGlInterface::validate()
PS 8 removes a total of 6.0 KB (2.6 KB gzipped) from
GrGlInterface::validate() and GrGlCaps::*
Bug: skia:8378
Change-Id: Ia91b732d888907f5d94b0eac8ca023084999fa7e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/201604
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
diff --git a/src/gpu/gl/GrGLGLSL.cpp b/src/gpu/gl/GrGLGLSL.cpp
index 4050d36..02dcc3f 100644
--- a/src/gpu/gl/GrGLGLSL.cpp
+++ b/src/gpu/gl/GrGLGLSL.cpp
@@ -14,39 +14,37 @@
if (GR_GLSL_INVALID_VER == ver) {
return false;
}
- switch (gl->fStandard) {
- case kGL_GrGLStandard:
- SkASSERT(ver >= GR_GLSL_VER(1,10));
- if (ver >= GR_GLSL_VER(4,20)) {
- *generation = k420_GrGLSLGeneration;
- } else if (ver >= GR_GLSL_VER(4,00)) {
- *generation = k400_GrGLSLGeneration;
- } else if (ver >= GR_GLSL_VER(3,30)) {
- *generation = k330_GrGLSLGeneration;
- } else if (ver >= GR_GLSL_VER(1,50)) {
- *generation = k150_GrGLSLGeneration;
- } else if (ver >= GR_GLSL_VER(1,40)) {
- *generation = k140_GrGLSLGeneration;
- } else if (ver >= GR_GLSL_VER(1,30)) {
- *generation = k130_GrGLSLGeneration;
- } else {
- *generation = k110_GrGLSLGeneration;
- }
- return true;
- case kGLES_GrGLStandard:
- SkASSERT(ver >= GR_GL_VER(1,00));
- if (ver >= GR_GLSL_VER(3,20)) {
- *generation = k320es_GrGLSLGeneration;
- } else if (ver >= GR_GLSL_VER(3,10)) {
- *generation = k310es_GrGLSLGeneration;
- } else if (ver >= GR_GLSL_VER(3,00)) {
- *generation = k330_GrGLSLGeneration;
- } else {
- *generation = k110_GrGLSLGeneration;
- }
- return true;
- default:
- SK_ABORT("Unknown GL Standard");
- return false;
+ if (GR_IS_GR_GL(gl->fStandard)) {
+ SkASSERT(ver >= GR_GLSL_VER(1,10));
+ if (ver >= GR_GLSL_VER(4,20)) {
+ *generation = k420_GrGLSLGeneration;
+ } else if (ver >= GR_GLSL_VER(4,00)) {
+ *generation = k400_GrGLSLGeneration;
+ } else if (ver >= GR_GLSL_VER(3,30)) {
+ *generation = k330_GrGLSLGeneration;
+ } else if (ver >= GR_GLSL_VER(1,50)) {
+ *generation = k150_GrGLSLGeneration;
+ } else if (ver >= GR_GLSL_VER(1,40)) {
+ *generation = k140_GrGLSLGeneration;
+ } else if (ver >= GR_GLSL_VER(1,30)) {
+ *generation = k130_GrGLSLGeneration;
+ } else {
+ *generation = k110_GrGLSLGeneration;
+ }
+ return true;
+ } else if (GR_IS_GR_GL_ES(gl->fStandard)) {
+ SkASSERT(ver >= GR_GL_VER(1,00));
+ if (ver >= GR_GLSL_VER(3,20)) {
+ *generation = k320es_GrGLSLGeneration;
+ } else if (ver >= GR_GLSL_VER(3,10)) {
+ *generation = k310es_GrGLSLGeneration;
+ } else if (ver >= GR_GLSL_VER(3,00)) {
+ *generation = k330_GrGLSLGeneration;
+ } else {
+ *generation = k110_GrGLSLGeneration;
+ }
+ return true;
}
+ SK_ABORT("Unknown GL Standard");
+ return false;
}