Dali 3D User Interface Engine
gl-abstraction.h
Go to the documentation of this file.
1 #ifndef __DALI_INTEGRATION_GL_ABSTRACTION_H__
2 #define __DALI_INTEGRATION_GL_ABSTRACTION_H__
3 
4 /*
5  * Copyright (c) 2014 Samsung Electronics Co., Ltd.
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  *
19  */
20 
21 #include <stdint.h>
22 
23 /*
24  * This file is based on gl3.h, the following licence is included for conformance.
25  */
26 /*
27 ** Copyright (c) 2007-2012 The Khronos Group Inc.
28 **
29 ** Permission is hereby granted, free of charge, to any person obtaining a
30 ** copy of this software and/or associated documentation files (the
31 ** "Materials"), to deal in the Materials without restriction, including
32 ** without limitation the rights to use, copy, modify, merge, publish,
33 ** distribute, sublicense, and/or sell copies of the Materials, and to
34 ** permit persons to whom the Materials are furnished to do so, subject to
35 ** the following conditions:
36 **
37 ** The above copyright notice and this permission notice shall be included
38 ** in all copies or substantial portions of the Materials.
39 **
40 ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
41 ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
42 ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
43 ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
44 ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
45 ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
46 ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
47 */
48 
49 
50 /* OpenGL ES 3.0 */
51 struct __GLsync;
52 
53 namespace Dali
54 {
55 
61 /* OpenGL ES 2.0 */
62 
63 typedef void GLvoid;
64 typedef char GLchar;
65 typedef unsigned int GLenum;
66 typedef unsigned char GLboolean;
67 typedef unsigned int GLbitfield;
68 typedef int8_t GLbyte;
69 typedef short GLshort;
70 typedef int GLint;
71 typedef int GLsizei;
72 typedef uint8_t GLubyte;
73 typedef unsigned short GLushort;
74 typedef unsigned int GLuint;
75 typedef float GLfloat;
76 typedef float GLclampf;
77 typedef int GLfixed;
78 typedef signed long int GLintptr;
79 typedef signed long int GLsizeiptr;
80 
81 /* OpenGL ES 3.0 */
82 
83 typedef unsigned short GLhalf;
84 typedef int64_t GLint64;
85 typedef uint64_t GLuint64;
86 typedef __GLsync* GLsync;
87 
88 namespace Integration
89 {
90 
97 {
98 protected:
99 
103  virtual ~GlAbstraction() {}
104 
105 public:
109  virtual void PreRender() = 0;
110 
116  virtual void PostRender() = 0;
117 
121  static const unsigned int MIN_TEXTURE_UNIT_LIMIT = 8;
122 
123  /* OpenGL ES 2.0 */
124 
125  virtual void ActiveTexture (GLenum texture) = 0;
126  virtual void AttachShader (GLuint program, GLuint shader) = 0;
127  virtual void BindAttribLocation (GLuint program, GLuint index, const char* name) = 0;
128  virtual void BindBuffer (GLenum target, GLuint buffer) = 0;
129  virtual void BindFramebuffer (GLenum target, GLuint framebuffer) = 0;
130  virtual void BindRenderbuffer (GLenum target, GLuint renderbuffer) = 0;
131  virtual void BindTexture (GLenum target, GLuint texture) = 0;
132  virtual void BlendColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) = 0;
133  virtual void BlendEquation ( GLenum mode ) = 0;
134  virtual void BlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha) = 0;
135  virtual void BlendFunc (GLenum sfactor, GLenum dfactor) = 0;
136  virtual void BlendFuncSeparate (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha) = 0;
137  virtual void BufferData (GLenum target, GLsizeiptr size, const void* data, GLenum usage) = 0;
138  virtual void BufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const void* data) = 0;
139  virtual GLenum CheckFramebufferStatus (GLenum target) = 0;
140  virtual void Clear (GLbitfield mask) = 0;
141  virtual void ClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) = 0;
142  virtual void ClearDepthf (GLclampf depth) = 0;
143  virtual void ClearStencil (GLint s) = 0;
144  virtual void ColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) = 0;
145  virtual void CompileShader (GLuint shader) = 0;
146  virtual void CompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data) = 0;
147  virtual void CompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data) = 0;
148  virtual void CopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) = 0;
149  virtual void CopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) = 0;
150  virtual GLuint CreateProgram (void) = 0;
151  virtual GLuint CreateShader (GLenum type) = 0;
152  virtual void CullFace (GLenum mode) = 0;
153  virtual void DeleteBuffers (GLsizei n, const GLuint* buffers) = 0;
154  virtual void DeleteFramebuffers (GLsizei n, const GLuint* framebuffers) = 0;
155  virtual void DeleteProgram (GLuint program) = 0;
156  virtual void DeleteRenderbuffers (GLsizei n, const GLuint* renderbuffers) = 0;
157  virtual void DeleteShader (GLuint shader) = 0;
158  virtual void DeleteTextures (GLsizei n, const GLuint* textures) = 0;
159  virtual void DepthFunc (GLenum func) = 0;
160  virtual void DepthMask (GLboolean flag) = 0;
161  virtual void DepthRangef (GLclampf zNear, GLclampf zFar) = 0;
162  virtual void DetachShader (GLuint program, GLuint shader) = 0;
163  virtual void Disable (GLenum cap) = 0;
164  virtual void DisableVertexAttribArray (GLuint index) = 0;
165  virtual void DrawArrays (GLenum mode, GLint first, GLsizei count) = 0;
166  virtual void DrawElements (GLenum mode, GLsizei count, GLenum type, const void* indices) = 0;
167  virtual void Enable (GLenum cap) = 0;
168  virtual void EnableVertexAttribArray (GLuint index) = 0;
169  virtual void Finish (void) = 0;
170  virtual void Flush (void) = 0;
171  virtual void FramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) = 0;
172  virtual void FramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) = 0;
173  virtual void FrontFace (GLenum mode) = 0;
174  virtual void GenBuffers (GLsizei n, GLuint* buffers) = 0;
175  virtual void GenerateMipmap (GLenum target) = 0;
176  virtual void GenFramebuffers (GLsizei n, GLuint* framebuffers) = 0;
177  virtual void GenRenderbuffers (GLsizei n, GLuint* renderbuffers) = 0;
178  virtual void GenTextures (GLsizei n, GLuint* textures) = 0;
179  virtual void GetActiveAttrib (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, char* name) = 0;
180  virtual void GetActiveUniform (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, char* name) = 0;
181  virtual void GetAttachedShaders (GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders) = 0;
182  virtual GLint GetAttribLocation (GLuint program, const char* name) = 0;
183  virtual void GetBooleanv (GLenum pname, GLboolean* params) = 0;
184  virtual void GetBufferParameteriv (GLenum target, GLenum pname, GLint* params) = 0;
185  virtual GLenum GetError (void) = 0;
186  virtual void GetFloatv (GLenum pname, GLfloat* params) = 0;
187  virtual void GetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint* params) = 0;
188  virtual void GetIntegerv (GLenum pname, GLint* params) = 0;
189  virtual void GetProgramiv (GLuint program, GLenum pname, GLint* params) = 0;
190  virtual void GetProgramInfoLog (GLuint program, GLsizei bufsize, GLsizei* length, char* infolog) = 0;
191  virtual void GetRenderbufferParameteriv (GLenum target, GLenum pname, GLint* params) = 0;
192  virtual void GetShaderiv (GLuint shader, GLenum pname, GLint* params) = 0;
193  virtual void GetShaderInfoLog (GLuint shader, GLsizei bufsize, GLsizei* length, char* infolog) = 0;
194  virtual void GetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision) = 0;
195  virtual void GetShaderSource (GLuint shader, GLsizei bufsize, GLsizei* length, char* source) = 0;
196  virtual const GLubyte* GetString (GLenum name) = 0;
197  virtual void GetTexParameterfv (GLenum target, GLenum pname, GLfloat* params) = 0;
198  virtual void GetTexParameteriv (GLenum target, GLenum pname, GLint* params) = 0;
199  virtual void GetUniformfv (GLuint program, GLint location, GLfloat* params) = 0;
200  virtual void GetUniformiv (GLuint program, GLint location, GLint* params) = 0;
201  virtual GLint GetUniformLocation (GLuint program, const char* name) = 0;
202  virtual void GetVertexAttribfv (GLuint index, GLenum pname, GLfloat* params) = 0;
203  virtual void GetVertexAttribiv (GLuint index, GLenum pname, GLint* params) = 0;
204  virtual void GetVertexAttribPointerv (GLuint index, GLenum pname, void** pointer) = 0;
205  virtual void Hint (GLenum target, GLenum mode) = 0;
206  virtual GLboolean IsBuffer (GLuint buffer) = 0;
207  virtual GLboolean IsEnabled (GLenum cap) = 0;
208  virtual GLboolean IsFramebuffer (GLuint framebuffer) = 0;
209  virtual GLboolean IsProgram (GLuint program) = 0;
210  virtual GLboolean IsRenderbuffer (GLuint renderbuffer) = 0;
211  virtual GLboolean IsShader (GLuint shader) = 0;
212  virtual GLboolean IsTexture (GLuint texture) = 0;
213  virtual void LineWidth (GLfloat width) = 0;
214  virtual void LinkProgram (GLuint program) = 0;
215  virtual void PixelStorei (GLenum pname, GLint param) = 0;
216  virtual void PolygonOffset (GLfloat factor, GLfloat units) = 0;
217  virtual void ReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void* pixels) = 0;
218  virtual void ReleaseShaderCompiler (void) = 0;
219  virtual void RenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height) = 0;
220  virtual void SampleCoverage (GLclampf value, GLboolean invert) = 0;
221  virtual void Scissor (GLint x, GLint y, GLsizei width, GLsizei height) = 0;
222  virtual void ShaderBinary (GLsizei n, const GLuint* shaders, GLenum binaryformat, const void* binary, GLsizei length) = 0;
223  virtual void ShaderSource (GLuint shader, GLsizei count, const char** string, const GLint* length) = 0;
224  virtual void StencilFunc (GLenum func, GLint ref, GLuint mask) = 0;
225  virtual void StencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask) = 0;
226  virtual void StencilMask (GLuint mask) = 0;
227  virtual void StencilMaskSeparate (GLenum face, GLuint mask) = 0;
228  virtual void StencilOp (GLenum fail, GLenum zfail, GLenum zpass) = 0;
229  virtual void StencilOpSeparate (GLenum face, GLenum fail, GLenum zfail, GLenum zpass) = 0;
230  virtual void TexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void* pixels) = 0;
231  virtual void TexParameterf (GLenum target, GLenum pname, GLfloat param) = 0;
232  virtual void TexParameterfv (GLenum target, GLenum pname, const GLfloat* params) = 0;
233  virtual void TexParameteri (GLenum target, GLenum pname, GLint param) = 0;
234  virtual void TexParameteriv (GLenum target, GLenum pname, const GLint* params) = 0;
235  virtual void TexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void* pixels) = 0;
236  virtual void Uniform1f (GLint location, GLfloat x) = 0;
237  virtual void Uniform1fv (GLint location, GLsizei count, const GLfloat* v) = 0;
238  virtual void Uniform1i (GLint location, GLint x) = 0;
239  virtual void Uniform1iv (GLint location, GLsizei count, const GLint* v) = 0;
240  virtual void Uniform2f (GLint location, GLfloat x, GLfloat y) = 0;
241  virtual void Uniform2fv (GLint location, GLsizei count, const GLfloat* v) = 0;
242  virtual void Uniform2i (GLint location, GLint x, GLint y) = 0;
243  virtual void Uniform2iv (GLint location, GLsizei count, const GLint* v) = 0;
244  virtual void Uniform3f (GLint location, GLfloat x, GLfloat y, GLfloat z) = 0;
245  virtual void Uniform3fv (GLint location, GLsizei count, const GLfloat* v) = 0;
246  virtual void Uniform3i (GLint location, GLint x, GLint y, GLint z) = 0;
247  virtual void Uniform3iv (GLint location, GLsizei count, const GLint* v) = 0;
248  virtual void Uniform4f (GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w) = 0;
249  virtual void Uniform4fv (GLint location, GLsizei count, const GLfloat* v) = 0;
250  virtual void Uniform4i (GLint location, GLint x, GLint y, GLint z, GLint w) = 0;
251  virtual void Uniform4iv (GLint location, GLsizei count, const GLint* v) = 0;
252  virtual void UniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) = 0;
253  virtual void UniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) = 0;
254  virtual void UniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) = 0;
255  virtual void UseProgram (GLuint program) = 0;
256  virtual void ValidateProgram (GLuint program) = 0;
257  virtual void VertexAttrib1f (GLuint indx, GLfloat x) = 0;
258  virtual void VertexAttrib1fv (GLuint indx, const GLfloat* values) = 0;
259  virtual void VertexAttrib2f (GLuint indx, GLfloat x, GLfloat y) = 0;
260  virtual void VertexAttrib2fv (GLuint indx, const GLfloat* values) = 0;
261  virtual void VertexAttrib3f (GLuint indx, GLfloat x, GLfloat y, GLfloat z) = 0;
262  virtual void VertexAttrib3fv (GLuint indx, const GLfloat* values) = 0;
263  virtual void VertexAttrib4f (GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w) = 0;
264  virtual void VertexAttrib4fv (GLuint indx, const GLfloat* values) = 0;
265  virtual void VertexAttribPointer (GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* ptr) = 0;
266  virtual void Viewport (GLint x, GLint y, GLsizei width, GLsizei height) = 0;
267 
268  /* OpenGL ES 3.0 */
269 
270  virtual void ReadBuffer (GLenum mode) = 0;
271  virtual void DrawRangeElements (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid* indices) = 0;
272  virtual void TexImage3D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels) = 0;
273  virtual void TexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels) = 0;
274  virtual void CopyTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height) = 0;
275  virtual void CompressedTexImage3D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data) = 0;
276  virtual void CompressedTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data) = 0;
277  virtual void GenQueries (GLsizei n, GLuint* ids) = 0;
278  virtual void DeleteQueries (GLsizei n, const GLuint* ids) = 0;
279  virtual GLboolean IsQuery (GLuint id) = 0;
280  virtual void BeginQuery (GLenum target, GLuint id) = 0;
281  virtual void EndQuery (GLenum target) = 0;
282  virtual void GetQueryiv (GLenum target, GLenum pname, GLint* params) = 0;
283  virtual void GetQueryObjectuiv (GLuint id, GLenum pname, GLuint* params) = 0;
284  virtual GLboolean UnmapBuffer (GLenum target) = 0;
285  virtual void GetBufferPointerv (GLenum target, GLenum pname, GLvoid** params) = 0;
286  virtual void DrawBuffers (GLsizei n, const GLenum* bufs) = 0;
287  virtual void UniformMatrix2x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) = 0;
288  virtual void UniformMatrix3x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) = 0;
289  virtual void UniformMatrix2x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) = 0;
290  virtual void UniformMatrix4x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) = 0;
291  virtual void UniformMatrix3x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) = 0;
292  virtual void UniformMatrix4x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) = 0;
293  virtual void BlitFramebuffer (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) = 0;
294  virtual void RenderbufferStorageMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) = 0;
295  virtual void FramebufferTextureLayer (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer) = 0;
296  virtual GLvoid* MapBufferRange (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access) = 0;
297  virtual void FlushMappedBufferRange (GLenum target, GLintptr offset, GLsizeiptr length) = 0;
298  virtual void BindVertexArray (GLuint array) = 0;
299  virtual void DeleteVertexArrays (GLsizei n, const GLuint* arrays) = 0;
300  virtual void GenVertexArrays (GLsizei n, GLuint* arrays) = 0;
301  virtual GLboolean IsVertexArray (GLuint array) = 0;
302  virtual void GetIntegeri_v (GLenum target, GLuint index, GLint* data) = 0;
303  virtual void BeginTransformFeedback (GLenum primitiveMode) = 0;
304  virtual void EndTransformFeedback (void) = 0;
305  virtual void BindBufferRange (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size) = 0;
306  virtual void BindBufferBase (GLenum target, GLuint index, GLuint buffer) = 0;
307  virtual void TransformFeedbackVaryings (GLuint program, GLsizei count, const GLchar* const* varyings, GLenum bufferMode) = 0;
308  virtual void GetTransformFeedbackVarying (GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* type, GLchar* name) = 0;
309  virtual void VertexAttribIPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid* pointer) = 0;
310  virtual void GetVertexAttribIiv (GLuint index, GLenum pname, GLint* params) = 0;
311  virtual void GetVertexAttribIuiv (GLuint index, GLenum pname, GLuint* params) = 0;
312  virtual void VertexAttribI4i (GLuint index, GLint x, GLint y, GLint z, GLint w) = 0;
313  virtual void VertexAttribI4ui (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w) = 0;
314  virtual void VertexAttribI4iv (GLuint index, const GLint* v) = 0;
315  virtual void VertexAttribI4uiv (GLuint index, const GLuint* v) = 0;
316  virtual void GetUniformuiv (GLuint program, GLint location, GLuint* params) = 0;
317  virtual GLint GetFragDataLocation (GLuint program, const GLchar *name) = 0;
318  virtual void Uniform1ui (GLint location, GLuint v0) = 0;
319  virtual void Uniform2ui (GLint location, GLuint v0, GLuint v1) = 0;
320  virtual void Uniform3ui (GLint location, GLuint v0, GLuint v1, GLuint v2) = 0;
321  virtual void Uniform4ui (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3) = 0;
322  virtual void Uniform1uiv (GLint location, GLsizei count, const GLuint* value) = 0;
323  virtual void Uniform2uiv (GLint location, GLsizei count, const GLuint* value) = 0;
324  virtual void Uniform3uiv (GLint location, GLsizei count, const GLuint* value) = 0;
325  virtual void Uniform4uiv (GLint location, GLsizei count, const GLuint* value) = 0;
326  virtual void ClearBufferiv (GLenum buffer, GLint drawbuffer, const GLint* value) = 0;
327  virtual void ClearBufferuiv (GLenum buffer, GLint drawbuffer, const GLuint* value) = 0;
328  virtual void ClearBufferfv (GLenum buffer, GLint drawbuffer, const GLfloat* value) = 0;
329  virtual void ClearBufferfi (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil) = 0;
330  virtual const GLubyte* GetStringi (GLenum name, GLuint index) = 0;
331  virtual void CopyBufferSubData (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size) = 0;
332  virtual void GetUniformIndices (GLuint program, GLsizei uniformCount, const GLchar* const* uniformNames, GLuint* uniformIndices) = 0;
333  virtual void GetActiveUniformsiv (GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params) = 0;
334  virtual GLuint GetUniformBlockIndex (GLuint program, const GLchar* uniformBlockName) = 0;
335  virtual void GetActiveUniformBlockiv (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params) = 0;
336  virtual void GetActiveUniformBlockName (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName) = 0;
337  virtual void UniformBlockBinding (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding) = 0;
338  virtual void DrawArraysInstanced (GLenum mode, GLint first, GLsizei count, GLsizei instanceCount) = 0;
339  virtual void DrawElementsInstanced (GLenum mode, GLsizei count, GLenum type, const GLvoid* indices, GLsizei instanceCount) = 0;
340  virtual GLsync FenceSync (GLenum condition, GLbitfield flags) = 0;
341  virtual GLboolean IsSync (GLsync sync) = 0;
342  virtual void DeleteSync (GLsync sync) = 0;
343  virtual GLenum ClientWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout) = 0;
344  virtual void WaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout) = 0;
345  virtual void GetInteger64v (GLenum pname, GLint64* params) = 0;
346  virtual void GetSynciv (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values) = 0;
347  virtual void GetInteger64i_v (GLenum target, GLuint index, GLint64* data) = 0;
348  virtual void GetBufferParameteri64v (GLenum target, GLenum pname, GLint64* params) = 0;
349  virtual void GenSamplers (GLsizei count, GLuint* samplers) = 0;
350  virtual void DeleteSamplers (GLsizei count, const GLuint* samplers) = 0;
351  virtual GLboolean IsSampler (GLuint sampler) = 0;
352  virtual void BindSampler (GLuint unit, GLuint sampler) = 0;
353  virtual void SamplerParameteri (GLuint sampler, GLenum pname, GLint param) = 0;
354  virtual void SamplerParameteriv (GLuint sampler, GLenum pname, const GLint* param) = 0;
355  virtual void SamplerParameterf (GLuint sampler, GLenum pname, GLfloat param) = 0;
356  virtual void SamplerParameterfv (GLuint sampler, GLenum pname, const GLfloat* param) = 0;
357  virtual void GetSamplerParameteriv (GLuint sampler, GLenum pname, GLint* params) = 0;
358  virtual void GetSamplerParameterfv (GLuint sampler, GLenum pname, GLfloat* params) = 0;
359  virtual void VertexAttribDivisor (GLuint index, GLuint divisor) = 0;
360  virtual void BindTransformFeedback (GLenum target, GLuint id) = 0;
361  virtual void DeleteTransformFeedbacks (GLsizei n, const GLuint* ids) = 0;
362  virtual void GenTransformFeedbacks (GLsizei n, GLuint* ids) = 0;
363  virtual GLboolean IsTransformFeedback (GLuint id) = 0;
364  virtual void PauseTransformFeedback (void) = 0;
365  virtual void ResumeTransformFeedback (void) = 0;
366  virtual void GetProgramBinary (GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, GLvoid* binary) = 0;
367  virtual void ProgramBinary (GLuint program, GLenum binaryFormat, const GLvoid* binary, GLsizei length) = 0;
368  virtual void ProgramParameteri (GLuint program, GLenum pname, GLint value) = 0;
369  virtual void InvalidateFramebuffer (GLenum target, GLsizei numAttachments, const GLenum* attachments) = 0;
370  virtual void InvalidateSubFramebuffer (GLenum target, GLsizei numAttachments, const GLenum* attachments, GLint x, GLint y, GLsizei width, GLsizei height) = 0;
371  virtual void TexStorage2D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height) = 0;
372  virtual void TexStorage3D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth) = 0;
373  virtual void GetInternalformativ (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint* params) = 0;
374 
375 };
376 
377 } // namespace Integration
378 
379 } // namespace Dali
380 
381 #endif // __DALI_INTEGRATION_GL_ABSTRACTION_H__
Dali Docs Home
Read more about Dali