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
43SDL_EGL_CreateContext_impl(KMSDRM)
57 wdata->
crtc_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) {
185SDL_EGL_MakeCurrent_impl(KMSDRM)
int KMSDRM_GLES_SetSwapInterval(_THIS, int interval)
SDL_bool KMSDRM_WaitPageFlip(_THIS, SDL_WindowData *wdata, int timeout)
int KMSDRM_GLES_LoadLibrary(_THIS, const char *path)
KMSDRM_FBInfo * KMSDRM_FBFromBO(_THIS, struct gbm_bo *bo)
int KMSDRM_GLES_SwapWindow(_THIS, SDL_Window *window)
GLbitfield GLuint64 timeout
GLsizei const GLchar *const * path
SDL_VideoDisplay * SDL_GetDisplayForWindow(SDL_Window *window)
static SDL_VideoDevice * _this
#define EGL_PLATFORM_GBM_MESA
EGLSurface EGLNativeWindowType * window
SDL_bool waiting_for_flip
struct gbm_bo * current_bo
The type used to identify a window.