Signed-off-by: Miklós Máté <mtm...@gmail.com>
---
 tests/spec/ati_fragment_shader/api-alphafirst.c | 52 ++++++++++++++++++++
 tests/spec/ati_fragment_shader/api-gen.c        | 65 +++++++++++++++++++++++++
 2 files changed, 117 insertions(+)
 create mode 100644 tests/spec/ati_fragment_shader/api-alphafirst.c
 create mode 100644 tests/spec/ati_fragment_shader/api-gen.c

diff --git a/tests/spec/ati_fragment_shader/api-alphafirst.c 
b/tests/spec/ati_fragment_shader/api-alphafirst.c
new file mode 100644
index 000000000..027d2864f
--- /dev/null
+++ b/tests/spec/ati_fragment_shader/api-alphafirst.c
@@ -0,0 +1,52 @@
+/* TODO license header */
+
+/**
+ * Tests API for GL_ATI_fragment_shader.
+ */
+
+#include "piglit-util-gl.h"
+
+PIGLIT_GL_TEST_CONFIG_BEGIN
+
+       config.supports_gl_compat_version = 10;
+       config.window_visual = PIGLIT_GL_VISUAL_DOUBLE | PIGLIT_GL_VISUAL_RGBA;
+
+PIGLIT_GL_TEST_CONFIG_END
+
+enum piglit_result
+piglit_display(void)
+{
+       /* UNREACHED */
+       return PIGLIT_FAIL;
+}
+
+#define check_gl_error(err) if (!piglit_check_gl_error(err)) 
piglit_report_result(PIGLIT_FAIL)
+
+void
+piglit_init(int argc, char **argv)
+{
+       piglit_require_extension("GL_ATI_fragment_shader");
+
+       /* Create a shader pass beginning with an alpha instruction */
+
+       glBeginFragmentShaderATI();
+       check_gl_error(GL_NO_ERROR);
+       glAlphaFragmentOp1ATI(GL_MOV_ATI, GL_REG_0_ATI, GL_NONE,
+                       GL_PRIMARY_COLOR_ARB, GL_NONE, GL_NONE);
+       check_gl_error(GL_NO_ERROR);
+       glEndFragmentShaderATI();
+       check_gl_error(GL_NO_ERROR);
+
+       glBeginFragmentShaderATI();
+       glColorFragmentOp1ATI(GL_MOV_ATI, GL_REG_0_ATI, GL_NONE, GL_NONE,
+                       GL_REG_1_ATI, GL_NONE, GL_NONE);
+       glPassTexCoordATI(GL_REG_0_ATI, GL_REG_0_ATI, GL_SWIZZLE_STR_ATI);
+       check_gl_error(GL_NO_ERROR);
+       glAlphaFragmentOp1ATI(GL_MOV_ATI, GL_REG_0_ATI, GL_NONE,
+                       GL_PRIMARY_COLOR_ARB, GL_NONE, GL_NONE);
+       check_gl_error(GL_NO_ERROR);
+       glEndFragmentShaderATI();
+       check_gl_error(GL_NO_ERROR);
+
+       piglit_report_result(PIGLIT_PASS);
+}
diff --git a/tests/spec/ati_fragment_shader/api-gen.c 
b/tests/spec/ati_fragment_shader/api-gen.c
new file mode 100644
index 000000000..e9ca9a6b2
--- /dev/null
+++ b/tests/spec/ati_fragment_shader/api-gen.c
@@ -0,0 +1,65 @@
+/* TODO license header */
+
+/**
+ * Tests basic API functionality for GL_ATI_fragment_shader.
+ */
+
+#include "piglit-util-gl.h"
+
+PIGLIT_GL_TEST_CONFIG_BEGIN
+
+       config.supports_gl_compat_version = 10;
+       config.window_visual = PIGLIT_GL_VISUAL_DOUBLE | PIGLIT_GL_VISUAL_RGBA;
+
+PIGLIT_GL_TEST_CONFIG_END
+
+enum piglit_result
+piglit_display(void)
+{
+       /* UNREACHED */
+       return PIGLIT_FAIL;
+}
+
+#define check_gl_error(err) if (!piglit_check_gl_error(err)) 
piglit_report_result(PIGLIT_FAIL)
+
+void
+piglit_init(int argc, char **argv)
+{
+       unsigned id;
+
+       piglit_require_extension("GL_ATI_fragment_shader");
+
+       /* Test GenFragmentShadersATI() */
+
+       id = glGenFragmentShadersATI(3);
+       check_gl_error(GL_NO_ERROR);
+       if (id == 0)
+               piglit_report_result(PIGLIT_FAIL);
+
+       glDeleteFragmentShaderATI(id);
+       check_gl_error(GL_NO_ERROR);
+       glDeleteFragmentShaderATI(id+1);
+       check_gl_error(GL_NO_ERROR);
+       glDeleteFragmentShaderATI(id+2);
+       check_gl_error(GL_NO_ERROR);
+
+       /* gen a few more, leave them hanging */
+       id = glGenFragmentShadersATI(3);
+       check_gl_error(GL_NO_ERROR);
+
+       /* bind allocates the name, no need for gen */
+       glBindFragmentShaderATI(42);
+       check_gl_error(GL_NO_ERROR);
+       glDeleteFragmentShaderATI(42);
+       check_gl_error(GL_NO_ERROR);
+
+       /* bind an other one, leave it hanging */
+       glBindFragmentShaderATI(43);
+       check_gl_error(GL_NO_ERROR);
+
+       /* try to delete a non-existent one */
+       glDeleteFragmentShaderATI(id+8);
+       check_gl_error(GL_NO_ERROR);
+
+       piglit_report_result(PIGLIT_PASS);
+}
-- 
2.15.0.rc0

_______________________________________________
Piglit mailing list
Piglit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to