diff options
author | Uoti Urpala <uau@glyph.nonexistent.invalid> | 2009-12-18 18:54:42 +0200 |
---|---|---|
committer | Uoti Urpala <uau@glyph.nonexistent.invalid> | 2009-12-18 18:54:42 +0200 |
commit | efcc9ad7120e01a17fc3659cb0229135b1cebb95 (patch) | |
tree | eb15edb75377eedd5d7397209e8c0d594020663e /libvo/gl_common.h | |
parent | 1598302be65c77c107330dc46fd0dabface3112d (diff) | |
parent | 8fcbe5835d038649e70da410d46c4f5cd502c261 (diff) | |
download | mpv-efcc9ad7120e01a17fc3659cb0229135b1cebb95.tar.bz2 mpv-efcc9ad7120e01a17fc3659cb0229135b1cebb95.tar.xz |
Merge svn changes up to r30055
Diffstat (limited to 'libvo/gl_common.h')
-rw-r--r-- | libvo/gl_common.h | 161 |
1 files changed, 110 insertions, 51 deletions
diff --git a/libvo/gl_common.h b/libvo/gl_common.h index 56fcbba0e3..5a3b4c4163 100644 --- a/libvo/gl_common.h +++ b/libvo/gl_common.h @@ -31,21 +31,24 @@ #include <windows.h> #include <GL/gl.h> #include "w32_common.h" -#else +#endif +#ifdef CONFIG_X11 #include <GL/gl.h> #include <X11/Xlib.h> #include <GL/glx.h> #include "x11_common.h" +// This old-vo wrapper macro would conflict with the struct member +#undef update_xinerama_info #endif // workaround for some gl.h headers -#ifndef APIENTRY -#ifdef GLAPIENTRY -#define APIENTRY GLAPIENTRY +#ifndef GLAPIENTRY +#ifdef APIENTRY +#define GLAPIENTRY APIENTRY #elif defined(GL_WIN32) -#define APIENTRY __stdcall +#define GLAPIENTRY __stdcall #else -#define APIENTRY +#define GLAPIENTRY #endif #endif @@ -352,60 +355,116 @@ void glDisableYUVConversion(GLenum target, int type); #define SET_WINDOW_REINIT 1 /** \} */ +enum MPGLType { + GLTYPE_W32, + GLTYPE_X11, +}; + +typedef struct MPGLContext { + enum MPGLType type; + union { + int w32; +#ifdef CONFIG_X11 + XVisualInfo *x11; +#endif + } vinfo; + union { #ifdef GL_WIN32 -#define vo_gl_border(vo) vo_w32_border() -#define vo_check_events() vo_w32_check_events() -#define vo_fullscreen() vo_w32_fullscreen() -#define vo_gl_ontop() vo_w32_ontop() -#define vo_uninit() vo_w32_uninit() -int setGlWindow(int *vinfo, HGLRC *context, HWND win); -void releaseGlContext(int *vinfo, HGLRC *context); -#else -#define vo_gl_border(vo) vo_x11_border(vo) -#define vo_check_events() vo_x11_check_events(mDisplay) -#define vo_fullscreen() vo_x11_fullscreen() -#define vo_gl_ontop() vo_x11_ontop() -#define vo_uninit() vo_x11_uninit() -int setGlWindow(XVisualInfo **vinfo, GLXContext *context, Window win); -void releaseGlContext(XVisualInfo **vinfo, GLXContext *context); -#endif -void swapGlBuffers(void); + HGLRC w32; +#endif +#ifdef CONFIG_X11 + GLXContext x11; +#endif + } context; + int (*setGlWindow)(struct MPGLContext *); + void (*releaseGlContext)(struct MPGLContext *); + void (*swapGlBuffers)(struct MPGLContext *); + void (*update_xinerama_info)(void); + void (*border)(void); + int (*check_events)(void); + void (*fullscreen)(void); + void (*ontop)(void); +} MPGLContext; + +int init_mpglcontext(MPGLContext *ctx, enum MPGLType type); +void uninit_mpglcontext(MPGLContext *ctx); + +extern void (GLAPIENTRY *Begin)(GLenum); +extern void (GLAPIENTRY *End)(void); +extern void (GLAPIENTRY *Viewport)(GLint, GLint, GLsizei, GLsizei); +extern void (GLAPIENTRY *MatrixMode)(GLenum); +extern void (GLAPIENTRY *LoadIdentity)(void); +extern void (GLAPIENTRY *Scaled)(double, double, double); +extern void (GLAPIENTRY *Ortho)(double, double, double, double, double, double); +extern void (GLAPIENTRY *PushMatrix)(void); +extern void (GLAPIENTRY *PopMatrix)(void); +extern void (GLAPIENTRY *Clear)(GLbitfield); +extern GLuint (GLAPIENTRY *GenLists)(GLsizei); +extern void (GLAPIENTRY *DeleteLists)(GLuint, GLsizei); +extern void (GLAPIENTRY *NewList)(GLuint, GLenum); +extern void (GLAPIENTRY *EndList)(void); +extern void (GLAPIENTRY *CallList)(GLuint); +extern void (GLAPIENTRY *CallLists)(GLsizei, GLenum, const GLvoid *); +extern void (GLAPIENTRY *GenTextures)(GLsizei, GLuint *); +extern void (GLAPIENTRY *DeleteTextures)(GLsizei, const GLuint *); +extern void (GLAPIENTRY *TexEnvi)(GLenum, GLenum, GLint); +extern void (GLAPIENTRY *Color4ub)(GLubyte, GLubyte, GLubyte, GLubyte); +extern void (GLAPIENTRY *Color3f)(GLfloat, GLfloat, GLfloat); +extern void (GLAPIENTRY *ClearColor)(GLclampf, GLclampf, GLclampf, GLclampf); +extern void (GLAPIENTRY *Enable)(GLenum); +extern void (GLAPIENTRY *Disable)(GLenum); +extern const GLubyte *(GLAPIENTRY *GetString)(GLenum); +extern void (GLAPIENTRY *DrawBuffer)(GLenum); +extern void (GLAPIENTRY *DepthMask)(GLboolean); +extern void (GLAPIENTRY *BlendFunc)(GLenum, GLenum); +extern void (GLAPIENTRY *Flush)(void); +extern void (GLAPIENTRY *Finish)(void); +extern void (GLAPIENTRY *PixelStorei)(GLenum, GLint); +extern void (GLAPIENTRY *TexImage1D)(GLenum, GLint, GLint, GLsizei, GLint, GLenum, GLenum, const GLvoid *); +extern void (GLAPIENTRY *TexImage2D)(GLenum, GLint, GLint, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); +extern void (GLAPIENTRY *TexSubImage2D)(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +extern void (GLAPIENTRY *TexParameteri)(GLenum, GLenum, GLint); +extern void (GLAPIENTRY *TexParameterf)(GLenum, GLenum, GLfloat); +extern void (GLAPIENTRY *TexParameterfv)(GLenum, GLenum, const GLfloat *); +extern void (GLAPIENTRY *TexCoord2f)(GLfloat, GLfloat); +extern void (GLAPIENTRY *Vertex2f)(GLfloat, GLfloat); +extern void (GLAPIENTRY *GetIntegerv)(GLenum, GLint *); -extern void (APIENTRY *GenBuffers)(GLsizei, GLuint *); -extern void (APIENTRY *DeleteBuffers)(GLsizei, const GLuint *); -extern void (APIENTRY *BindBuffer)(GLenum, GLuint); -extern GLvoid* (APIENTRY *MapBuffer)(GLenum, GLenum); -extern GLboolean (APIENTRY *UnmapBuffer)(GLenum); -extern void (APIENTRY *BufferData)(GLenum, intptr_t, const GLvoid *, GLenum); -extern void (APIENTRY *CombinerParameterfv)(GLenum, const GLfloat *); -extern void (APIENTRY *CombinerParameteri)(GLenum, GLint); -extern void (APIENTRY *CombinerInput)(GLenum, GLenum, GLenum, GLenum, GLenum, +extern void (GLAPIENTRY *GenBuffers)(GLsizei, GLuint *); +extern void (GLAPIENTRY *DeleteBuffers)(GLsizei, const GLuint *); +extern void (GLAPIENTRY *BindBuffer)(GLenum, GLuint); +extern GLvoid* (GLAPIENTRY *MapBuffer)(GLenum, GLenum); +extern GLboolean (GLAPIENTRY *UnmapBuffer)(GLenum); +extern void (GLAPIENTRY *BufferData)(GLenum, intptr_t, const GLvoid *, GLenum); +extern void (GLAPIENTRY *CombinerParameterfv)(GLenum, const GLfloat *); +extern void (GLAPIENTRY *CombinerParameteri)(GLenum, GLint); +extern void (GLAPIENTRY *CombinerInput)(GLenum, GLenum, GLenum, GLenum, GLenum, GLenum); -extern void (APIENTRY *CombinerOutput)(GLenum, GLenum, GLenum, GLenum, GLenum, +extern void (GLAPIENTRY *CombinerOutput)(GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLboolean, GLboolean, GLboolean); -extern void (APIENTRY *BeginFragmentShader)(void); -extern void (APIENTRY *EndFragmentShader)(void); -extern void (APIENTRY *SampleMap)(GLuint, GLuint, GLenum); -extern void (APIENTRY *ColorFragmentOp2)(GLenum, GLuint, GLuint, GLuint, GLuint, +extern void (GLAPIENTRY *BeginFragmentShader)(void); +extern void (GLAPIENTRY *EndFragmentShader)(void); +extern void (GLAPIENTRY *SampleMap)(GLuint, GLuint, GLenum); +extern void (GLAPIENTRY *ColorFragmentOp2)(GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); -extern void (APIENTRY *ColorFragmentOp3)(GLenum, GLuint, GLuint, GLuint, GLuint, +extern void (GLAPIENTRY *ColorFragmentOp3)(GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); -extern void (APIENTRY *SetFragmentShaderConstant)(GLuint, const GLfloat *); -extern void (APIENTRY *ActiveTexture)(GLenum); -extern void (APIENTRY *BindTexture)(GLenum, GLuint); -extern void (APIENTRY *MultiTexCoord2f)(GLenum, GLfloat, GLfloat); -extern void (APIENTRY *GenPrograms)(GLsizei, GLuint *); -extern void (APIENTRY *DeletePrograms)(GLsizei, const GLuint *); -extern void (APIENTRY *BindProgram)(GLenum, GLuint); -extern void (APIENTRY *ProgramString)(GLenum, GLenum, GLsizei, const GLvoid *); -extern void (APIENTRY *ProgramEnvParameter4f)(GLenum, GLuint, GLfloat, GLfloat, +extern void (GLAPIENTRY *SetFragmentShaderConstant)(GLuint, const GLfloat *); +extern void (GLAPIENTRY *ActiveTexture)(GLenum); +extern void (GLAPIENTRY *BindTexture)(GLenum, GLuint); +extern void (GLAPIENTRY *MultiTexCoord2f)(GLenum, GLfloat, GLfloat); +extern void (GLAPIENTRY *GenPrograms)(GLsizei, GLuint *); +extern void (GLAPIENTRY *DeletePrograms)(GLsizei, const GLuint *); +extern void (GLAPIENTRY *BindProgram)(GLenum, GLuint); +extern void (GLAPIENTRY *ProgramString)(GLenum, GLenum, GLsizei, const GLvoid *); +extern void (GLAPIENTRY *ProgramEnvParameter4f)(GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat); -extern int (APIENTRY *SwapInterval)(int); -extern void (APIENTRY *TexImage3D)(GLenum, GLint, GLenum, GLsizei, GLsizei, +extern int (GLAPIENTRY *SwapInterval)(int); +extern void (GLAPIENTRY *TexImage3D)(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); -extern void* (APIENTRY *AllocateMemoryMESA)(void *, int, size_t, float, float, float); -extern void (APIENTRY *FreeMemoryMESA)(void *, int, void *); +extern void* (GLAPIENTRY *AllocateMemoryMESA)(void *, int, size_t, float, float, float); +extern void (GLAPIENTRY *FreeMemoryMESA)(void *, int, void *); #endif /* MPLAYER_GL_COMMON_H */ |