[Cogl] [PATCH] Remove cogl-primitives.h and CoglTextureVertex

Neil Roberts neil at linux.intel.com
Thu Sep 13 10:27:07 PDT 2012


This removes the cogl-primitives.h header. The implementations for all
of the functions that it declared have already been removed in
7546ee19.

The CoglTextureVertex type has also been removed because it was only
used for cogl_polygon which has already been removed.

This patch also fixes some mentions of cogl_rectangle() in the
documentation and replaces them with
cogl_framebuffer_draw_rectangle().
---
 cogl/Makefile.am                            |   2 -
 cogl/cogl-clip-stack.c                      |   1 -
 cogl/cogl-context-private.h                 |   1 -
 cogl/cogl-meta-texture.h                    |  32 ++---
 cogl/cogl-primitives.c                      |   8 --
 cogl/cogl-primitives.h                      | 190 ----------------------------
 cogl/cogl-snippet.h                         |   4 +-
 cogl/cogl-sub-texture.h                     |   4 +-
 cogl/cogl-texture.c                         |   1 -
 cogl/cogl-types.h                           |  22 ----
 cogl/cogl.h                                 |   1 -
 cogl/driver/gl/cogl-texture-driver-gl.c     |   1 -
 cogl/driver/gles/cogl-texture-driver-gles.c |   1 -
 tests/conform/test-backface-culling.c       |   3 -
 tests/conform/test-wrap-modes.c             |   8 --
 15 files changed, 20 insertions(+), 259 deletions(-)
 delete mode 100644 cogl/cogl-primitives.h

diff --git a/cogl/Makefile.am b/cogl/Makefile.am
index 2cb63de..4fc34ec 100644
--- a/cogl/Makefile.am
+++ b/cogl/Makefile.am
@@ -59,7 +59,6 @@ cogl_1_public_h = \
 	$(srcdir)/cogl-color.h 			\
 	$(srcdir)/cogl-matrix.h 		\
 	$(srcdir)/cogl-offscreen.h 		\
-	$(srcdir)/cogl-primitives.h 		\
 	$(srcdir)/cogl-texture.h 		\
 	$(srcdir)/cogl-types.h 			\
 	$(srcdir)/cogl-clutter.h       		\
@@ -213,7 +212,6 @@ cogl_sources_c = \
 	$(srcdir)/cogl-bitmap-conversion.c 		\
 	$(srcdir)/cogl-bitmap-packing.h			\
 	$(srcdir)/cogl-primitives-private.h 		\
-	$(srcdir)/cogl-primitives.h 			\
 	$(srcdir)/cogl-primitives.c 			\
 	$(srcdir)/cogl-path-private.h 			\
 	$(srcdir)/cogl-path.c 				\
diff --git a/cogl/cogl-clip-stack.c b/cogl/cogl-clip-stack.c
index 8a1d9de..d8dbb3d 100644
--- a/cogl/cogl-clip-stack.c
+++ b/cogl/cogl-clip-stack.c
@@ -31,7 +31,6 @@
 #include <glib.h>
 
 #include "cogl-clip-stack.h"
-#include "cogl-primitives.h"
 #include "cogl-context-private.h"
 #include "cogl-internal.h"
 #include "cogl-framebuffer-private.h"
diff --git a/cogl/cogl-context-private.h b/cogl/cogl-context-private.h
index 67e2a1d..8e35099 100644
--- a/cogl/cogl-context-private.h
+++ b/cogl/cogl-context-private.h
@@ -34,7 +34,6 @@
 #endif
 
 #include "cogl-display-private.h"
-#include "cogl-primitives.h"
 #include "cogl-clip-stack.h"
 #include "cogl-matrix-stack.h"
 #include "cogl-pipeline-private.h"
diff --git a/cogl/cogl-meta-texture.h b/cogl/cogl-meta-texture.h
index b896cd0..06a3088 100644
--- a/cogl/cogl-meta-texture.h
+++ b/cogl/cogl-meta-texture.h
@@ -57,12 +57,12 @@ G_BEGIN_DECLS
  * For example the GPU is not able to automatically handle repeating a
  * texture that is part of a larger atlas texture but if you use
  * %COGL_PIPELINE_WRAP_MODE_REPEAT with an atlas texture when drawing
- * with cogl_rectangle() you should see that it "Just Works™" - at
- * least if you don't use multi-texturing. The reason this works is
- * because cogl_rectangle() internally understands the #CoglMetaTexture
- * interface and is able to manually resolve the low-level textures
- * using this interface and by making multiple draw calls it can
- * emulate the texture repeat modes.
+ * with cogl_framebuffer_draw_rectangle() you should see that it "Just
+ * Works™" - at least if you don't use multi-texturing. The reason
+ * this works is because cogl_framebuffer_draw_rectangle() internally
+ * understands the #CoglMetaTexture interface and is able to manually
+ * resolve the low-level textures using this interface and by making
+ * multiple draw calls it can emulate the texture repeat modes.
  *
  * Cogl doesn't aim to pretend that meta-textures are just like real
  * textures because it would get extremely complex to try and emulate
@@ -72,12 +72,13 @@ G_BEGIN_DECLS
  * the developer's responsibility to resolve all textures referenced by
  * a #CoglPipeline to low-level textures before drawing.
  *
- * If you want to develop custom primitive APIs like cogl_rectangle()
- * and you want to support drawing with #CoglAtlasTexture<!-- -->s
- * or #CoglSubTexture<!-- -->s for example, then you will need to use
- * this #CoglMetaTexture interface to be able to resolve high-level
- * textures into low-level textures before drawing with Cogl's
- * low-level drawing APIs such as cogl_draw_attributes().
+ * If you want to develop custom primitive APIs like
+ * cogl_framebuffer_draw_rectangle() and you want to support drawing
+ * with #CoglAtlasTexture<!-- -->s or #CoglSubTexture<!-- -->s for
+ * example, then you will need to use this #CoglMetaTexture interface
+ * to be able to resolve high-level textures into low-level textures
+ * before drawing with Cogl's low-level drawing APIs such as
+ * cogl_draw_attributes().
  *
  * <note>Most developers won't need to use this interface directly
  * but still it is worth understanding the distinction between
@@ -149,9 +150,10 @@ typedef void (*CoglMetaTextureCallback) (CoglTexture *sub_texture,
  * consistently using this interface which greately simplifies
  * implementing primitives that support all texture types.
  *
- * For example if you use the cogl_rectangle() API then Cogl will
- * internally use this API to resolve the low level textures of any
- * meta textures you have associated with CoglPipeline layers.
+ * For example if you use the cogl_framebuffer_draw_rectangle() API
+ * then Cogl will internally use this API to resolve the low level
+ * textures of any meta textures you have associated with CoglPipeline
+ * layers.
  *
  * <note>The low level drawing APIs such as cogl_draw_attributes()
  * don't understand the #CoglMetaTexture interface and so it is your
diff --git a/cogl/cogl-primitives.c b/cogl/cogl-primitives.c
index ef48d2f..87ca8bc 100644
--- a/cogl/cogl-primitives.c
+++ b/cogl/cogl-primitives.c
@@ -62,14 +62,6 @@ typedef struct _TextureSlicedQuadState
   CoglBool flipped_y;
 } TextureSlicedQuadState;
 
-typedef struct _TextureSlicedPolygonState
-{
-  const CoglTextureVertex *vertices;
-  int n_vertices;
-  int stride;
-  CoglAttribute **attributes;
-} TextureSlicedPolygonState;
-
 static void
 log_quad_sub_textures_cb (CoglTexture *texture,
                           const float *subtexture_coords,
diff --git a/cogl/cogl-primitives.h b/cogl/cogl-primitives.h
deleted file mode 100644
index e1f3617..0000000
--- a/cogl/cogl-primitives.h
+++ /dev/null
@@ -1,190 +0,0 @@
-/*
- * Cogl
- *
- * An object oriented GL/GLES Abstraction/Utility Layer
- *
- * Copyright (C) 2007,2008,2009 Intel Corporation.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- *
- *
- */
-
-#ifndef __COGL_PRIMITIVES_H
-#define __COGL_PRIMITIVES_H
-
-#include <glib.h>
-
-G_BEGIN_DECLS
-
-/**
- * SECTION:cogl-primitives
- * @short_description: Functions that draw various primitive 3D shapes
- *
- * The primitives API provides utilities for drawing some
- * common 3D shapes in a more convenient way than the CoglVertexBuffer
- * API provides.
- */
-
-/**
- * cogl_rectangle:
- * @x_1: X coordinate of the top-left corner
- * @y_1: Y coordinate of the top-left corner
- * @x_2: X coordinate of the bottom-right corner
- * @y_2: Y coordinate of the bottom-right corner
- *
- * Fills a rectangle at the given coordinates with the current source material
- **/
-void
-cogl_rectangle (float x_1,
-                float y_1,
-                float x_2,
-                float y_2);
-
-/**
- * cogl_rectangle_with_texture_coords:
- * @x1: x coordinate upper left on screen.
- * @y1: y coordinate upper left on screen.
- * @x2: x coordinate lower right on screen.
- * @y2: y coordinate lower right on screen.
- * @tx1: x part of texture coordinate to use for upper left pixel
- * @ty1: y part of texture coordinate to use for upper left pixel
- * @tx2: x part of texture coordinate to use for lower right pixel
- * @ty2: y part of texture coordinate to use for left pixel
- *
- * Draw a rectangle using the current material and supply texture coordinates
- * to be used for the first texture layer of the material. To draw the entire
- * texture pass in @tx1=0.0 @ty1=0.0 @tx2=1.0 @ty2=1.0.
- *
- * Since: 1.0
- */
-void
-cogl_rectangle_with_texture_coords (float  x1,
-                                    float  y1,
-                                    float  x2,
-                                    float  y2,
-                                    float  tx1,
-                                    float  ty1,
-                                    float  tx2,
-                                    float  ty2);
-
-/**
- * cogl_rectangle_with_multitexture_coords:
- * @x1: x coordinate upper left on screen.
- * @y1: y coordinate upper left on screen.
- * @x2: x coordinate lower right on screen.
- * @y2: y coordinate lower right on screen.
- * @tex_coords: (in) (array) (transfer none): An array containing groups of
- *   4 float values: [tx1, ty1, tx2, ty2] that are interpreted as two texture
- *   coordinates; one for the upper left texel, and one for the lower right
- *   texel. Each value should be between 0.0 and 1.0, where the coordinate
- *   (0.0, 0.0) represents the top left of the texture, and (1.0, 1.0) the
- *   bottom right.
- * @tex_coords_len: The length of the tex_coords array. (e.g. for one layer
- *   and one group of texture coordinates, this would be 4)
- *
- * This function draws a rectangle using the current source material to
- * texture or fill with. As a material may contain multiple texture layers
- * this interface lets you supply texture coordinates for each layer of the
- * material.
- *
- * The first pair of coordinates are for the first layer (with the smallest
- * layer index) and if you supply less texture coordinates than there are
- * layers in the current source material then default texture coordinates
- * (0.0, 0.0, 1.0, 1.0) are generated.
- *
- * Since: 1.0
- */
-void
-cogl_rectangle_with_multitexture_coords (float        x1,
-                                         float        y1,
-                                         float        x2,
-                                         float        y2,
-                                         const float *tex_coords,
-                                         int         tex_coords_len);
-
-/**
- * cogl_rectangles_with_texture_coords:
- * @verts: (in) (array) (transfer none): an array of vertices
- * @n_rects: number of rectangles to draw
- *
- * Draws a series of rectangles in the same way that
- * cogl_rectangle_with_texture_coords() does. In some situations it can give a
- * significant performance boost to use this function rather than
- * calling cogl_rectangle_with_texture_coords() separately for each rectangle.
- *
- * @verts should point to an array of #float<!-- -->s with
- * @n_rects * 8 elements. Each group of 8 values corresponds to the
- * parameters x1, y1, x2, y2, tx1, ty1, tx2 and ty2 and have the same
- * meaning as in cogl_rectangle_with_texture_coords().
- *
- * Since: 0.8.6
- */
-void
-cogl_rectangles_with_texture_coords (const float *verts,
-                                     unsigned int n_rects);
-
-/**
- * cogl_rectangles:
- * @verts: (in) (array) (transfer none): an array of vertices
- * @n_rects: number of rectangles to draw
- *
- * Draws a series of rectangles in the same way that
- * cogl_rectangle() does. In some situations it can give a
- * significant performance boost to use this function rather than
- * calling cogl_rectangle() separately for each rectangle.
- *
- * @verts should point to an array of #float<!-- -->s with
- * @n_rects * 4 elements. Each group of 4 values corresponds to the
- * parameters x1, y1, x2, and y2, and have the same
- * meaning as in cogl_rectangle().
- *
- * Since: 1.0
- */
-void
-cogl_rectangles (const float *verts,
-                 unsigned int n_rects);
-
-/**
- * cogl_polygon:
- * @vertices: An array of #CoglTextureVertex structs
- * @n_vertices: The length of the vertices array
- * @use_color: %TRUE if the color member of #CoglTextureVertex should be used
- *
- * Draws a convex polygon using the current source material to fill / texture
- * with according to the texture coordinates passed.
- *
- * If @use_color is %TRUE then the color will be changed for each vertex using
- * the value specified in the color member of #CoglTextureVertex. This can be
- * used for example to make the texture fade out by setting the alpha value of
- * the color.
- *
- * All of the texture coordinates must be in the range [0,1] and repeating the
- * texture is not supported.
- *
- * Because of the way this function is implemented it will currently
- * only work if either the texture is not sliced or the backend is not
- * OpenGL ES and the minifying and magnifying functions are both set
- * to COGL_MATERIAL_FILTER_NEAREST.
- *
- * Since: 1.0
- */
-void
-cogl_polygon (const CoglTextureVertex  *vertices,
-              unsigned int              n_vertices,
-              CoglBool                  use_color);
-
-G_END_DECLS
-
-#endif /* __COGL_PRIMITIVES_H */
diff --git a/cogl/cogl-snippet.h b/cogl/cogl-snippet.h
index f20cc98..b9b97f3 100644
--- a/cogl/cogl-snippet.h
+++ b/cogl/cogl-snippet.h
@@ -301,9 +301,7 @@ G_BEGIN_DECLS
  *   cogl_pipeline_set_uniform_1f (pipeline, location, 0.5f);
  *
  *   /<!-- -->* Now we can render with the snippet as usual *<!-- -->/
- *   cogl_push_source (pipeline);
- *   cogl_rectangle (0, 0, 10, 10);
- *   cogl_pop_source ();
+ *   cogl_framebuffer_draw_rectangle (fb, pipeline, 0, 0, 10, 10);
  * </programlisting>
  */
 typedef struct _CoglSnippet CoglSnippet;
diff --git a/cogl/cogl-sub-texture.h b/cogl/cogl-sub-texture.h
index 92bbe4e..914b4c5 100644
--- a/cogl/cogl-sub-texture.h
+++ b/cogl/cogl-sub-texture.h
@@ -69,8 +69,8 @@ typedef struct _CoglSubTexture CoglSubTexture;
  * that hardware can understand natively.
  *
  * <note>Remember: Unless you are using high level drawing APIs such
- * as cogl_rectangle() or other APIs documented to understand the
- * #CoglMetaTexture interface then you need to use the
+ * as cogl_framebuffer_draw_rectangle() or other APIs documented to
+ * understand the #CoglMetaTexture interface then you need to use the
  * #CoglMetaTexture interface to resolve a #CoglSubTexture into a
  * low-level texture before drawing.</note>
  *
diff --git a/cogl/cogl-texture.c b/cogl/cogl-texture.c
index 25c5282..4c8e2e9 100644
--- a/cogl/cogl-texture.c
+++ b/cogl/cogl-texture.c
@@ -49,7 +49,6 @@
 #include "cogl-context-private.h"
 #include "cogl-object-private.h"
 #include "cogl-object-private.h"
-#include "cogl-primitives.h"
 #include "cogl-framebuffer-private.h"
 #include "cogl1-context.h"
 #include "cogl-sub-texture.h"
diff --git a/cogl/cogl-types.h b/cogl/cogl-types.h
index f22b6f6..26030e9 100644
--- a/cogl/cogl-types.h
+++ b/cogl/cogl-types.h
@@ -146,7 +146,6 @@ typedef struct _CoglEuler CoglEuler;
 typedef int32_t CoglAngle;
 
 typedef struct _CoglColor               CoglColor;
-typedef struct _CoglTextureVertex       CoglTextureVertex;
 
 /* Enum declarations */
 
@@ -458,27 +457,6 @@ struct _CoglColor
 COGL_STRUCT_SIZE_ASSERT (CoglColor, 16);
 
 /**
- * CoglTextureVertex:
- * @x: Model x-coordinate
- * @y: Model y-coordinate
- * @z: Model z-coordinate
- * @tx: Texture x-coordinate
- * @ty: Texture y-coordinate
- * @color: The color to use at this vertex. This is ignored if
- *   use_color is %FALSE when calling cogl_polygon()
- *
- * Used to specify vertex information when calling cogl_polygon()
- */
-struct _CoglTextureVertex
-{
-  float x, y, z;
-  float tx, ty;
-
-  CoglColor color;
-};
-COGL_STRUCT_SIZE_ASSERT (CoglTextureVertex, 36);
-
-/**
  * CoglTextureFlags:
  * @COGL_TEXTURE_NONE: No flags specified
  * @COGL_TEXTURE_NO_AUTO_MIPMAP: Disables the automatic generation of
diff --git a/cogl/cogl.h b/cogl/cogl.h
index 597f1d5..8291bc2 100644
--- a/cogl/cogl.h
+++ b/cogl/cogl.h
@@ -42,7 +42,6 @@
 #include <cogl/cogl-color.h>
 #include <cogl/cogl-matrix.h>
 #include <cogl/cogl-offscreen.h>
-#include <cogl/cogl-primitives.h>
 #include <cogl/cogl-texture.h>
 #include <cogl/cogl-types.h>
 #include <cogl/cogl-path.h>
diff --git a/cogl/driver/gl/cogl-texture-driver-gl.c b/cogl/driver/gl/cogl-texture-driver-gl.c
index 2c59177..57c7517 100644
--- a/cogl/driver/gl/cogl-texture-driver-gl.c
+++ b/cogl/driver/gl/cogl-texture-driver-gl.c
@@ -38,7 +38,6 @@
 #include "cogl-pipeline.h"
 #include "cogl-context-private.h"
 #include "cogl-object-private.h"
-#include "cogl-primitives.h"
 #include "cogl-pipeline-opengl-private.h"
 
 #include <string.h>
diff --git a/cogl/driver/gles/cogl-texture-driver-gles.c b/cogl/driver/gles/cogl-texture-driver-gles.c
index e19721c..bd8f748 100644
--- a/cogl/driver/gles/cogl-texture-driver-gles.c
+++ b/cogl/driver/gles/cogl-texture-driver-gles.c
@@ -39,7 +39,6 @@
 #include "cogl-pipeline-opengl-private.h"
 #include "cogl-context-private.h"
 #include "cogl-object-private.h"
-#include "cogl-primitives.h"
 
 #include <string.h>
 #include <stdlib.h>
diff --git a/tests/conform/test-backface-culling.c b/tests/conform/test-backface-culling.c
index 1ee13b3..e952680 100644
--- a/tests/conform/test-backface-culling.c
+++ b/tests/conform/test-backface-culling.c
@@ -71,7 +71,6 @@ paint_test_backface_culling (TestState *state,
   for (draw_num = 0; draw_num < 8; draw_num++)
     {
       float x1 = 0, x2, y1 = 0, y2 = (float)(TEXTURE_RENDER_SIZE);
-      CoglTextureVertex verts[4];
       CoglPipeline *pipeline;
 
       cogl_framebuffer_push_matrix (framebuffer);
@@ -83,8 +82,6 @@ paint_test_backface_culling (TestState *state,
       cogl_pipeline_set_front_face_winding (pipeline, FRONT_WINDING (draw_num));
       cogl_pipeline_set_cull_face_mode (pipeline, CULL_FACE_MODE (draw_num));
 
-      memset (verts, 0, sizeof (verts));
-
       x2 = x1 + (float)(TEXTURE_RENDER_SIZE);
 
       /* Draw a front-facing texture */
diff --git a/tests/conform/test-wrap-modes.c b/tests/conform/test-wrap-modes.c
index 903f0b8..8bc5a3e 100644
--- a/tests/conform/test-wrap-modes.c
+++ b/tests/conform/test-wrap-modes.c
@@ -105,14 +105,6 @@ draw_tests (TestState *state)
     }
 }
 
-static const CoglTextureVertex vertices[4] =
-  {
-    { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f },
-    { 0.0f, TEX_SIZE * 2, 0.0f, 0.0f, 2.0f },
-    { TEX_SIZE * 2, TEX_SIZE * 2, 0.0f, 2.0f, 2.0f },
-    { TEX_SIZE * 2, 0.0f, 0.0f, 2.0f, 0.0f }
-  };
-
 static void
 validate_set (TestState *state, int offset)
 {
-- 
1.7.11.3.g3c3efa5



More information about the Cogl mailing list