1 /* Copyright (C) 2010-2018 The RetroArch team
3 * ---------------------------------------------------------------------------------------
4 * The following license statement only applies to this libretro SDK code part (glsmsym.h).
5 * ---------------------------------------------------------------------------------------
7 * Permission is hereby granted, free of charge,
8 * to any person obtaining a copy of this software and associated documentation files (the "Software"),
9 * to deal in the Software without restriction, including without limitation the rights to
10 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
11 * and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
13 * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
16 * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
18 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
19 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23 #ifndef LIBRETRO_SDK_GLSM_SYM_H
24 #define LIBRETRO_SDK_GLSM_SYM_H
26 #include <glsm/glsm.h>
28 #ifdef HAVE_GLSYM_PRIVATE
29 #include "glsym_private.h"
32 #include <retro_common_api.h>
36 /* deprecated old FF-style GL symbols */
37 #define glTexCoord2f rglTexCoord2f
39 /* more forward-compatible GL subset symbols */
40 #define glDrawRangeElementsBaseVertex rglDrawRangeElementsBaseVertex
41 #define glProvokingVertex rglProvokingVertex
42 #define glGetInteger64v rglGetInteger64v
43 #define glGenSamplers rglGenSamplers
44 #define glBindSampler rglBindSampler
45 #define glSamplerParameteri rglSamplerParameteri
46 #define glGetBufferSubData rglGetBufferSubData
47 #define glUniform2iv rglUniform2iv
48 #define glUniform2uiv rglUniform2uiv
49 #define glTextureView rglTextureView
50 #define glGetQueryObjectuiv rglGetQueryObjectuiv
51 #define glGenQueries rglGenQueries
52 #define glDeleteQueries rglDeleteQueries
53 #define glBeginQuery rglBeginQuery
54 #define glEndQuery rglEndQuery
55 #define glBlitFramebuffer rglBlitFramebuffer
56 #define glVertexAttrib4f rglVertexAttrib4f
57 #define glVertexAttrib4fv rglVertexAttrib4fv
58 #define glDrawArrays rglDrawArrays
59 #define glDrawElements rglDrawElements
60 #define glCompressedTexImage2D rglCompressedTexImage2D
61 #define glBindTexture rglBindTexture
62 #define glActiveTexture rglActiveTexture
63 #define glFramebufferTexture rglFramebufferTexture
64 #define glFramebufferTexture2D rglFramebufferTexture2D
65 #define glFramebufferRenderbuffer rglFramebufferRenderbuffer
66 #define glDeleteFramebuffers rglDeleteFramebuffers
67 #define glDeleteTextures rglDeleteTextures
68 #define glDeleteBuffers rglDeleteBuffers
69 #define glRenderbufferStorage rglRenderbufferStorage
70 #define glBindRenderbuffer rglBindRenderbuffer
71 #define glDeleteRenderbuffers rglDeleteRenderbuffers
72 #define glGenRenderbuffers rglGenRenderbuffers
73 #define glGenFramebuffers rglGenFramebuffers
74 #define glGenTextures rglGenTextures
75 #define glBindFramebuffer rglBindFramebuffer
76 #define glGenerateMipmap rglGenerateMipmap
77 #define glCheckFramebufferStatus rglCheckFramebufferStatus
78 #define glBindFragDataLocation rglBindFragDataLocation
79 #define glBindAttribLocation rglBindAttribLocation
80 #define glLinkProgram rglLinkProgram
81 #define glGetProgramiv rglGetProgramiv
82 #define glGetShaderiv rglGetShaderiv
83 #define glAttachShader rglAttachShader
84 #define glDetachShader rglDetachShader
85 #define glShaderSource rglShaderSource
86 #define glCompileShader rglCompileShader
87 #define glCreateProgram rglCreateProgram
88 #define glGetShaderInfoLog rglGetShaderInfoLog
89 #define glGetProgramInfoLog rglGetProgramInfoLog
90 #define glIsProgram rglIsProgram
91 #define glEnableVertexAttribArray rglEnableVertexAttribArray
92 #define glDisableVertexAttribArray rglDisableVertexAttribArray
93 #define glVertexAttribPointer rglVertexAttribPointer
94 #define glVertexAttribIPointer rglVertexAttribIPointer
95 #define glVertexAttribLPointer rglVertexAttribLPointer
96 #define glGetUniformLocation rglGetUniformLocation
97 #define glGenBuffers rglGenBuffers
98 #define glDisable(T) rglDisable(S##T)
99 #define glEnable(T) rglEnable(S##T)
100 #define glIsEnabled(T) rglIsEnabled(S##T)
101 #define glUseProgram rglUseProgram
102 #define glDepthMask rglDepthMask
103 #define glStencilMask rglStencilMask
104 #define glBufferData rglBufferData
105 #define glBufferSubData rglBufferSubData
106 #define glBindBuffer rglBindBuffer
107 #define glCreateShader rglCreateShader
108 #define glDeleteShader rglDeleteShader
109 #define glDeleteProgram rglDeleteProgram
110 #define glUniform1f rglUniform1f
111 #define glUniform1i rglUniform1i
112 #define glUniform2f rglUniform2f
113 #define glUniform2i rglUniform2i
114 #define glUniform2fv rglUniform2fv
115 #define glUniform3f rglUniform3f
116 #define glUniform3fv rglUniform3fv
117 #define glUniform4i rglUniform4i
118 #define glUniform4f rglUniform4f
119 #define glUniform4fv rglUniform4fv
120 #define glUniform1ui rglUniform1ui
121 #define glUniform2ui rglUniform2ui
122 #define glUniform3ui rglUniform3ui
123 #define glUniform4ui rglUniform4ui
124 #define glGetActiveUniform rglGetActiveUniform
125 #define glBlendFunc rglBlendFunc
126 #define glBlendFuncSeparate rglBlendFuncSeparate
127 #define glDepthFunc rglDepthFunc
128 #define glColorMask rglColorMask
129 #define glClearColor rglClearColor
130 #define glViewport rglViewport
131 #define glScissor rglScissor
132 #define glStencilFunc rglStencilFunc
133 #define glCullFace rglCullFace
134 #define glStencilOp rglStencilOp
135 #define glFrontFace rglFrontFace
136 #define glDepthRange rglDepthRange
137 #define glClearDepth rglClearDepth
138 #define glPolygonOffset rglPolygonOffset
139 #define glPixelStorei rglPixelStorei
140 #define glReadBuffer rglReadBuffer
141 #define glUniformMatrix4fv rglUniformMatrix4fv
142 #define glGetAttribLocation rglGetAttribLocation
143 #define glTexStorage2D rglTexStorage2D
144 #define glDrawBuffers rglDrawBuffers
145 #define glGenVertexArrays rglGenVertexArrays
146 #define glBindVertexArray rglBindVertexArray
147 #define glBlendEquation rglBlendEquation
148 #define glBlendColor rglBlendColor
149 #define glBlendEquationSeparate rglBlendEquationSeparate
150 #define glCopyImageSubData rglCopyImageSubData
151 #define glMapBuffer rglMapBuffer
152 #define glUnmapBuffer rglUnmapBuffer
153 #define glMapBufferRange rglMapBufferRange
154 #define glUniformBlockBinding rglUniformBlockBinding
155 #define glGetUniformBlockIndex rglGetUniformBlockIndex
156 #define glGetActiveUniformBlockiv rglGetActiveUniformBlockiv
157 #define glBindBufferBase rglBindBufferBase
158 #define glGetUniformIndices rglGetUniformIndices
159 #define glGetActiveUniformsiv rglGetActiveUniformsiv
160 #define glGetError rglGetError
161 #define glClear rglClear
162 #define glPolygonMode rglPolygonMode
163 #define glLineWidth rglLineWidth
164 #define glTexImage3D rglTexImage3D
165 #define glTexImage2DMultisample rglTexImage2DMultisample
166 #define glTexStorage2DMultisample rglTexStorage2DMultisample
167 #define glMemoryBarrier rglMemoryBarrier
168 #define glBindImageTexture rglBindImageTexture
169 #define glProgramBinary rglProgramBinary
170 #define glGetProgramBinary rglGetProgramBinary
171 #define glProgramParameteri rglProgramParameteri
172 #define glTexSubImage2D rglTexSubImage2D
173 #define glDeleteVertexArrays rglDeleteVertexArrays
174 #define glRenderbufferStorageMultisample rglRenderbufferStorageMultisample
175 #define glUniform1iv rglUniform1iv
176 #define glUniform1fv rglUniform1fv
177 #define glValidateProgram rglValidateProgram
178 #define glGetStringi rglGetStringi
179 #define glTexBuffer rglTexBuffer
180 #define glClearBufferfv rglClearBufferfv
181 #define glClearBufferfi rglClearBufferfi
182 #define glWaitSync rglWaitSync
183 #define glFenceSync rglFenceSync
184 #define glDeleteSync rglDeleteSync
185 #define glBufferStorage rglBufferStorage
186 #define glFlushMappedBufferRange rglFlushMappedBufferRange
187 #define glClientWaitSync rglClientWaitSync
188 #define glDrawElementsBaseVertex rglDrawElementsBaseVertex
190 const GLubyte* rglGetStringi(GLenum name, GLuint index);
191 void rglTexBuffer(GLenum target, GLenum internalFormat, GLuint buffer);
192 void rglClearBufferfv( GLenum buffer,
194 const GLfloat * value);
195 void rglClearBufferfi( GLenum buffer,
199 void rglValidateProgram(GLuint program);
200 void rglRenderbufferStorageMultisample( GLenum target,
202 GLenum internalformat,
205 void rglUniform1iv(GLint location, GLsizei count, const GLint *value);
206 void rglUniform1fv(GLint location, GLsizei count, const GLfloat *value);
207 void rglProgramParameteri( GLuint program,
210 void rglGetProgramBinary( GLuint program,
213 GLenum *binaryFormat,
215 void rglProgramBinary(GLuint program,
219 void rglBindImageTexture( GLuint unit,
226 void rglTexStorage2DMultisample(GLenum target, GLsizei samples,
227 GLenum internalformat, GLsizei width, GLsizei height,
228 GLboolean fixedsamplelocations);
229 void rglGetActiveUniformsiv( GLuint program,
230 GLsizei uniformCount,
231 const GLuint *uniformIndices,
234 void rglGetUniformIndices( GLuint program,
235 GLsizei uniformCount,
236 const GLchar **uniformNames,
237 GLuint *uniformIndices);
238 void rglBindBufferBase( GLenum target,
241 void rglGetActiveUniformBlockiv( GLuint program,
242 GLuint uniformBlockIndex,
245 GLuint rglGetUniformBlockIndex( GLuint program,
246 const GLchar *uniformBlockName);
247 void * rglMapBuffer( GLenum target, GLenum access);
248 void *rglMapBufferRange( GLenum target,
252 GLboolean rglUnmapBuffer( GLenum target);
253 void rglBlendColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
254 void rglBlendEquation(GLenum mode);
255 void rglGenVertexArrays(GLsizei n, GLuint *arrays);
256 void rglReadBuffer(GLenum mode);
257 void rglPixelStorei(GLenum pname, GLint param);
258 void rglTexCoord2f(GLfloat s, GLfloat t);
259 void rglDrawElements(GLenum mode, GLsizei count, GLenum type,
260 const GLvoid * indices);
261 void rglTexStorage2D(GLenum target, GLsizei levels, GLenum internalFormat,
262 GLsizei width, GLsizei height);
263 void rglCompressedTexImage2D(GLenum target, GLint level,
264 GLenum internalformat, GLsizei width, GLsizei height,
265 GLint border, GLsizei imageSize, const GLvoid *data);
266 void glBindTexture(GLenum target, GLuint texture);
267 void glActiveTexture(GLenum texture);
268 void rglFramebufferTexture(GLenum target, GLenum attachment,
269 GLuint texture, GLint level);
270 void rglFramebufferTexture2D(GLenum target, GLenum attachment,
271 GLenum textarget, GLuint texture, GLint level);
272 void rglFramebufferRenderbuffer(GLenum target, GLenum attachment,
273 GLenum renderbuffertarget, GLuint renderbuffer);
274 void rglDeleteFramebuffers(GLsizei n, const GLuint *framebuffers);
275 void rglRenderbufferStorage(GLenum target, GLenum internalFormat,
276 GLsizei width, GLsizei height);
277 void rglDeleteTextures(GLsizei n, const GLuint *textures);
278 void rglBindRenderbuffer(GLenum target, GLuint renderbuffer);
279 void rglDeleteRenderbuffers(GLsizei n, GLuint *renderbuffers);
280 void rglGenRenderbuffers(GLsizei n, GLuint *renderbuffers);
281 void rglGenFramebuffers(GLsizei n, GLuint *ids);
282 void rglGenTextures(GLsizei n, GLuint *textures);
283 void rglBindFramebuffer(GLenum target, GLuint framebuffer);
284 void rglGenerateMipmap(GLenum target);
285 GLenum rglCheckFramebufferStatus(GLenum target);
286 void rglBindFragDataLocation(GLuint program, GLuint colorNumber,
288 void rglBindAttribLocation(GLuint program, GLuint index, const GLchar *name);
289 void rglLinkProgram(GLuint program);
290 void rglGetProgramiv(GLuint shader, GLenum pname, GLint *params);
291 void rglGetShaderiv(GLuint shader, GLenum pname, GLint *params);
292 void rglAttachShader(GLuint program, GLuint shader);
293 void rglShaderSource(GLuint shader, GLsizei count,
294 const GLchar **string, const GLint *length);
295 void rglCompileShader(GLuint shader);
296 GLuint rglCreateProgram(void);
297 void rglGetShaderInfoLog(GLuint shader, GLsizei maxLength,
298 GLsizei *length, GLchar *infoLog);
299 void rglGetProgramInfoLog(GLuint shader, GLsizei maxLength,
300 GLsizei *length, GLchar *infoLog);
301 GLboolean rglIsProgram(GLuint program);
302 void rglEnableVertexAttribArray(GLuint index);
303 void rglDisableVertexAttribArray(GLuint index);
304 void rglVertexAttribPointer(GLuint name, GLint size,
305 GLenum type, GLboolean normalized, GLsizei stride,
306 const GLvoid* pointer);
307 GLint rglGetUniformLocation(GLuint program, const GLchar *name);
308 void rglGenBuffers(GLsizei n, GLuint *buffers);
309 void rglDisable(GLenum cap);
310 void rglEnable(GLenum cap);
311 void rglUseProgram(GLuint program);
312 void rglDepthMask(GLboolean flag);
313 void rglStencilMask(GLenum mask);
314 void rglBufferData(GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage);
315 void rglBufferSubData(GLenum target, GLintptr offset,
316 GLsizeiptr size, const GLvoid *data);
317 void rglBindBuffer(GLenum target, GLuint buffer);
318 GLuint rglCreateShader(GLenum shader);
319 void rglDeleteShader(GLuint shader);
320 void rglUniform1f(GLint location, GLfloat v0);
321 void rglUniform1i(GLint location, GLint v0);
322 void rglUniform2f(GLint location, GLfloat v0, GLfloat v1);
323 void rglUniform2i(GLint location, GLint v0, GLint v1);
324 void rglUniform2fv(GLint location, GLsizei count, const GLfloat *value);
325 void rglUniform3f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
326 void rglUniform3fv(GLint location, GLsizei count, const GLfloat *value);
327 void rglUniform4i(GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
328 void rglUniform4f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
329 void rglUniform4fv(GLint location, GLsizei count, const GLfloat *value);
330 void rglBlendFunc(GLenum sfactor, GLenum dfactor);
331 void rglBlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha,
333 void rglDepthFunc(GLenum func);
334 void rglColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
335 void rglClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
336 void rglViewport(GLint x, GLint y, GLsizei width, GLsizei height);
337 void rglScissor(GLint x, GLint y, GLsizei width, GLsizei height);
338 GLboolean rglIsEnabled(GLenum cap);
339 void rglStencilFunc(GLenum func, GLint ref, GLuint mask);
340 void rglCullFace(GLenum mode);
341 void rglStencilOp(GLenum sfail, GLenum dpfail, GLenum dppass);
342 void rglFrontFace(GLenum mode);
343 void rglDepthRange(GLclampd zNear, GLclampd zFar);
344 void rglClearDepth(GLdouble depth);
345 void rglPolygonOffset(GLfloat factor, GLfloat units);
346 void rglDrawArrays(GLenum mode, GLint first, GLsizei count);
347 void rglVertexAttrib4f(GLuint name, GLfloat x, GLfloat y,
348 GLfloat z, GLfloat w);
349 void rglVertexAttrib4fv(GLuint name, GLfloat* v);
350 void rglDeleteProgram(GLuint program);
351 void rglDeleteBuffers(GLsizei n, const GLuint *buffers);
352 void rglUniform2uiv( GLint location,
354 const GLuint *value);
355 void rglTextureView( GLuint texture,
358 GLenum internalformat,
363 void rglGenQueries( GLsizei n,
365 void rglDeleteQueries( GLsizei n,
367 void rglBeginQuery( GLenum target,
369 void rglEndQuery( GLenum target);
370 void rglGetQueryObjectuiv( GLuint id,
373 void rglBlitFramebuffer(
374 GLint srcX0, GLint srcY0,
375 GLint srcX1, GLint srcY1,
376 GLint dstX0, GLint dstY0,
377 GLint dstX1, GLint dstY1,
378 GLbitfield mask, GLenum filter);
379 void rglDetachShader(GLuint program, GLuint shader);
380 void rglUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose,
381 const GLfloat *value);
382 GLint rglGetAttribLocation(GLuint program, const GLchar *name);
383 void rglDrawBuffers(GLsizei n, const GLenum *bufs);
384 void rglBindVertexArray(GLuint array);
386 void rglGetActiveUniform(GLuint program, GLuint index, GLsizei bufsize,
387 GLsizei *length, GLint *size, GLenum *type, GLchar *name);
388 void rglUniform1ui(GLint location, GLuint v);
389 void rglUniform2ui(GLint location, GLuint v0, GLuint v1);
390 void rglUniform3ui(GLint location, GLuint v0, GLuint v1, GLuint v2);
391 void rglUniform4ui(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
392 void rglBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha);
393 void rglCopyImageSubData( GLuint srcName,
408 void rglVertexAttribIPointer(
413 const GLvoid * pointer);
414 void rglVertexAttribLPointer(
419 const GLvoid * pointer);
420 void rglUniformBlockBinding( GLuint program,
421 GLuint uniformBlockIndex,
422 GLuint uniformBlockBinding);
423 GLenum rglGetError(void);
424 void rglClear(GLbitfield mask);
425 void rglPolygonMode(GLenum face, GLenum mode);
426 void rglLineWidth(GLfloat width);
427 void rglTexImage3D( GLenum target,
429 GLint internalFormat,
436 const GLvoid * data);
437 void rglTexImage2DMultisample( GLenum target,
439 GLenum internalformat,
442 GLboolean fixedsamplelocations);
443 void rglMemoryBarrier( GLbitfield barriers);
444 void rglTexSubImage2D( GLenum target,
452 const GLvoid * pixels);
453 void rglDeleteVertexArrays(GLsizei n, const GLuint *arrays);
454 void *rglFenceSync(GLenum condition, GLbitfield flags);
455 void rglDeleteSync(void *sync);
456 void rglWaitSync(void *sync, GLbitfield flags, uint64_t timeout);
457 void rglBufferStorage(GLenum target, GLsizeiptr size, const GLvoid *data, GLbitfield flags);
458 void rglFlushMappedBufferRange(GLenum target, GLintptr offset, GLsizeiptr length);
459 GLenum rglClientWaitSync(void *sync, GLbitfield flags, uint64_t timeout);
460 void rglDrawElementsBaseVertex(GLenum mode, GLsizei count, GLenum type,
461 GLvoid *indices, GLint basevertex);
462 void rglGetBufferSubData( GLenum target,
466 void rglSamplerParameteri( GLuint sampler,
469 void rglBindSampler( GLuint unit,
471 void rglGenSamplers( GLsizei n,
473 void rglGetInteger64v( GLenum pname,
475 void rglUniform2iv( GLint location,
478 void rglProvokingVertex( GLenum provokeMode);
479 void rglDrawRangeElementsBaseVertex(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, GLvoid *indices, GLint basevertex);