]> git.sesse.net Git - vlc/blob - modules/video_output/opengl.h
Prepare for fragment program support in opengl.
[vlc] / modules / video_output / opengl.h
1 /*****************************************************************************
2  * opengl.h: OpenGL vout_display helpers
3  *****************************************************************************
4  * Copyright (C) 2004 the VideoLAN team
5  * Copyright (C) 2009 Laurent Aimar
6  *
7  * Authors: Cyril Deguet <asmax@videolan.org>
8  *          Gildas Bazin <gbazin@videolan.org>
9  *          Eric Petit <titer@m0k.org>
10  *          Cedric Cocquebert <cedric.cocquebert@supelec.fr>
11  *          Laurent Aimar <fenrir _AT_ videolan _DOT_ org>
12  *
13  * This program is free software; you can redistribute it and/or modify
14  * it under the terms of the GNU General Public License as published by
15  * the Free Software Foundation; either version 2 of the License, or
16  * (at your option) any later version.
17  *
18  * This program is distributed in the hope that it will be useful,
19  * but WITHOUT ANY WARRANTY; without even the implied warranty of
20  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21  * GNU General Public License for more details.
22  *
23  * You should have received a copy of the GNU General Public License
24  * along with this program; if not, write to the Free Software
25  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
26  *****************************************************************************/
27
28 #include <vlc_common.h>
29 #include <vlc_picture_pool.h>
30 #include <vlc_opengl.h>
31
32 // Define USE_OPENGL_ES to the GL ES Version you want to select
33 #ifndef USE_OPENGL_ES
34 # define USE_OPENGL_ES 0
35 #endif
36
37 #if !defined (__APPLE__)
38 # if USE_OPENGL_ES == 2
39 #  include <GLES2/gl2.h>
40 # elif USE_OPENGL_ES == 1
41 #  include <GLES/gl.h>
42 # else
43 #  include <GL/gl.h>
44 # endif
45 #else
46 # if USE_OPENGL_ES == 2
47 #  include <OpenGLES/ES2/gl.h>
48 # elif USE_OPENGL_ES == 1
49 #  include <OpenGLES/ES1/gl.h>
50 # else
51 #  define MACOS_OPENGL
52 #  include <OpenGL/gl.h>
53 # endif
54 #endif
55
56 typedef struct vout_display_opengl_t vout_display_opengl_t;
57
58 vout_display_opengl_t *vout_display_opengl_New(video_format_t *fmt, vlc_gl_t *gl);
59 void vout_display_opengl_Delete(vout_display_opengl_t *vgl);
60
61 picture_pool_t *vout_display_opengl_GetPool(vout_display_opengl_t *vgl);
62
63 int vout_display_opengl_Prepare(vout_display_opengl_t *vgl,
64                                 picture_t *picture);
65 int vout_display_opengl_Display(vout_display_opengl_t *vgl,
66                                 const video_format_t *source);