[Piglit] [PATCH 13/18] util: Use piglit-framework-fbo.c and kill dead code
Chad Versace
chad.versace at linux.intel.com
Tue May 22 18:01:53 PDT 2012
Link piglit-framework-fbo.c into libpiglitutil, and kill all code
in piglit-framework.c which exists piglit-framework-fbo.c.
CC: Pauli Nieminen <pauli.nieminen at linux.intel.com>
Signed-off-by: Chad Versace <chad.versace at linux.intel.com>
---
tests/util/CMakeLists.txt | 1 +
tests/util/piglit-framework-fbo.c | 6 +-
tests/util/piglit-framework-fbo.h | 29 +++++++++
tests/util/piglit-framework.c | 130 +------------------------------------
4 files changed, 37 insertions(+), 129 deletions(-)
create mode 100644 tests/util/piglit-framework-fbo.h
diff --git a/tests/util/CMakeLists.txt b/tests/util/CMakeLists.txt
index c7fe8cb..cd8f518 100644
--- a/tests/util/CMakeLists.txt
+++ b/tests/util/CMakeLists.txt
@@ -17,6 +17,7 @@ set(UTIL_SOURCES
piglit-util-enum.c
shader-load.c
piglit-framework.c
+ piglit-framework-fbo.c
rgb9e5.c
)
diff --git a/tests/util/piglit-framework-fbo.c b/tests/util/piglit-framework-fbo.c
index 3b7ae34..277aa1d 100644
--- a/tests/util/piglit-framework-fbo.c
+++ b/tests/util/piglit-framework-fbo.c
@@ -40,6 +40,8 @@
#include "piglit-glx-util.h"
#endif
+bool piglit_use_fbo = false;
+
#ifdef PIGLIT_FRAMEWORK_FBO_USE_GLX
Display *piglit_glx_dpy;
Window piglit_glx_window;
@@ -153,7 +155,7 @@ piglit_framework_fbo_gl_init()
#endif /* PIGLIT_FRAMEWORK_FBO_DISABLED */
}
-static bool
+bool
piglit_framework_fbo_init(void)
{
#if defined(PIGLIT_FRAMEWORK_FBO_USE_GLX)
@@ -163,7 +165,7 @@ piglit_framework_fbo_init(void)
return piglit_framework_fbo_gl_init();
}
-static void
+void
piglit_framework_fbo_destroy(void)
{
#ifdef USE_OPENGL
diff --git a/tests/util/piglit-framework-fbo.h b/tests/util/piglit-framework-fbo.h
new file mode 100644
index 0000000..af55472
--- /dev/null
+++ b/tests/util/piglit-framework-fbo.h
@@ -0,0 +1,29 @@
+/*
+ * Copyright © 2012 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+#include "piglit-util.h"
+
+extern bool piglit_use_fbo;
+
+bool piglit_framework_fbo_init(void);
+void piglit_framework_fbo_destroy(void);
diff --git a/tests/util/piglit-framework.c b/tests/util/piglit-framework.c
index dac04b7..e8eea38 100644
--- a/tests/util/piglit-framework.c
+++ b/tests/util/piglit-framework.c
@@ -34,21 +34,17 @@
#include "piglit-util.h"
#include "piglit-framework.h"
+#include "piglit-framework-fbo.h"
+
#ifdef USE_GLX
#include "piglit-glx-util.h"
#endif
int piglit_automatic = 0;
-bool piglit_use_fbo = false;
unsigned piglit_winsys_fbo = 0;
+
static int piglit_window;
static enum piglit_result result;
-#ifdef USE_GLX
-Display *piglit_glx_dpy;
-Window piglit_glx_window;
-XVisualInfo *piglit_glx_visinfo;
-GLXContext piglit_glx_context;
-#endif
static void
display(void)
@@ -112,126 +108,6 @@ piglit_framework_glut_init(int argc, char *argv[])
#endif
}
-#ifdef USE_GLX
-static void
-piglit_framework_fbo_glx_init()
-{
- piglit_glx_dpy = piglit_get_glx_display();
-
- /* Unfortunately in GLX we need a drawable to bind our context
- * to. Make an unmapped window.
- */
- piglit_glx_visinfo = piglit_get_glx_visual(piglit_glx_dpy);
-
- piglit_glx_context = piglit_get_glx_context(piglit_glx_dpy,
- piglit_glx_visinfo);
-
- piglit_glx_window = piglit_get_glx_window_unmapped(piglit_glx_dpy,
- piglit_glx_visinfo);
-
- glXMakeCurrent(piglit_glx_dpy, piglit_glx_window, piglit_glx_context);
-}
-#endif
-
-static void
-piglit_framework_fbo_glx_destroy()
-{
-#ifdef USE_GLX
- glXMakeCurrent(piglit_glx_dpy, None, None);
- glXDestroyContext(piglit_glx_dpy, piglit_glx_context);
- XFree(piglit_glx_visinfo);
- XCloseDisplay(piglit_glx_dpy);
-#endif
-}
-
-static void
-piglit_framework_fbo_destroy()
-{
-#ifdef USE_OPENGL
- glDeleteFramebuffers(1, &piglit_winsys_fbo);
-#endif
- piglit_winsys_fbo = 0;
- piglit_framework_fbo_glx_destroy();
-}
-
-static bool
-piglit_framework_fbo_init()
-{
-#ifdef USE_GLX
- GLuint tex, depth = 0;
- GLenum status;
-
- piglit_framework_fbo_glx_init();
-
-#ifdef USE_OPENGL
- glewInit();
-
- if (piglit_get_gl_version() < 20)
- return false;
-#endif
-
- glGenFramebuffers(1, &piglit_winsys_fbo);
- glBindFramebuffer(GL_FRAMEBUFFER, piglit_winsys_fbo);
-
- glGenTextures(1, &tex);
- glBindTexture(GL_TEXTURE_2D, tex);
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA,
- piglit_width, piglit_height, 0,
- GL_RGBA, GL_UNSIGNED_BYTE, NULL);
- glFramebufferTexture2D(GL_FRAMEBUFFER,
- GL_COLOR_ATTACHMENT0,
- GL_TEXTURE_2D,
- tex,
- 0);
-
- if (piglit_window_mode & (GLUT_DEPTH | GLUT_STENCIL)) {
- GLenum depth_stencil;
-
-#ifdef USE_OPENGL
- depth_stencil = GL_DEPTH_STENCIL;
-#else
- depth_stencil = GL_DEPTH_STENCIL_OES;
-#endif
-
- glGenTextures(1, &depth);
- glBindTexture(GL_TEXTURE_2D, depth);
- glTexImage2D(GL_TEXTURE_2D, 0, depth_stencil,
- piglit_width, piglit_height, 0,
- GL_RGBA, GL_UNSIGNED_BYTE, NULL);
- glFramebufferTexture2D(GL_FRAMEBUFFER,
- GL_DEPTH_ATTACHMENT,
- GL_TEXTURE_2D,
- depth,
- 0);
- glFramebufferTexture2D(GL_FRAMEBUFFER,
- GL_STENCIL_ATTACHMENT,
- GL_TEXTURE_2D,
- depth,
- 0);
- }
-
- glBindTexture(GL_TEXTURE_2D, 0);
-
- status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
- if (status != GL_FRAMEBUFFER_COMPLETE) {
- fprintf(stderr,
- "-fbo resulted in incomplete FBO, falling back\n");
- glBindFramebuffer(GL_FRAMEBUFFER, 0);
-
- glDeleteTextures(1, &depth);
- glDeleteTextures(1, &tex);
-
- piglit_framework_fbo_destroy();
-
- return false;
- }
-
- return true;
-#else /* USE_GLX */
- return false;
-#endif /* USE_GLX */
-}
-
static void
delete_arg(char *argv[], int argc, int arg)
{
--
1.7.10.1
More information about the Piglit
mailing list