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.
4
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!
10
11 #include "ppapi/shared_impl/ppb_opengles2_shared.h"
12
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"
17
18 namespace ppapi {
19
20 namespace {
21
22 typedef thunk::EnterResource<thunk::PPB_Graphics3D_API> Enter3D;
23
ToGles2Impl(Enter3D * enter)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();
28 }
29
ActiveTexture(PP_Resource context_id,GLenum texture)30 void ActiveTexture(PP_Resource context_id, GLenum texture) {
31 Enter3D enter(context_id, true);
32 if (enter.succeeded()) {
33 ToGles2Impl(&enter)->ActiveTexture(texture);
34 }
35 }
36
AttachShader(PP_Resource context_id,GLuint program,GLuint shader)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);
41 }
42 }
43
BindAttribLocation(PP_Resource context_id,GLuint program,GLuint index,const char * name)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);
51 }
52 }
53
BindBuffer(PP_Resource context_id,GLenum target,GLuint buffer)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);
58 }
59 }
60
BindFramebuffer(PP_Resource context_id,GLenum target,GLuint framebuffer)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);
67 }
68 }
69
BindRenderbuffer(PP_Resource context_id,GLenum target,GLuint renderbuffer)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);
76 }
77 }
78
BindTexture(PP_Resource context_id,GLenum target,GLuint texture)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);
83 }
84 }
85
BlendColor(PP_Resource context_id,GLclampf red,GLclampf green,GLclampf blue,GLclampf alpha)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);
94 }
95 }
96
BlendEquation(PP_Resource context_id,GLenum mode)97 void BlendEquation(PP_Resource context_id, GLenum mode) {
98 Enter3D enter(context_id, true);
99 if (enter.succeeded()) {
100 ToGles2Impl(&enter)->BlendEquation(mode);
101 }
102 }
103
BlendEquationSeparate(PP_Resource context_id,GLenum modeRGB,GLenum modeAlpha)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);
110 }
111 }
112
BlendFunc(PP_Resource context_id,GLenum sfactor,GLenum dfactor)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);
117 }
118 }
119
BlendFuncSeparate(PP_Resource context_id,GLenum srcRGB,GLenum dstRGB,GLenum srcAlpha,GLenum dstAlpha)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);
128 }
129 }
130
BufferData(PP_Resource context_id,GLenum target,GLsizeiptr size,const void * data,GLenum usage)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);
139 }
140 }
141
BufferSubData(PP_Resource context_id,GLenum target,GLintptr offset,GLsizeiptr size,const void * data)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);
150 }
151 }
152
CheckFramebufferStatus(PP_Resource context_id,GLenum target)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;
159 }
160 }
161
Clear(PP_Resource context_id,GLbitfield mask)162 void Clear(PP_Resource context_id, GLbitfield mask) {
163 Enter3D enter(context_id, true);
164 if (enter.succeeded()) {
165 ToGles2Impl(&enter)->Clear(mask);
166 }
167 }
168
ClearColor(PP_Resource context_id,GLclampf red,GLclampf green,GLclampf blue,GLclampf alpha)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);
177 }
178 }
179
ClearDepthf(PP_Resource context_id,GLclampf depth)180 void ClearDepthf(PP_Resource context_id, GLclampf depth) {
181 Enter3D enter(context_id, true);
182 if (enter.succeeded()) {
183 ToGles2Impl(&enter)->ClearDepthf(depth);
184 }
185 }
186
ClearStencil(PP_Resource context_id,GLint s)187 void ClearStencil(PP_Resource context_id, GLint s) {
188 Enter3D enter(context_id, true);
189 if (enter.succeeded()) {
190 ToGles2Impl(&enter)->ClearStencil(s);
191 }
192 }
193
ColorMask(PP_Resource context_id,GLboolean red,GLboolean green,GLboolean blue,GLboolean alpha)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);
202 }
203 }
204
CompileShader(PP_Resource context_id,GLuint shader)205 void CompileShader(PP_Resource context_id, GLuint shader) {
206 Enter3D enter(context_id, true);
207 if (enter.succeeded()) {
208 ToGles2Impl(&enter)->CompileShader(shader);
209 }
210 }
211
CompressedTexImage2D(PP_Resource context_id,GLenum target,GLint level,GLenum internalformat,GLsizei width,GLsizei height,GLint border,GLsizei imageSize,const void * data)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);
225 }
226 }
227
CompressedTexSubImage2D(PP_Resource context_id,GLenum target,GLint level,GLint xoffset,GLint yoffset,GLsizei width,GLsizei height,GLenum format,GLsizei imageSize,const void * 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);
249 }
250 }
251
CopyTexImage2D(PP_Resource context_id,GLenum target,GLint level,GLenum internalformat,GLint x,GLint y,GLsizei width,GLsizei height,GLint border)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);
265 }
266 }
267
CopyTexSubImage2D(PP_Resource context_id,GLenum target,GLint level,GLint xoffset,GLint yoffset,GLint x,GLint y,GLsizei width,GLsizei height)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);
281 }
282 }
283
CreateProgram(PP_Resource context_id)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;
290 }
291 }
292
CreateShader(PP_Resource context_id,GLenum type)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;
299 }
300 }
301
CullFace(PP_Resource context_id,GLenum mode)302 void CullFace(PP_Resource context_id, GLenum mode) {
303 Enter3D enter(context_id, true);
304 if (enter.succeeded()) {
305 ToGles2Impl(&enter)->CullFace(mode);
306 }
307 }
308
DeleteBuffers(PP_Resource context_id,GLsizei n,const GLuint * buffers)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);
313 }
314 }
315
DeleteFramebuffers(PP_Resource context_id,GLsizei n,const GLuint * framebuffers)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);
322 }
323 }
324
DeleteProgram(PP_Resource context_id,GLuint program)325 void DeleteProgram(PP_Resource context_id, GLuint program) {
326 Enter3D enter(context_id, true);
327 if (enter.succeeded()) {
328 ToGles2Impl(&enter)->DeleteProgram(program);
329 }
330 }
331
DeleteRenderbuffers(PP_Resource context_id,GLsizei n,const GLuint * renderbuffers)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);
338 }
339 }
340
DeleteShader(PP_Resource context_id,GLuint shader)341 void DeleteShader(PP_Resource context_id, GLuint shader) {
342 Enter3D enter(context_id, true);
343 if (enter.succeeded()) {
344 ToGles2Impl(&enter)->DeleteShader(shader);
345 }
346 }
347
DeleteTextures(PP_Resource context_id,GLsizei n,const GLuint * textures)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);
352 }
353 }
354
DepthFunc(PP_Resource context_id,GLenum func)355 void DepthFunc(PP_Resource context_id, GLenum func) {
356 Enter3D enter(context_id, true);
357 if (enter.succeeded()) {
358 ToGles2Impl(&enter)->DepthFunc(func);
359 }
360 }
361
DepthMask(PP_Resource context_id,GLboolean flag)362 void DepthMask(PP_Resource context_id, GLboolean flag) {
363 Enter3D enter(context_id, true);
364 if (enter.succeeded()) {
365 ToGles2Impl(&enter)->DepthMask(flag);
366 }
367 }
368
DepthRangef(PP_Resource context_id,GLclampf zNear,GLclampf zFar)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);
373 }
374 }
375
DetachShader(PP_Resource context_id,GLuint program,GLuint shader)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);
380 }
381 }
382
Disable(PP_Resource context_id,GLenum cap)383 void Disable(PP_Resource context_id, GLenum cap) {
384 Enter3D enter(context_id, true);
385 if (enter.succeeded()) {
386 ToGles2Impl(&enter)->Disable(cap);
387 }
388 }
389
DisableVertexAttribArray(PP_Resource context_id,GLuint index)390 void DisableVertexAttribArray(PP_Resource context_id, GLuint index) {
391 Enter3D enter(context_id, true);
392 if (enter.succeeded()) {
393 ToGles2Impl(&enter)->DisableVertexAttribArray(index);
394 }
395 }
396
DrawArrays(PP_Resource context_id,GLenum mode,GLint first,GLsizei count)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);
404 }
405 }
406
DrawElements(PP_Resource context_id,GLenum mode,GLsizei count,GLenum type,const void * indices)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);
415 }
416 }
417
Enable(PP_Resource context_id,GLenum cap)418 void Enable(PP_Resource context_id, GLenum cap) {
419 Enter3D enter(context_id, true);
420 if (enter.succeeded()) {
421 ToGles2Impl(&enter)->Enable(cap);
422 }
423 }
424
EnableVertexAttribArray(PP_Resource context_id,GLuint index)425 void EnableVertexAttribArray(PP_Resource context_id, GLuint index) {
426 Enter3D enter(context_id, true);
427 if (enter.succeeded()) {
428 ToGles2Impl(&enter)->EnableVertexAttribArray(index);
429 }
430 }
431
Finish(PP_Resource context_id)432 void Finish(PP_Resource context_id) {
433 Enter3D enter(context_id, true);
434 if (enter.succeeded()) {
435 ToGles2Impl(&enter)->Finish();
436 }
437 }
438
Flush(PP_Resource context_id)439 void Flush(PP_Resource context_id) {
440 Enter3D enter(context_id, true);
441 if (enter.succeeded()) {
442 ToGles2Impl(&enter)->Flush();
443 }
444 }
445
FramebufferRenderbuffer(PP_Resource context_id,GLenum target,GLenum attachment,GLenum renderbuffertarget,GLuint renderbuffer)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);
455 }
456 }
457
FramebufferTexture2D(PP_Resource context_id,GLenum target,GLenum attachment,GLenum textarget,GLuint texture,GLint level)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);
468 }
469 }
470
FrontFace(PP_Resource context_id,GLenum mode)471 void FrontFace(PP_Resource context_id, GLenum mode) {
472 Enter3D enter(context_id, true);
473 if (enter.succeeded()) {
474 ToGles2Impl(&enter)->FrontFace(mode);
475 }
476 }
477
GenBuffers(PP_Resource context_id,GLsizei n,GLuint * buffers)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);
482 }
483 }
484
GenerateMipmap(PP_Resource context_id,GLenum target)485 void GenerateMipmap(PP_Resource context_id, GLenum target) {
486 Enter3D enter(context_id, true);
487 if (enter.succeeded()) {
488 ToGles2Impl(&enter)->GenerateMipmap(target);
489 }
490 }
491
GenFramebuffers(PP_Resource context_id,GLsizei n,GLuint * framebuffers)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);
496 }
497 }
498
GenRenderbuffers(PP_Resource context_id,GLsizei n,GLuint * renderbuffers)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);
505 }
506 }
507
GenTextures(PP_Resource context_id,GLsizei n,GLuint * textures)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);
512 }
513 }
514
GetActiveAttrib(PP_Resource context_id,GLuint program,GLuint index,GLsizei bufsize,GLsizei * length,GLint * size,GLenum * type,char * name)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);
527 }
528 }
529
GetActiveUniform(PP_Resource context_id,GLuint program,GLuint index,GLsizei bufsize,GLsizei * length,GLint * size,GLenum * type,char * 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);
542 }
543 }
544
GetAttachedShaders(PP_Resource context_id,GLuint program,GLsizei maxcount,GLsizei * count,GLuint * shaders)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);
553 }
554 }
555
GetAttribLocation(PP_Resource context_id,GLuint program,const char * name)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;
564 }
565 }
566
GetBooleanv(PP_Resource context_id,GLenum pname,GLboolean * params)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);
571 }
572 }
573
GetBufferParameteriv(PP_Resource context_id,GLenum target,GLenum pname,GLint * 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);
581 }
582 }
583
GetError(PP_Resource context_id)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;
590 }
591 }
592
GetFloatv(PP_Resource context_id,GLenum pname,GLfloat * params)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);
597 }
598 }
599
GetFramebufferAttachmentParameteriv(PP_Resource context_id,GLenum target,GLenum attachment,GLenum pname,GLint * 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);
609 }
610 }
611
GetIntegerv(PP_Resource context_id,GLenum pname,GLint * 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);
616 }
617 }
618
GetProgramiv(PP_Resource context_id,GLuint program,GLenum pname,GLint * 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);
626 }
627 }
628
GetProgramInfoLog(PP_Resource context_id,GLuint program,GLsizei bufsize,GLsizei * length,char * infolog)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);
637 }
638 }
639
GetRenderbufferParameteriv(PP_Resource context_id,GLenum target,GLenum pname,GLint * params)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);
647 }
648 }
649
GetShaderiv(PP_Resource context_id,GLuint shader,GLenum pname,GLint * 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);
657 }
658 }
659
GetShaderInfoLog(PP_Resource context_id,GLuint shader,GLsizei bufsize,GLsizei * length,char * infolog)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);
668 }
669 }
670
GetShaderPrecisionFormat(PP_Resource context_id,GLenum shadertype,GLenum precisiontype,GLint * range,GLint * precision)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);
680 }
681 }
682
GetShaderSource(PP_Resource context_id,GLuint shader,GLsizei bufsize,GLsizei * length,char * source)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);
691 }
692 }
693
GetString(PP_Resource context_id,GLenum name)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;
700 }
701 }
702
GetTexParameterfv(PP_Resource context_id,GLenum target,GLenum pname,GLfloat * params)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);
710 }
711 }
712
GetTexParameteriv(PP_Resource context_id,GLenum target,GLenum pname,GLint * 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);
720 }
721 }
722
GetUniformfv(PP_Resource context_id,GLuint program,GLint location,GLfloat * 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);
730 }
731 }
732
GetUniformiv(PP_Resource context_id,GLuint program,GLint location,GLint * 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);
740 }
741 }
742
GetUniformLocation(PP_Resource context_id,GLuint program,const char * name)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;
751 }
752 }
753
GetVertexAttribfv(PP_Resource context_id,GLuint index,GLenum pname,GLfloat * params)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);
761 }
762 }
763
GetVertexAttribiv(PP_Resource context_id,GLuint index,GLenum pname,GLint * 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);
771 }
772 }
773
GetVertexAttribPointerv(PP_Resource context_id,GLuint index,GLenum pname,void ** pointer)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);
781 }
782 }
783
Hint(PP_Resource context_id,GLenum target,GLenum mode)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);
788 }
789 }
790
IsBuffer(PP_Resource context_id,GLuint buffer)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;
797 }
798 }
799
IsEnabled(PP_Resource context_id,GLenum cap)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;
806 }
807 }
808
IsFramebuffer(PP_Resource context_id,GLuint framebuffer)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;
815 }
816 }
817
IsProgram(PP_Resource context_id,GLuint program)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;
824 }
825 }
826
IsRenderbuffer(PP_Resource context_id,GLuint renderbuffer)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;
833 }
834 }
835
IsShader(PP_Resource context_id,GLuint shader)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;
842 }
843 }
844
IsTexture(PP_Resource context_id,GLuint texture)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;
851 }
852 }
853
LineWidth(PP_Resource context_id,GLfloat width)854 void LineWidth(PP_Resource context_id, GLfloat width) {
855 Enter3D enter(context_id, true);
856 if (enter.succeeded()) {
857 ToGles2Impl(&enter)->LineWidth(width);
858 }
859 }
860
LinkProgram(PP_Resource context_id,GLuint program)861 void LinkProgram(PP_Resource context_id, GLuint program) {
862 Enter3D enter(context_id, true);
863 if (enter.succeeded()) {
864 ToGles2Impl(&enter)->LinkProgram(program);
865 }
866 }
867
PixelStorei(PP_Resource context_id,GLenum pname,GLint param)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);
872 }
873 }
874
PolygonOffset(PP_Resource context_id,GLfloat factor,GLfloat units)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);
879 }
880 }
881
ReadPixels(PP_Resource context_id,GLint x,GLint y,GLsizei width,GLsizei height,GLenum format,GLenum type,void * pixels)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);
893 }
894 }
895
ReleaseShaderCompiler(PP_Resource context_id)896 void ReleaseShaderCompiler(PP_Resource context_id) {
897 Enter3D enter(context_id, true);
898 if (enter.succeeded()) {
899 ToGles2Impl(&enter)->ReleaseShaderCompiler();
900 }
901 }
902
RenderbufferStorage(PP_Resource context_id,GLenum target,GLenum internalformat,GLsizei width,GLsizei height)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);
912 }
913 }
914
SampleCoverage(PP_Resource context_id,GLclampf value,GLboolean invert)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);
919 }
920 }
921
Scissor(PP_Resource context_id,GLint x,GLint y,GLsizei width,GLsizei height)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);
930 }
931 }
932
ShaderBinary(PP_Resource context_id,GLsizei n,const GLuint * shaders,GLenum binaryformat,const void * binary,GLsizei length)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);
942 }
943 }
944
ShaderSource(PP_Resource context_id,GLuint shader,GLsizei count,const char ** str,const GLint * 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);
953 }
954 }
955
StencilFunc(PP_Resource context_id,GLenum func,GLint ref,GLuint mask)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);
960 }
961 }
962
StencilFuncSeparate(PP_Resource context_id,GLenum face,GLenum func,GLint ref,GLuint 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);
971 }
972 }
973
StencilMask(PP_Resource context_id,GLuint 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);
978 }
979 }
980
StencilMaskSeparate(PP_Resource context_id,GLenum face,GLuint 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);
985 }
986 }
987
StencilOp(PP_Resource context_id,GLenum fail,GLenum zfail,GLenum zpass)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);
995 }
996 }
997
StencilOpSeparate(PP_Resource context_id,GLenum face,GLenum fail,GLenum zfail,GLenum 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);
1006 }
1007 }
1008
TexImage2D(PP_Resource context_id,GLenum target,GLint level,GLint internalformat,GLsizei width,GLsizei height,GLint border,GLenum format,GLenum type,const void * pixels)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);
1030 }
1031 }
1032
TexParameterf(PP_Resource context_id,GLenum target,GLenum pname,GLfloat param)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);
1040 }
1041 }
1042
TexParameterfv(PP_Resource context_id,GLenum target,GLenum pname,const GLfloat * params)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);
1050 }
1051 }
1052
TexParameteri(PP_Resource context_id,GLenum target,GLenum pname,GLint param)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);
1060 }
1061 }
1062
TexParameteriv(PP_Resource context_id,GLenum target,GLenum pname,const GLint * params)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);
1070 }
1071 }
1072
TexSubImage2D(PP_Resource context_id,GLenum target,GLint level,GLint xoffset,GLint yoffset,GLsizei width,GLsizei height,GLenum format,GLenum type,const void * pixels)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);
1087 }
1088 }
1089
Uniform1f(PP_Resource context_id,GLint location,GLfloat x)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);
1094 }
1095 }
1096
Uniform1fv(PP_Resource context_id,GLint location,GLsizei count,const GLfloat * v)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);
1104 }
1105 }
1106
Uniform1i(PP_Resource context_id,GLint location,GLint x)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);
1111 }
1112 }
1113
Uniform1iv(PP_Resource context_id,GLint location,GLsizei count,const GLint * v)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);
1121 }
1122 }
1123
Uniform2f(PP_Resource context_id,GLint location,GLfloat x,GLfloat y)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);
1128 }
1129 }
1130
Uniform2fv(PP_Resource context_id,GLint location,GLsizei count,const GLfloat * v)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);
1138 }
1139 }
1140
Uniform2i(PP_Resource context_id,GLint location,GLint x,GLint y)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);
1145 }
1146 }
1147
Uniform2iv(PP_Resource context_id,GLint location,GLsizei count,const GLint * v)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);
1155 }
1156 }
1157
Uniform3f(PP_Resource context_id,GLint location,GLfloat x,GLfloat y,GLfloat z)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);
1166 }
1167 }
1168
Uniform3fv(PP_Resource context_id,GLint location,GLsizei count,const GLfloat * v)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);
1176 }
1177 }
1178
Uniform3i(PP_Resource context_id,GLint location,GLint x,GLint y,GLint z)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);
1187 }
1188 }
1189
Uniform3iv(PP_Resource context_id,GLint location,GLsizei count,const GLint * v)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);
1197 }
1198 }
1199
Uniform4f(PP_Resource context_id,GLint location,GLfloat x,GLfloat y,GLfloat z,GLfloat w)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);
1209 }
1210 }
1211
Uniform4fv(PP_Resource context_id,GLint location,GLsizei count,const GLfloat * v)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);
1219 }
1220 }
1221
Uniform4i(PP_Resource context_id,GLint location,GLint x,GLint y,GLint z,GLint w)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);
1231 }
1232 }
1233
Uniform4iv(PP_Resource context_id,GLint location,GLsizei count,const GLint * v)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);
1241 }
1242 }
1243
UniformMatrix2fv(PP_Resource context_id,GLint location,GLsizei count,GLboolean transpose,const GLfloat * value)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);
1252 }
1253 }
1254
UniformMatrix3fv(PP_Resource context_id,GLint location,GLsizei count,GLboolean transpose,const GLfloat * 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);
1263 }
1264 }
1265
UniformMatrix4fv(PP_Resource context_id,GLint location,GLsizei count,GLboolean transpose,const GLfloat * 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);
1274 }
1275 }
1276
UseProgram(PP_Resource context_id,GLuint program)1277 void UseProgram(PP_Resource context_id, GLuint program) {
1278 Enter3D enter(context_id, true);
1279 if (enter.succeeded()) {
1280 ToGles2Impl(&enter)->UseProgram(program);
1281 }
1282 }
1283
ValidateProgram(PP_Resource context_id,GLuint 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);
1288 }
1289 }
1290
VertexAttrib1f(PP_Resource context_id,GLuint indx,GLfloat x)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);
1295 }
1296 }
1297
VertexAttrib1fv(PP_Resource context_id,GLuint indx,const GLfloat * values)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);
1304 }
1305 }
1306
VertexAttrib2f(PP_Resource context_id,GLuint indx,GLfloat x,GLfloat y)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);
1311 }
1312 }
1313
VertexAttrib2fv(PP_Resource context_id,GLuint indx,const GLfloat * values)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);
1320 }
1321 }
1322
VertexAttrib3f(PP_Resource context_id,GLuint indx,GLfloat x,GLfloat y,GLfloat z)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);
1331 }
1332 }
1333
VertexAttrib3fv(PP_Resource context_id,GLuint indx,const GLfloat * values)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);
1340 }
1341 }
1342
VertexAttrib4f(PP_Resource context_id,GLuint indx,GLfloat x,GLfloat y,GLfloat z,GLfloat w)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);
1352 }
1353 }
1354
VertexAttrib4fv(PP_Resource context_id,GLuint indx,const GLfloat * values)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);
1361 }
1362 }
1363
VertexAttribPointer(PP_Resource context_id,GLuint indx,GLint size,GLenum type,GLboolean normalized,GLsizei stride,const void * ptr)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);
1375 }
1376 }
1377
Viewport(PP_Resource context_id,GLint x,GLint y,GLsizei width,GLsizei height)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);
1386 }
1387 }
1388
BlitFramebufferEXT(PP_Resource context_id,GLint srcX0,GLint srcY0,GLint srcX1,GLint srcY1,GLint dstX0,GLint dstY0,GLint dstX1,GLint dstY1,GLbitfield mask,GLenum filter)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);
1404 }
1405 }
1406
RenderbufferStorageMultisampleEXT(PP_Resource context_id,GLenum target,GLsizei samples,GLenum internalformat,GLsizei width,GLsizei height)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);
1417 }
1418 }
1419
GenQueriesEXT(PP_Resource context_id,GLsizei n,GLuint * queries)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);
1424 }
1425 }
1426
DeleteQueriesEXT(PP_Resource context_id,GLsizei n,const GLuint * 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);
1433 }
1434 }
1435
IsQueryEXT(PP_Resource context_id,GLuint id)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;
1442 }
1443 }
1444
BeginQueryEXT(PP_Resource context_id,GLenum target,GLuint id)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);
1449 }
1450 }
1451
EndQueryEXT(PP_Resource context_id,GLenum target)1452 void EndQueryEXT(PP_Resource context_id, GLenum target) {
1453 Enter3D enter(context_id, true);
1454 if (enter.succeeded()) {
1455 ToGles2Impl(&enter)->EndQueryEXT(target);
1456 }
1457 }
1458
GetQueryivEXT(PP_Resource context_id,GLenum target,GLenum pname,GLint * params)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);
1466 }
1467 }
1468
GetQueryObjectuivEXT(PP_Resource context_id,GLuint id,GLenum pname,GLuint * 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);
1476 }
1477 }
1478
EnableFeatureCHROMIUM(PP_Resource context_id,const char * feature)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;
1485 }
1486 }
1487
MapBufferSubDataCHROMIUM(PP_Resource context_id,GLuint target,GLintptr offset,GLsizeiptr size,GLenum access)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;
1499 }
1500 }
1501
UnmapBufferSubDataCHROMIUM(PP_Resource context_id,const void * mem)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);
1506 }
1507 }
1508
MapTexSubImage2DCHROMIUM(PP_Resource context_id,GLenum target,GLint level,GLint xoffset,GLint yoffset,GLsizei width,GLsizei height,GLenum format,GLenum type,GLenum access)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;
1525 }
1526 }
1527
UnmapTexSubImage2DCHROMIUM(PP_Resource context_id,const void * mem)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);
1532 }
1533 }
1534
DrawArraysInstancedANGLE(PP_Resource context_id,GLenum mode,GLint first,GLsizei count,GLsizei primcount)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);
1544 }
1545 }
1546
DrawElementsInstancedANGLE(PP_Resource context_id,GLenum mode,GLsizei count,GLenum type,const void * indices,GLsizei 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);
1557 }
1558 }
1559
VertexAttribDivisorANGLE(PP_Resource context_id,GLuint index,GLuint divisor)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);
1566 }
1567 }
1568
DrawBuffersEXT(PP_Resource context_id,GLsizei count,const GLenum * bufs)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);
1573 }
1574 }
1575
1576 } // namespace
GetInterface()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;
1651 }
1652 const PPB_OpenGLES2InstancedArrays*
GetInstancedArraysInterface()1653 PPB_OpenGLES2_Shared::GetInstancedArraysInterface() {
1654 static const struct PPB_OpenGLES2InstancedArrays ppb_opengles2 = {
1655 &DrawArraysInstancedANGLE, &DrawElementsInstancedANGLE,
1656 &VertexAttribDivisorANGLE};
1657 return &ppb_opengles2;
1658 }
1659 const PPB_OpenGLES2FramebufferBlit*
GetFramebufferBlitInterface()1660 PPB_OpenGLES2_Shared::GetFramebufferBlitInterface() {
1661 static const struct PPB_OpenGLES2FramebufferBlit ppb_opengles2 = {
1662 &BlitFramebufferEXT};
1663 return &ppb_opengles2;
1664 }
1665 const PPB_OpenGLES2FramebufferMultisample*
GetFramebufferMultisampleInterface()1666 PPB_OpenGLES2_Shared::GetFramebufferMultisampleInterface() {
1667 static const struct PPB_OpenGLES2FramebufferMultisample ppb_opengles2 = {
1668 &RenderbufferStorageMultisampleEXT};
1669 return &ppb_opengles2;
1670 }
1671 const PPB_OpenGLES2ChromiumEnableFeature*
GetChromiumEnableFeatureInterface()1672 PPB_OpenGLES2_Shared::GetChromiumEnableFeatureInterface() {
1673 static const struct PPB_OpenGLES2ChromiumEnableFeature ppb_opengles2 = {
1674 &EnableFeatureCHROMIUM};
1675 return &ppb_opengles2;
1676 }
1677 const PPB_OpenGLES2ChromiumMapSub*
GetChromiumMapSubInterface()1678 PPB_OpenGLES2_Shared::GetChromiumMapSubInterface() {
1679 static const struct PPB_OpenGLES2ChromiumMapSub ppb_opengles2 = {
1680 &MapBufferSubDataCHROMIUM, &UnmapBufferSubDataCHROMIUM,
1681 &MapTexSubImage2DCHROMIUM, &UnmapTexSubImage2DCHROMIUM};
1682 return &ppb_opengles2;
1683 }
GetQueryInterface()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;
1689 }
1690 const PPB_OpenGLES2DrawBuffers_Dev*
GetDrawBuffersInterface()1691 PPB_OpenGLES2_Shared::GetDrawBuffersInterface() {
1692 static const struct PPB_OpenGLES2DrawBuffers_Dev ppb_opengles2 = {
1693 &DrawBuffersEXT};
1694 return &ppb_opengles2;
1695 }
1696 } // namespace ppapi
1697