From f04d20347250a2c57cbc4401753af76ee1472abd Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Fonseca?= Date: Sun, 11 Dec 2011 12:04:54 +0000 Subject: [PATCH] Test single/double buffering. --- apps/CMakeLists.txt | 1 + apps/gl/CMakeLists.txt | 14 ++++++++++++++ apps/gl/default.ref.json | 7 +++---- apps/gl/default_db.ref.json | 8 ++++++++ apps/gl/default_db.ref.txt | 1 + apps/gl/default_sb.ref.json | 8 ++++++++ apps/gl/default_sb.ref.txt | 1 + apps/gl/tri.c | 19 +++++++++++++++++++ 8 files changed, 55 insertions(+), 4 deletions(-) create mode 100644 apps/gl/default_db.ref.json create mode 100644 apps/gl/default_db.ref.txt create mode 100644 apps/gl/default_sb.ref.json create mode 100644 apps/gl/default_sb.ref.txt diff --git a/apps/CMakeLists.txt b/apps/CMakeLists.txt index c1a1762..4d425f6 100644 --- a/apps/CMakeLists.txt +++ b/apps/CMakeLists.txt @@ -17,6 +17,7 @@ function (ADD_APP_TEST) --build ${APITRACE_BINARY_DIR} --api ${api} --ref-dump ${CMAKE_CURRENT_SOURCE_DIR}/${TEST_REF} + -- "$" ${TEST_ARGS} ) diff --git a/apps/gl/CMakeLists.txt b/apps/gl/CMakeLists.txt index e5a78b5..d78fce2 100644 --- a/apps/gl/CMakeLists.txt +++ b/apps/gl/CMakeLists.txt @@ -19,6 +19,20 @@ add_app_test ( REF default.ref.txt ) +add_app_test ( + NAME "gl_default_sb" + TARGET ${api}_tri + REF default_sb.ref.txt + ARGS -sb +) + +add_app_test ( + NAME "gl_default_db" + TARGET ${api}_tri + REF default_db.ref.txt + ARGS -db +) + set (targets tri gremedy diff --git a/apps/gl/default.ref.json b/apps/gl/default.ref.json index 995d724..df155f5 100644 --- a/apps/gl/default.ref.json +++ b/apps/gl/default.ref.json @@ -79,8 +79,7 @@ "GL_INDEX_LOGIC_OP": false, "GL_COLOR_LOGIC_OP": false, // Some implementations return more GL_AUX_BUFFERS than requested - "GL_DRAW_BUFFER": "GL_BACK", - "GL_READ_BUFFER": "GL_BACK", + // GL_DRAW_BUFFER and GL_READ_BUFFER vary with visual // GL_SCISSOR_BOX depends on the drawable "GL_SCISSOR_TEST": false, "GL_INDEX_CLEAR_VALUE": 0, @@ -89,7 +88,7 @@ "GL_COLOR_WRITEMASK": [true, true, true, true], "GL_INDEX_MODE": false, "GL_RGBA_MODE": true, - "GL_DOUBLEBUFFER": true, + // GL_DOUBLEBUFFER varies with visual "GL_STEREO": false, "GL_RENDER_MODE": "GL_RENDER", "GL_PERSPECTIVE_CORRECTION_HINT": "GL_DONT_CARE", @@ -255,7 +254,7 @@ "GL_STENCIL_BACK_FAIL": "GL_KEEP", "GL_STENCIL_BACK_PASS_DEPTH_FAIL": "GL_KEEP", "GL_STENCIL_BACK_PASS_DEPTH_PASS": "GL_KEEP", - "GL_DRAW_BUFFER0": "GL_BACK", + // GL_DRAW_BUFFER0 varies with visual "GL_DRAW_BUFFER1": "GL_ZERO", "GL_DRAW_BUFFER2": "GL_ZERO", "GL_DRAW_BUFFER3": "GL_ZERO", diff --git a/apps/gl/default_db.ref.json b/apps/gl/default_db.ref.json new file mode 100644 index 0000000..bde1c36 --- /dev/null +++ b/apps/gl/default_db.ref.json @@ -0,0 +1,8 @@ +{ + "parameters": { + "GL_DRAW_BUFFER": "GL_BACK", + "GL_DRAW_BUFFER0": "GL_BACK", + "GL_READ_BUFFER": "GL_BACK", + "GL_DOUBLEBUFFER": true + } +} diff --git a/apps/gl/default_db.ref.txt b/apps/gl/default_db.ref.txt new file mode 100644 index 0000000..17281f8 --- /dev/null +++ b/apps/gl/default_db.ref.txt @@ -0,0 +1 @@ +#state default_db.ref.json diff --git a/apps/gl/default_sb.ref.json b/apps/gl/default_sb.ref.json new file mode 100644 index 0000000..381ccbc --- /dev/null +++ b/apps/gl/default_sb.ref.json @@ -0,0 +1,8 @@ +{ + "parameters": { + "GL_DRAW_BUFFER": "GL_FRONT", + "GL_DRAW_BUFFER0": "GL_FRONT", + "GL_READ_BUFFER": "GL_FRONT", + "GL_DOUBLEBUFFER": false + } +} diff --git a/apps/gl/default_sb.ref.txt b/apps/gl/default_sb.ref.txt new file mode 100644 index 0000000..48c6224 --- /dev/null +++ b/apps/gl/default_sb.ref.txt @@ -0,0 +1 @@ +#state default_sb.ref.json diff --git a/apps/gl/tri.c b/apps/gl/tri.c index c6c1849..baff024 100644 --- a/apps/gl/tri.c +++ b/apps/gl/tri.c @@ -41,6 +41,23 @@ static GLboolean doubleBuffer = GL_TRUE; static int win; +static void parseArgs(int argc, char** argv) +{ + int i; + + for (i = 1; i < argc; ++i) { + const char *arg = argv[i]; + if (strcmp(arg, "-sb") == 0) { + doubleBuffer = GL_FALSE; + } else if (strcmp(arg, "-db") == 0) { + doubleBuffer = GL_TRUE; + } else { + fprintf(stderr, "error: unknown arg %s\n", arg); + exit(1); + } + } +} + static void Init(void) { glClearColor(0.3, 0.1, 0.3, 1.0); @@ -85,6 +102,8 @@ int main(int argc, char **argv) { GLenum type; + parseArgs(argc, argv); + glutInit(&argc, argv); glutInitWindowSize(250, 250); -- 2.43.0