[Cogl] [PATCH] pipeline: tidy up definition of *END defines

Robert Bragg robert at sixbynine.org
Tue Sep 25 13:18:51 PDT 2012


From: Robert Bragg <robert at linux.intel.com>

There is some fairly awkward #ifdefing to determine which vertends,
fragends and progends are available at build time. This patch
consolidates the #ifdefing of vertend, fragend and progend defines to
make for slightly easier reading.
---
 cogl/cogl-pipeline-private.h |   79 ++++++++++++------------------------------
 1 files changed, 22 insertions(+), 57 deletions(-)

diff --git a/cogl/cogl-pipeline-private.h b/cogl/cogl-pipeline-private.h
index 2c2d633..3fc4e51 100644
--- a/cogl/cogl-pipeline-private.h
+++ b/cogl/cogl-pipeline-private.h
@@ -45,6 +45,14 @@
 
 #ifdef HAVE_COGL_GL
 
+#define COGL_PIPELINE_PROGEND_FIXED       0
+#define COGL_PIPELINE_PROGEND_GLSL        1
+#define COGL_PIPELINE_N_PROGENDS          2
+
+#define COGL_PIPELINE_VERTEND_FIXED 0
+#define COGL_PIPELINE_VERTEND_GLSL  1
+#define COGL_PIPELINE_N_VERTENDS    2
+
 #define COGL_PIPELINE_FRAGEND_ARBFP 0
 #define COGL_PIPELINE_FRAGEND_FIXED 1
 #define COGL_PIPELINE_FRAGEND_GLSL  2
@@ -54,18 +62,32 @@
 
 #ifdef HAVE_COGL_GLES2
 
+#define COGL_PIPELINE_PROGEND_GLSL 0
+#define COGL_PIPELINE_VERTEND_GLSL 0
 #define COGL_PIPELINE_FRAGEND_GLSL 0
+
 #ifdef HAVE_COGL_GLES
+#define COGL_PIPELINE_PROGEND_FIXED 1
+#define COGL_PIPELINE_VERTEND_FIXED 1
 #define COGL_PIPELINE_FRAGEND_FIXED 1
+
+#define COGL_PIPELINE_N_PROGENDS    2
+#define COGL_PIPELINE_N_VERTENDS    2
 #define COGL_PIPELINE_N_FRAGENDS    2
 #else
+#define COGL_PIPELINE_N_PROGENDS    1
+#define COGL_PIPELINE_N_VERTENDS    1
 #define COGL_PIPELINE_N_FRAGENDS    1
 #endif
 
 #else /* HAVE_COGL_GLES2 */
 
 #ifdef HAVE_COGL_GLES
+#define COGL_PIPELINE_PROGEND_FIXED 0
+#define COGL_PIPELINE_VERTEND_FIXED 0
 #define COGL_PIPELINE_FRAGEND_FIXED 0
+#define COGL_PIPELINE_N_PROGENDS    1
+#define COGL_PIPELINE_N_VERTENDS    1
 #define COGL_PIPELINE_N_FRAGENDS    1
 #else
 #error No drivers defined
@@ -78,66 +100,9 @@
 #define COGL_PIPELINE_FRAGEND_DEFAULT    0
 #define COGL_PIPELINE_FRAGEND_UNDEFINED  3
 
-#ifdef HAVE_COGL_GL
-
-#define COGL_PIPELINE_VERTEND_FIXED 0
-#define COGL_PIPELINE_VERTEND_GLSL  1
-#define COGL_PIPELINE_N_VERTENDS    2
-
-#else /* HAVE_COGL_GL */
-
-#ifdef HAVE_COGL_GLES2
-
-#define COGL_PIPELINE_VERTEND_GLSL  0
-#ifdef HAVE_COGL_GLES
-#define COGL_PIPELINE_VERTEND_FIXED 1
-#define COGL_PIPELINE_N_VERTENDS    2
-#else
-#define COGL_PIPELINE_N_VERTENDS    1
-#endif
-
-#else /* HAVE_COGL_GLES2 */
-
-#ifdef HAVE_COGL_GLES
-#define COGL_PIPELINE_VERTEND_FIXED 0
-#define COGL_PIPELINE_N_VERTENDS    1
-#else
-#error No drivers defined
-#endif /* HAVE_COGL_GLES */
-
-#endif /* HAVE_COGL_GLES2 */
-
-#endif /* HAVE_COGL_GL */
-
 #define COGL_PIPELINE_VERTEND_DEFAULT    0
 #define COGL_PIPELINE_VERTEND_UNDEFINED  3
 
-/* If we have either of the GLSL backends then we also need a GLSL
-   progend to combine the shaders generated into a single
-   program. Same goes for the fixed progends which are used to flush
-   the matrices */
-#ifdef COGL_PIPELINE_FRAGEND_FIXED
-
-#define COGL_PIPELINE_PROGEND_FIXED      0
-
-#ifdef COGL_PIPELINE_FRAGEND_GLSL
-#define COGL_PIPELINE_PROGEND_GLSL       1
-#define COGL_PIPELINE_N_PROGENDS         2
-#else
-#define COGL_PIPELINE_N_PROGENDS         1
-#endif
-
-#else /* COGL_PIPELINE_FRAGEND_FIXED */
-
-#ifdef COGL_PIPELINE_FRAGEND_GLSL
-#define COGL_PIPELINE_PROGEND_GLSL       0
-#define COGL_PIPELINE_N_PROGENDS         1
-#else
-#define COGL_PIPELINE_N_PROGENDS         0
-#endif
-
-#endif /* COGL_PIPELINE_FRAGEND_FIXED */
-
 /* XXX: should I rename these as
  * COGL_PIPELINE_STATE_INDEX_XYZ... ?
  */
-- 
1.7.7.6



More information about the Cogl mailing list