1 /*
2 ** Copyright (c) 2013-2015 The Khronos Group Inc.
3 **
4 ** Permission is hereby granted, free of charge, to any person obtaining a
5 ** copy of this software and/or associated documentation files (the
6 ** "Materials"), to deal in the Materials without restriction, including
7 ** without limitation the rights to use, copy, modify, merge, publish,
8 ** distribute, sublicense, and/or sell copies of the Materials, and to
9 ** permit persons to whom the Materials are furnished to do so, subject to
10 ** the following conditions:
11 **
12 ** The above copyright notice and this permission notice shall be included
13 ** in all copies or substantial portions of the Materials.
14 **
15 ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17 ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
18 ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
19 ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
20 ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
21 ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
22 */
23 
24 #include "Common/GL/GLExtensions/gl_common.h"
25 
26 #define GL_BUFFER_SIZE 0x8764
27 #define GL_BUFFER_USAGE 0x8765
28 #define GL_QUERY_COUNTER_BITS 0x8864
29 #define GL_CURRENT_QUERY 0x8865
30 #define GL_QUERY_RESULT 0x8866
31 #define GL_QUERY_RESULT_AVAILABLE 0x8867
32 #define GL_ARRAY_BUFFER 0x8892
33 #define GL_ELEMENT_ARRAY_BUFFER 0x8893
34 #define GL_ARRAY_BUFFER_BINDING 0x8894
35 #define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895
36 #define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F
37 #define GL_READ_ONLY 0x88B8
38 #define GL_WRITE_ONLY 0x88B9
39 #define GL_READ_WRITE 0x88BA
40 #define GL_BUFFER_ACCESS 0x88BB
41 #define GL_BUFFER_MAPPED 0x88BC
42 #define GL_BUFFER_MAP_POINTER 0x88BD
43 #define GL_STREAM_DRAW 0x88E0
44 #define GL_STREAM_READ 0x88E1
45 #define GL_STREAM_COPY 0x88E2
46 #define GL_STATIC_DRAW 0x88E4
47 #define GL_STATIC_READ 0x88E5
48 #define GL_STATIC_COPY 0x88E6
49 #define GL_DYNAMIC_DRAW 0x88E8
50 #define GL_DYNAMIC_READ 0x88E9
51 #define GL_DYNAMIC_COPY 0x88EA
52 #define GL_SAMPLES_PASSED 0x8914
53 #define GL_SRC1_ALPHA 0x8589
54 #define GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896
55 #define GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897
56 #define GL_COLOR_ARRAY_BUFFER_BINDING 0x8898
57 #define GL_INDEX_ARRAY_BUFFER_BINDING 0x8899
58 #define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A
59 #define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING 0x889B
60 #define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING 0x889C
61 #define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING 0x889D
62 #define GL_WEIGHT_ARRAY_BUFFER_BINDING 0x889E
63 #define GL_FOG_COORD_SRC 0x8450
64 #define GL_FOG_COORD 0x8451
65 #define GL_CURRENT_FOG_COORD 0x8453
66 #define GL_FOG_COORD_ARRAY_TYPE 0x8454
67 #define GL_FOG_COORD_ARRAY_STRIDE 0x8455
68 #define GL_FOG_COORD_ARRAY_POINTER 0x8456
69 #define GL_FOG_COORD_ARRAY 0x8457
70 #define GL_FOG_COORD_ARRAY_BUFFER_BINDING 0x889D
71 #define GL_SRC0_RGB 0x8580
72 #define GL_SRC1_RGB 0x8581
73 #define GL_SRC2_RGB 0x8582
74 #define GL_SRC0_ALPHA 0x8588
75 #define GL_SRC2_ALPHA 0x858A
76 
77 typedef void(APIENTRYP PFNDOLGENQUERIESPROC)(GLsizei n, GLuint* ids);
78 typedef void(APIENTRYP PFNDOLDELETEQUERIESPROC)(GLsizei n, const GLuint* ids);
79 typedef GLboolean(APIENTRYP PFNDOLISQUERYPROC)(GLuint id);
80 typedef void(APIENTRYP PFNDOLBEGINQUERYPROC)(GLenum target, GLuint id);
81 typedef void(APIENTRYP PFNDOLENDQUERYPROC)(GLenum target);
82 typedef void(APIENTRYP PFNDOLGETQUERYIVPROC)(GLenum target, GLenum pname, GLint* params);
83 typedef void(APIENTRYP PFNDOLGETQUERYOBJECTIVPROC)(GLuint id, GLenum pname, GLint* params);
84 typedef void(APIENTRYP PFNDOLGETQUERYOBJECTUIVPROC)(GLuint id, GLenum pname, GLuint* params);
85 typedef void(APIENTRYP PFNDOLBINDBUFFERPROC)(GLenum target, GLuint buffer);
86 typedef void(APIENTRYP PFNDOLDELETEBUFFERSPROC)(GLsizei n, const GLuint* buffers);
87 typedef void(APIENTRYP PFNDOLGENBUFFERSPROC)(GLsizei n, GLuint* buffers);
88 typedef GLboolean(APIENTRYP PFNDOLISBUFFERPROC)(GLuint buffer);
89 typedef void(APIENTRYP PFNDOLBUFFERDATAPROC)(GLenum target, GLsizeiptr size, const void* data,
90                                              GLenum usage);
91 typedef void(APIENTRYP PFNDOLBUFFERSUBDATAPROC)(GLenum target, GLintptr offset, GLsizeiptr size,
92                                                 const void* data);
93 typedef void(APIENTRYP PFNDOLGETBUFFERSUBDATAPROC)(GLenum target, GLintptr offset, GLsizeiptr size,
94                                                    void* data);
95 typedef void*(APIENTRYP PFNDOLMAPBUFFERPROC)(GLenum target, GLenum access);
96 typedef GLboolean(APIENTRYP PFNDOLUNMAPBUFFERPROC)(GLenum target);
97 typedef void(APIENTRYP PFNDOLGETBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint* params);
98 typedef void(APIENTRYP PFNDOLGETBUFFERPOINTERVPROC)(GLenum target, GLenum pname, void** params);
99 
100 extern PFNDOLBEGINQUERYPROC dolBeginQuery;
101 extern PFNDOLBINDBUFFERPROC dolBindBuffer;
102 extern PFNDOLBUFFERDATAPROC dolBufferData;
103 extern PFNDOLBUFFERSUBDATAPROC dolBufferSubData;
104 extern PFNDOLDELETEBUFFERSPROC dolDeleteBuffers;
105 extern PFNDOLDELETEQUERIESPROC dolDeleteQueries;
106 extern PFNDOLENDQUERYPROC dolEndQuery;
107 extern PFNDOLGENBUFFERSPROC dolGenBuffers;
108 extern PFNDOLGENQUERIESPROC dolGenQueries;
109 extern PFNDOLGETBUFFERPARAMETERIVPROC dolGetBufferParameteriv;
110 extern PFNDOLGETBUFFERPOINTERVPROC dolGetBufferPointerv;
111 extern PFNDOLGETBUFFERSUBDATAPROC dolGetBufferSubData;
112 extern PFNDOLGETQUERYOBJECTIVPROC dolGetQueryObjectiv;
113 extern PFNDOLGETQUERYOBJECTUIVPROC dolGetQueryObjectuiv;
114 extern PFNDOLGETQUERYIVPROC dolGetQueryiv;
115 extern PFNDOLISBUFFERPROC dolIsBuffer;
116 extern PFNDOLISQUERYPROC dolIsQuery;
117 extern PFNDOLMAPBUFFERPROC dolMapBuffer;
118 extern PFNDOLUNMAPBUFFERPROC dolUnmapBuffer;
119 
120 #define glBeginQuery dolBeginQuery
121 #define glBindBuffer dolBindBuffer
122 #define glBufferData dolBufferData
123 #define glBufferSubData dolBufferSubData
124 #define glDeleteBuffers dolDeleteBuffers
125 #define glDeleteQueries dolDeleteQueries
126 #define glEndQuery dolEndQuery
127 #define glGenBuffers dolGenBuffers
128 #define glGenQueries dolGenQueries
129 #define glGetBufferParameteriv dolGetBufferParameteriv
130 #define glGetBufferPointerv dolGetBufferPointerv
131 #define glGetBufferSubData dolGetBufferSubData
132 #define glGetQueryObjectiv dolGetQueryObjectiv
133 #define glGetQueryObjectuiv dolGetQueryObjectuiv
134 #define glGetQueryiv dolGetQueryiv
135 #define glIsBuffer dolIsBuffer
136 #define glIsQuery dolIsQuery
137 #define glMapBuffer dolMapBuffer
138 #define glUnmapBuffer dolUnmapBuffer
139