Abstract GoogleURLTracker & google_util Profile dependencies
[chromium-blink-merge.git] / ppapi / shared_impl / ppb_opengles2_shared.cc
blob00cb2ed2f4d57f9df1a19c0f3732794d8401cc61
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 // This file is auto-generated from
6 // gpu/command_buffer/build_gles2_cmd_buffer.py
7 // It's formatted by clang-format using chromium coding style:
8 // clang-format -i -style=chromium filename
9 // DO NOT EDIT!
11 #include "ppapi/shared_impl/ppb_opengles2_shared.h"
13 #include "base/logging.h"
14 #include "gpu/command_buffer/client/gles2_implementation.h"
15 #include "ppapi/shared_impl/ppb_graphics_3d_shared.h"
16 #include "ppapi/thunk/enter.h"
18 namespace ppapi {
20 namespace {
22 typedef thunk::EnterResource<thunk::PPB_Graphics3D_API> Enter3D;
24 gpu::gles2::GLES2Implementation* ToGles2Impl(Enter3D* enter) {
25 DCHECK(enter);
26 DCHECK(enter->succeeded());
27 return static_cast<PPB_Graphics3D_Shared*>(enter->object())->gles2_impl();
30 void ActiveTexture(PP_Resource context_id, GLenum texture) {
31 Enter3D enter(context_id, true);
32 if (enter.succeeded()) {
33 ToGles2Impl(&enter)->ActiveTexture(texture);
37 void AttachShader(PP_Resource context_id, GLuint program, GLuint shader) {
38 Enter3D enter(context_id, true);
39 if (enter.succeeded()) {
40 ToGles2Impl(&enter)->AttachShader(program, shader);
44 void BindAttribLocation(PP_Resource context_id,
45 GLuint program,
46 GLuint index,
47 const char* name) {
48 Enter3D enter(context_id, true);
49 if (enter.succeeded()) {
50 ToGles2Impl(&enter)->BindAttribLocation(program, index, name);
54 void BindBuffer(PP_Resource context_id, GLenum target, GLuint buffer) {
55 Enter3D enter(context_id, true);
56 if (enter.succeeded()) {
57 ToGles2Impl(&enter)->BindBuffer(target, buffer);
61 void BindFramebuffer(PP_Resource context_id,
62 GLenum target,
63 GLuint framebuffer) {
64 Enter3D enter(context_id, true);
65 if (enter.succeeded()) {
66 ToGles2Impl(&enter)->BindFramebuffer(target, framebuffer);
70 void BindRenderbuffer(PP_Resource context_id,
71 GLenum target,
72 GLuint renderbuffer) {
73 Enter3D enter(context_id, true);
74 if (enter.succeeded()) {
75 ToGles2Impl(&enter)->BindRenderbuffer(target, renderbuffer);
79 void BindTexture(PP_Resource context_id, GLenum target, GLuint texture) {
80 Enter3D enter(context_id, true);
81 if (enter.succeeded()) {
82 ToGles2Impl(&enter)->BindTexture(target, texture);
86 void BlendColor(PP_Resource context_id,
87 GLclampf red,
88 GLclampf green,
89 GLclampf blue,
90 GLclampf alpha) {
91 Enter3D enter(context_id, true);
92 if (enter.succeeded()) {
93 ToGles2Impl(&enter)->BlendColor(red, green, blue, alpha);
97 void BlendEquation(PP_Resource context_id, GLenum mode) {
98 Enter3D enter(context_id, true);
99 if (enter.succeeded()) {
100 ToGles2Impl(&enter)->BlendEquation(mode);
104 void BlendEquationSeparate(PP_Resource context_id,
105 GLenum modeRGB,
106 GLenum modeAlpha) {
107 Enter3D enter(context_id, true);
108 if (enter.succeeded()) {
109 ToGles2Impl(&enter)->BlendEquationSeparate(modeRGB, modeAlpha);
113 void BlendFunc(PP_Resource context_id, GLenum sfactor, GLenum dfactor) {
114 Enter3D enter(context_id, true);
115 if (enter.succeeded()) {
116 ToGles2Impl(&enter)->BlendFunc(sfactor, dfactor);
120 void BlendFuncSeparate(PP_Resource context_id,
121 GLenum srcRGB,
122 GLenum dstRGB,
123 GLenum srcAlpha,
124 GLenum dstAlpha) {
125 Enter3D enter(context_id, true);
126 if (enter.succeeded()) {
127 ToGles2Impl(&enter)->BlendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha);
131 void BufferData(PP_Resource context_id,
132 GLenum target,
133 GLsizeiptr size,
134 const void* data,
135 GLenum usage) {
136 Enter3D enter(context_id, true);
137 if (enter.succeeded()) {
138 ToGles2Impl(&enter)->BufferData(target, size, data, usage);
142 void BufferSubData(PP_Resource context_id,
143 GLenum target,
144 GLintptr offset,
145 GLsizeiptr size,
146 const void* data) {
147 Enter3D enter(context_id, true);
148 if (enter.succeeded()) {
149 ToGles2Impl(&enter)->BufferSubData(target, offset, size, data);
153 GLenum CheckFramebufferStatus(PP_Resource context_id, GLenum target) {
154 Enter3D enter(context_id, true);
155 if (enter.succeeded()) {
156 return ToGles2Impl(&enter)->CheckFramebufferStatus(target);
157 } else {
158 return 0;
162 void Clear(PP_Resource context_id, GLbitfield mask) {
163 Enter3D enter(context_id, true);
164 if (enter.succeeded()) {
165 ToGles2Impl(&enter)->Clear(mask);
169 void ClearColor(PP_Resource context_id,
170 GLclampf red,
171 GLclampf green,
172 GLclampf blue,
173 GLclampf alpha) {
174 Enter3D enter(context_id, true);
175 if (enter.succeeded()) {
176 ToGles2Impl(&enter)->ClearColor(red, green, blue, alpha);
180 void ClearDepthf(PP_Resource context_id, GLclampf depth) {
181 Enter3D enter(context_id, true);
182 if (enter.succeeded()) {
183 ToGles2Impl(&enter)->ClearDepthf(depth);
187 void ClearStencil(PP_Resource context_id, GLint s) {
188 Enter3D enter(context_id, true);
189 if (enter.succeeded()) {
190 ToGles2Impl(&enter)->ClearStencil(s);
194 void ColorMask(PP_Resource context_id,
195 GLboolean red,
196 GLboolean green,
197 GLboolean blue,
198 GLboolean alpha) {
199 Enter3D enter(context_id, true);
200 if (enter.succeeded()) {
201 ToGles2Impl(&enter)->ColorMask(red, green, blue, alpha);
205 void CompileShader(PP_Resource context_id, GLuint shader) {
206 Enter3D enter(context_id, true);
207 if (enter.succeeded()) {
208 ToGles2Impl(&enter)->CompileShader(shader);
212 void CompressedTexImage2D(PP_Resource context_id,
213 GLenum target,
214 GLint level,
215 GLenum internalformat,
216 GLsizei width,
217 GLsizei height,
218 GLint border,
219 GLsizei imageSize,
220 const void* data) {
221 Enter3D enter(context_id, true);
222 if (enter.succeeded()) {
223 ToGles2Impl(&enter)->CompressedTexImage2D(
224 target, level, internalformat, width, height, border, imageSize, data);
228 void CompressedTexSubImage2D(PP_Resource context_id,
229 GLenum target,
230 GLint level,
231 GLint xoffset,
232 GLint yoffset,
233 GLsizei width,
234 GLsizei height,
235 GLenum format,
236 GLsizei imageSize,
237 const void* data) {
238 Enter3D enter(context_id, true);
239 if (enter.succeeded()) {
240 ToGles2Impl(&enter)->CompressedTexSubImage2D(target,
241 level,
242 xoffset,
243 yoffset,
244 width,
245 height,
246 format,
247 imageSize,
248 data);
252 void CopyTexImage2D(PP_Resource context_id,
253 GLenum target,
254 GLint level,
255 GLenum internalformat,
256 GLint x,
257 GLint y,
258 GLsizei width,
259 GLsizei height,
260 GLint border) {
261 Enter3D enter(context_id, true);
262 if (enter.succeeded()) {
263 ToGles2Impl(&enter)->CopyTexImage2D(
264 target, level, internalformat, x, y, width, height, border);
268 void CopyTexSubImage2D(PP_Resource context_id,
269 GLenum target,
270 GLint level,
271 GLint xoffset,
272 GLint yoffset,
273 GLint x,
274 GLint y,
275 GLsizei width,
276 GLsizei height) {
277 Enter3D enter(context_id, true);
278 if (enter.succeeded()) {
279 ToGles2Impl(&enter)->CopyTexSubImage2D(
280 target, level, xoffset, yoffset, x, y, width, height);
284 GLuint CreateProgram(PP_Resource context_id) {
285 Enter3D enter(context_id, true);
286 if (enter.succeeded()) {
287 return ToGles2Impl(&enter)->CreateProgram();
288 } else {
289 return 0;
293 GLuint CreateShader(PP_Resource context_id, GLenum type) {
294 Enter3D enter(context_id, true);
295 if (enter.succeeded()) {
296 return ToGles2Impl(&enter)->CreateShader(type);
297 } else {
298 return 0;
302 void CullFace(PP_Resource context_id, GLenum mode) {
303 Enter3D enter(context_id, true);
304 if (enter.succeeded()) {
305 ToGles2Impl(&enter)->CullFace(mode);
309 void DeleteBuffers(PP_Resource context_id, GLsizei n, const GLuint* buffers) {
310 Enter3D enter(context_id, true);
311 if (enter.succeeded()) {
312 ToGles2Impl(&enter)->DeleteBuffers(n, buffers);
316 void DeleteFramebuffers(PP_Resource context_id,
317 GLsizei n,
318 const GLuint* framebuffers) {
319 Enter3D enter(context_id, true);
320 if (enter.succeeded()) {
321 ToGles2Impl(&enter)->DeleteFramebuffers(n, framebuffers);
325 void DeleteProgram(PP_Resource context_id, GLuint program) {
326 Enter3D enter(context_id, true);
327 if (enter.succeeded()) {
328 ToGles2Impl(&enter)->DeleteProgram(program);
332 void DeleteRenderbuffers(PP_Resource context_id,
333 GLsizei n,
334 const GLuint* renderbuffers) {
335 Enter3D enter(context_id, true);
336 if (enter.succeeded()) {
337 ToGles2Impl(&enter)->DeleteRenderbuffers(n, renderbuffers);
341 void DeleteShader(PP_Resource context_id, GLuint shader) {
342 Enter3D enter(context_id, true);
343 if (enter.succeeded()) {
344 ToGles2Impl(&enter)->DeleteShader(shader);
348 void DeleteTextures(PP_Resource context_id, GLsizei n, const GLuint* textures) {
349 Enter3D enter(context_id, true);
350 if (enter.succeeded()) {
351 ToGles2Impl(&enter)->DeleteTextures(n, textures);
355 void DepthFunc(PP_Resource context_id, GLenum func) {
356 Enter3D enter(context_id, true);
357 if (enter.succeeded()) {
358 ToGles2Impl(&enter)->DepthFunc(func);
362 void DepthMask(PP_Resource context_id, GLboolean flag) {
363 Enter3D enter(context_id, true);
364 if (enter.succeeded()) {
365 ToGles2Impl(&enter)->DepthMask(flag);
369 void DepthRangef(PP_Resource context_id, GLclampf zNear, GLclampf zFar) {
370 Enter3D enter(context_id, true);
371 if (enter.succeeded()) {
372 ToGles2Impl(&enter)->DepthRangef(zNear, zFar);
376 void DetachShader(PP_Resource context_id, GLuint program, GLuint shader) {
377 Enter3D enter(context_id, true);
378 if (enter.succeeded()) {
379 ToGles2Impl(&enter)->DetachShader(program, shader);
383 void Disable(PP_Resource context_id, GLenum cap) {
384 Enter3D enter(context_id, true);
385 if (enter.succeeded()) {
386 ToGles2Impl(&enter)->Disable(cap);
390 void DisableVertexAttribArray(PP_Resource context_id, GLuint index) {
391 Enter3D enter(context_id, true);
392 if (enter.succeeded()) {
393 ToGles2Impl(&enter)->DisableVertexAttribArray(index);
397 void DrawArrays(PP_Resource context_id,
398 GLenum mode,
399 GLint first,
400 GLsizei count) {
401 Enter3D enter(context_id, true);
402 if (enter.succeeded()) {
403 ToGles2Impl(&enter)->DrawArrays(mode, first, count);
407 void DrawElements(PP_Resource context_id,
408 GLenum mode,
409 GLsizei count,
410 GLenum type,
411 const void* indices) {
412 Enter3D enter(context_id, true);
413 if (enter.succeeded()) {
414 ToGles2Impl(&enter)->DrawElements(mode, count, type, indices);
418 void Enable(PP_Resource context_id, GLenum cap) {
419 Enter3D enter(context_id, true);
420 if (enter.succeeded()) {
421 ToGles2Impl(&enter)->Enable(cap);
425 void EnableVertexAttribArray(PP_Resource context_id, GLuint index) {
426 Enter3D enter(context_id, true);
427 if (enter.succeeded()) {
428 ToGles2Impl(&enter)->EnableVertexAttribArray(index);
432 void Finish(PP_Resource context_id) {
433 Enter3D enter(context_id, true);
434 if (enter.succeeded()) {
435 ToGles2Impl(&enter)->Finish();
439 void Flush(PP_Resource context_id) {
440 Enter3D enter(context_id, true);
441 if (enter.succeeded()) {
442 ToGles2Impl(&enter)->Flush();
446 void FramebufferRenderbuffer(PP_Resource context_id,
447 GLenum target,
448 GLenum attachment,
449 GLenum renderbuffertarget,
450 GLuint renderbuffer) {
451 Enter3D enter(context_id, true);
452 if (enter.succeeded()) {
453 ToGles2Impl(&enter)->FramebufferRenderbuffer(
454 target, attachment, renderbuffertarget, renderbuffer);
458 void FramebufferTexture2D(PP_Resource context_id,
459 GLenum target,
460 GLenum attachment,
461 GLenum textarget,
462 GLuint texture,
463 GLint level) {
464 Enter3D enter(context_id, true);
465 if (enter.succeeded()) {
466 ToGles2Impl(&enter)
467 ->FramebufferTexture2D(target, attachment, textarget, texture, level);
471 void FrontFace(PP_Resource context_id, GLenum mode) {
472 Enter3D enter(context_id, true);
473 if (enter.succeeded()) {
474 ToGles2Impl(&enter)->FrontFace(mode);
478 void GenBuffers(PP_Resource context_id, GLsizei n, GLuint* buffers) {
479 Enter3D enter(context_id, true);
480 if (enter.succeeded()) {
481 ToGles2Impl(&enter)->GenBuffers(n, buffers);
485 void GenerateMipmap(PP_Resource context_id, GLenum target) {
486 Enter3D enter(context_id, true);
487 if (enter.succeeded()) {
488 ToGles2Impl(&enter)->GenerateMipmap(target);
492 void GenFramebuffers(PP_Resource context_id, GLsizei n, GLuint* framebuffers) {
493 Enter3D enter(context_id, true);
494 if (enter.succeeded()) {
495 ToGles2Impl(&enter)->GenFramebuffers(n, framebuffers);
499 void GenRenderbuffers(PP_Resource context_id,
500 GLsizei n,
501 GLuint* renderbuffers) {
502 Enter3D enter(context_id, true);
503 if (enter.succeeded()) {
504 ToGles2Impl(&enter)->GenRenderbuffers(n, renderbuffers);
508 void GenTextures(PP_Resource context_id, GLsizei n, GLuint* textures) {
509 Enter3D enter(context_id, true);
510 if (enter.succeeded()) {
511 ToGles2Impl(&enter)->GenTextures(n, textures);
515 void GetActiveAttrib(PP_Resource context_id,
516 GLuint program,
517 GLuint index,
518 GLsizei bufsize,
519 GLsizei* length,
520 GLint* size,
521 GLenum* type,
522 char* name) {
523 Enter3D enter(context_id, true);
524 if (enter.succeeded()) {
525 ToGles2Impl(&enter)
526 ->GetActiveAttrib(program, index, bufsize, length, size, type, name);
530 void GetActiveUniform(PP_Resource context_id,
531 GLuint program,
532 GLuint index,
533 GLsizei bufsize,
534 GLsizei* length,
535 GLint* size,
536 GLenum* type,
537 char* name) {
538 Enter3D enter(context_id, true);
539 if (enter.succeeded()) {
540 ToGles2Impl(&enter)
541 ->GetActiveUniform(program, index, bufsize, length, size, type, name);
545 void GetAttachedShaders(PP_Resource context_id,
546 GLuint program,
547 GLsizei maxcount,
548 GLsizei* count,
549 GLuint* shaders) {
550 Enter3D enter(context_id, true);
551 if (enter.succeeded()) {
552 ToGles2Impl(&enter)->GetAttachedShaders(program, maxcount, count, shaders);
556 GLint GetAttribLocation(PP_Resource context_id,
557 GLuint program,
558 const char* name) {
559 Enter3D enter(context_id, true);
560 if (enter.succeeded()) {
561 return ToGles2Impl(&enter)->GetAttribLocation(program, name);
562 } else {
563 return -1;
567 void GetBooleanv(PP_Resource context_id, GLenum pname, GLboolean* params) {
568 Enter3D enter(context_id, true);
569 if (enter.succeeded()) {
570 ToGles2Impl(&enter)->GetBooleanv(pname, params);
574 void GetBufferParameteriv(PP_Resource context_id,
575 GLenum target,
576 GLenum pname,
577 GLint* params) {
578 Enter3D enter(context_id, true);
579 if (enter.succeeded()) {
580 ToGles2Impl(&enter)->GetBufferParameteriv(target, pname, params);
584 GLenum GetError(PP_Resource context_id) {
585 Enter3D enter(context_id, true);
586 if (enter.succeeded()) {
587 return ToGles2Impl(&enter)->GetError();
588 } else {
589 return 0;
593 void GetFloatv(PP_Resource context_id, GLenum pname, GLfloat* params) {
594 Enter3D enter(context_id, true);
595 if (enter.succeeded()) {
596 ToGles2Impl(&enter)->GetFloatv(pname, params);
600 void GetFramebufferAttachmentParameteriv(PP_Resource context_id,
601 GLenum target,
602 GLenum attachment,
603 GLenum pname,
604 GLint* params) {
605 Enter3D enter(context_id, true);
606 if (enter.succeeded()) {
607 ToGles2Impl(&enter)->GetFramebufferAttachmentParameteriv(
608 target, attachment, pname, params);
612 void GetIntegerv(PP_Resource context_id, GLenum pname, GLint* params) {
613 Enter3D enter(context_id, true);
614 if (enter.succeeded()) {
615 ToGles2Impl(&enter)->GetIntegerv(pname, params);
619 void GetProgramiv(PP_Resource context_id,
620 GLuint program,
621 GLenum pname,
622 GLint* params) {
623 Enter3D enter(context_id, true);
624 if (enter.succeeded()) {
625 ToGles2Impl(&enter)->GetProgramiv(program, pname, params);
629 void GetProgramInfoLog(PP_Resource context_id,
630 GLuint program,
631 GLsizei bufsize,
632 GLsizei* length,
633 char* infolog) {
634 Enter3D enter(context_id, true);
635 if (enter.succeeded()) {
636 ToGles2Impl(&enter)->GetProgramInfoLog(program, bufsize, length, infolog);
640 void GetRenderbufferParameteriv(PP_Resource context_id,
641 GLenum target,
642 GLenum pname,
643 GLint* params) {
644 Enter3D enter(context_id, true);
645 if (enter.succeeded()) {
646 ToGles2Impl(&enter)->GetRenderbufferParameteriv(target, pname, params);
650 void GetShaderiv(PP_Resource context_id,
651 GLuint shader,
652 GLenum pname,
653 GLint* params) {
654 Enter3D enter(context_id, true);
655 if (enter.succeeded()) {
656 ToGles2Impl(&enter)->GetShaderiv(shader, pname, params);
660 void GetShaderInfoLog(PP_Resource context_id,
661 GLuint shader,
662 GLsizei bufsize,
663 GLsizei* length,
664 char* infolog) {
665 Enter3D enter(context_id, true);
666 if (enter.succeeded()) {
667 ToGles2Impl(&enter)->GetShaderInfoLog(shader, bufsize, length, infolog);
671 void GetShaderPrecisionFormat(PP_Resource context_id,
672 GLenum shadertype,
673 GLenum precisiontype,
674 GLint* range,
675 GLint* precision) {
676 Enter3D enter(context_id, true);
677 if (enter.succeeded()) {
678 ToGles2Impl(&enter)
679 ->GetShaderPrecisionFormat(shadertype, precisiontype, range, precision);
683 void GetShaderSource(PP_Resource context_id,
684 GLuint shader,
685 GLsizei bufsize,
686 GLsizei* length,
687 char* source) {
688 Enter3D enter(context_id, true);
689 if (enter.succeeded()) {
690 ToGles2Impl(&enter)->GetShaderSource(shader, bufsize, length, source);
694 const GLubyte* GetString(PP_Resource context_id, GLenum name) {
695 Enter3D enter(context_id, true);
696 if (enter.succeeded()) {
697 return ToGles2Impl(&enter)->GetString(name);
698 } else {
699 return NULL;
703 void GetTexParameterfv(PP_Resource context_id,
704 GLenum target,
705 GLenum pname,
706 GLfloat* params) {
707 Enter3D enter(context_id, true);
708 if (enter.succeeded()) {
709 ToGles2Impl(&enter)->GetTexParameterfv(target, pname, params);
713 void GetTexParameteriv(PP_Resource context_id,
714 GLenum target,
715 GLenum pname,
716 GLint* params) {
717 Enter3D enter(context_id, true);
718 if (enter.succeeded()) {
719 ToGles2Impl(&enter)->GetTexParameteriv(target, pname, params);
723 void GetUniformfv(PP_Resource context_id,
724 GLuint program,
725 GLint location,
726 GLfloat* params) {
727 Enter3D enter(context_id, true);
728 if (enter.succeeded()) {
729 ToGles2Impl(&enter)->GetUniformfv(program, location, params);
733 void GetUniformiv(PP_Resource context_id,
734 GLuint program,
735 GLint location,
736 GLint* params) {
737 Enter3D enter(context_id, true);
738 if (enter.succeeded()) {
739 ToGles2Impl(&enter)->GetUniformiv(program, location, params);
743 GLint GetUniformLocation(PP_Resource context_id,
744 GLuint program,
745 const char* name) {
746 Enter3D enter(context_id, true);
747 if (enter.succeeded()) {
748 return ToGles2Impl(&enter)->GetUniformLocation(program, name);
749 } else {
750 return -1;
754 void GetVertexAttribfv(PP_Resource context_id,
755 GLuint index,
756 GLenum pname,
757 GLfloat* params) {
758 Enter3D enter(context_id, true);
759 if (enter.succeeded()) {
760 ToGles2Impl(&enter)->GetVertexAttribfv(index, pname, params);
764 void GetVertexAttribiv(PP_Resource context_id,
765 GLuint index,
766 GLenum pname,
767 GLint* params) {
768 Enter3D enter(context_id, true);
769 if (enter.succeeded()) {
770 ToGles2Impl(&enter)->GetVertexAttribiv(index, pname, params);
774 void GetVertexAttribPointerv(PP_Resource context_id,
775 GLuint index,
776 GLenum pname,
777 void** pointer) {
778 Enter3D enter(context_id, true);
779 if (enter.succeeded()) {
780 ToGles2Impl(&enter)->GetVertexAttribPointerv(index, pname, pointer);
784 void Hint(PP_Resource context_id, GLenum target, GLenum mode) {
785 Enter3D enter(context_id, true);
786 if (enter.succeeded()) {
787 ToGles2Impl(&enter)->Hint(target, mode);
791 GLboolean IsBuffer(PP_Resource context_id, GLuint buffer) {
792 Enter3D enter(context_id, true);
793 if (enter.succeeded()) {
794 return ToGles2Impl(&enter)->IsBuffer(buffer);
795 } else {
796 return GL_FALSE;
800 GLboolean IsEnabled(PP_Resource context_id, GLenum cap) {
801 Enter3D enter(context_id, true);
802 if (enter.succeeded()) {
803 return ToGles2Impl(&enter)->IsEnabled(cap);
804 } else {
805 return GL_FALSE;
809 GLboolean IsFramebuffer(PP_Resource context_id, GLuint framebuffer) {
810 Enter3D enter(context_id, true);
811 if (enter.succeeded()) {
812 return ToGles2Impl(&enter)->IsFramebuffer(framebuffer);
813 } else {
814 return GL_FALSE;
818 GLboolean IsProgram(PP_Resource context_id, GLuint program) {
819 Enter3D enter(context_id, true);
820 if (enter.succeeded()) {
821 return ToGles2Impl(&enter)->IsProgram(program);
822 } else {
823 return GL_FALSE;
827 GLboolean IsRenderbuffer(PP_Resource context_id, GLuint renderbuffer) {
828 Enter3D enter(context_id, true);
829 if (enter.succeeded()) {
830 return ToGles2Impl(&enter)->IsRenderbuffer(renderbuffer);
831 } else {
832 return GL_FALSE;
836 GLboolean IsShader(PP_Resource context_id, GLuint shader) {
837 Enter3D enter(context_id, true);
838 if (enter.succeeded()) {
839 return ToGles2Impl(&enter)->IsShader(shader);
840 } else {
841 return GL_FALSE;
845 GLboolean IsTexture(PP_Resource context_id, GLuint texture) {
846 Enter3D enter(context_id, true);
847 if (enter.succeeded()) {
848 return ToGles2Impl(&enter)->IsTexture(texture);
849 } else {
850 return GL_FALSE;
854 void LineWidth(PP_Resource context_id, GLfloat width) {
855 Enter3D enter(context_id, true);
856 if (enter.succeeded()) {
857 ToGles2Impl(&enter)->LineWidth(width);
861 void LinkProgram(PP_Resource context_id, GLuint program) {
862 Enter3D enter(context_id, true);
863 if (enter.succeeded()) {
864 ToGles2Impl(&enter)->LinkProgram(program);
868 void PixelStorei(PP_Resource context_id, GLenum pname, GLint param) {
869 Enter3D enter(context_id, true);
870 if (enter.succeeded()) {
871 ToGles2Impl(&enter)->PixelStorei(pname, param);
875 void PolygonOffset(PP_Resource context_id, GLfloat factor, GLfloat units) {
876 Enter3D enter(context_id, true);
877 if (enter.succeeded()) {
878 ToGles2Impl(&enter)->PolygonOffset(factor, units);
882 void ReadPixels(PP_Resource context_id,
883 GLint x,
884 GLint y,
885 GLsizei width,
886 GLsizei height,
887 GLenum format,
888 GLenum type,
889 void* pixels) {
890 Enter3D enter(context_id, true);
891 if (enter.succeeded()) {
892 ToGles2Impl(&enter)->ReadPixels(x, y, width, height, format, type, pixels);
896 void ReleaseShaderCompiler(PP_Resource context_id) {
897 Enter3D enter(context_id, true);
898 if (enter.succeeded()) {
899 ToGles2Impl(&enter)->ReleaseShaderCompiler();
903 void RenderbufferStorage(PP_Resource context_id,
904 GLenum target,
905 GLenum internalformat,
906 GLsizei width,
907 GLsizei height) {
908 Enter3D enter(context_id, true);
909 if (enter.succeeded()) {
910 ToGles2Impl(&enter)
911 ->RenderbufferStorage(target, internalformat, width, height);
915 void SampleCoverage(PP_Resource context_id, GLclampf value, GLboolean invert) {
916 Enter3D enter(context_id, true);
917 if (enter.succeeded()) {
918 ToGles2Impl(&enter)->SampleCoverage(value, invert);
922 void Scissor(PP_Resource context_id,
923 GLint x,
924 GLint y,
925 GLsizei width,
926 GLsizei height) {
927 Enter3D enter(context_id, true);
928 if (enter.succeeded()) {
929 ToGles2Impl(&enter)->Scissor(x, y, width, height);
933 void ShaderBinary(PP_Resource context_id,
934 GLsizei n,
935 const GLuint* shaders,
936 GLenum binaryformat,
937 const void* binary,
938 GLsizei length) {
939 Enter3D enter(context_id, true);
940 if (enter.succeeded()) {
941 ToGles2Impl(&enter)->ShaderBinary(n, shaders, binaryformat, binary, length);
945 void ShaderSource(PP_Resource context_id,
946 GLuint shader,
947 GLsizei count,
948 const char** str,
949 const GLint* length) {
950 Enter3D enter(context_id, true);
951 if (enter.succeeded()) {
952 ToGles2Impl(&enter)->ShaderSource(shader, count, str, length);
956 void StencilFunc(PP_Resource context_id, GLenum func, GLint ref, GLuint mask) {
957 Enter3D enter(context_id, true);
958 if (enter.succeeded()) {
959 ToGles2Impl(&enter)->StencilFunc(func, ref, mask);
963 void StencilFuncSeparate(PP_Resource context_id,
964 GLenum face,
965 GLenum func,
966 GLint ref,
967 GLuint mask) {
968 Enter3D enter(context_id, true);
969 if (enter.succeeded()) {
970 ToGles2Impl(&enter)->StencilFuncSeparate(face, func, ref, mask);
974 void StencilMask(PP_Resource context_id, GLuint mask) {
975 Enter3D enter(context_id, true);
976 if (enter.succeeded()) {
977 ToGles2Impl(&enter)->StencilMask(mask);
981 void StencilMaskSeparate(PP_Resource context_id, GLenum face, GLuint mask) {
982 Enter3D enter(context_id, true);
983 if (enter.succeeded()) {
984 ToGles2Impl(&enter)->StencilMaskSeparate(face, mask);
988 void StencilOp(PP_Resource context_id,
989 GLenum fail,
990 GLenum zfail,
991 GLenum zpass) {
992 Enter3D enter(context_id, true);
993 if (enter.succeeded()) {
994 ToGles2Impl(&enter)->StencilOp(fail, zfail, zpass);
998 void StencilOpSeparate(PP_Resource context_id,
999 GLenum face,
1000 GLenum fail,
1001 GLenum zfail,
1002 GLenum zpass) {
1003 Enter3D enter(context_id, true);
1004 if (enter.succeeded()) {
1005 ToGles2Impl(&enter)->StencilOpSeparate(face, fail, zfail, zpass);
1009 void TexImage2D(PP_Resource context_id,
1010 GLenum target,
1011 GLint level,
1012 GLint internalformat,
1013 GLsizei width,
1014 GLsizei height,
1015 GLint border,
1016 GLenum format,
1017 GLenum type,
1018 const void* pixels) {
1019 Enter3D enter(context_id, true);
1020 if (enter.succeeded()) {
1021 ToGles2Impl(&enter)->TexImage2D(target,
1022 level,
1023 internalformat,
1024 width,
1025 height,
1026 border,
1027 format,
1028 type,
1029 pixels);
1033 void TexParameterf(PP_Resource context_id,
1034 GLenum target,
1035 GLenum pname,
1036 GLfloat param) {
1037 Enter3D enter(context_id, true);
1038 if (enter.succeeded()) {
1039 ToGles2Impl(&enter)->TexParameterf(target, pname, param);
1043 void TexParameterfv(PP_Resource context_id,
1044 GLenum target,
1045 GLenum pname,
1046 const GLfloat* params) {
1047 Enter3D enter(context_id, true);
1048 if (enter.succeeded()) {
1049 ToGles2Impl(&enter)->TexParameterfv(target, pname, params);
1053 void TexParameteri(PP_Resource context_id,
1054 GLenum target,
1055 GLenum pname,
1056 GLint param) {
1057 Enter3D enter(context_id, true);
1058 if (enter.succeeded()) {
1059 ToGles2Impl(&enter)->TexParameteri(target, pname, param);
1063 void TexParameteriv(PP_Resource context_id,
1064 GLenum target,
1065 GLenum pname,
1066 const GLint* params) {
1067 Enter3D enter(context_id, true);
1068 if (enter.succeeded()) {
1069 ToGles2Impl(&enter)->TexParameteriv(target, pname, params);
1073 void TexSubImage2D(PP_Resource context_id,
1074 GLenum target,
1075 GLint level,
1076 GLint xoffset,
1077 GLint yoffset,
1078 GLsizei width,
1079 GLsizei height,
1080 GLenum format,
1081 GLenum type,
1082 const void* pixels) {
1083 Enter3D enter(context_id, true);
1084 if (enter.succeeded()) {
1085 ToGles2Impl(&enter)->TexSubImage2D(
1086 target, level, xoffset, yoffset, width, height, format, type, pixels);
1090 void Uniform1f(PP_Resource context_id, GLint location, GLfloat x) {
1091 Enter3D enter(context_id, true);
1092 if (enter.succeeded()) {
1093 ToGles2Impl(&enter)->Uniform1f(location, x);
1097 void Uniform1fv(PP_Resource context_id,
1098 GLint location,
1099 GLsizei count,
1100 const GLfloat* v) {
1101 Enter3D enter(context_id, true);
1102 if (enter.succeeded()) {
1103 ToGles2Impl(&enter)->Uniform1fv(location, count, v);
1107 void Uniform1i(PP_Resource context_id, GLint location, GLint x) {
1108 Enter3D enter(context_id, true);
1109 if (enter.succeeded()) {
1110 ToGles2Impl(&enter)->Uniform1i(location, x);
1114 void Uniform1iv(PP_Resource context_id,
1115 GLint location,
1116 GLsizei count,
1117 const GLint* v) {
1118 Enter3D enter(context_id, true);
1119 if (enter.succeeded()) {
1120 ToGles2Impl(&enter)->Uniform1iv(location, count, v);
1124 void Uniform2f(PP_Resource context_id, GLint location, GLfloat x, GLfloat y) {
1125 Enter3D enter(context_id, true);
1126 if (enter.succeeded()) {
1127 ToGles2Impl(&enter)->Uniform2f(location, x, y);
1131 void Uniform2fv(PP_Resource context_id,
1132 GLint location,
1133 GLsizei count,
1134 const GLfloat* v) {
1135 Enter3D enter(context_id, true);
1136 if (enter.succeeded()) {
1137 ToGles2Impl(&enter)->Uniform2fv(location, count, v);
1141 void Uniform2i(PP_Resource context_id, GLint location, GLint x, GLint y) {
1142 Enter3D enter(context_id, true);
1143 if (enter.succeeded()) {
1144 ToGles2Impl(&enter)->Uniform2i(location, x, y);
1148 void Uniform2iv(PP_Resource context_id,
1149 GLint location,
1150 GLsizei count,
1151 const GLint* v) {
1152 Enter3D enter(context_id, true);
1153 if (enter.succeeded()) {
1154 ToGles2Impl(&enter)->Uniform2iv(location, count, v);
1158 void Uniform3f(PP_Resource context_id,
1159 GLint location,
1160 GLfloat x,
1161 GLfloat y,
1162 GLfloat z) {
1163 Enter3D enter(context_id, true);
1164 if (enter.succeeded()) {
1165 ToGles2Impl(&enter)->Uniform3f(location, x, y, z);
1169 void Uniform3fv(PP_Resource context_id,
1170 GLint location,
1171 GLsizei count,
1172 const GLfloat* v) {
1173 Enter3D enter(context_id, true);
1174 if (enter.succeeded()) {
1175 ToGles2Impl(&enter)->Uniform3fv(location, count, v);
1179 void Uniform3i(PP_Resource context_id,
1180 GLint location,
1181 GLint x,
1182 GLint y,
1183 GLint z) {
1184 Enter3D enter(context_id, true);
1185 if (enter.succeeded()) {
1186 ToGles2Impl(&enter)->Uniform3i(location, x, y, z);
1190 void Uniform3iv(PP_Resource context_id,
1191 GLint location,
1192 GLsizei count,
1193 const GLint* v) {
1194 Enter3D enter(context_id, true);
1195 if (enter.succeeded()) {
1196 ToGles2Impl(&enter)->Uniform3iv(location, count, v);
1200 void Uniform4f(PP_Resource context_id,
1201 GLint location,
1202 GLfloat x,
1203 GLfloat y,
1204 GLfloat z,
1205 GLfloat w) {
1206 Enter3D enter(context_id, true);
1207 if (enter.succeeded()) {
1208 ToGles2Impl(&enter)->Uniform4f(location, x, y, z, w);
1212 void Uniform4fv(PP_Resource context_id,
1213 GLint location,
1214 GLsizei count,
1215 const GLfloat* v) {
1216 Enter3D enter(context_id, true);
1217 if (enter.succeeded()) {
1218 ToGles2Impl(&enter)->Uniform4fv(location, count, v);
1222 void Uniform4i(PP_Resource context_id,
1223 GLint location,
1224 GLint x,
1225 GLint y,
1226 GLint z,
1227 GLint w) {
1228 Enter3D enter(context_id, true);
1229 if (enter.succeeded()) {
1230 ToGles2Impl(&enter)->Uniform4i(location, x, y, z, w);
1234 void Uniform4iv(PP_Resource context_id,
1235 GLint location,
1236 GLsizei count,
1237 const GLint* v) {
1238 Enter3D enter(context_id, true);
1239 if (enter.succeeded()) {
1240 ToGles2Impl(&enter)->Uniform4iv(location, count, v);
1244 void UniformMatrix2fv(PP_Resource context_id,
1245 GLint location,
1246 GLsizei count,
1247 GLboolean transpose,
1248 const GLfloat* value) {
1249 Enter3D enter(context_id, true);
1250 if (enter.succeeded()) {
1251 ToGles2Impl(&enter)->UniformMatrix2fv(location, count, transpose, value);
1255 void UniformMatrix3fv(PP_Resource context_id,
1256 GLint location,
1257 GLsizei count,
1258 GLboolean transpose,
1259 const GLfloat* value) {
1260 Enter3D enter(context_id, true);
1261 if (enter.succeeded()) {
1262 ToGles2Impl(&enter)->UniformMatrix3fv(location, count, transpose, value);
1266 void UniformMatrix4fv(PP_Resource context_id,
1267 GLint location,
1268 GLsizei count,
1269 GLboolean transpose,
1270 const GLfloat* value) {
1271 Enter3D enter(context_id, true);
1272 if (enter.succeeded()) {
1273 ToGles2Impl(&enter)->UniformMatrix4fv(location, count, transpose, value);
1277 void UseProgram(PP_Resource context_id, GLuint program) {
1278 Enter3D enter(context_id, true);
1279 if (enter.succeeded()) {
1280 ToGles2Impl(&enter)->UseProgram(program);
1284 void ValidateProgram(PP_Resource context_id, GLuint program) {
1285 Enter3D enter(context_id, true);
1286 if (enter.succeeded()) {
1287 ToGles2Impl(&enter)->ValidateProgram(program);
1291 void VertexAttrib1f(PP_Resource context_id, GLuint indx, GLfloat x) {
1292 Enter3D enter(context_id, true);
1293 if (enter.succeeded()) {
1294 ToGles2Impl(&enter)->VertexAttrib1f(indx, x);
1298 void VertexAttrib1fv(PP_Resource context_id,
1299 GLuint indx,
1300 const GLfloat* values) {
1301 Enter3D enter(context_id, true);
1302 if (enter.succeeded()) {
1303 ToGles2Impl(&enter)->VertexAttrib1fv(indx, values);
1307 void VertexAttrib2f(PP_Resource context_id, GLuint indx, GLfloat x, GLfloat y) {
1308 Enter3D enter(context_id, true);
1309 if (enter.succeeded()) {
1310 ToGles2Impl(&enter)->VertexAttrib2f(indx, x, y);
1314 void VertexAttrib2fv(PP_Resource context_id,
1315 GLuint indx,
1316 const GLfloat* values) {
1317 Enter3D enter(context_id, true);
1318 if (enter.succeeded()) {
1319 ToGles2Impl(&enter)->VertexAttrib2fv(indx, values);
1323 void VertexAttrib3f(PP_Resource context_id,
1324 GLuint indx,
1325 GLfloat x,
1326 GLfloat y,
1327 GLfloat z) {
1328 Enter3D enter(context_id, true);
1329 if (enter.succeeded()) {
1330 ToGles2Impl(&enter)->VertexAttrib3f(indx, x, y, z);
1334 void VertexAttrib3fv(PP_Resource context_id,
1335 GLuint indx,
1336 const GLfloat* values) {
1337 Enter3D enter(context_id, true);
1338 if (enter.succeeded()) {
1339 ToGles2Impl(&enter)->VertexAttrib3fv(indx, values);
1343 void VertexAttrib4f(PP_Resource context_id,
1344 GLuint indx,
1345 GLfloat x,
1346 GLfloat y,
1347 GLfloat z,
1348 GLfloat w) {
1349 Enter3D enter(context_id, true);
1350 if (enter.succeeded()) {
1351 ToGles2Impl(&enter)->VertexAttrib4f(indx, x, y, z, w);
1355 void VertexAttrib4fv(PP_Resource context_id,
1356 GLuint indx,
1357 const GLfloat* values) {
1358 Enter3D enter(context_id, true);
1359 if (enter.succeeded()) {
1360 ToGles2Impl(&enter)->VertexAttrib4fv(indx, values);
1364 void VertexAttribPointer(PP_Resource context_id,
1365 GLuint indx,
1366 GLint size,
1367 GLenum type,
1368 GLboolean normalized,
1369 GLsizei stride,
1370 const void* ptr) {
1371 Enter3D enter(context_id, true);
1372 if (enter.succeeded()) {
1373 ToGles2Impl(&enter)
1374 ->VertexAttribPointer(indx, size, type, normalized, stride, ptr);
1378 void Viewport(PP_Resource context_id,
1379 GLint x,
1380 GLint y,
1381 GLsizei width,
1382 GLsizei height) {
1383 Enter3D enter(context_id, true);
1384 if (enter.succeeded()) {
1385 ToGles2Impl(&enter)->Viewport(x, y, width, height);
1389 void BlitFramebufferEXT(PP_Resource context_id,
1390 GLint srcX0,
1391 GLint srcY0,
1392 GLint srcX1,
1393 GLint srcY1,
1394 GLint dstX0,
1395 GLint dstY0,
1396 GLint dstX1,
1397 GLint dstY1,
1398 GLbitfield mask,
1399 GLenum filter) {
1400 Enter3D enter(context_id, true);
1401 if (enter.succeeded()) {
1402 ToGles2Impl(&enter)->BlitFramebufferCHROMIUM(
1403 srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
1407 void RenderbufferStorageMultisampleEXT(PP_Resource context_id,
1408 GLenum target,
1409 GLsizei samples,
1410 GLenum internalformat,
1411 GLsizei width,
1412 GLsizei height) {
1413 Enter3D enter(context_id, true);
1414 if (enter.succeeded()) {
1415 ToGles2Impl(&enter)->RenderbufferStorageMultisampleCHROMIUM(
1416 target, samples, internalformat, width, height);
1420 void GenQueriesEXT(PP_Resource context_id, GLsizei n, GLuint* queries) {
1421 Enter3D enter(context_id, true);
1422 if (enter.succeeded()) {
1423 ToGles2Impl(&enter)->GenQueriesEXT(n, queries);
1427 void DeleteQueriesEXT(PP_Resource context_id,
1428 GLsizei n,
1429 const GLuint* queries) {
1430 Enter3D enter(context_id, true);
1431 if (enter.succeeded()) {
1432 ToGles2Impl(&enter)->DeleteQueriesEXT(n, queries);
1436 GLboolean IsQueryEXT(PP_Resource context_id, GLuint id) {
1437 Enter3D enter(context_id, true);
1438 if (enter.succeeded()) {
1439 return ToGles2Impl(&enter)->IsQueryEXT(id);
1440 } else {
1441 return GL_FALSE;
1445 void BeginQueryEXT(PP_Resource context_id, GLenum target, GLuint id) {
1446 Enter3D enter(context_id, true);
1447 if (enter.succeeded()) {
1448 ToGles2Impl(&enter)->BeginQueryEXT(target, id);
1452 void EndQueryEXT(PP_Resource context_id, GLenum target) {
1453 Enter3D enter(context_id, true);
1454 if (enter.succeeded()) {
1455 ToGles2Impl(&enter)->EndQueryEXT(target);
1459 void GetQueryivEXT(PP_Resource context_id,
1460 GLenum target,
1461 GLenum pname,
1462 GLint* params) {
1463 Enter3D enter(context_id, true);
1464 if (enter.succeeded()) {
1465 ToGles2Impl(&enter)->GetQueryivEXT(target, pname, params);
1469 void GetQueryObjectuivEXT(PP_Resource context_id,
1470 GLuint id,
1471 GLenum pname,
1472 GLuint* params) {
1473 Enter3D enter(context_id, true);
1474 if (enter.succeeded()) {
1475 ToGles2Impl(&enter)->GetQueryObjectuivEXT(id, pname, params);
1479 GLboolean EnableFeatureCHROMIUM(PP_Resource context_id, const char* feature) {
1480 Enter3D enter(context_id, true);
1481 if (enter.succeeded()) {
1482 return ToGles2Impl(&enter)->EnableFeatureCHROMIUM(feature);
1483 } else {
1484 return GL_FALSE;
1488 void* MapBufferSubDataCHROMIUM(PP_Resource context_id,
1489 GLuint target,
1490 GLintptr offset,
1491 GLsizeiptr size,
1492 GLenum access) {
1493 Enter3D enter(context_id, true);
1494 if (enter.succeeded()) {
1495 return ToGles2Impl(&enter)
1496 ->MapBufferSubDataCHROMIUM(target, offset, size, access);
1497 } else {
1498 return NULL;
1502 void UnmapBufferSubDataCHROMIUM(PP_Resource context_id, const void* mem) {
1503 Enter3D enter(context_id, true);
1504 if (enter.succeeded()) {
1505 ToGles2Impl(&enter)->UnmapBufferSubDataCHROMIUM(mem);
1509 void* MapTexSubImage2DCHROMIUM(PP_Resource context_id,
1510 GLenum target,
1511 GLint level,
1512 GLint xoffset,
1513 GLint yoffset,
1514 GLsizei width,
1515 GLsizei height,
1516 GLenum format,
1517 GLenum type,
1518 GLenum access) {
1519 Enter3D enter(context_id, true);
1520 if (enter.succeeded()) {
1521 return ToGles2Impl(&enter)->MapTexSubImage2DCHROMIUM(
1522 target, level, xoffset, yoffset, width, height, format, type, access);
1523 } else {
1524 return NULL;
1528 void UnmapTexSubImage2DCHROMIUM(PP_Resource context_id, const void* mem) {
1529 Enter3D enter(context_id, true);
1530 if (enter.succeeded()) {
1531 ToGles2Impl(&enter)->UnmapTexSubImage2DCHROMIUM(mem);
1535 void DrawArraysInstancedANGLE(PP_Resource context_id,
1536 GLenum mode,
1537 GLint first,
1538 GLsizei count,
1539 GLsizei primcount) {
1540 Enter3D enter(context_id, true);
1541 if (enter.succeeded()) {
1542 ToGles2Impl(&enter)
1543 ->DrawArraysInstancedANGLE(mode, first, count, primcount);
1547 void DrawElementsInstancedANGLE(PP_Resource context_id,
1548 GLenum mode,
1549 GLsizei count,
1550 GLenum type,
1551 const void* indices,
1552 GLsizei primcount) {
1553 Enter3D enter(context_id, true);
1554 if (enter.succeeded()) {
1555 ToGles2Impl(&enter)
1556 ->DrawElementsInstancedANGLE(mode, count, type, indices, primcount);
1560 void VertexAttribDivisorANGLE(PP_Resource context_id,
1561 GLuint index,
1562 GLuint divisor) {
1563 Enter3D enter(context_id, true);
1564 if (enter.succeeded()) {
1565 ToGles2Impl(&enter)->VertexAttribDivisorANGLE(index, divisor);
1569 void DrawBuffersEXT(PP_Resource context_id, GLsizei count, const GLenum* bufs) {
1570 Enter3D enter(context_id, true);
1571 if (enter.succeeded()) {
1572 ToGles2Impl(&enter)->DrawBuffersEXT(count, bufs);
1576 } // namespace
1577 const PPB_OpenGLES2* PPB_OpenGLES2_Shared::GetInterface() {
1578 static const struct PPB_OpenGLES2 ppb_opengles2 = {
1579 &ActiveTexture, &AttachShader,
1580 &BindAttribLocation, &BindBuffer,
1581 &BindFramebuffer, &BindRenderbuffer,
1582 &BindTexture, &BlendColor,
1583 &BlendEquation, &BlendEquationSeparate,
1584 &BlendFunc, &BlendFuncSeparate,
1585 &BufferData, &BufferSubData,
1586 &CheckFramebufferStatus, &Clear,
1587 &ClearColor, &ClearDepthf,
1588 &ClearStencil, &ColorMask,
1589 &CompileShader, &CompressedTexImage2D,
1590 &CompressedTexSubImage2D, &CopyTexImage2D,
1591 &CopyTexSubImage2D, &CreateProgram,
1592 &CreateShader, &CullFace,
1593 &DeleteBuffers, &DeleteFramebuffers,
1594 &DeleteProgram, &DeleteRenderbuffers,
1595 &DeleteShader, &DeleteTextures,
1596 &DepthFunc, &DepthMask,
1597 &DepthRangef, &DetachShader,
1598 &Disable, &DisableVertexAttribArray,
1599 &DrawArrays, &DrawElements,
1600 &Enable, &EnableVertexAttribArray,
1601 &Finish, &Flush,
1602 &FramebufferRenderbuffer, &FramebufferTexture2D,
1603 &FrontFace, &GenBuffers,
1604 &GenerateMipmap, &GenFramebuffers,
1605 &GenRenderbuffers, &GenTextures,
1606 &GetActiveAttrib, &GetActiveUniform,
1607 &GetAttachedShaders, &GetAttribLocation,
1608 &GetBooleanv, &GetBufferParameteriv,
1609 &GetError, &GetFloatv,
1610 &GetFramebufferAttachmentParameteriv, &GetIntegerv,
1611 &GetProgramiv, &GetProgramInfoLog,
1612 &GetRenderbufferParameteriv, &GetShaderiv,
1613 &GetShaderInfoLog, &GetShaderPrecisionFormat,
1614 &GetShaderSource, &GetString,
1615 &GetTexParameterfv, &GetTexParameteriv,
1616 &GetUniformfv, &GetUniformiv,
1617 &GetUniformLocation, &GetVertexAttribfv,
1618 &GetVertexAttribiv, &GetVertexAttribPointerv,
1619 &Hint, &IsBuffer,
1620 &IsEnabled, &IsFramebuffer,
1621 &IsProgram, &IsRenderbuffer,
1622 &IsShader, &IsTexture,
1623 &LineWidth, &LinkProgram,
1624 &PixelStorei, &PolygonOffset,
1625 &ReadPixels, &ReleaseShaderCompiler,
1626 &RenderbufferStorage, &SampleCoverage,
1627 &Scissor, &ShaderBinary,
1628 &ShaderSource, &StencilFunc,
1629 &StencilFuncSeparate, &StencilMask,
1630 &StencilMaskSeparate, &StencilOp,
1631 &StencilOpSeparate, &TexImage2D,
1632 &TexParameterf, &TexParameterfv,
1633 &TexParameteri, &TexParameteriv,
1634 &TexSubImage2D, &Uniform1f,
1635 &Uniform1fv, &Uniform1i,
1636 &Uniform1iv, &Uniform2f,
1637 &Uniform2fv, &Uniform2i,
1638 &Uniform2iv, &Uniform3f,
1639 &Uniform3fv, &Uniform3i,
1640 &Uniform3iv, &Uniform4f,
1641 &Uniform4fv, &Uniform4i,
1642 &Uniform4iv, &UniformMatrix2fv,
1643 &UniformMatrix3fv, &UniformMatrix4fv,
1644 &UseProgram, &ValidateProgram,
1645 &VertexAttrib1f, &VertexAttrib1fv,
1646 &VertexAttrib2f, &VertexAttrib2fv,
1647 &VertexAttrib3f, &VertexAttrib3fv,
1648 &VertexAttrib4f, &VertexAttrib4fv,
1649 &VertexAttribPointer, &Viewport};
1650 return &ppb_opengles2;
1652 const PPB_OpenGLES2InstancedArrays*
1653 PPB_OpenGLES2_Shared::GetInstancedArraysInterface() {
1654 static const struct PPB_OpenGLES2InstancedArrays ppb_opengles2 = {
1655 &DrawArraysInstancedANGLE, &DrawElementsInstancedANGLE,
1656 &VertexAttribDivisorANGLE};
1657 return &ppb_opengles2;
1659 const PPB_OpenGLES2FramebufferBlit*
1660 PPB_OpenGLES2_Shared::GetFramebufferBlitInterface() {
1661 static const struct PPB_OpenGLES2FramebufferBlit ppb_opengles2 = {
1662 &BlitFramebufferEXT};
1663 return &ppb_opengles2;
1665 const PPB_OpenGLES2FramebufferMultisample*
1666 PPB_OpenGLES2_Shared::GetFramebufferMultisampleInterface() {
1667 static const struct PPB_OpenGLES2FramebufferMultisample ppb_opengles2 = {
1668 &RenderbufferStorageMultisampleEXT};
1669 return &ppb_opengles2;
1671 const PPB_OpenGLES2ChromiumEnableFeature*
1672 PPB_OpenGLES2_Shared::GetChromiumEnableFeatureInterface() {
1673 static const struct PPB_OpenGLES2ChromiumEnableFeature ppb_opengles2 = {
1674 &EnableFeatureCHROMIUM};
1675 return &ppb_opengles2;
1677 const PPB_OpenGLES2ChromiumMapSub*
1678 PPB_OpenGLES2_Shared::GetChromiumMapSubInterface() {
1679 static const struct PPB_OpenGLES2ChromiumMapSub ppb_opengles2 = {
1680 &MapBufferSubDataCHROMIUM, &UnmapBufferSubDataCHROMIUM,
1681 &MapTexSubImage2DCHROMIUM, &UnmapTexSubImage2DCHROMIUM};
1682 return &ppb_opengles2;
1684 const PPB_OpenGLES2Query* PPB_OpenGLES2_Shared::GetQueryInterface() {
1685 static const struct PPB_OpenGLES2Query ppb_opengles2 = {
1686 &GenQueriesEXT, &DeleteQueriesEXT, &IsQueryEXT, &BeginQueryEXT,
1687 &EndQueryEXT, &GetQueryivEXT, &GetQueryObjectuivEXT};
1688 return &ppb_opengles2;
1690 const PPB_OpenGLES2DrawBuffers_Dev*
1691 PPB_OpenGLES2_Shared::GetDrawBuffersInterface() {
1692 static const struct PPB_OpenGLES2DrawBuffers_Dev ppb_opengles2 = {
1693 &DrawBuffersEXT};
1694 return &ppb_opengles2;
1696 } // namespace ppapi