22 #include "../../SDL_internal.h" 24 #if SDL_VIDEO_DRIVER_KMSDRM && SDL_VIDEO_OPENGL_EGL 32 #ifndef EGL_PLATFORM_GBM_MESA 33 #define EGL_PLATFORM_GBM_MESA 0x31D7 43 SDL_EGL_CreateContext_impl(KMSDRM)
57 wdata->
next_bo = KMSDRM_gbm_surface_lock_front_buffer(wdata->
gs);
64 if (fb_info ==
NULL) {
80 if (!
_this->egl_data) {
84 if (interval == 0 || interval == 1) {
85 _this->egl_data->egl_swapinterval = interval;
87 return SDL_SetError(
"Only swap intervals of 0 or 1 are supported");
103 if (
_this->egl_data->egl_swapinterval == 1) {
112 KMSDRM_gbm_surface_release_buffer(wdata->
gs, wdata->
current_bo);
125 wdata->
current_bo = KMSDRM_gbm_surface_lock_front_buffer(wdata->
gs);
131 wdata->
next_bo = KMSDRM_gbm_surface_lock_front_buffer(wdata->
gs);
140 if (fb_info ==
NULL) {
143 if (
_this->egl_data->egl_swapinterval == 0) {
159 if(!KMSDRM_GLES_SetupCrtc(
_this, window)) {
185 SDL_EGL_MakeCurrent_impl(KMSDRM)
SDL_bool waiting_for_flip
struct gbm_bo * current_bo
int KMSDRM_GLES_SetSwapInterval(_THIS, int interval)
int KMSDRM_GLES_LoadLibrary(_THIS, const char *path)
static SDL_VideoDevice * _this
SDL_bool KMSDRM_WaitPageFlip(_THIS, SDL_WindowData *wdata, int timeout)
SDL_VideoDisplay * SDL_GetDisplayForWindow(SDL_Window *window)
EGLSurface EGLNativeWindowType * window
The type used to identify a window.
GLbitfield GLuint64 timeout
#define EGL_PLATFORM_GBM_MESA
GLsizei const GLchar *const * path
KMSDRM_FBInfo * KMSDRM_FBFromBO(_THIS, struct gbm_bo *bo)
int KMSDRM_GLES_SwapWindow(_THIS, SDL_Window *window)