5bab59b04febfec3b48eab4e515d72fef57fc1b3
[platform/core/uifw/dali-adaptor.git] / dali / internal / graphics / gles / gles2-implementation.h
1 #ifndef DALI_INTERNAL_GLES2_IMPLEMENTATION_H
2 #define DALI_INTERNAL_GLES2_IMPLEMENTATION_H
3
4 /*
5  * Copyright (c) 2019 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  // EXTERNAL INCLUDES
22 #include <dali/integration-api/debug.h>
23
24 // INTERNAL INCLUDES
25 #include <dali/internal/graphics/gles/gl-extensions.h>
26 #include <dali/internal/graphics/gles/gles-abstraction.h>
27
28 namespace Dali
29 {
30
31 namespace Internal
32 {
33
34 namespace Adaptor
35 {
36
37 class Gles2Implementation : public GlesAbstraction
38 {
39
40 public:
41   Gles2Implementation() {}
42
43   ~Gles2Implementation() override {}
44
45   void ReadBuffer( GLenum mode ) override
46   {
47     DALI_LOG_ERROR( "glReadBuffer is not supported in OpenGL es 2.0\n" );
48   }
49
50   void DrawRangeElements( GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid* indices ) override
51   {
52     DALI_LOG_ERROR( "glDrawRangeElements is not supported in OpenGL es 2.0\n" );
53   }
54
55   void TexImage3D( GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels ) override
56   {
57     DALI_LOG_ERROR( "glTexImage3D is not supported in OpenGL es 2.0\n" );
58   }
59
60   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 ) override
61   {
62     DALI_LOG_ERROR( "glTexSubImage3D is not supported in OpenGL es 2.0\n" );
63   }
64
65   void CopyTexSubImage3D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height ) override
66   {
67     DALI_LOG_ERROR( "glCopyTexSubImage3D is not supported in OpenGL es 2.0\n" );
68   }
69
70   void CompressedTexImage3D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data ) override
71   {
72     DALI_LOG_ERROR( "glCompressedTexImage3D is not supported in OpenGL es 2.0\n" );
73   }
74
75   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 ) override
76   {
77     DALI_LOG_ERROR( "glCompressedTexSubImage3D is not supported in OpenGL es 2.0\n" );
78   }
79
80   void GenQueries( GLsizei n, GLuint* ids ) override
81   {
82     DALI_LOG_ERROR( "glGenQueries is not supported in OpenGL es 2.0\n" );
83   }
84
85   void DeleteQueries( GLsizei n, const GLuint* ids ) override
86   {
87     DALI_LOG_ERROR( "glDeleteQueries is not supported in OpenGL es 2.0\n" );
88   }
89
90   GLboolean IsQuery( GLuint id ) override
91   {
92     DALI_LOG_ERROR( "glIsQuery is not supported in OpenGL es 2.0\n" );
93     return 0;
94   }
95
96   void BeginQuery( GLenum target, GLuint id ) override
97   {
98     DALI_LOG_ERROR( "glBeginQuery is not supported in OpenGL es 2.0\n" );
99   }
100
101   void EndQuery( GLenum target ) override
102   {
103     DALI_LOG_ERROR( "glEndQuery is not supported in OpenGL es 2.0\n" );
104   }
105
106   void GetQueryiv( GLenum target, GLenum pname, GLint* params ) override
107   {
108     DALI_LOG_ERROR( "glGetQueryiv is not supported in OpenGL es 2.0\n" );
109   }
110
111   void GetQueryObjectuiv( GLuint id, GLenum pname, GLuint* params ) override
112   {
113     DALI_LOG_ERROR( "glGetQueryObjectuiv is not supported in OpenGL es 2.0\n" );
114   }
115
116   GLboolean UnmapBuffer( GLenum target ) override
117   {
118     DALI_LOG_ERROR( "glUnmapBuffer is not supported in OpenGL es 2.0\n" );
119     return 0;
120   }
121
122   void GetBufferPointerv( GLenum target, GLenum pname, GLvoid** params ) override
123   {
124     DALI_LOG_ERROR( "glGetBufferPointerv is not supported in OpenGL es 2.0\n" );
125   }
126
127   void DrawBuffers( GLsizei n, const GLenum* bufs ) override
128   {
129     DALI_LOG_ERROR( "glDrawBuffers is not supported in OpenGL es 2.0\n" );
130   }
131
132   void UniformMatrix2x3fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat* value ) override
133   {
134     DALI_LOG_ERROR( "glUniformMatrix2x3fv is not supported in OpenGL es 2.0\n" );
135   }
136
137   void UniformMatrix3x2fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat* value ) override
138   {
139     DALI_LOG_ERROR( "glUniformMatrix3x2fv is not supported in OpenGL es 2.0\n" );
140   }
141
142   void UniformMatrix2x4fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat* value ) override
143   {
144     DALI_LOG_ERROR( "glUniformMatrix2x4fv is not supported in OpenGL es 2.0\n" );
145   }
146
147   void UniformMatrix4x2fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat* value ) override
148   {
149     DALI_LOG_ERROR( "glUniformMatrix4x2fv is not supported in OpenGL es 2.0\n" );
150   }
151
152   void UniformMatrix3x4fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat* value ) override
153   {
154     DALI_LOG_ERROR( "glUniformMatrix3x4fv is not supported in OpenGL es 2.0\n" );
155   }
156
157   void UniformMatrix4x3fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat* value ) override
158   {
159     DALI_LOG_ERROR( "glUniformMatrix4x3fv is not supported in OpenGL es 2.0\n" );
160   }
161
162   void BlitFramebuffer( GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter ) override
163   {
164     DALI_LOG_ERROR( "glBlitFramebuffer is not supported in OpenGL es 2.0\n" );
165   }
166
167   void RenderbufferStorageMultisample( GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height ) override
168   {
169     DALI_LOG_ERROR( "glRenderbufferStorageMultisample is not supported in OpenGL es 2.0\n" );
170   }
171
172   void FramebufferTextureLayer( GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer ) override
173   {
174     DALI_LOG_ERROR( "glFramebufferTextureLayer is not supported in OpenGL es 2.0\n" );
175   }
176
177   GLvoid* MapBufferRange( GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access ) override
178   {
179     DALI_LOG_ERROR( "glMapBufferRange is not supported in OpenGL es 2.0\n" );
180     return NULL;
181   }
182
183   void FlushMappedBufferRange( GLenum target, GLintptr offset, GLsizeiptr length ) override
184   {
185     DALI_LOG_ERROR( "glFlushMappedBufferRange is not supported in OpenGL es 2.0\n" );
186   }
187
188   void BindVertexArray( GLuint array ) override
189   {
190     DALI_LOG_ERROR( "glBindVertexArray is not supported in OpenGL es 2.0\n" );
191   }
192
193   void DeleteVertexArrays( GLsizei n, const GLuint* arrays ) override
194   {
195     DALI_LOG_ERROR( "glDeleteVertexArrays is not supported in OpenGL es 2.0\n" );
196   }
197
198   void GenVertexArrays( GLsizei n, GLuint* arrays ) override
199   {
200     DALI_LOG_ERROR( "glGenVertexArrays is not supported in OpenGL es 2.0\n" );
201   }
202
203   GLboolean IsVertexArray( GLuint array ) override
204   {
205     DALI_LOG_ERROR( "glIsVertexArray is not supported in OpenGL es 2.0\n" );
206     return 0;
207   }
208
209   void GetIntegeri_v( GLenum target, GLuint index, GLint* data ) override
210   {
211     DALI_LOG_ERROR( "glGetIntegeri_v is not supported in OpenGL es 2.0\n" );
212   }
213
214   void BeginTransformFeedback( GLenum primitiveMode ) override
215   {
216     DALI_LOG_ERROR( "glBeginTransformFeedback is not supported in OpenGL es 2.0\n" );
217   }
218
219   void EndTransformFeedback( void ) override
220   {
221     DALI_LOG_ERROR( "glEndTransformFeedback is not supported in OpenGL es 2.0\n" );
222   }
223
224   void BindBufferRange( GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size ) override
225   {
226     DALI_LOG_ERROR( "glBindBufferRange is not supported in OpenGL es 2.0\n" );
227   }
228
229   void BindBufferBase( GLenum target, GLuint index, GLuint buffer ) override
230   {
231     DALI_LOG_ERROR( "glBindBufferBase is not supported in OpenGL es 2.0\n" );
232   }
233
234   void TransformFeedbackVaryings( GLuint program, GLsizei count, const GLchar* const* varyings, GLenum bufferMode ) override
235   {
236     DALI_LOG_ERROR( "glTransformFeedbackVaryings is not supported in OpenGL es 2.0\n" );
237   }
238
239   void GetTransformFeedbackVarying( GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* type, GLchar* name ) override
240   {
241     DALI_LOG_ERROR( "glGetTransformFeedbackVarying is not supported in OpenGL es 2.0\n" );
242   }
243
244   void VertexAttribIPointer( GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid* pointer ) override
245   {
246     DALI_LOG_ERROR( "glVertexAttribIPointer is not supported in OpenGL es 2.0\n" );
247   }
248
249   void GetVertexAttribIiv( GLuint index, GLenum pname, GLint* params ) override
250   {
251     DALI_LOG_ERROR( "glGetVertexAttribIiv is not supported in OpenGL es 2.0\n" );
252   }
253
254   void GetVertexAttribIuiv( GLuint index, GLenum pname, GLuint* params ) override
255   {
256     DALI_LOG_ERROR( "glGetVertexAttribIuiv is not supported in OpenGL es 2.0\n" );
257   }
258
259   void VertexAttribI4i( GLuint index, GLint x, GLint y, GLint z, GLint w ) override
260   {
261     DALI_LOG_ERROR( "glVertexAttribI4i is not supported in OpenGL es 2.0\n" );
262   }
263
264   void VertexAttribI4ui( GLuint index, GLuint x, GLuint y, GLuint z, GLuint w ) override
265   {
266     DALI_LOG_ERROR( "glVertexAttribI4ui is not supported in OpenGL es 2.0\n" );
267   }
268
269   void VertexAttribI4iv( GLuint index, const GLint* v ) override
270   {
271     DALI_LOG_ERROR( "glVertexAttribI4iv is not supported in OpenGL es 2.0\n" );
272   }
273
274   void VertexAttribI4uiv( GLuint index, const GLuint* v ) override
275   {
276     DALI_LOG_ERROR( "glVertexAttribI4uiv is not supported in OpenGL es 2.0\n" );
277   }
278
279   void GetUniformuiv( GLuint program, GLint location, GLuint* params ) override
280   {
281     DALI_LOG_ERROR( "glGetUniformuiv is not supported in OpenGL es 2.0\n" );
282   }
283
284   GLint GetFragDataLocation( GLuint program, const GLchar *name ) override
285   {
286     DALI_LOG_ERROR( "glGetFragDataLocation is not supported in OpenGL es 2.0\n" );
287     return -1;
288   }
289
290   void Uniform1ui( GLint location, GLuint v0 ) override
291   {
292     DALI_LOG_ERROR( "glUniform1ui is not supported in OpenGL es 2.0\n" );
293   }
294
295   void Uniform2ui( GLint location, GLuint v0, GLuint v1 ) override
296   {
297     DALI_LOG_ERROR( "glUniform2ui is not supported in OpenGL es 2.0\n" );
298   }
299
300   void Uniform3ui( GLint location, GLuint v0, GLuint v1, GLuint v2 ) override
301   {
302     DALI_LOG_ERROR( "glUniform3ui is not supported in OpenGL es 2.0\n" );
303   }
304
305   void Uniform4ui( GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3 ) override
306   {
307     DALI_LOG_ERROR( "glUniform4ui is not supported in OpenGL es 2.0\n" );
308   }
309
310   void Uniform1uiv( GLint location, GLsizei count, const GLuint* value ) override
311   {
312     DALI_LOG_ERROR( "glUniform1uiv is not supported in OpenGL es 2.0\n" );
313   }
314
315   void Uniform2uiv( GLint location, GLsizei count, const GLuint* value ) override
316   {
317     DALI_LOG_ERROR( "glUniform2uiv is not supported in OpenGL es 2.0\n" );
318   }
319
320   void Uniform3uiv( GLint location, GLsizei count, const GLuint* value ) override
321   {
322     DALI_LOG_ERROR( "glUniform3uiv is not supported in OpenGL es 2.0\n" );
323   }
324
325   void Uniform4uiv( GLint location, GLsizei count, const GLuint* value ) override
326   {
327     DALI_LOG_ERROR( "glUniform4uiv is not supported in OpenGL es 2.0\n" );
328   }
329
330   void ClearBufferiv( GLenum buffer, GLint drawbuffer, const GLint* value ) override
331   {
332     DALI_LOG_ERROR( "glClearBufferiv is not supported in OpenGL es 2.0\n" );
333   }
334
335   void ClearBufferuiv( GLenum buffer, GLint drawbuffer, const GLuint* value ) override
336   {
337     DALI_LOG_ERROR( "glClearBufferuiv is not supported in OpenGL es 2.0\n" );
338   }
339
340   void ClearBufferfv( GLenum buffer, GLint drawbuffer, const GLfloat* value ) override
341   {
342     DALI_LOG_ERROR( "glClearBufferfv is not supported in OpenGL es 2.0\n" );
343   }
344
345   void ClearBufferfi( GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil ) override
346   {
347     DALI_LOG_ERROR( "glClearBufferfi is not supported in OpenGL es 2.0\n" );
348   }
349
350   const GLubyte* GetStringi( GLenum name, GLuint index ) override
351   {
352     DALI_LOG_ERROR( "glGetStringi is not supported in OpenGL es 2.0\n" );
353     return NULL;
354   }
355
356   void CopyBufferSubData( GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size ) override
357   {
358     DALI_LOG_ERROR( "glCopyBufferSubData is not supported in OpenGL es 2.0\n" );
359   }
360
361   void GetUniformIndices( GLuint program, GLsizei uniformCount, const GLchar* const* uniformNames, GLuint* uniformIndices ) override
362   {
363     DALI_LOG_ERROR( "glGetUniformIndices is not supported in OpenGL es 2.0\n" );
364   }
365
366   void GetActiveUniformsiv( GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params ) override
367   {
368     DALI_LOG_ERROR( "glGetActiveUniformsiv is not supported in OpenGL es 2.0\n" );
369   }
370
371   GLuint GetUniformBlockIndex( GLuint program, const GLchar* uniformBlockName ) override
372   {
373     DALI_LOG_ERROR( "glGetUniformBlockIndex is not supported in OpenGL es 2.0\n" );
374     return 0;
375   }
376
377   void GetActiveUniformBlockiv( GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params ) override
378   {
379     DALI_LOG_ERROR( "glGetActiveUniformBlockiv is not supported in OpenGL es 2.0\n" );
380   }
381
382   void GetActiveUniformBlockName( GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName ) override
383   {
384     DALI_LOG_ERROR( "glGetActiveUniformBlockName is not supported in OpenGL es 2.0\n" );
385   }
386
387   void UniformBlockBinding( GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding ) override
388   {
389     DALI_LOG_ERROR( "glUniformBlockBinding is not supported in OpenGL es 2.0\n" );
390   }
391
392   void DrawArraysInstanced( GLenum mode, GLint first, GLsizei count, GLsizei instanceCount ) override
393   {
394     DALI_LOG_ERROR( "glDrawArraysInstanced is not supported in OpenGL es 2.0\n" );
395   }
396
397   void DrawElementsInstanced( GLenum mode, GLsizei count, GLenum type, const GLvoid* indices, GLsizei instanceCount ) override
398   {
399     DALI_LOG_ERROR( "glDrawElementsInstanced is not supported in OpenGL es 2.0\n" );
400   }
401
402   GLsync FenceSync( GLenum condition, GLbitfield flags ) override
403   {
404     DALI_LOG_ERROR( "glFenceSync is not supported in OpenGL es 2.0\n" );
405     return NULL;
406   }
407
408   GLboolean IsSync( GLsync sync ) override
409   {
410     DALI_LOG_ERROR( "glIsSync is not supported in OpenGL es 2.0\n" );
411     return 0;
412   }
413
414   void DeleteSync( GLsync sync ) override
415   {
416     DALI_LOG_ERROR( "glDeleteSync is not supported in OpenGL es 2.0\n" );
417   }
418
419   GLenum ClientWaitSync( GLsync sync, GLbitfield flags, GLuint64 timeout ) override
420   {
421     DALI_LOG_ERROR( "glClientWaitSync is not supported in OpenGL es 2.0\n" );
422     return 0;
423   }
424
425   void WaitSync( GLsync sync, GLbitfield flags, GLuint64 timeout ) override
426   {
427     DALI_LOG_ERROR( "glWaitSync is not supported in OpenGL es 2.0\n" );
428   }
429
430   void GetInteger64v( GLenum pname, GLint64* params ) override
431   {
432     DALI_LOG_ERROR( "glGetInteger64v is not supported in OpenGL es 2.0\n" );
433   }
434
435   void GetSynciv( GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values ) override
436   {
437     DALI_LOG_ERROR( "glGetSynciv is not supported in OpenGL es 2.0\n" );
438   }
439
440   void GetInteger64i_v( GLenum target, GLuint index, GLint64* data ) override
441   {
442     DALI_LOG_ERROR( "glGetInteger64i_v is not supported in OpenGL es 2.0\n" );
443   }
444
445   void GetBufferParameteri64v( GLenum target, GLenum pname, GLint64* params ) override
446   {
447     DALI_LOG_ERROR( "glGetBufferParameteri64v is not supported in OpenGL es 2.0\n" );
448   }
449
450   void GenSamplers( GLsizei count, GLuint* samplers ) override
451   {
452     DALI_LOG_ERROR( "glGenSamplers is not supported in OpenGL es 2.0\n" );
453   }
454
455   void DeleteSamplers( GLsizei count, const GLuint* samplers ) override
456   {
457     DALI_LOG_ERROR( "glDeleteSamplers is not supported in OpenGL es 2.0\n" );
458   }
459
460   GLboolean IsSampler( GLuint sampler ) override
461   {
462     DALI_LOG_ERROR( "glIsSampler is not supported in OpenGL es 2.0\n" );
463     return 0;
464   }
465
466   void BindSampler( GLuint unit, GLuint sampler ) override
467   {
468     DALI_LOG_ERROR( "glBindSampler is not supported in OpenGL es 2.0\n" );
469   }
470
471   void SamplerParameteri( GLuint sampler, GLenum pname, GLint param ) override
472   {
473     DALI_LOG_ERROR( "glSamplerParameteri is not supported in OpenGL es 2.0\n" );
474   }
475
476   void SamplerParameteriv( GLuint sampler, GLenum pname, const GLint* param ) override
477   {
478     DALI_LOG_ERROR( "glSamplerParameteriv is not supported in OpenGL es 2.0\n" );
479   }
480
481   void SamplerParameterf( GLuint sampler, GLenum pname, GLfloat param ) override
482   {
483     DALI_LOG_ERROR( "glSamplerParameterf is not supported in OpenGL es 2.0\n" );
484   }
485
486   void SamplerParameterfv( GLuint sampler, GLenum pname, const GLfloat* param ) override
487   {
488     DALI_LOG_ERROR( "glSamplerParameterfv is not supported in OpenGL es 2.0\n" );
489   }
490
491   void GetSamplerParameteriv( GLuint sampler, GLenum pname, GLint* params ) override
492   {
493     DALI_LOG_ERROR( "glGetSamplerParameteriv is not supported in OpenGL es 2.0\n" );
494   }
495
496   void GetSamplerParameterfv( GLuint sampler, GLenum pname, GLfloat* params ) override
497   {
498     DALI_LOG_ERROR( "glGetSamplerParameterfv is not supported in OpenGL es 2.0\n" );
499   }
500
501   void VertexAttribDivisor( GLuint index, GLuint divisor ) override
502   {
503     DALI_LOG_ERROR( "glVertexAttribDivisor is not supported in OpenGL es 2.0\n" );
504   }
505
506   void BindTransformFeedback( GLenum target, GLuint id ) override
507   {
508     DALI_LOG_ERROR( "glBindTransformFeedback is not supported in OpenGL es 2.0\n" );
509   }
510
511   void DeleteTransformFeedbacks( GLsizei n, const GLuint* ids ) override
512   {
513     DALI_LOG_ERROR( "glDeleteTransformFeedbacks is not supported in OpenGL es 2.0\n" );
514   }
515
516   void GenTransformFeedbacks( GLsizei n, GLuint* ids ) override
517   {
518     DALI_LOG_ERROR( "glGenTransformFeedbacks is not supported in OpenGL es 2.0\n" );
519   }
520
521   GLboolean IsTransformFeedback( GLuint id ) override
522   {
523     DALI_LOG_ERROR( "glIsTransformFeedback is not supported in OpenGL es 2.0\n" );
524     return 0;
525   }
526
527   void PauseTransformFeedback( void ) override
528   {
529     DALI_LOG_ERROR( "glPauseTransformFeedback is not supported in OpenGL es 2.0\n" );
530   }
531
532   void ResumeTransformFeedback( void ) override
533   {
534     DALI_LOG_ERROR( "glResumeTransformFeedback is not supported in OpenGL es 2.0\n" );
535   }
536
537   void GetProgramBinary( GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, GLvoid* binary ) override
538   {
539     mGlExtensions.GetProgramBinaryOES( program, bufSize, length, binaryFormat, binary );
540   }
541
542   void ProgramBinary( GLuint program, GLenum binaryFormat, const GLvoid* binary, GLsizei length ) override
543   {
544     mGlExtensions.ProgramBinaryOES( program, binaryFormat, binary, length );
545   }
546
547   void ProgramParameteri( GLuint program, GLenum pname, GLint value ) override
548   {
549     DALI_LOG_ERROR( "glProgramParameteri is not supported in OpenGL es 2.0\n" );
550   }
551
552   void InvalidateFramebuffer( GLenum target, GLsizei numAttachments, const GLenum* attachments ) override
553   {
554     mGlExtensions.DiscardFrameBuffer( target, numAttachments, attachments );
555   }
556
557   void InvalidateSubFramebuffer( GLenum target, GLsizei numAttachments, const GLenum* attachments, GLint x, GLint y, GLsizei width, GLsizei height ) override
558   {
559     DALI_LOG_ERROR( "glInvalidateSubFramebuffer is not supported in OpenGL es 2.0\n" );
560   }
561
562   void TexStorage2D( GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height ) override
563   {
564     DALI_LOG_ERROR( "glTexStorage2D is not supported in OpenGL es 2.0\n" );
565   }
566
567   void TexStorage3D( GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth ) override
568   {
569     DALI_LOG_ERROR( "glTexStorage3D is not supported in OpenGL es 2.0\n" );
570   }
571
572   void GetInternalformativ( GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint* params ) override
573   {
574     DALI_LOG_ERROR( "glGetInternalformativ is not supported in OpenGL es 2.0\n" );
575   }
576
577 private:
578   ECoreX::GlExtensions mGlExtensions;
579 };
580
581 } // namespace Adaptor
582
583 } // namespace Internal
584
585 } // namespace Dali
586
587 #endif // DALI_INTERNAL_GLES2_IMPLEMENTATION_H