Using dispatch for GLES and EGL allows all test drop include and link dependency to EGL and GLES libraries.
Signed-off-by: Pauli Nieminen <[email protected]> --- cmake/piglit_glapi.cmake | 16 ++++++++- src/piglit/gl_wrap.h | 20 +----------- tests/egl/egl-query-surface.c | 2 +- tests/egl/egl-util.h | 2 - tests/spec/oes_draw_texture/oes_draw_texture.c | 2 - tests/util/CMakeLists.gl.txt | 1 + tests/util/CMakeLists.txt | 2 + tests/util/piglit-dispatch.h | 42 ++++++++++++++++++++++++ tests/util/piglit-framework.c | 4 +-- tests/util/piglit-util-egl.c | 1 - tests/util/piglit-util-egl.h | 2 - 11 files changed, 63 insertions(+), 31 deletions(-) diff --git a/cmake/piglit_glapi.cmake b/cmake/piglit_glapi.cmake index bdc0390..7137ef3 100644 --- a/cmake/piglit_glapi.cmake +++ b/cmake/piglit_glapi.cmake @@ -28,13 +28,27 @@ file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/glapi) set(piglit_glapi_output ${CMAKE_BINARY_DIR}/glapi/glapi.json) -set(piglit_glapi_inputs +set(piglit_glapi_inputs) + +set(piglit_glapi_inputs_all ${piglit_glapi_src_dir}/parse_glspec.py ${piglit_glapi_src_dir}/gl.tm ${piglit_glapi_src_dir}/gl.spec ${piglit_glapi_src_dir}/enumext.spec + ${OPENGL_INCLUDE_DIR}/GLES2/gl2.h + ${OPENGL_INCLUDE_DIR}/GLES2/gl2ext.h + ${OPENGL_INCLUDE_DIR}/GLES/gl.h + ${OPENGL_INCLUDE_DIR}/GLES/glext.h + ${OPENGL_INCLUDE_DIR}/EGL/egl.h + ${OPENGL_INCLUDE_DIR}/EGL/eglext.h ) +foreach(f ${piglit_glapi_inputs_all}) + if(EXISTS ${f}) + LIST(APPEND piglit_glapi_inputs ${f}) + endif(EXISTS ${f}) +endforeach(f) + add_custom_command( OUTPUT ${piglit_glapi_output} DEPENDS ${piglit_glapi_inputs} diff --git a/src/piglit/gl_wrap.h b/src/piglit/gl_wrap.h index 3ccc365..fe5b504 100644 --- a/src/piglit/gl_wrap.h +++ b/src/piglit/gl_wrap.h @@ -42,25 +42,7 @@ extern "C" { #include <windows.h> #endif -#if defined(USE_OPENGL) -# include "piglit-dispatch.h" - -#elif defined(USE_OPENGL_ES1) -# include <GLES/gl.h> -# include <GLES/glext.h> - - /* for source level compatibility */ -# define GL_TEXTURE_CUBE_MAP_POSITIVE_X GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES -# define GL_TEXTURE_CUBE_MAP_POSITIVE_Y GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES -# define GL_TEXTURE_CUBE_MAP_POSITIVE_Z GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES -# define GL_TEXTURE_CUBE_MAP_NEGATIVE_X GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES -# define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES -# define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES - -#elif defined(USE_OPENGL_ES2) -# include <GLES2/gl2.h> -# include <GLES2/gl2ext.h> -#endif +#include "piglit-dispatch.h" #ifdef __cplusplus } /* end extern "C" */ diff --git a/tests/egl/egl-query-surface.c b/tests/egl/egl-query-surface.c index c61ab5e..431578a 100644 --- a/tests/egl/egl-query-surface.c +++ b/tests/egl/egl-query-surface.c @@ -29,7 +29,7 @@ * For usage information, see usage_error(). */ -#include <EGL/egl.h> +#include "piglit-util.h" #include "piglit-util-egl.h" #include "egl-util.h" diff --git a/tests/egl/egl-util.h b/tests/egl/egl-util.h index ef523ab..ebaa9c3 100644 --- a/tests/egl/egl-util.h +++ b/tests/egl/egl-util.h @@ -12,8 +12,6 @@ #include <X11/Xlib.h> #include <X11/Xutil.h> #include <X11/keysym.h> -#include <EGL/egl.h> -#include <EGL/eglext.h> #include "piglit-util.h" diff --git a/tests/spec/oes_draw_texture/oes_draw_texture.c b/tests/spec/oes_draw_texture/oes_draw_texture.c index 623a40c..76ac382 100644 --- a/tests/spec/oes_draw_texture/oes_draw_texture.c +++ b/tests/spec/oes_draw_texture/oes_draw_texture.c @@ -28,8 +28,6 @@ * Test GL_OES_draw_texture. */ -#include <EGL/egl.h> - #include "piglit-util.h" #define TEXTURE_SIZE 2 diff --git a/tests/util/CMakeLists.gl.txt b/tests/util/CMakeLists.gl.txt index 7790e4f..3085b05 100644 --- a/tests/util/CMakeLists.gl.txt +++ b/tests/util/CMakeLists.gl.txt @@ -35,6 +35,7 @@ IF(BUILD_GLX_TESTS) piglit-glx-util.c piglit-dispatch.c piglit-dispatch-init.c + piglit-util-egl.c ) set (UTIL_SOURCES ${UTIL_SOURCES} diff --git a/tests/util/CMakeLists.txt b/tests/util/CMakeLists.txt index 8866c2c..c70b453 100644 --- a/tests/util/CMakeLists.txt +++ b/tests/util/CMakeLists.txt @@ -18,6 +18,8 @@ set(UTIL_SOURCES shader-load.c piglit-framework.c rgb9e5.c + piglit-dispatch.c + piglit-dispatch-init.c ) if(OPENGL_egl_LIBRARY) diff --git a/tests/util/piglit-dispatch.h b/tests/util/piglit-dispatch.h index 6979a14..06516ab 100644 --- a/tests/util/piglit-dispatch.h +++ b/tests/util/piglit-dispatch.h @@ -101,6 +101,48 @@ struct _cl_event; typedef GLintptr GLvdpauSurfaceNV; typedef unsigned short GLhalfNV; +/* GLES types */ +typedef int32_t GLfixed; +typedef void * GLeglImageOES; +typedef int32_t GLclampx; + +/* EGL types */ +typedef unsigned int EGLBoolean; +typedef unsigned int EGLenum; +typedef int32_t EGLint; +typedef void *EGLConfig; +typedef void *EGLContext; +typedef void *EGLDisplay; +typedef void *EGLSurface; +typedef void *EGLClientBuffer; +typedef void (*__eglMustCastToProperFunctionPointerType)(void); + +/* EGL platforms types that needs to be translated to native types inside + * dispatch. + */ +typedef uintptr_t EGLNativeDisplayType; +typedef uintptr_t EGLNativePixmapType; +typedef uintptr_t EGLNativeWindowType; + +/* EGLTimeKHR */ +typedef void* EGLSyncKHR; +typedef uint64_t EGLTimeKHR; + +/* EGL_KHR_image */ +typedef void *EGLImageKHR; + +/* EGL_HI_clientpixmap */ +struct EGLClientPixmapHI +{ + void* pData; + EGLint iWidth; + EGLint iHeight; + EGLint iStride; +}; + +/* EGL_NV_system_time */ +typedef uint64_t EGLuint64NV; + typedef void (APIENTRY *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,GLvoid *userParam); typedef void (APIENTRY *GLDEBUGPROCAMD)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,GLvoid *userParam); diff --git a/tests/util/piglit-framework.c b/tests/util/piglit-framework.c index 301c353..0ddfa14 100644 --- a/tests/util/piglit-framework.c +++ b/tests/util/piglit-framework.c @@ -121,9 +121,7 @@ piglit_framework_glut_init(int argc, char *argv[]) glutReshapeFunc(reshape); glutKeyboardFunc(piglit_escape_exit_key); -#ifdef USE_OPENGL glewInit(); -#endif } #ifdef USE_GLX @@ -177,8 +175,8 @@ piglit_framework_fbo_init() piglit_framework_fbo_glx_init(); -#ifdef USE_OPENGL glewInit(); +#ifdef USE_OPENGL if (piglit_get_gl_version() < 20) return false; diff --git a/tests/util/piglit-util-egl.c b/tests/util/piglit-util-egl.c index 80025b2..5c7235f 100644 --- a/tests/util/piglit-util-egl.c +++ b/tests/util/piglit-util-egl.c @@ -23,7 +23,6 @@ #include "piglit-util-egl.h" -#include <EGL/egl.h> #include <stdio.h> #ifdef USE_WAFFLE diff --git a/tests/util/piglit-util-egl.h b/tests/util/piglit-util-egl.h index 59f4e27..61d6d28 100644 --- a/tests/util/piglit-util-egl.h +++ b/tests/util/piglit-util-egl.h @@ -23,8 +23,6 @@ #pragma once -#include <EGL/egl.h> - #include "piglit-util.h" #ifdef __cplusplus -- 1.7.5.4 _______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
