mirror of https://github.com/mpv-player/mpv
39 lines
1.2 KiB
C
39 lines
1.2 KiB
C
#ifndef MP_GL_EGL_HELPERS_H
|
|
#define MP_GL_EGL_HELPERS_H
|
|
|
|
#include <stdbool.h>
|
|
|
|
#include <EGL/egl.h>
|
|
#include <EGL/eglext.h>
|
|
|
|
#include "video/out/gpu/context.h"
|
|
|
|
struct mp_log;
|
|
|
|
bool mpegl_create_context(struct ra_ctx *ctx, EGLDisplay display,
|
|
EGLContext *out_context, EGLConfig *out_config);
|
|
|
|
struct mpegl_cb {
|
|
// if set, pick the desired config from the given list and return its index
|
|
// defaults to 0 (they are sorted by eglChooseConfig). return a negative
|
|
// number to indicate an error condition or that no suitable configs could
|
|
// be found.
|
|
int (*refine_config)(void *user_data, EGLConfig *configs, int num_configs);
|
|
void *user_data;
|
|
};
|
|
|
|
bool mpegl_create_context_cb(struct ra_ctx *ctx, EGLDisplay display,
|
|
struct mpegl_cb cb, EGLContext *out_context,
|
|
EGLConfig *out_config);
|
|
|
|
struct GL;
|
|
void mpegl_load_functions(struct GL *gl, struct mp_log *log);
|
|
|
|
EGLDisplay mpegl_get_display(EGLenum platform, const char *platform_ext_name,
|
|
void *native_display);
|
|
|
|
EGLSurface mpegl_create_window_surface(EGLDisplay dpy, EGLConfig config,
|
|
void *native_window);
|
|
|
|
#endif
|