Unite defenitions "PUBLIC" and "EPOXY_IMPORTEXPORT" and add it where appropriate. Fix tests build errors.

macos/v1.5.9
Yaron Cohen-Tal 10 years ago
parent 773dd02f59
commit 90c6158d61
  1. 5
      README.md
  2. 62
      include/epoxy/common.h
  3. 9
      include/epoxy/egl.h
  4. 10
      include/epoxy/gl.h
  5. 12
      include/epoxy/glx.h
  6. 7
      include/epoxy/wgl.h
  7. 1
      src/Makefile.am
  8. 2
      src/Makefile.vc
  9. 10
      src/dispatch_common.c
  10. 14
      src/dispatch_common.h
  11. 4
      src/dispatch_egl.c
  12. 4
      src/dispatch_glx.c
  13. 12
      src/dispatch_wgl.c
  14. 2
      src/gen_dispatch.py

@ -62,11 +62,16 @@ It should be as easy as replacing:
#include <GL/gl.h> #include <GL/gl.h>
#include <GL/glx.h> #include <GL/glx.h>
#include <GL/glext.h> #include <GL/glext.h>
#include <EGL/egl.h>
#include <EGL/eglext.h>
#include <windows.h> // for WGL
with: with:
#include <epoxy/gl.h> #include <epoxy/gl.h>
#include <epoxy/glx.h> #include <epoxy/glx.h>
#include <epoxy/egl.h>
#include <epoxy/wgl.h>
As long as epoxy's headers appear first, you should be ready to go. As long as epoxy's headers appear first, you should be ready to go.
Additionally, some new helpers become available, so you don't have to Additionally, some new helpers become available, so you don't have to

@ -0,0 +1,62 @@
/*
* Copyright © 2013 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.
*/
/** @file common.h
*
* Provides basic definitions for Epoxy. Included by all other Epoxy files.
*/
#ifndef EPOXY_COMMON_H
#define EPOXY_COMMON_H
#ifdef __cplusplus
extern "C" {
#endif
#if defined _WIN32 || defined __CYGWIN__
#ifdef EPOXY_EXPORTS
#ifdef __GNUC__
#define EPOXY_IMPORTEXPORT __attribute__ ((dllexport))
#else
#define EPOXY_IMPORTEXPORT __declspec(dllexport)
#endif
#else
#ifdef __GNUC__
#define EPOXY_IMPORTEXPORT __attribute__ ((dllimport))
#else
#define EPOXY_IMPORTEXPORT __declspec(dllimport)
#endif
#endif
#else
#if __GNUC__ >= 4
#define EPOXY_IMPORTEXPORT __attribute__ ((visibility ("default")))
#else
#define EPOXY_IMPORTEXPORT
#endif
#endif
#ifdef __cplusplus
}
#endif
#endif /* EPOXY_COMMON_H */

@ -30,12 +30,13 @@
#ifndef EPOXY_EGL_H #ifndef EPOXY_EGL_H
#define EPOXY_EGL_H #define EPOXY_EGL_H
#include <epoxy/common.h>
#include <stdbool.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
#include <stdbool.h>
#if defined(__egl_h_) || defined(__eglext_h_) #if defined(__egl_h_) || defined(__eglext_h_)
#error epoxy/egl.h must be included before (or in place of) GL/egl.h #error epoxy/egl.h must be included before (or in place of) GL/egl.h
#else #else
@ -45,8 +46,8 @@ extern "C" {
#include "epoxy/egl_generated.h" #include "epoxy/egl_generated.h"
PUBLIC bool epoxy_has_egl_extension(EGLDisplay dpy, const char *extension); EPOXY_IMPORTEXPORT bool epoxy_has_egl_extension(EGLDisplay dpy, const char *extension);
PUBLIC int epoxy_egl_version(EGLDisplay dpy); EPOXY_IMPORTEXPORT int epoxy_egl_version(EGLDisplay dpy);
#ifdef __cplusplus #ifdef __cplusplus
} /* extern "C" */ } /* extern "C" */

@ -30,12 +30,13 @@
#ifndef EPOXY_GL_H #ifndef EPOXY_GL_H
#define EPOXY_GL_H #define EPOXY_GL_H
#include <epoxy/common.h>
#include <stdbool.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
#include <stdbool.h>
#if defined(__gl_h_) || defined(__glext_h_) #if defined(__gl_h_) || defined(__glext_h_)
#error epoxy/gl.h must be included before (or in place of) GL/gl.h #error epoxy/gl.h must be included before (or in place of) GL/gl.h
#else #else
@ -51,7 +52,6 @@ extern "C" {
/* APIENTRY and GLAPIENTRY are not used on Linux or Mac. */ /* APIENTRY and GLAPIENTRY are not used on Linux or Mac. */
#define APIENTRY #define APIENTRY
#define GLAPIENTRY #define GLAPIENTRY
#define EPOXY_IMPORTEXPORT
#define EPOXY_CALLSPEC #define EPOXY_CALLSPEC
#define GLAPI #define GLAPI
#define KHRONOS_APIENTRY #define KHRONOS_APIENTRY
@ -70,10 +70,6 @@ extern "C" {
#define EPOXY_CALLSPEC __stdcall #define EPOXY_CALLSPEC __stdcall
#endif #endif
#ifndef EPOXY_IMPORTEXPORT
#define EPOXY_IMPORTEXPORT __declspec(dllimport)
#endif
#ifndef GLAPI #ifndef GLAPI
#define GLAPI extern #define GLAPI extern
#endif #endif

@ -30,15 +30,15 @@
#ifndef EPOXY_GLX_H #ifndef EPOXY_GLX_H
#define EPOXY_GLX_H #define EPOXY_GLX_H
#ifdef __cplusplus
extern "C" {
#endif
#include <epoxy/gl.h> #include <epoxy/gl.h>
#include <X11/Xlib.h> #include <X11/Xlib.h>
#include <X11/Xutil.h> #include <X11/Xutil.h>
#include <stdbool.h> #include <stdbool.h>
#ifdef __cplusplus
extern "C" {
#endif
#if defined(GLX_H) || defined(__glxext_h_) #if defined(GLX_H) || defined(__glxext_h_)
#error epoxy/glx.h must be included before (or in place of) GL/glx.h #error epoxy/glx.h must be included before (or in place of) GL/glx.h
#else #else
@ -48,8 +48,8 @@ extern "C" {
#include "epoxy/glx_generated.h" #include "epoxy/glx_generated.h"
bool epoxy_has_glx_extension(Display *dpy, int screen, const char *extension); EPOXY_IMPORTEXPORT bool epoxy_has_glx_extension(Display *dpy, int screen, const char *extension);
int epoxy_glx_version(Display *dpy, int screen); EPOXY_IMPORTEXPORT int epoxy_glx_version(Display *dpy, int screen);
#ifdef __cplusplus #ifdef __cplusplus
} /* extern "C" */ } /* extern "C" */

@ -30,13 +30,14 @@
#ifndef EPOXY_WGL_H #ifndef EPOXY_WGL_H
#define EPOXY_WGL_H #define EPOXY_WGL_H
#include <epoxy/common.h>
#include <stdbool.h>
#include <windows.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
#include <stdbool.h>
#include <windows.h>
#undef wglUseFontBitmaps #undef wglUseFontBitmaps
#undef wglUseFontOutlines #undef wglUseFontOutlines

@ -29,6 +29,7 @@ AM_CFLAGS = \
$(VISIBILITY_CFLAGS) \ $(VISIBILITY_CFLAGS) \
$(X11_CFLAGS) \ $(X11_CFLAGS) \
$(EGL_CFLAGS) \ $(EGL_CFLAGS) \
-DEPOXY_EXPORTS \
$() $()
epoxyincludedir = $(includedir)/epoxy epoxyincludedir = $(includedir)/epoxy

@ -46,7 +46,7 @@ EPOXY_DLL_BASENAME = $(EPOXY_BASENAME)-vs$(VSVER)
all: $(EPOXY_DLL_BASENAME).dll all: $(EPOXY_DLL_BASENAME).dll
$(EPOXY_DLL_BASENAME).dll: ../$(GL_GEN_HEADER) ../$(WGL_GEN_HEADER) ../$(EGL_GEN_HEADER) $(GENERATED_GL_SOURCE) $(GENERATED_WGL_SOURCE) $(GENERATED_EGL_SOURCE) $(EPOXY_C_SRC) $(EPOXY_WGL_C_SRC) $(EPOXY_EGL_C_SRC) $(EPOXY_DLL_BASENAME).dll: ../$(GL_GEN_HEADER) ../$(WGL_GEN_HEADER) ../$(EGL_GEN_HEADER) $(GENERATED_GL_SOURCE) $(GENERATED_WGL_SOURCE) $(GENERATED_EGL_SOURCE) $(EPOXY_C_SRC) $(EPOXY_WGL_C_SRC) $(EPOXY_EGL_C_SRC)
$(CC) $(CFLAGS_ADD) $(CFLAGS_C99_COMPAT) $(EPOXY_C_SRC) $(EPOXY_WGL_C_SRC) $(EPOXY_EGL_C_SRC) $(GENERATED_GL_SOURCE) $(GENERATED_WGL_SOURCE) $(GENERATED_EGL_SOURCE) /I c:\opt\Imagination-3_5\PowerVR_Graphics\PowerVR_SDK\SDK_3.5\Builds\Include \ $(CC) $(CFLAGS_ADD) $(CFLAGS_C99_COMPAT) $(EPOXY_C_SRC) $(EPOXY_WGL_C_SRC) $(EPOXY_EGL_C_SRC) $(GENERATED_GL_SOURCE) $(GENERATED_WGL_SOURCE) $(GENERATED_EGL_SOURCE) /DEPOXY_EXPORTS \
/link /DLL /DEBUG $(EXTRA_LDFLAGS) /pdb:$(EPOXY_DLL_BASENAME).pdb /out:$@ /implib:$(EPOXY_BASENAME).lib /link /DLL /DEBUG $(EXTRA_LDFLAGS) /pdb:$(EPOXY_DLL_BASENAME).pdb /out:$@ /implib:$(EPOXY_BASENAME).lib
@if exist $@.manifest mt /manifest $@.manifest /outputresource:$@;2 @if exist $@.manifest mt /manifest $@.manifest /outputresource:$@;2

@ -265,7 +265,7 @@ do_dlsym(void **handle, const char *lib_name, const char *name,
return result; return result;
} }
PUBLIC bool EPOXY_IMPORTEXPORT bool
epoxy_is_desktop_gl(void) epoxy_is_desktop_gl(void)
{ {
const char *es_prefix = "OpenGL ES"; const char *es_prefix = "OpenGL ES";
@ -329,7 +329,7 @@ epoxy_internal_gl_version(int error_version)
return 10 * major + minor; return 10 * major + minor;
} }
PUBLIC int EPOXY_IMPORTEXPORT int
epoxy_gl_version(void) epoxy_gl_version(void)
{ {
return epoxy_internal_gl_version(0); return epoxy_internal_gl_version(0);
@ -452,7 +452,7 @@ epoxy_current_context_is_glx(void)
* \sa epoxy_has_egl_extension() * \sa epoxy_has_egl_extension()
* \sa epoxy_has_glx_extension() * \sa epoxy_has_glx_extension()
*/ */
PUBLIC bool EPOXY_IMPORTEXPORT bool
epoxy_has_gl_extension(const char *ext) epoxy_has_gl_extension(const char *ext)
{ {
return epoxy_internal_has_gl_extension(ext, false); return epoxy_internal_has_gl_extension(ext, false);
@ -703,5 +703,5 @@ WRAPPER(epoxy_glEnd)(void)
#endif #endif
} }
PUBLIC PFNGLBEGINPROC epoxy_glBegin = epoxy_glBegin_wrapped; EPOXY_IMPORTEXPORT PFNGLBEGINPROC epoxy_glBegin = epoxy_glBegin_wrapped;
PUBLIC PFNGLENDPROC epoxy_glEnd = epoxy_glEnd_wrapped; EPOXY_IMPORTEXPORT PFNGLENDPROC epoxy_glEnd = epoxy_glEnd_wrapped;

@ -27,32 +27,18 @@
#define PLATFORM_HAS_EGL 1 #define PLATFORM_HAS_EGL 1
#define PLATFORM_HAS_GLX 0 #define PLATFORM_HAS_GLX 0
#define PLATFORM_HAS_WGL 1 #define PLATFORM_HAS_WGL 1
#define EPOXY_IMPORTEXPORT __declspec(dllexport)
#elif defined(__APPLE__) #elif defined(__APPLE__)
#define PLATFORM_HAS_EGL 0 #define PLATFORM_HAS_EGL 0
#define PLATFORM_HAS_GLX 0 #define PLATFORM_HAS_GLX 0
#define PLATFORM_HAS_WGL 0 #define PLATFORM_HAS_WGL 0
#define EPOXY_IMPORTEXPORT
#elif defined(ANDROID) #elif defined(ANDROID)
#define PLATFORM_HAS_EGL 1 #define PLATFORM_HAS_EGL 1
#define PLATFORM_HAS_GLX 0 #define PLATFORM_HAS_GLX 0
#define PLATFORM_HAS_WGL 0 #define PLATFORM_HAS_WGL 0
#define EPOXY_IMPORTEXPORT
#else #else
#define PLATFORM_HAS_EGL 1 #define PLATFORM_HAS_EGL 1
#define PLATFORM_HAS_GLX 1 #define PLATFORM_HAS_GLX 1
#define PLATFORM_HAS_WGL 0 #define PLATFORM_HAS_WGL 0
#define EPOXY_IMPORTEXPORT
#endif
#ifndef PUBLIC
# ifdef _WIN32
# define PUBLIC __declspec(dllexport)
# elif (defined(__GNUC__) && __GNUC__ >= 4) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590))
# define PUBLIC __attribute__((visibility("default")))
# else
# define PUBLIC
# endif
#endif #endif
#if PLATFORM_HAS_WGL #if PLATFORM_HAS_WGL

@ -38,7 +38,7 @@ epoxy_conservative_egl_version(void)
return epoxy_egl_version(dpy); return epoxy_egl_version(dpy);
} }
PUBLIC int EPOXY_IMPORTEXPORT int
epoxy_egl_version(EGLDisplay dpy) epoxy_egl_version(EGLDisplay dpy)
{ {
int major, minor; int major, minor;
@ -62,7 +62,7 @@ epoxy_conservative_has_egl_extension(const char *ext)
return epoxy_has_egl_extension(dpy, ext); return epoxy_has_egl_extension(dpy, ext);
} }
PUBLIC bool EPOXY_IMPORTEXPORT bool
epoxy_has_egl_extension(EGLDisplay dpy, const char *ext) epoxy_has_egl_extension(EGLDisplay dpy, const char *ext)
{ {
return epoxy_extension_in_string(eglQueryString(dpy, EGL_EXTENSIONS), ext); return epoxy_extension_in_string(eglQueryString(dpy, EGL_EXTENSIONS), ext);

@ -47,7 +47,7 @@ epoxy_conservative_glx_version(void)
return epoxy_glx_version(dpy, screen); return epoxy_glx_version(dpy, screen);
} }
PUBLIC int EPOXY_IMPORTEXPORT int
epoxy_glx_version(Display *dpy, int screen) epoxy_glx_version(Display *dpy, int screen)
{ {
int server_major, server_minor; int server_major, server_minor;
@ -92,7 +92,7 @@ epoxy_conservative_has_glx_extension(const char *ext)
return epoxy_has_glx_extension(dpy, screen, ext); return epoxy_has_glx_extension(dpy, screen, ext);
} }
PUBLIC bool EPOXY_IMPORTEXPORT bool
epoxy_has_glx_extension(Display *dpy, int screen, const char *ext) epoxy_has_glx_extension(Display *dpy, int screen, const char *ext)
{ {
/* No, you can't just use glXGetClientString or /* No, you can't just use glXGetClientString or

@ -46,7 +46,7 @@ epoxy_conservative_has_wgl_extension(const char *ext)
return epoxy_has_wgl_extension(hdc, ext); return epoxy_has_wgl_extension(hdc, ext);
} }
PUBLIC bool EPOXY_IMPORTEXPORT bool
epoxy_has_wgl_extension(HDC hdc, const char *ext) epoxy_has_wgl_extension(HDC hdc, const char *ext)
{ {
PFNWGLGETEXTENSIONSSTRINGARBPROC getext; PFNWGLGETEXTENSIONSSTRINGARBPROC getext;
@ -72,7 +72,7 @@ epoxy_has_wgl_extension(HDC hdc, const char *ext)
* table per context and reuse it when the context is made current * table per context and reuse it when the context is made current
* again. * again.
*/ */
PUBLIC void EPOXY_IMPORTEXPORT void
epoxy_handle_external_wglMakeCurrent(void) epoxy_handle_external_wglMakeCurrent(void)
{ {
if (!first_context_current) { if (!first_context_current) {
@ -190,7 +190,7 @@ WRAPPER(epoxy_wglMakeAssociatedContextCurrentAMD)(HGLRC hglrc)
return ret; return ret;
} }
PUBLIC PFNWGLMAKECURRENTPROC epoxy_wglMakeCurrent = epoxy_wglMakeCurrent_wrapped; EPOXY_IMPORTEXPORT PFNWGLMAKECURRENTPROC epoxy_wglMakeCurrent = epoxy_wglMakeCurrent_wrapped;
PUBLIC PFNWGLMAKECONTEXTCURRENTEXTPROC epoxy_wglMakeContextCurrentEXT = epoxy_wglMakeContextCurrentEXT_wrapped; EPOXY_IMPORTEXPORT PFNWGLMAKECONTEXTCURRENTEXTPROC epoxy_wglMakeContextCurrentEXT = epoxy_wglMakeContextCurrentEXT_wrapped;
PUBLIC PFNWGLMAKECONTEXTCURRENTARBPROC epoxy_wglMakeContextCurrentARB = epoxy_wglMakeContextCurrentARB_wrapped; EPOXY_IMPORTEXPORT PFNWGLMAKECONTEXTCURRENTARBPROC epoxy_wglMakeContextCurrentARB = epoxy_wglMakeContextCurrentARB_wrapped;
PUBLIC PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC epoxy_wglMakeAssociatedContextCurrentEXT = epoxy_wglMakeAssociatedContextCurrentAMD_wrapped; EPOXY_IMPORTEXPORT PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC epoxy_wglMakeAssociatedContextCurrentEXT = epoxy_wglMakeAssociatedContextCurrentAMD_wrapped;

@ -77,7 +77,7 @@ class GLFunction(object):
self.public = '' self.public = ''
else: else:
self.wrapped_name = name self.wrapped_name = name
self.public = 'PUBLIC ' self.public = 'EPOXY_IMPORTEXPORT '
# This is the string of C code for passing through the # This is the string of C code for passing through the
# arguments to the function. # arguments to the function.

Loading…
Cancel
Save