[Piglit] [PATCH] Add utility function piglit_draw_triangle

Anuj Phogat anuj.phogat at gmail.com
Tue Apr 17 07:16:21 PDT 2012


These utility functions to draw triangle would help in testing antialiasing
and depth related issues.

Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
---
 tests/util/piglit-util-gl.c |   59 +++++++++++++++++++++++++++++++++++++++++++
 tests/util/piglit-util.h    |    4 +++
 2 files changed, 63 insertions(+), 0 deletions(-)

diff --git a/tests/util/piglit-util-gl.c b/tests/util/piglit-util-gl.c
index 4270cd6..5aeacad 100644
--- a/tests/util/piglit-util-gl.c
+++ b/tests/util/piglit-util-gl.c
@@ -708,6 +708,65 @@ piglit_escape_exit_key(unsigned char key, int x, int y)
 }
 
 /**
+ * Convenience function to draw an axis aligned triangle.
+ */
+GLvoid
+piglit_draw_triangle(float x1, float y1, float x2, float y2,
+		     float x3, float y3)
+{
+	float verts[3][4];
+
+	verts[0][0] = x1;
+	verts[0][1] = y1;
+	verts[0][2] = 0.0;
+	verts[0][3] = 1.0;
+	verts[1][0] = x2;
+	verts[1][1] = y2;
+	verts[1][2] = 0.0;
+	verts[1][3] = 1.0;
+	verts[2][0] = x3;
+	verts[2][1] = y3;
+	verts[2][2] = 0.0;
+	verts[2][3] = 1.0;
+
+	glVertexPointer(4, GL_FLOAT, 0, verts);
+	glEnableClientState(GL_VERTEX_ARRAY);
+
+	glDrawArrays(GL_TRIANGLES, 0, 3);
+
+	glDisableClientState(GL_VERTEX_ARRAY);
+}
+
+/**
+ * Convenience function to draw an axis aligned triangle at a given depth.
+ */
+GLvoid
+piglit_draw_triangle_z(float z, float x1, float y1, float x2, float y2,
+		     float x3, float y3)
+{
+	float verts[3][4];
+
+	verts[0][0] = x1;
+	verts[0][1] = y1;
+	verts[0][2] = z;
+	verts[0][3] = 1.0;
+	verts[1][0] = x2;
+	verts[1][1] = y2;
+	verts[1][2] = z;
+	verts[1][3] = 1.0;
+	verts[2][0] = x3;
+	verts[2][1] = y3;
+	verts[2][2] = z;
+	verts[2][3] = 1.0;
+
+	glVertexPointer(4, GL_FLOAT, 0, verts);
+	glEnableClientState(GL_VERTEX_ARRAY);
+
+	glDrawArrays(GL_TRIANGLES, 0, 3);
+
+	glDisableClientState(GL_VERTEX_ARRAY);
+}
+/**
  * Convenience function to draw an axis-aligned rectangle.
  */
 GLvoid
diff --git a/tests/util/piglit-util.h b/tests/util/piglit-util.h
index ea35e64..f6758e3 100755
--- a/tests/util/piglit-util.h
+++ b/tests/util/piglit-util.h
@@ -234,6 +234,10 @@ int piglit_use_vertex_program(void);
 void piglit_require_fragment_program(void);
 void piglit_require_vertex_program(void);
 GLuint piglit_compile_program(GLenum target, const char* text);
+GLvoid piglit_draw_triangle(float x1, float y1, float x2, float y2,
+			    float x3, float y3);
+GLvoid piglit_draw_triangle_z(float z, float x1, float y1, float x2, float y2,
+			      float x3, float y3);
 GLvoid piglit_draw_rect(float x, float y, float w, float h);
 GLvoid piglit_draw_rect_z(float z, float x, float y, float w, float h);
 GLvoid piglit_draw_rect_tex(float x, float y, float w, float h,
-- 
1.7.7.6



More information about the Piglit mailing list