527cebfff5976cf2f80d68316aa5fee0d740adda
[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) 2022 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 namespace Internal
31 {
32 namespace Adaptor
33 {
34 class Gles2Implementation : public GlesAbstraction
35 {
36 public:
37   Gles2Implementation()
38   {
39   }
40
41   ~Gles2Implementation() override
42   {
43   }
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     mGlExtensions.RenderbufferStorageMultisampleEXT(target, samples, internalformat, width, height);
170   }
171
172   void FramebufferTexture2DMultisample(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples) override
173   {
174     mGlExtensions.FramebufferTexture2DMultisampleEXT(target, attachment, textarget, texture, level, samples);
175   }
176
177   void FramebufferTextureLayer(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer) override
178   {
179     DALI_LOG_ERROR("glFramebufferTextureLayer is not supported in OpenGL es 2.0\n");
180   }
181
182   GLvoid* MapBufferRange(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access) override
183   {
184     DALI_LOG_ERROR("glMapBufferRange is not supported in OpenGL es 2.0\n");
185     return NULL;
186   }
187
188   void FlushMappedBufferRange(GLenum target, GLintptr offset, GLsizeiptr length) override
189   {
190     DALI_LOG_ERROR("glFlushMappedBufferRange is not supported in OpenGL es 2.0\n");
191   }
192
193   void BindVertexArray(GLuint array) override
194   {
195     DALI_LOG_ERROR("glBindVertexArray is not supported in OpenGL es 2.0\n");
196   }
197
198   void DeleteVertexArrays(GLsizei n, const GLuint* arrays) override
199   {
200     DALI_LOG_ERROR("glDeleteVertexArrays is not supported in OpenGL es 2.0\n");
201   }
202
203   void GenVertexArrays(GLsizei n, GLuint* arrays) override
204   {
205     DALI_LOG_ERROR("glGenVertexArrays is not supported in OpenGL es 2.0\n");
206   }
207
208   GLboolean IsVertexArray(GLuint array) override
209   {
210     DALI_LOG_ERROR("glIsVertexArray is not supported in OpenGL es 2.0\n");
211     return 0;
212   }
213
214   void GetIntegeri_v(GLenum target, GLuint index, GLint* data) override
215   {
216     DALI_LOG_ERROR("glGetIntegeri_v is not supported in OpenGL es 2.0\n");
217   }
218
219   void BeginTransformFeedback(GLenum primitiveMode) override
220   {
221     DALI_LOG_ERROR("glBeginTransformFeedback is not supported in OpenGL es 2.0\n");
222   }
223
224   void EndTransformFeedback(void) override
225   {
226     DALI_LOG_ERROR("glEndTransformFeedback is not supported in OpenGL es 2.0\n");
227   }
228
229   void BindBufferRange(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size) override
230   {
231     DALI_LOG_ERROR("glBindBufferRange is not supported in OpenGL es 2.0\n");
232   }
233
234   void BindBufferBase(GLenum target, GLuint index, GLuint buffer) override
235   {
236     DALI_LOG_ERROR("glBindBufferBase is not supported in OpenGL es 2.0\n");
237   }
238
239   void TransformFeedbackVaryings(GLuint program, GLsizei count, const GLchar* const* varyings, GLenum bufferMode) override
240   {
241     DALI_LOG_ERROR("glTransformFeedbackVaryings is not supported in OpenGL es 2.0\n");
242   }
243
244   void GetTransformFeedbackVarying(GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* type, GLchar* name) override
245   {
246     DALI_LOG_ERROR("glGetTransformFeedbackVarying is not supported in OpenGL es 2.0\n");
247   }
248
249   void VertexAttribIPointer(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid* pointer) override
250   {
251     DALI_LOG_ERROR("glVertexAttribIPointer is not supported in OpenGL es 2.0\n");
252   }
253
254   void GetVertexAttribIiv(GLuint index, GLenum pname, GLint* params) override
255   {
256     DALI_LOG_ERROR("glGetVertexAttribIiv is not supported in OpenGL es 2.0\n");
257   }
258
259   void GetVertexAttribIuiv(GLuint index, GLenum pname, GLuint* params) override
260   {
261     DALI_LOG_ERROR("glGetVertexAttribIuiv is not supported in OpenGL es 2.0\n");
262   }
263
264   void VertexAttribI4i(GLuint index, GLint x, GLint y, GLint z, GLint w) override
265   {
266     DALI_LOG_ERROR("glVertexAttribI4i is not supported in OpenGL es 2.0\n");
267   }
268
269   void VertexAttribI4ui(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w) override
270   {
271     DALI_LOG_ERROR("glVertexAttribI4ui is not supported in OpenGL es 2.0\n");
272   }
273
274   void VertexAttribI4iv(GLuint index, const GLint* v) override
275   {
276     DALI_LOG_ERROR("glVertexAttribI4iv is not supported in OpenGL es 2.0\n");
277   }
278
279   void VertexAttribI4uiv(GLuint index, const GLuint* v) override
280   {
281     DALI_LOG_ERROR("glVertexAttribI4uiv is not supported in OpenGL es 2.0\n");
282   }
283
284   void GetUniformuiv(GLuint program, GLint location, GLuint* params) override
285   {
286     DALI_LOG_ERROR("glGetUniformuiv is not supported in OpenGL es 2.0\n");
287   }
288
289   GLint GetFragDataLocation(GLuint program, const GLchar* name) override
290   {
291     DALI_LOG_ERROR("glGetFragDataLocation is not supported in OpenGL es 2.0\n");
292     return -1;
293   }
294
295   void Uniform1ui(GLint location, GLuint v0) override
296   {
297     DALI_LOG_ERROR("glUniform1ui is not supported in OpenGL es 2.0\n");
298   }
299
300   void Uniform2ui(GLint location, GLuint v0, GLuint v1) override
301   {
302     DALI_LOG_ERROR("glUniform2ui is not supported in OpenGL es 2.0\n");
303   }
304
305   void Uniform3ui(GLint location, GLuint v0, GLuint v1, GLuint v2) override
306   {
307     DALI_LOG_ERROR("glUniform3ui is not supported in OpenGL es 2.0\n");
308   }
309
310   void Uniform4ui(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3) override
311   {
312     DALI_LOG_ERROR("glUniform4ui is not supported in OpenGL es 2.0\n");
313   }
314
315   void Uniform1uiv(GLint location, GLsizei count, const GLuint* value) override
316   {
317     DALI_LOG_ERROR("glUniform1uiv is not supported in OpenGL es 2.0\n");
318   }
319
320   void Uniform2uiv(GLint location, GLsizei count, const GLuint* value) override
321   {
322     DALI_LOG_ERROR("glUniform2uiv is not supported in OpenGL es 2.0\n");
323   }
324
325   void Uniform3uiv(GLint location, GLsizei count, const GLuint* value) override
326   {
327     DALI_LOG_ERROR("glUniform3uiv is not supported in OpenGL es 2.0\n");
328   }
329
330   void Uniform4uiv(GLint location, GLsizei count, const GLuint* value) override
331   {
332     DALI_LOG_ERROR("glUniform4uiv is not supported in OpenGL es 2.0\n");
333   }
334
335   void ClearBufferiv(GLenum buffer, GLint drawbuffer, const GLint* value) override
336   {
337     DALI_LOG_ERROR("glClearBufferiv is not supported in OpenGL es 2.0\n");
338   }
339
340   void ClearBufferuiv(GLenum buffer, GLint drawbuffer, const GLuint* value) override
341   {
342     DALI_LOG_ERROR("glClearBufferuiv is not supported in OpenGL es 2.0\n");
343   }
344
345   void ClearBufferfv(GLenum buffer, GLint drawbuffer, const GLfloat* value) override
346   {
347     DALI_LOG_ERROR("glClearBufferfv is not supported in OpenGL es 2.0\n");
348   }
349
350   void ClearBufferfi(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil) override
351   {
352     DALI_LOG_ERROR("glClearBufferfi is not supported in OpenGL es 2.0\n");
353   }
354
355   const GLubyte* GetStringi(GLenum name, GLuint index) override
356   {
357     DALI_LOG_ERROR("glGetStringi is not supported in OpenGL es 2.0\n");
358     return NULL;
359   }
360
361   void CopyBufferSubData(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size) override
362   {
363     DALI_LOG_ERROR("glCopyBufferSubData is not supported in OpenGL es 2.0\n");
364   }
365
366   void GetUniformIndices(GLuint program, GLsizei uniformCount, const GLchar* const* uniformNames, GLuint* uniformIndices) override
367   {
368     DALI_LOG_ERROR("glGetUniformIndices is not supported in OpenGL es 2.0\n");
369   }
370
371   void GetActiveUniformsiv(GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params) override
372   {
373     DALI_LOG_ERROR("glGetActiveUniformsiv is not supported in OpenGL es 2.0\n");
374   }
375
376   GLuint GetUniformBlockIndex(GLuint program, const GLchar* uniformBlockName) override
377   {
378     DALI_LOG_ERROR("glGetUniformBlockIndex is not supported in OpenGL es 2.0\n");
379     return 0;
380   }
381
382   void GetActiveUniformBlockiv(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params) override
383   {
384     DALI_LOG_ERROR("glGetActiveUniformBlockiv is not supported in OpenGL es 2.0\n");
385   }
386
387   void GetActiveUniformBlockName(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName) override
388   {
389     DALI_LOG_ERROR("glGetActiveUniformBlockName is not supported in OpenGL es 2.0\n");
390   }
391
392   void UniformBlockBinding(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding) override
393   {
394     DALI_LOG_ERROR("glUniformBlockBinding is not supported in OpenGL es 2.0\n");
395   }
396
397   void DrawArraysInstanced(GLenum mode, GLint first, GLsizei count, GLsizei instanceCount) override
398   {
399     DALI_LOG_ERROR("glDrawArraysInstanced is not supported in OpenGL es 2.0\n");
400   }
401
402   void DrawElementsInstanced(GLenum mode, GLsizei count, GLenum type, const GLvoid* indices, GLsizei instanceCount) override
403   {
404     DALI_LOG_ERROR("glDrawElementsInstanced is not supported in OpenGL es 2.0\n");
405   }
406
407   GLsync FenceSync(GLenum condition, GLbitfield flags) override
408   {
409     DALI_LOG_ERROR("glFenceSync is not supported in OpenGL es 2.0\n");
410     return NULL;
411   }
412
413   GLboolean IsSync(GLsync sync) override
414   {
415     DALI_LOG_ERROR("glIsSync is not supported in OpenGL es 2.0\n");
416     return 0;
417   }
418
419   void DeleteSync(GLsync sync) override
420   {
421     DALI_LOG_ERROR("glDeleteSync is not supported in OpenGL es 2.0\n");
422   }
423
424   GLenum ClientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout) override
425   {
426     DALI_LOG_ERROR("glClientWaitSync is not supported in OpenGL es 2.0\n");
427     return 0;
428   }
429
430   void WaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout) override
431   {
432     DALI_LOG_ERROR("glWaitSync is not supported in OpenGL es 2.0\n");
433   }
434
435   void GetInteger64v(GLenum pname, GLint64* params) override
436   {
437     DALI_LOG_ERROR("glGetInteger64v is not supported in OpenGL es 2.0\n");
438   }
439
440   void GetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values) override
441   {
442     DALI_LOG_ERROR("glGetSynciv is not supported in OpenGL es 2.0\n");
443   }
444
445   void GetInteger64i_v(GLenum target, GLuint index, GLint64* data) override
446   {
447     DALI_LOG_ERROR("glGetInteger64i_v is not supported in OpenGL es 2.0\n");
448   }
449
450   void GetBufferParameteri64v(GLenum target, GLenum pname, GLint64* params) override
451   {
452     DALI_LOG_ERROR("glGetBufferParameteri64v is not supported in OpenGL es 2.0\n");
453   }
454
455   void GenSamplers(GLsizei count, GLuint* samplers) override
456   {
457     DALI_LOG_ERROR("glGenSamplers is not supported in OpenGL es 2.0\n");
458   }
459
460   void DeleteSamplers(GLsizei count, const GLuint* samplers) override
461   {
462     DALI_LOG_ERROR("glDeleteSamplers is not supported in OpenGL es 2.0\n");
463   }
464
465   GLboolean IsSampler(GLuint sampler) override
466   {
467     DALI_LOG_ERROR("glIsSampler is not supported in OpenGL es 2.0\n");
468     return 0;
469   }
470
471   void BindSampler(GLuint unit, GLuint sampler) override
472   {
473     DALI_LOG_ERROR("glBindSampler is not supported in OpenGL es 2.0\n");
474   }
475
476   void SamplerParameteri(GLuint sampler, GLenum pname, GLint param) override
477   {
478     DALI_LOG_ERROR("glSamplerParameteri is not supported in OpenGL es 2.0\n");
479   }
480
481   void SamplerParameteriv(GLuint sampler, GLenum pname, const GLint* param) override
482   {
483     DALI_LOG_ERROR("glSamplerParameteriv is not supported in OpenGL es 2.0\n");
484   }
485
486   void SamplerParameterf(GLuint sampler, GLenum pname, GLfloat param) override
487   {
488     DALI_LOG_ERROR("glSamplerParameterf is not supported in OpenGL es 2.0\n");
489   }
490
491   void SamplerParameterfv(GLuint sampler, GLenum pname, const GLfloat* param) override
492   {
493     DALI_LOG_ERROR("glSamplerParameterfv is not supported in OpenGL es 2.0\n");
494   }
495
496   void GetSamplerParameteriv(GLuint sampler, GLenum pname, GLint* params) override
497   {
498     DALI_LOG_ERROR("glGetSamplerParameteriv is not supported in OpenGL es 2.0\n");
499   }
500
501   void GetSamplerParameterfv(GLuint sampler, GLenum pname, GLfloat* params) override
502   {
503     DALI_LOG_ERROR("glGetSamplerParameterfv is not supported in OpenGL es 2.0\n");
504   }
505
506   void VertexAttribDivisor(GLuint index, GLuint divisor) override
507   {
508     DALI_LOG_ERROR("glVertexAttribDivisor is not supported in OpenGL es 2.0\n");
509   }
510
511   void BindTransformFeedback(GLenum target, GLuint id) override
512   {
513     DALI_LOG_ERROR("glBindTransformFeedback is not supported in OpenGL es 2.0\n");
514   }
515
516   void DeleteTransformFeedbacks(GLsizei n, const GLuint* ids) override
517   {
518     DALI_LOG_ERROR("glDeleteTransformFeedbacks is not supported in OpenGL es 2.0\n");
519   }
520
521   void GenTransformFeedbacks(GLsizei n, GLuint* ids) override
522   {
523     DALI_LOG_ERROR("glGenTransformFeedbacks is not supported in OpenGL es 2.0\n");
524   }
525
526   GLboolean IsTransformFeedback(GLuint id) override
527   {
528     DALI_LOG_ERROR("glIsTransformFeedback is not supported in OpenGL es 2.0\n");
529     return 0;
530   }
531
532   void PauseTransformFeedback(void) override
533   {
534     DALI_LOG_ERROR("glPauseTransformFeedback is not supported in OpenGL es 2.0\n");
535   }
536
537   void ResumeTransformFeedback(void) override
538   {
539     DALI_LOG_ERROR("glResumeTransformFeedback is not supported in OpenGL es 2.0\n");
540   }
541
542   void GetProgramBinary(GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, GLvoid* binary) override
543   {
544     mGlExtensions.GetProgramBinaryOES(program, bufSize, length, binaryFormat, binary);
545   }
546
547   void ProgramBinary(GLuint program, GLenum binaryFormat, const GLvoid* binary, GLsizei length) override
548   {
549     mGlExtensions.ProgramBinaryOES(program, binaryFormat, binary, length);
550   }
551
552   void ProgramParameteri(GLuint program, GLenum pname, GLint value) override
553   {
554     DALI_LOG_ERROR("glProgramParameteri is not supported in OpenGL es 2.0\n");
555   }
556
557   void InvalidateFramebuffer(GLenum target, GLsizei numAttachments, const GLenum* attachments) override
558   {
559     mGlExtensions.DiscardFrameBuffer(target, numAttachments, attachments);
560   }
561
562   void InvalidateSubFramebuffer(GLenum target, GLsizei numAttachments, const GLenum* attachments, GLint x, GLint y, GLsizei width, GLsizei height) override
563   {
564     DALI_LOG_ERROR("glInvalidateSubFramebuffer is not supported in OpenGL es 2.0\n");
565   }
566
567   void TexStorage2D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height) override
568   {
569     DALI_LOG_ERROR("glTexStorage2D is not supported in OpenGL es 2.0\n");
570   }
571
572   void TexStorage3D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth) override
573   {
574     DALI_LOG_ERROR("glTexStorage3D is not supported in OpenGL es 2.0\n");
575   }
576
577   void GetInternalformativ(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint* params) override
578   {
579     DALI_LOG_ERROR("glGetInternalformativ is not supported in OpenGL es 2.0\n");
580   }
581
582   void BlendBarrier(void) override
583   {
584     DALI_LOG_ERROR("BlendBarrier is not supported in OpenGL es 2.0\n");
585   }
586
587 private:
588   GlExtensions mGlExtensions;
589 };
590
591 } // namespace Adaptor
592
593 } // namespace Internal
594
595 } // namespace Dali
596
597 #endif // DALI_INTERNAL_GLES2_IMPLEMENTATION_H