mirror of
https://github.com/mpv-player/mpv
synced 2024-12-23 15:22:09 +00:00
First steps to support -vo gl with SDL-based Window handling.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31062 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
976d35bc6b
commit
6e4458ffa3
@ -1842,8 +1842,36 @@ static int x11_check_events(void) {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_GL_SDL
|
||||||
|
#ifdef CONFIG_SDL_SDL_H
|
||||||
|
#include <SDL/SDL.h>
|
||||||
|
#else
|
||||||
|
#include <SDL.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static void swapGlBuffers_sdl(MPGLContext *ctx) {
|
||||||
|
SDL_GL_SwapBuffers();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static int setGlWindow_dummy(MPGLContext *ctx) {
|
||||||
|
getFunctions(setNull, NULL);
|
||||||
|
return SET_WINDOW_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void releaseGlContext_dummy(MPGLContext *ctx) {
|
||||||
|
}
|
||||||
|
|
||||||
|
static int dummy_check_events(void) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
int init_mpglcontext(MPGLContext *ctx, enum MPGLType type) {
|
int init_mpglcontext(MPGLContext *ctx, enum MPGLType type) {
|
||||||
memset(ctx, 0, sizeof(*ctx));
|
memset(ctx, 0, sizeof(*ctx));
|
||||||
|
ctx->setGlWindow = setGlWindow_dummy;
|
||||||
|
ctx->releaseGlContext = releaseGlContext_dummy;
|
||||||
|
ctx->check_events = dummy_check_events;
|
||||||
ctx->type = type;
|
ctx->type = type;
|
||||||
switch (ctx->type) {
|
switch (ctx->type) {
|
||||||
#ifdef CONFIG_GL_WIN32
|
#ifdef CONFIG_GL_WIN32
|
||||||
@ -1869,6 +1897,12 @@ int init_mpglcontext(MPGLContext *ctx, enum MPGLType type) {
|
|||||||
ctx->fullscreen = vo_x11_fullscreen;
|
ctx->fullscreen = vo_x11_fullscreen;
|
||||||
ctx->ontop = vo_x11_ontop;
|
ctx->ontop = vo_x11_ontop;
|
||||||
return vo_init();
|
return vo_init();
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_GL_SDL
|
||||||
|
case GLTYPE_SDL:
|
||||||
|
SDL_Init(SDL_INIT_VIDEO);
|
||||||
|
ctx->swapGlBuffers = swapGlBuffers_sdl;
|
||||||
|
return 1;
|
||||||
#endif
|
#endif
|
||||||
default:
|
default:
|
||||||
return 0;
|
return 0;
|
||||||
@ -1887,6 +1921,11 @@ void uninit_mpglcontext(MPGLContext *ctx) {
|
|||||||
case GLTYPE_X11:
|
case GLTYPE_X11:
|
||||||
vo_x11_uninit();
|
vo_x11_uninit();
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_GL_SDL
|
||||||
|
case GLTYPE_SDL:
|
||||||
|
SDL_QuitSubSystem(SDL_INIT_VIDEO);
|
||||||
|
break;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
memset(ctx, 0, sizeof(*ctx));
|
memset(ctx, 0, sizeof(*ctx));
|
||||||
|
@ -372,6 +372,7 @@ void glDisableYUVConversion(GLenum target, int type);
|
|||||||
enum MPGLType {
|
enum MPGLType {
|
||||||
GLTYPE_W32,
|
GLTYPE_W32,
|
||||||
GLTYPE_X11,
|
GLTYPE_X11,
|
||||||
|
GLTYPE_SDL,
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct MPGLContext {
|
typedef struct MPGLContext {
|
||||||
|
Loading…
Reference in New Issue
Block a user