mirror of https://github.com/mpv-player/mpv
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
|
||||
|
||||
#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) {
|
||||
memset(ctx, 0, sizeof(*ctx));
|
||||
ctx->setGlWindow = setGlWindow_dummy;
|
||||
ctx->releaseGlContext = releaseGlContext_dummy;
|
||||
ctx->check_events = dummy_check_events;
|
||||
ctx->type = type;
|
||||
switch (ctx->type) {
|
||||
#ifdef CONFIG_GL_WIN32
|
||||
|
@ -1869,6 +1897,12 @@ int init_mpglcontext(MPGLContext *ctx, enum MPGLType type) {
|
|||
ctx->fullscreen = vo_x11_fullscreen;
|
||||
ctx->ontop = vo_x11_ontop;
|
||||
return vo_init();
|
||||
#endif
|
||||
#ifdef CONFIG_GL_SDL
|
||||
case GLTYPE_SDL:
|
||||
SDL_Init(SDL_INIT_VIDEO);
|
||||
ctx->swapGlBuffers = swapGlBuffers_sdl;
|
||||
return 1;
|
||||
#endif
|
||||
default:
|
||||
return 0;
|
||||
|
@ -1887,6 +1921,11 @@ void uninit_mpglcontext(MPGLContext *ctx) {
|
|||
case GLTYPE_X11:
|
||||
vo_x11_uninit();
|
||||
break;
|
||||
#endif
|
||||
#ifdef CONFIG_GL_SDL
|
||||
case GLTYPE_SDL:
|
||||
SDL_QuitSubSystem(SDL_INIT_VIDEO);
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
memset(ctx, 0, sizeof(*ctx));
|
||||
|
|
|
@ -372,6 +372,7 @@ void glDisableYUVConversion(GLenum target, int type);
|
|||
enum MPGLType {
|
||||
GLTYPE_W32,
|
||||
GLTYPE_X11,
|
||||
GLTYPE_SDL,
|
||||
};
|
||||
|
||||
typedef struct MPGLContext {
|
||||
|
|
Loading…
Reference in New Issue