diff options
author | Eugeni Dodonov <eugeni@dodonov.net> | 2011-08-24 19:41:50 -0300 |
---|---|---|
committer | Eugeni Dodonov <eugeni@dodonov.net> | 2011-08-24 19:41:50 -0300 |
commit | 0f0a7d932f93f8d4f8dcb7ddfb7e4bbe01b299dc (patch) | |
tree | f1ffd77ba7a2e80bbe54d9e9d00753586fdb1acd | |
parent | d1d8fa69d9307c3d70b5a918a16e1977137f5b07 (diff) |
Add API tests for glEnable/glDisable/glIsEnabled, and glGet*v.ext_transform_feedback
-rw-r--r-- | tests/spec/ext_transform_feedback/ext_transform_feedback-api.c | 77 |
1 files changed, 69 insertions, 8 deletions
diff --git a/tests/spec/ext_transform_feedback/ext_transform_feedback-api.c b/tests/spec/ext_transform_feedback/ext_transform_feedback-api.c index e40e25bf..72f8ffa7 100644 --- a/tests/spec/ext_transform_feedback/ext_transform_feedback-api.c +++ b/tests/spec/ext_transform_feedback/ext_transform_feedback-api.c @@ -96,6 +96,8 @@ test_new_tokens_feedback_buffer_ext() */ /* TODO: test GetBufferPointerv */ + + /* New function calls provided by the extension */ /* TODO: test GetBindBufferRangeEXT */ /* TODO: test GetBindBufferOffsetEXT */ /* TODO: test GetBindBufferBaseEXT */ @@ -118,6 +120,10 @@ static bool test_new_tokens_feedback_buffer_start_size() { bool pass = true; + + /* TODO: those functions will become available when the extension will be + * implemented in mesa */ + return pass; } @@ -157,18 +163,36 @@ test_new_tokens_feedback_attribs() /** * New <cap> parameter for Enable, Disable, and IsEnabled: - * - * And new <pname> parameter for GetBooleanv, GetIntegerv, GetFloatv, - * and GetDoublev: * RASTERIZER_DISCARD_EXT * - * */ static bool -test_new_tokens_feedback_rasterized() +test_new_tokens_enable_disable() { bool pass = true; + GLenum error; + GLenum capability = GL_RASTERIZER_DISCARD_EXT; + + /* glEnable */ + glEnable(capability); + error = glGetError(); + if (error == GL_INVALID_ENUM) { + pass = false; + } + /* glIsEnabled */ + glIsEnabled(capability); + error = glGetError(); + if (error == GL_INVALID_ENUM) { + pass = false; + } + /* glDisable */ + glDisable(capability); + error = glGetError(); + if (error == GL_INVALID_ENUM) { + pass = false; + } + return pass; } @@ -179,14 +203,51 @@ test_new_tokens_feedback_rasterized() * MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT * MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT * MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT + * RASTERIZER_DISCARD_EXT * * */ static bool -test_new_tokens_feedback_interleaved_separate() +test_new_tokens_get_v() { bool pass = true; + GLenum valid_targets[] = { + GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT, + GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT, + GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT, + GL_RASTERIZER_DISCARD_EXT, + }; + GLenum error; + GLboolean pvalue_b; + GLdouble pvalue_d; + GLint pvalue_i; + GLfloat pvalue_f; + int i; + + for (i=0; i < sizeof(valid_targets) / sizeof(valid_targets[0]); i++) { + /* Getting objects */ + glGetBooleanv(valid_targets[i], &pvalue_b); + error = glGetError(); + if (error == GL_INVALID_ENUM) { + pass = false; + } + glGetDoublev(valid_targets[i], &pvalue_d); + error = glGetError(); + if (error == GL_INVALID_ENUM) { + pass = false; + } + glGetIntegerv(valid_targets[i], &pvalue_i); + error = glGetError(); + if (error == GL_INVALID_ENUM) { + pass = false; + } + glGetFloatv(valid_targets[i], &pvalue_f); + error = glGetError(); + if (error == GL_INVALID_ENUM) { + pass = false; + } + } return pass; } @@ -304,10 +365,10 @@ test() pass = test_new_tokens_feedback_attribs(); if (pass != true) result = false; - pass = test_new_tokens_feedback_rasterized(); + pass = test_new_tokens_enable_disable(); if (pass != true) result = false; - pass = test_new_tokens_feedback_interleaved_separate(); + pass = test_new_tokens_get_v(); if (pass != true) result = false; pass = test_new_tokens_feedback_getprogramiv(); |