Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / ppapi / api / ppb_opengles2.idl
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 label Chrome {
12   M39 = 1.0
13 };
14
15 [version=1.0]
16 describe {
17   GLbitfield;
18   GLbitfield_ptr_t;
19   GLboolean;
20   GLboolean_ptr_t;
21   GLbyte;
22   GLbyte_ptr_t;
23   GLclampf;
24   GLclampf_ptr_t;
25   GLclampx;
26   GLclampx_ptr_t;
27   GLenum;
28   GLenum_ptr_t;
29   GLfixed;
30   GLfixed_ptr_t;
31   GLfloat;
32   GLfloat_ptr_t;
33   GLint;
34   GLint_ptr_t;
35   GLintptr;
36   GLintptr_ptr_t;
37   GLshort;
38   GLshort_ptr_t;
39   GLsizei;
40   GLsizei_ptr_t;
41   GLsizeiptr;
42   GLsizeiptr_ptr_t;
43   GLubyte;
44   GLubyte_ptr_t;
45   GLuint;
46   GLuint_ptr_t;
47   GLushort;
48   GLushort_ptr_t;
49 };
50
51 #inline c
52 #include "ppapi/c/pp_resource.h"
53
54 #ifndef __gl2_h_
55 typedef void GLvoid;
56 typedef int GLsizei;
57 typedef unsigned short GLushort;
58 typedef short GLshort;
59 typedef unsigned char GLubyte;
60 typedef unsigned int GLenum;
61 typedef int GLint;
62 typedef unsigned char GLboolean;
63 typedef unsigned int GLbitfield;
64 typedef float GLfloat;
65 typedef float GLclampf;
66 typedef signed char GLbyte;
67 typedef unsigned int GLuint;
68 typedef int GLfixed;
69 typedef int GLclampx;
70 #ifdef _WIN64
71 typedef long long int GLintptr;
72 typedef long long int GLsizeiptr;
73 #else
74 typedef long int GLintptr;
75 typedef long int GLsizeiptr;
76 #endif  // _WIN64
77 #endif  // __gl2_h_
78
79 #endinl
80
81 [macro="PPB_OPENGLES2_INTERFACE", force_struct_namespace]
82 interface PPB_OpenGLES2 {
83   void ActiveTexture([in] PP_Resource context,
84                      [in] GLenum texture);
85   void AttachShader([in] PP_Resource context,
86                     [in] GLuint program,
87                     [in] GLuint shader);
88   void BindAttribLocation([in] PP_Resource context,
89                           [in] GLuint program,
90                           [in] GLuint index,
91                           [in] cstr_t name);
92   void BindBuffer([in] PP_Resource context,
93                   [in] GLenum target,
94                   [in] GLuint buffer);
95   void BindFramebuffer([in] PP_Resource context,
96                        [in] GLenum target,
97                        [in] GLuint framebuffer);
98   void BindRenderbuffer([in] PP_Resource context,
99                         [in] GLenum target,
100                         [in] GLuint renderbuffer);
101   void BindTexture([in] PP_Resource context,
102                    [in] GLenum target,
103                    [in] GLuint texture);
104   void BlendColor([in] PP_Resource context,
105                   [in] GLclampf red,
106                   [in] GLclampf green,
107                   [in] GLclampf blue,
108                   [in] GLclampf alpha);
109   void BlendEquation([in] PP_Resource context,
110                      [in] GLenum mode);
111   void BlendEquationSeparate([in] PP_Resource context,
112                              [in] GLenum modeRGB,
113                              [in] GLenum modeAlpha);
114   void BlendFunc([in] PP_Resource context,
115                  [in] GLenum sfactor,
116                  [in] GLenum dfactor);
117   void BlendFuncSeparate([in] PP_Resource context,
118                          [in] GLenum srcRGB,
119                          [in] GLenum dstRGB,
120                          [in] GLenum srcAlpha,
121                          [in] GLenum dstAlpha);
122   void BufferData([in] PP_Resource context,
123                   [in] GLenum target,
124                   [in] GLsizeiptr size,
125                   [in] mem_t data,
126                   [in] GLenum usage);
127   void BufferSubData([in] PP_Resource context,
128                      [in] GLenum target,
129                      [in] GLintptr offset,
130                      [in] GLsizeiptr size,
131                      [in] mem_t data);
132   GLenum CheckFramebufferStatus([in] PP_Resource context,
133                                 [in] GLenum target);
134   void Clear([in] PP_Resource context,
135              [in] GLbitfield mask);
136   void ClearColor([in] PP_Resource context,
137                   [in] GLclampf red,
138                   [in] GLclampf green,
139                   [in] GLclampf blue,
140                   [in] GLclampf alpha);
141   void ClearDepthf([in] PP_Resource context,
142                    [in] GLclampf depth);
143   void ClearStencil([in] PP_Resource context,
144                     [in] GLint s);
145   void ColorMask([in] PP_Resource context,
146                  [in] GLboolean red,
147                  [in] GLboolean green,
148                  [in] GLboolean blue,
149                  [in] GLboolean alpha);
150   void CompileShader([in] PP_Resource context,
151                      [in] GLuint shader);
152   void CompressedTexImage2D([in] PP_Resource context,
153                             [in] GLenum target,
154                             [in] GLint level,
155                             [in] GLenum internalformat,
156                             [in] GLsizei width,
157                             [in] GLsizei height,
158                             [in] GLint border,
159                             [in] GLsizei imageSize,
160                             [in] mem_t data);
161   void CompressedTexSubImage2D([in] PP_Resource context,
162                                [in] GLenum target,
163                                [in] GLint level,
164                                [in] GLint xoffset,
165                                [in] GLint yoffset,
166                                [in] GLsizei width,
167                                [in] GLsizei height,
168                                [in] GLenum format,
169                                [in] GLsizei imageSize,
170                                [in] mem_t data);
171   void CopyTexImage2D([in] PP_Resource context,
172                       [in] GLenum target,
173                       [in] GLint level,
174                       [in] GLenum internalformat,
175                       [in] GLint x,
176                       [in] GLint y,
177                       [in] GLsizei width,
178                       [in] GLsizei height,
179                       [in] GLint border);
180   void CopyTexSubImage2D([in] PP_Resource context,
181                          [in] GLenum target,
182                          [in] GLint level,
183                          [in] GLint xoffset,
184                          [in] GLint yoffset,
185                          [in] GLint x,
186                          [in] GLint y,
187                          [in] GLsizei width,
188                          [in] GLsizei height);
189   GLuint CreateProgram([in] PP_Resource context);
190   GLuint CreateShader([in] PP_Resource context,
191                       [in] GLenum type);
192   void CullFace([in] PP_Resource context,
193                 [in] GLenum mode);
194   void DeleteBuffers([in] PP_Resource context,
195                      [in] GLsizei n,
196                      [in] GLuint_ptr_t buffers);
197   void DeleteFramebuffers([in] PP_Resource context,
198                           [in] GLsizei n,
199                           [in] GLuint_ptr_t framebuffers);
200   void DeleteProgram([in] PP_Resource context,
201                      [in] GLuint program);
202   void DeleteRenderbuffers([in] PP_Resource context,
203                            [in] GLsizei n,
204                            [in] GLuint_ptr_t renderbuffers);
205   void DeleteShader([in] PP_Resource context,
206                     [in] GLuint shader);
207   void DeleteTextures([in] PP_Resource context,
208                       [in] GLsizei n,
209                       [in] GLuint_ptr_t textures);
210   void DepthFunc([in] PP_Resource context,
211                  [in] GLenum func);
212   void DepthMask([in] PP_Resource context,
213                  [in] GLboolean flag);
214   void DepthRangef([in] PP_Resource context,
215                    [in] GLclampf zNear,
216                    [in] GLclampf zFar);
217   void DetachShader([in] PP_Resource context,
218                     [in] GLuint program,
219                     [in] GLuint shader);
220   void Disable([in] PP_Resource context,
221                [in] GLenum cap);
222   void DisableVertexAttribArray([in] PP_Resource context,
223                                 [in] GLuint index);
224   void DrawArrays([in] PP_Resource context,
225                   [in] GLenum mode,
226                   [in] GLint first,
227                   [in] GLsizei count);
228   void DrawElements([in] PP_Resource context,
229                     [in] GLenum mode,
230                     [in] GLsizei count,
231                     [in] GLenum type,
232                     [in] mem_t indices);
233   void Enable([in] PP_Resource context,
234               [in] GLenum cap);
235   void EnableVertexAttribArray([in] PP_Resource context,
236                                [in] GLuint index);
237   void Finish([in] PP_Resource context);
238   void Flush([in] PP_Resource context);
239   void FramebufferRenderbuffer([in] PP_Resource context,
240                                [in] GLenum target,
241                                [in] GLenum attachment,
242                                [in] GLenum renderbuffertarget,
243                                [in] GLuint renderbuffer);
244   void FramebufferTexture2D([in] PP_Resource context,
245                             [in] GLenum target,
246                             [in] GLenum attachment,
247                             [in] GLenum textarget,
248                             [in] GLuint texture,
249                             [in] GLint level);
250   void FrontFace([in] PP_Resource context,
251                  [in] GLenum mode);
252   void GenBuffers([in] PP_Resource context,
253                   [in] GLsizei n,
254                   [out] GLuint_ptr_t buffers);
255   void GenerateMipmap([in] PP_Resource context,
256                       [in] GLenum target);
257   void GenFramebuffers([in] PP_Resource context,
258                        [in] GLsizei n,
259                        [out] GLuint_ptr_t framebuffers);
260   void GenRenderbuffers([in] PP_Resource context,
261                         [in] GLsizei n,
262                         [out] GLuint_ptr_t renderbuffers);
263   void GenTextures([in] PP_Resource context,
264                    [in] GLsizei n,
265                    [out] GLuint_ptr_t textures);
266   void GetActiveAttrib([in] PP_Resource context,
267                        [in] GLuint program,
268                        [in] GLuint index,
269                        [in] GLsizei bufsize,
270                        [out] GLsizei_ptr_t length,
271                        [out] GLint_ptr_t size,
272                        [out] GLenum_ptr_t type,
273                        [out] str_t name);
274   void GetActiveUniform([in] PP_Resource context,
275                         [in] GLuint program,
276                         [in] GLuint index,
277                         [in] GLsizei bufsize,
278                         [out] GLsizei_ptr_t length,
279                         [out] GLint_ptr_t size,
280                         [out] GLenum_ptr_t type,
281                         [out] str_t name);
282   void GetAttachedShaders([in] PP_Resource context,
283                           [in] GLuint program,
284                           [in] GLsizei maxcount,
285                           [out] GLsizei_ptr_t count,
286                           [out] GLuint_ptr_t shaders);
287   GLint GetAttribLocation([in] PP_Resource context,
288                           [in] GLuint program,
289                           [in] cstr_t name);
290   void GetBooleanv([in] PP_Resource context,
291                    [in] GLenum pname,
292                    [out] GLboolean_ptr_t params);
293   void GetBufferParameteriv([in] PP_Resource context,
294                             [in] GLenum target,
295                             [in] GLenum pname,
296                             [out] GLint_ptr_t params);
297   GLenum GetError([in] PP_Resource context);
298   void GetFloatv([in] PP_Resource context,
299                  [in] GLenum pname,
300                  [out] GLfloat_ptr_t params);
301   void GetFramebufferAttachmentParameteriv([in] PP_Resource context,
302                                            [in] GLenum target,
303                                            [in] GLenum attachment,
304                                            [in] GLenum pname,
305                                            [out] GLint_ptr_t params);
306   void GetIntegerv([in] PP_Resource context,
307                    [in] GLenum pname,
308                    [out] GLint_ptr_t params);
309   void GetProgramiv([in] PP_Resource context,
310                     [in] GLuint program,
311                     [in] GLenum pname,
312                     [out] GLint_ptr_t params);
313   void GetProgramInfoLog([in] PP_Resource context,
314                          [in] GLuint program,
315                          [in] GLsizei bufsize,
316                          [out] GLsizei_ptr_t length,
317                          [out] str_t infolog);
318   void GetRenderbufferParameteriv([in] PP_Resource context,
319                                   [in] GLenum target,
320                                   [in] GLenum pname,
321                                   [out] GLint_ptr_t params);
322   void GetShaderiv([in] PP_Resource context,
323                    [in] GLuint shader,
324                    [in] GLenum pname,
325                    [out] GLint_ptr_t params);
326   void GetShaderInfoLog([in] PP_Resource context,
327                         [in] GLuint shader,
328                         [in] GLsizei bufsize,
329                         [out] GLsizei_ptr_t length,
330                         [out] str_t infolog);
331   void GetShaderPrecisionFormat([in] PP_Resource context,
332                                 [in] GLenum shadertype,
333                                 [in] GLenum precisiontype,
334                                 [out] GLint_ptr_t range,
335                                 [out] GLint_ptr_t precision);
336   void GetShaderSource([in] PP_Resource context,
337                        [in] GLuint shader,
338                        [in] GLsizei bufsize,
339                        [out] GLsizei_ptr_t length,
340                        [out] str_t source);
341   GLubyte_ptr_t GetString([in] PP_Resource context,
342                           [in] GLenum name);
343   void GetTexParameterfv([in] PP_Resource context,
344                          [in] GLenum target,
345                          [in] GLenum pname,
346                          [out] GLfloat_ptr_t params);
347   void GetTexParameteriv([in] PP_Resource context,
348                          [in] GLenum target,
349                          [in] GLenum pname,
350                          [out] GLint_ptr_t params);
351   void GetUniformfv([in] PP_Resource context,
352                     [in] GLuint program,
353                     [in] GLint location,
354                     [out] GLfloat_ptr_t params);
355   void GetUniformiv([in] PP_Resource context,
356                     [in] GLuint program,
357                     [in] GLint location,
358                     [out] GLint_ptr_t params);
359   GLint GetUniformLocation([in] PP_Resource context,
360                            [in] GLuint program,
361                            [in] cstr_t name);
362   void GetVertexAttribfv([in] PP_Resource context,
363                          [in] GLuint index,
364                          [in] GLenum pname,
365                          [out] GLfloat_ptr_t params);
366   void GetVertexAttribiv([in] PP_Resource context,
367                          [in] GLuint index,
368                          [in] GLenum pname,
369                          [out] GLint_ptr_t params);
370   void GetVertexAttribPointerv([in] PP_Resource context,
371                                [in] GLuint index,
372                                [in] GLenum pname,
373                                [out] mem_ptr_t pointer);
374   void Hint([in] PP_Resource context,
375             [in] GLenum target,
376             [in] GLenum mode);
377   GLboolean IsBuffer([in] PP_Resource context,
378                      [in] GLuint buffer);
379   GLboolean IsEnabled([in] PP_Resource context,
380                       [in] GLenum cap);
381   GLboolean IsFramebuffer([in] PP_Resource context,
382                           [in] GLuint framebuffer);
383   GLboolean IsProgram([in] PP_Resource context,
384                       [in] GLuint program);
385   GLboolean IsRenderbuffer([in] PP_Resource context,
386                            [in] GLuint renderbuffer);
387   GLboolean IsShader([in] PP_Resource context,
388                      [in] GLuint shader);
389   GLboolean IsTexture([in] PP_Resource context,
390                       [in] GLuint texture);
391   void LineWidth([in] PP_Resource context,
392                  [in] GLfloat width);
393   void LinkProgram([in] PP_Resource context,
394                    [in] GLuint program);
395   void PixelStorei([in] PP_Resource context,
396                    [in] GLenum pname,
397                    [in] GLint param);
398   void PolygonOffset([in] PP_Resource context,
399                      [in] GLfloat factor,
400                      [in] GLfloat units);
401   void ReadPixels([in] PP_Resource context,
402                   [in] GLint x,
403                   [in] GLint y,
404                   [in] GLsizei width,
405                   [in] GLsizei height,
406                   [in] GLenum format,
407                   [in] GLenum type,
408                   [out] mem_t pixels);
409   void ReleaseShaderCompiler([in] PP_Resource context);
410   void RenderbufferStorage([in] PP_Resource context,
411                            [in] GLenum target,
412                            [in] GLenum internalformat,
413                            [in] GLsizei width,
414                            [in] GLsizei height);
415   void SampleCoverage([in] PP_Resource context,
416                       [in] GLclampf value,
417                       [in] GLboolean invert);
418   void Scissor([in] PP_Resource context,
419                [in] GLint x,
420                [in] GLint y,
421                [in] GLsizei width,
422                [in] GLsizei height);
423   void ShaderBinary([in] PP_Resource context,
424                     [in] GLsizei n,
425                     [in] GLuint_ptr_t shaders,
426                     [in] GLenum binaryformat,
427                     [in] mem_t binary,
428                     [in] GLsizei length);
429   void ShaderSource([in] PP_Resource context,
430                     [in] GLuint shader,
431                     [in] GLsizei count,
432                     [out] cstr_t str,
433                     [in] GLint_ptr_t length);
434   void StencilFunc([in] PP_Resource context,
435                    [in] GLenum func,
436                    [in] GLint ref,
437                    [in] GLuint mask);
438   void StencilFuncSeparate([in] PP_Resource context,
439                            [in] GLenum face,
440                            [in] GLenum func,
441                            [in] GLint ref,
442                            [in] GLuint mask);
443   void StencilMask([in] PP_Resource context,
444                    [in] GLuint mask);
445   void StencilMaskSeparate([in] PP_Resource context,
446                            [in] GLenum face,
447                            [in] GLuint mask);
448   void StencilOp([in] PP_Resource context,
449                  [in] GLenum fail,
450                  [in] GLenum zfail,
451                  [in] GLenum zpass);
452   void StencilOpSeparate([in] PP_Resource context,
453                          [in] GLenum face,
454                          [in] GLenum fail,
455                          [in] GLenum zfail,
456                          [in] GLenum zpass);
457   void TexImage2D([in] PP_Resource context,
458                   [in] GLenum target,
459                   [in] GLint level,
460                   [in] GLint internalformat,
461                   [in] GLsizei width,
462                   [in] GLsizei height,
463                   [in] GLint border,
464                   [in] GLenum format,
465                   [in] GLenum type,
466                   [in] mem_t pixels);
467   void TexParameterf([in] PP_Resource context,
468                      [in] GLenum target,
469                      [in] GLenum pname,
470                      [in] GLfloat param);
471   void TexParameterfv([in] PP_Resource context,
472                       [in] GLenum target,
473                       [in] GLenum pname,
474                       [in] GLfloat_ptr_t params);
475   void TexParameteri([in] PP_Resource context,
476                      [in] GLenum target,
477                      [in] GLenum pname,
478                      [in] GLint param);
479   void TexParameteriv([in] PP_Resource context,
480                       [in] GLenum target,
481                       [in] GLenum pname,
482                       [in] GLint_ptr_t params);
483   void TexSubImage2D([in] PP_Resource context,
484                      [in] GLenum target,
485                      [in] GLint level,
486                      [in] GLint xoffset,
487                      [in] GLint yoffset,
488                      [in] GLsizei width,
489                      [in] GLsizei height,
490                      [in] GLenum format,
491                      [in] GLenum type,
492                      [in] mem_t pixels);
493   void Uniform1f([in] PP_Resource context,
494                  [in] GLint location,
495                  [in] GLfloat x);
496   void Uniform1fv([in] PP_Resource context,
497                   [in] GLint location,
498                   [in] GLsizei count,
499                   [in] GLfloat_ptr_t v);
500   void Uniform1i([in] PP_Resource context,
501                  [in] GLint location,
502                  [in] GLint x);
503   void Uniform1iv([in] PP_Resource context,
504                   [in] GLint location,
505                   [in] GLsizei count,
506                   [in] GLint_ptr_t v);
507   void Uniform2f([in] PP_Resource context,
508                  [in] GLint location,
509                  [in] GLfloat x,
510                  [in] GLfloat y);
511   void Uniform2fv([in] PP_Resource context,
512                   [in] GLint location,
513                   [in] GLsizei count,
514                   [in] GLfloat_ptr_t v);
515   void Uniform2i([in] PP_Resource context,
516                  [in] GLint location,
517                  [in] GLint x,
518                  [in] GLint y);
519   void Uniform2iv([in] PP_Resource context,
520                   [in] GLint location,
521                   [in] GLsizei count,
522                   [in] GLint_ptr_t v);
523   void Uniform3f([in] PP_Resource context,
524                  [in] GLint location,
525                  [in] GLfloat x,
526                  [in] GLfloat y,
527                  [in] GLfloat z);
528   void Uniform3fv([in] PP_Resource context,
529                   [in] GLint location,
530                   [in] GLsizei count,
531                   [in] GLfloat_ptr_t v);
532   void Uniform3i([in] PP_Resource context,
533                  [in] GLint location,
534                  [in] GLint x,
535                  [in] GLint y,
536                  [in] GLint z);
537   void Uniform3iv([in] PP_Resource context,
538                   [in] GLint location,
539                   [in] GLsizei count,
540                   [in] GLint_ptr_t v);
541   void Uniform4f([in] PP_Resource context,
542                  [in] GLint location,
543                  [in] GLfloat x,
544                  [in] GLfloat y,
545                  [in] GLfloat z,
546                  [in] GLfloat w);
547   void Uniform4fv([in] PP_Resource context,
548                   [in] GLint location,
549                   [in] GLsizei count,
550                   [in] GLfloat_ptr_t v);
551   void Uniform4i([in] PP_Resource context,
552                  [in] GLint location,
553                  [in] GLint x,
554                  [in] GLint y,
555                  [in] GLint z,
556                  [in] GLint w);
557   void Uniform4iv([in] PP_Resource context,
558                   [in] GLint location,
559                   [in] GLsizei count,
560                   [in] GLint_ptr_t v);
561   void UniformMatrix2fv([in] PP_Resource context,
562                         [in] GLint location,
563                         [in] GLsizei count,
564                         [in] GLboolean transpose,
565                         [in] GLfloat_ptr_t value);
566   void UniformMatrix3fv([in] PP_Resource context,
567                         [in] GLint location,
568                         [in] GLsizei count,
569                         [in] GLboolean transpose,
570                         [in] GLfloat_ptr_t value);
571   void UniformMatrix4fv([in] PP_Resource context,
572                         [in] GLint location,
573                         [in] GLsizei count,
574                         [in] GLboolean transpose,
575                         [in] GLfloat_ptr_t value);
576   void UseProgram([in] PP_Resource context,
577                   [in] GLuint program);
578   void ValidateProgram([in] PP_Resource context,
579                        [in] GLuint program);
580   void VertexAttrib1f([in] PP_Resource context,
581                       [in] GLuint indx,
582                       [in] GLfloat x);
583   void VertexAttrib1fv([in] PP_Resource context,
584                        [in] GLuint indx,
585                        [in] GLfloat_ptr_t values);
586   void VertexAttrib2f([in] PP_Resource context,
587                       [in] GLuint indx,
588                       [in] GLfloat x,
589                       [in] GLfloat y);
590   void VertexAttrib2fv([in] PP_Resource context,
591                        [in] GLuint indx,
592                        [in] GLfloat_ptr_t values);
593   void VertexAttrib3f([in] PP_Resource context,
594                       [in] GLuint indx,
595                       [in] GLfloat x,
596                       [in] GLfloat y,
597                       [in] GLfloat z);
598   void VertexAttrib3fv([in] PP_Resource context,
599                        [in] GLuint indx,
600                        [in] GLfloat_ptr_t values);
601   void VertexAttrib4f([in] PP_Resource context,
602                       [in] GLuint indx,
603                       [in] GLfloat x,
604                       [in] GLfloat y,
605                       [in] GLfloat z,
606                       [in] GLfloat w);
607   void VertexAttrib4fv([in] PP_Resource context,
608                        [in] GLuint indx,
609                        [in] GLfloat_ptr_t values);
610   void VertexAttribPointer([in] PP_Resource context,
611                            [in] GLuint indx,
612                            [in] GLint size,
613                            [in] GLenum type,
614                            [in] GLboolean normalized,
615                            [in] GLsizei stride,
616                            [in] mem_t ptr);
617   void Viewport([in] PP_Resource context,
618                 [in] GLint x,
619                 [in] GLint y,
620                 [in] GLsizei width,
621                 [in] GLsizei height);
622 };
623
624
625 [macro="PPB_OPENGLES2_INSTANCEDARRAYS_INTERFACE", force_struct_namespace]
626 interface PPB_OpenGLES2InstancedArrays {
627   void DrawArraysInstancedANGLE([in] PP_Resource context,
628                                 [in] GLenum mode,
629                                 [in] GLint first,
630                                 [in] GLsizei count,
631                                 [in] GLsizei primcount);
632   void DrawElementsInstancedANGLE([in] PP_Resource context,
633                                   [in] GLenum mode,
634                                   [in] GLsizei count,
635                                   [in] GLenum type,
636                                   [in] mem_t indices,
637                                   [in] GLsizei primcount);
638   void VertexAttribDivisorANGLE([in] PP_Resource context,
639                                 [in] GLuint index,
640                                 [in] GLuint divisor);
641 };
642
643
644 [macro="PPB_OPENGLES2_FRAMEBUFFERBLIT_INTERFACE", force_struct_namespace]
645 interface PPB_OpenGLES2FramebufferBlit {
646   void BlitFramebufferEXT([in] PP_Resource context,
647                           [in] GLint srcX0,
648                           [in] GLint srcY0,
649                           [in] GLint srcX1,
650                           [in] GLint srcY1,
651                           [in] GLint dstX0,
652                           [in] GLint dstY0,
653                           [in] GLint dstX1,
654                           [in] GLint dstY1,
655                           [in] GLbitfield mask,
656                           [in] GLenum filter);
657 };
658
659
660 [macro="PPB_OPENGLES2_FRAMEBUFFERMULTISAMPLE_INTERFACE", force_struct_namespace]
661 interface PPB_OpenGLES2FramebufferMultisample {
662   void RenderbufferStorageMultisampleEXT([in] PP_Resource context,
663                                          [in] GLenum target,
664                                          [in] GLsizei samples,
665                                          [in] GLenum internalformat,
666                                          [in] GLsizei width,
667                                          [in] GLsizei height);
668 };
669
670
671 [macro="PPB_OPENGLES2_CHROMIUMENABLEFEATURE_INTERFACE", force_struct_namespace]
672 interface PPB_OpenGLES2ChromiumEnableFeature {
673   GLboolean EnableFeatureCHROMIUM([in] PP_Resource context,
674                                   [in] cstr_t feature);
675 };
676
677
678 [macro="PPB_OPENGLES2_CHROMIUMMAPSUB_INTERFACE", force_struct_namespace]
679 interface PPB_OpenGLES2ChromiumMapSub {
680   mem_t MapBufferSubDataCHROMIUM([in] PP_Resource context,
681                                  [in] GLuint target,
682                                  [in] GLintptr offset,
683                                  [in] GLsizeiptr size,
684                                  [in] GLenum access);
685   void UnmapBufferSubDataCHROMIUM([in] PP_Resource context,
686                                   [in] mem_t mem);
687   mem_t MapTexSubImage2DCHROMIUM([in] PP_Resource context,
688                                  [in] GLenum target,
689                                  [in] GLint level,
690                                  [in] GLint xoffset,
691                                  [in] GLint yoffset,
692                                  [in] GLsizei width,
693                                  [in] GLsizei height,
694                                  [in] GLenum format,
695                                  [in] GLenum type,
696                                  [in] GLenum access);
697   void UnmapTexSubImage2DCHROMIUM([in] PP_Resource context,
698                                   [in] mem_t mem);
699 };
700
701
702 [macro="PPB_OPENGLES2_QUERY_INTERFACE", force_struct_namespace]
703 interface PPB_OpenGLES2Query {
704   void GenQueriesEXT([in] PP_Resource context,
705                      [in] GLsizei n,
706                      [out] GLuint_ptr_t queries);
707   void DeleteQueriesEXT([in] PP_Resource context,
708                         [in] GLsizei n,
709                         [in] GLuint_ptr_t queries);
710   GLboolean IsQueryEXT([in] PP_Resource context,
711                        [in] GLuint id);
712   void BeginQueryEXT([in] PP_Resource context,
713                      [in] GLenum target,
714                      [in] GLuint id);
715   void EndQueryEXT([in] PP_Resource context,
716                    [in] GLenum target);
717   void GetQueryivEXT([in] PP_Resource context,
718                      [in] GLenum target,
719                      [in] GLenum pname,
720                      [out] GLint_ptr_t params);
721   void GetQueryObjectuivEXT([in] PP_Resource context,
722                             [in] GLuint id,
723                             [in] GLenum pname,
724                             [out] GLuint_ptr_t params);
725 };
726
727
728 [macro="PPB_OPENGLES2_VERTEXARRAYOBJECT_INTERFACE", force_struct_namespace]
729 interface PPB_OpenGLES2VertexArrayObject {
730   void GenVertexArraysOES([in] PP_Resource context,
731                           [in] GLsizei n,
732                           [out] GLuint_ptr_t arrays);
733   void DeleteVertexArraysOES([in] PP_Resource context,
734                              [in] GLsizei n,
735                              [in] GLuint_ptr_t arrays);
736   GLboolean IsVertexArrayOES([in] PP_Resource context,
737                              [in] GLuint array);
738   void BindVertexArrayOES([in] PP_Resource context,
739                           [in] GLuint array);
740 };
741