[Piglit] [PATCH] Add utility function piglit_draw_triangle
Anuj Phogat
anuj.phogat at gmail.com
Wed Apr 18 01:25:53 PDT 2012
These utility functions to draw triangle would help in testing antialiasing
and depth related issues.
v2: Defined piglit_draw_triangle in terms of piglit_draw_triangle_z. Modified
the comments
Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
---
tests/util/piglit-util-gl.c | 40 ++++++++++++++++++++++++++++++++++++++++
tests/util/piglit-util.h | 4 ++++
2 files changed, 44 insertions(+), 0 deletions(-)
diff --git a/tests/util/piglit-util-gl.c b/tests/util/piglit-util-gl.c
index 4270cd6..69366ad 100644
--- a/tests/util/piglit-util-gl.c
+++ b/tests/util/piglit-util-gl.c
@@ -708,6 +708,46 @@ piglit_escape_exit_key(unsigned char key, int x, int y)
}
/**
+ * Convenience function to draw a triangle.
+ */
+GLvoid
+piglit_draw_triangle(float x1, float y1, float x2, float y2,
+ float x3, float y3)
+{
+ piglit_draw_triangle_z(0.0, x1, y1, x2, y2, x3, y3);
+}
+
+/**
+ * Convenience function to draw a 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 917d798..8ee37d8 100755
--- a/tests/util/piglit-util.h
+++ b/tests/util/piglit-util.h
@@ -232,6 +232,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