Hi Marek, On 12/05/15 22:54, Marek Olšák wrote: > From: Marek Olšák <marek.ol...@amd.com> > > with the extension of keeping: > #define KHRONOS_APICALL __attribute__((visibility("default"))) > > And don't include mesa headers in egl.h. Can we do this more gradually (like below). It will ease the conflicts that this patch might cause.
- egl.h - should have no side effects - eglext.h and eglmesaext.h - will clearly illustrate the parts that have been moved from the latter to the former. - eglplatform.h and khrplatform.h - there are a few controversial changes which might cause breakage. > --- > include/EGL/egl.h | 562 > +++++++++++++++++++++------------------------ > include/EGL/eglext.h | 259 +++++++++++++++++++-- > include/EGL/eglplatform.h | 45 +--- > include/KHR/khrplatform.h | 25 +- > src/egl/main/egltypedefs.h | 2 + > 5 files changed, 540 insertions(+), 353 deletions(-) > > diff --git a/include/EGL/eglplatform.h b/include/EGL/eglplatform.h > index 2eb6865..1284089 100644 > --- a/include/EGL/eglplatform.h > +++ b/include/EGL/eglplatform.h > -#elif defined(__WINSCW__) || defined(__SYMBIAN32__) /* Symbian */ > +#elif defined(__APPLE__) || defined(__WINSCW__) || defined(__SYMBIAN32__) > /* Symbian */ > > typedef int EGLNativeDisplayType; > typedef void *EGLNativeWindowType; > typedef void *EGLNativePixmapType; > > -#elif defined(WL_EGL_PLATFORM) > +#elif defined(__ANDROID__) || defined(ANDROID) > > -typedef struct wl_display *EGLNativeDisplayType; > -typedef struct wl_egl_pixmap *EGLNativePixmapType; > -typedef struct wl_egl_window *EGLNativeWindowType; > +#include <android/native_window.h> > > -#elif defined(__GBM__) > - > -typedef struct gbm_device *EGLNativeDisplayType; > -typedef struct gbm_bo *EGLNativePixmapType; > -typedef void *EGLNativeWindowType; > - > -#elif defined(ANDROID) /* Android */ > - > -struct ANativeWindow; > struct egl_native_pixmap_t; > > -typedef struct ANativeWindow *EGLNativeWindowType; > -typedef struct egl_native_pixmap_t *EGLNativePixmapType; > -typedef void *EGLNativeDisplayType; > +typedef struct ANativeWindow* EGLNativeWindowType; > +typedef struct egl_native_pixmap_t* EGLNativePixmapType; > +typedef void* EGLNativeDisplayType; > > #elif defined(__unix__) > > -#if defined(MESA_EGL_NO_X11_HEADERS) > - > -typedef void *EGLNativeDisplayType; > -typedef khronos_uintptr_t EGLNativePixmapType; > -typedef khronos_uintptr_t EGLNativeWindowType; > - > -#else > - > /* X11 (tentative) */ > #include <X11/Xlib.h> > #include <X11/Xutil.h> > @@ -122,18 +103,8 @@ typedef Display *EGLNativeDisplayType; > typedef Pixmap EGLNativePixmapType; > typedef Window EGLNativeWindowType; > > -#endif /* MESA_EGL_NO_X11_HEADERS */ > - > -#elif __HAIKU__ > -#include <kernel/image.h> > -typedef void *EGLNativeDisplayType; > -typedef khronos_uintptr_t EGLNativePixmapType; > -typedef khronos_uintptr_t EGLNativeWindowType; > - Upon closer look, one could get away with the above changes, although there may be something more subtle to it. Kristian, Chad, Would you have any suggestions for/against nuking the Wayland/GBM/other typedefs ? With an extra eye on the Haiku changes, what would it take to get the current eglplatform.h (or equivalent) accepted with Khronos ? > diff --git a/include/KHR/khrplatform.h b/include/KHR/khrplatform.h > index 4479539..faa0ed7 100644 > --- a/include/KHR/khrplatform.h > +++ b/include/KHR/khrplatform.h > #if defined(_WIN32) && !defined(__SCITECH_SNAP__) > -# if defined(KHRONOS_DLL_EXPORTS) > -# define KHRONOS_APICALL __declspec(dllexport) > -# else > -# define KHRONOS_APICALL __declspec(dllimport) > -# endif > +# define KHRONOS_APICALL __declspec(dllimport) This might cause a problem with our Windows/SCons build. On the surface it seems to rely on KHRONOS_DLL_EXPORTS. Although we do have module definition files, which set the correct symbols as external. Perhaps Jose/Brian might be able to confirm if things are good or go pear-shaped ? > diff --git a/src/egl/main/egltypedefs.h b/src/egl/main/egltypedefs.h > index e90959a..2430033 100644 > --- a/src/egl/main/egltypedefs.h > +++ b/src/egl/main/egltypedefs.h > @@ -35,6 +35,8 @@ > > #include <EGL/egl.h> > #include <EGL/eglext.h> > +#include <EGL/eglextchromium.h> > +#include <EGL/eglmesaext.h> > If my memory recalls correctly there was a discussion that additional/third party extension headers should be included from within eglext.h. Although I'm struggling to find the quote plus was never a fan of it. This will require that we check all possible users of the remaining mesa/chromium extensions and update them :\ -Emil _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev