1 /*
2  * GStreamer
3  * Copyright (C) 2012 Matthew Waters <ystreet00@gmail.com>
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Library General Public
7  * License as published by the Free Software Foundation; either
8  * version 2 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * Library General Public License for more details.
14  *
15  * You should have received a copy of the GNU Library General Public
16  * License along with this library; if not, write to the
17  * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
18  * Boston, MA 02110-1301, USA.
19  */
20 /*
21  * Cogl
22  *
23  * An object oriented GL/GLES Abstraction/Utility Layer
24  *
25  * Copyright (C) 2009, 2011 Intel Corporation.
26  *
27  * This library is free software; you can redistribute it and/or
28  * modify it under the terms of the GNU Lesser General Public
29  * License as published by the Free Software Foundation; either
30  * version 2 of the License, or (at your option) any later version.
31  *
32  * This library is distributed in the hope that it will be useful,
33  * but WITHOUT ANY WARRANTY; without even the implied warranty of
34  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
35  * Lesser General Public License for more details.
36  *
37  * You should have received a copy of the GNU Lesser General Public
38  * License along with this library. If not, see <http://www.gnu.org/licenses/>.
39  */
40 
41 GST_GL_EXT_BEGIN (offscreen,
42                   GST_GL_API_OPENGL | GST_GL_API_OPENGL3 |
43                   GST_GL_API_GLES2,
44                   3, 0,
45                   2, 0,
46                   /* for some reason the ARB version of this
47                      extension doesn't have an ARB suffix for the
48                      functions */
49                   "ARB:\0EXT\0OES\0",
50                   "framebuffer_object\0")
51 GST_GL_EXT_FUNCTION (void, GenRenderbuffers,
52                      (GLsizei               n,
53                       GLuint               *renderbuffers))
54 GST_GL_EXT_FUNCTION (void, DeleteRenderbuffers,
55                      (GLsizei               n,
56                       const GLuint         *renderbuffers))
57 GST_GL_EXT_FUNCTION (void, BindRenderbuffer,
58                      (GLenum                target,
59                       GLuint                renderbuffer))
60 GST_GL_EXT_FUNCTION (void, RenderbufferStorage,
61                      (GLenum                target,
62                       GLenum                internalformat,
63                       GLsizei               width,
64                       GLsizei               height))
65 GST_GL_EXT_FUNCTION (void, GenFramebuffers,
66                      (GLsizei               n,
67                       GLuint               *framebuffers))
68 GST_GL_EXT_FUNCTION (void, BindFramebuffer,
69                      (GLenum                target,
70                       GLuint                framebuffer))
71 GST_GL_EXT_FUNCTION (void, FramebufferTexture2D,
72                      (GLenum                target,
73                       GLenum                attachment,
74                       GLenum                textarget,
75                       GLuint                texture,
76                       GLint                 level))
77 GST_GL_EXT_FUNCTION (void, FramebufferRenderbuffer,
78                      (GLenum                target,
79                       GLenum                attachment,
80                       GLenum                renderbuffertarget,
81                       GLuint                renderbuffer))
82 GST_GL_EXT_FUNCTION (GLboolean, IsRenderbuffer,
83                      (GLuint                renderbuffer))
84 GST_GL_EXT_FUNCTION (GLenum, CheckFramebufferStatus,
85                      (GLenum                target))
86 GST_GL_EXT_FUNCTION (void, DeleteFramebuffers,
87                      (GLsizei               n,
88                       const                 GLuint *framebuffers))
89 GST_GL_EXT_FUNCTION (void, GenerateMipmap,
90                      (GLenum                target))
91 GST_GL_EXT_FUNCTION (void, GetFramebufferAttachmentParameteriv,
92                      (GLenum                target,
93                       GLenum                attachment,
94                       GLenum                pname,
95                       GLint                *params))
96 GST_GL_EXT_FUNCTION (void, GetRenderbufferParameteriv,
97                      (GLenum                target,
98                       GLenum                pname,
99                       GLint                *params))
100 GST_GL_EXT_FUNCTION (GLboolean, IsFramebuffer,
101                      (GLuint                framebuffer))
102 GST_GL_EXT_END ()
103 
104 GST_GL_EXT_BEGIN (offscreen_blit,
105                   GST_GL_API_OPENGL | GST_GL_API_OPENGL3 |
106                   GST_GL_API_GLES2,
107                   3, 0,
108                   3, 0,
109                   "EXT\0ANGLE\0",
110                   "framebuffer_blit\0")
111 GST_GL_EXT_FUNCTION (void, BlitFramebuffer,
112                      (GLint                 srcX0,
113                       GLint                 srcY0,
114                       GLint                 srcX1,
115                       GLint                 srcY1,
116                       GLint                 dstX0,
117                       GLint                 dstY0,
118                       GLint                 dstX1,
119                       GLint                 dstY1,
120                       GLbitfield            mask,
121                       GLenum                filter))
122 GST_GL_EXT_END ()
123 
124 GST_GL_EXT_BEGIN (framebuffer_discard,
125                   GST_GL_API_NONE,
126                   255, 255,
127                   255, 255, /* not in either GLES */
128                   "EXT\0",
129                   "framebuffer_discard\0")
130 GST_GL_EXT_FUNCTION (void, DiscardFramebuffer,
131                      (GLenum           target,
132                       GLsizei          numAttachments,
133                       const GLenum    *attachments))
134 GST_GL_EXT_END ()
135 
136 
137 GST_GL_EXT_BEGIN (read_buffer,
138                   GST_GL_API_OPENGL | GST_GL_API_OPENGL3 |
139                   GST_GL_API_GLES2,
140                   1, 0,
141                   3, 0,
142                   "NV\0",
143                   "read_buffer\0")
144 GST_GL_EXT_FUNCTION (void, ReadBuffer,
145                      (GLenum mode))
146 GST_GL_EXT_END ()
147 
148 GST_GL_EXT_BEGIN (draw_buffers,
149                   GST_GL_API_OPENGL | GST_GL_API_OPENGL3 |
150                   GST_GL_API_GLES2,
151                   2, 1,
152                   3, 0,
153                   "ARB\0ATI\0NV\0",
154                   "draw_buffers\0")
155 GST_GL_EXT_FUNCTION (void, DrawBuffers,
156                      (GLsizei n, const GLenum *bufs))
157 GST_GL_EXT_END ()
158