21 #include "../SDL_internal.h" 26 #if SDL_VIDEO_OPENGL_EGL 32 typedef struct SDL_EGL_VideoData
34 void *egl_dll_handle, *dll_handle;
35 EGLDisplay egl_display;
39 EGLDisplay(EGLAPIENTRY *eglGetDisplay) (NativeDisplayType display);
40 EGLBoolean(EGLAPIENTRY *eglInitialize) (EGLDisplay
dpy, EGLint * major,
42 EGLBoolean(EGLAPIENTRY *eglTerminate) (EGLDisplay
dpy);
44 void *(EGLAPIENTRY *eglGetProcAddress) (
const char * procName);
46 EGLBoolean(EGLAPIENTRY *eglChooseConfig) (EGLDisplay
dpy,
47 const EGLint * attrib_list,
49 EGLint config_size, EGLint * num_config);
51 EGLContext(EGLAPIENTRY *eglCreateContext) (EGLDisplay
dpy,
53 EGLContext share_list,
54 const EGLint * attrib_list);
56 EGLBoolean(EGLAPIENTRY *eglDestroyContext) (EGLDisplay
dpy, EGLContext ctx);
58 EGLSurface(EGLAPIENTRY *eglCreateWindowSurface) (EGLDisplay
dpy,
61 const EGLint * attrib_list);
62 EGLBoolean(EGLAPIENTRY *eglDestroySurface) (EGLDisplay
dpy, EGLSurface surface);
64 EGLBoolean(EGLAPIENTRY *eglMakeCurrent) (EGLDisplay
dpy, EGLSurface draw,
65 EGLSurface read, EGLContext ctx);
67 EGLBoolean(EGLAPIENTRY *eglSwapBuffers) (EGLDisplay
dpy, EGLSurface draw);
69 EGLBoolean(EGLAPIENTRY *eglSwapInterval) (EGLDisplay
dpy, EGLint interval);
71 const char *(EGLAPIENTRY *eglQueryString) (EGLDisplay dpy, EGLint
name);
73 EGLBoolean(EGLAPIENTRY *eglGetConfigAttrib) (EGLDisplay
dpy, EGLConfig config,
74 EGLint attribute, EGLint *
value);
76 EGLBoolean(EGLAPIENTRY *eglWaitNative) (EGLint engine);
78 EGLBoolean(EGLAPIENTRY *eglWaitGL)(
void);
80 EGLBoolean(EGLAPIENTRY *eglBindAPI)(EGLenum);
86 extern int SDL_EGL_LoadLibrary(
_THIS,
const char *
path, NativeDisplayType native_display);
87 extern void *SDL_EGL_GetProcAddress(
_THIS,
const char *proc);
88 extern void SDL_EGL_UnloadLibrary(
_THIS);
89 extern int SDL_EGL_ChooseConfig(
_THIS);
90 extern int SDL_EGL_SetSwapInterval(
_THIS,
int interval);
91 extern int SDL_EGL_GetSwapInterval(
_THIS);
93 extern EGLSurface *SDL_EGL_CreateSurface(
_THIS, NativeWindowType nw);
94 extern void SDL_EGL_DestroySurface(
_THIS, EGLSurface egl_surface);
99 extern void SDL_EGL_SwapBuffers(
_THIS, EGLSurface egl_surface);
103 #define SDL_EGL_SwapWindow_impl(BACKEND) void \ 104 BACKEND ## _GLES_SwapWindow(_THIS, SDL_Window * window) \ 106 SDL_EGL_SwapBuffers(_this, ((SDL_WindowData *) window->driverdata)->egl_surface);\ 109 #define SDL_EGL_MakeCurrent_impl(BACKEND) int \ 110 BACKEND ## _GLES_MakeCurrent(_THIS, SDL_Window * window, SDL_GLContext context) \ 112 if (window && context) { \ 113 return SDL_EGL_MakeCurrent(_this, ((SDL_WindowData *) window->driverdata)->egl_surface, context); \ 116 return SDL_EGL_MakeCurrent(_this, NULL, NULL);\ 120 #define SDL_EGL_CreateContext_impl(BACKEND) SDL_GLContext \ 121 BACKEND ## _GLES_CreateContext(_THIS, SDL_Window * window) \ 123 return SDL_EGL_CreateContext(_this, ((SDL_WindowData *) window->driverdata)->egl_surface);\ return Display return Display Bool Bool int int int return Display XEvent Bool(*) XPointer return Display return Display dpy)
GLuint const GLchar * name
SDL_GLattr
OpenGL configuration attributes.
void * SDL_GLContext
An opaque handle to an OpenGL context.
GLsizei const GLfloat * value
SDL_PRINTF_FORMAT_STRING const char int SDL_PRINTF_FORMAT_STRING const char int SDL_PRINTF_FORMAT_STRING const char int SDL_PRINTF_FORMAT_STRING const char const char SDL_SCANF_FORMAT_STRING const char return SDL_ThreadFunction const char void return Uint32 return Uint32 void
GLsizei const GLchar *const * path