1
0
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:
reimar 2010-04-24 16:46:47 +00:00
parent 976d35bc6b
commit 6e4458ffa3
2 changed files with 40 additions and 0 deletions

View File

@ -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));

View File

@ -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 {