blob: 5f08099286005882782cb7ab56be0f2e3f156dd1 [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// This file is auto-generated from
// gpu/command_buffer/build_gles2_cmd_buffer.py
// It's formatted by clang-format using chromium coding style:
// clang-format -i -style=chromium filename
// DO NOT EDIT!
label Chrome {
M39 = 1.0
};
[version=1.0]
describe {
GLbitfield;
GLbitfield_ptr_t;
GLboolean;
GLboolean_ptr_t;
GLbyte;
GLbyte_ptr_t;
GLclampf;
GLclampf_ptr_t;
GLclampx;
GLclampx_ptr_t;
GLenum;
GLenum_ptr_t;
GLfixed;
GLfixed_ptr_t;
GLfloat;
GLfloat_ptr_t;
GLint;
GLint_ptr_t;
GLintptr;
GLintptr_ptr_t;
GLshort;
GLshort_ptr_t;
GLsizei;
GLsizei_ptr_t;
GLsizeiptr;
GLsizeiptr_ptr_t;
GLubyte;
GLubyte_ptr_t;
GLuint;
GLuint_ptr_t;
GLushort;
GLushort_ptr_t;
};
#inline c
#include "ppapi/c/pp_resource.h"
#ifndef __gl2_h_
typedef void GLvoid;
typedef int GLsizei;
typedef unsigned short GLushort;
typedef short GLshort;
typedef unsigned char GLubyte;
typedef unsigned int GLenum;
typedef int GLint;
typedef unsigned char GLboolean;
typedef unsigned int GLbitfield;
typedef float GLfloat;
typedef float GLclampf;
typedef signed char GLbyte;
typedef unsigned int GLuint;
typedef int GLfixed;
typedef int GLclampx;
#ifdef _WIN64
typedef long long int GLintptr;
typedef long long int GLsizeiptr;
#else
typedef long int GLintptr;
typedef long int GLsizeiptr;
#endif // _WIN64
#endif // __gl2_h_
#endinl
[macro="PPB_OPENGLES2_INTERFACE", force_struct_namespace]
interface PPB_OpenGLES2 {
void ActiveTexture([in] PP_Resource context,
[in] GLenum texture);
void AttachShader([in] PP_Resource context,
[in] GLuint program,
[in] GLuint shader);
void BindAttribLocation([in] PP_Resource context,
[in] GLuint program,
[in] GLuint index,
[in] cstr_t name);
void BindBuffer([in] PP_Resource context,
[in] GLenum target,
[in] GLuint buffer);
void BindFramebuffer([in] PP_Resource context,
[in] GLenum target,
[in] GLuint framebuffer);
void BindRenderbuffer([in] PP_Resource context,
[in] GLenum target,
[in] GLuint renderbuffer);
void BindTexture([in] PP_Resource context,
[in] GLenum target,
[in] GLuint texture);
void BlendColor([in] PP_Resource context,
[in] GLclampf red,
[in] GLclampf green,
[in] GLclampf blue,
[in] GLclampf alpha);
void BlendEquation([in] PP_Resource context,
[in] GLenum mode);
void BlendEquationSeparate([in] PP_Resource context,
[in] GLenum modeRGB,
[in] GLenum modeAlpha);
void BlendFunc([in] PP_Resource context,
[in] GLenum sfactor,
[in] GLenum dfactor);
void BlendFuncSeparate([in] PP_Resource context,
[in] GLenum srcRGB,
[in] GLenum dstRGB,
[in] GLenum srcAlpha,
[in] GLenum dstAlpha);
void BufferData([in] PP_Resource context,
[in] GLenum target,
[in] GLsizeiptr size,
[in] mem_t data,
[in] GLenum usage);
void BufferSubData([in] PP_Resource context,
[in] GLenum target,
[in] GLintptr offset,
[in] GLsizeiptr size,
[in] mem_t data);
GLenum CheckFramebufferStatus([in] PP_Resource context,
[in] GLenum target);
void Clear([in] PP_Resource context,
[in] GLbitfield mask);
void ClearColor([in] PP_Resource context,
[in] GLclampf red,
[in] GLclampf green,
[in] GLclampf blue,
[in] GLclampf alpha);
void ClearDepthf([in] PP_Resource context,
[in] GLclampf depth);
void ClearStencil([in] PP_Resource context,
[in] GLint s);
void ColorMask([in] PP_Resource context,
[in] GLboolean red,
[in] GLboolean green,
[in] GLboolean blue,
[in] GLboolean alpha);
void CompileShader([in] PP_Resource context,
[in] GLuint shader);
void CompressedTexImage2D([in] PP_Resource context,
[in] GLenum target,
[in] GLint level,
[in] GLenum internalformat,
[in] GLsizei width,
[in] GLsizei height,
[in] GLint border,
[in] GLsizei imageSize,
[in] mem_t data);
void CompressedTexSubImage2D([in] PP_Resource context,
[in] GLenum target,
[in] GLint level,
[in] GLint xoffset,
[in] GLint yoffset,
[in] GLsizei width,
[in] GLsizei height,
[in] GLenum format,
[in] GLsizei imageSize,
[in] mem_t data);
void CopyTexImage2D([in] PP_Resource context,
[in] GLenum target,
[in] GLint level,
[in] GLenum internalformat,
[in] GLint x,
[in] GLint y,
[in] GLsizei width,
[in] GLsizei height,
[in] GLint border);
void CopyTexSubImage2D([in] PP_Resource context,
[in] GLenum target,
[in] GLint level,
[in] GLint xoffset,
[in] GLint yoffset,
[in] GLint x,
[in] GLint y,
[in] GLsizei width,
[in] GLsizei height);
GLuint CreateProgram([in] PP_Resource context);
GLuint CreateShader([in] PP_Resource context,
[in] GLenum type);
void CullFace([in] PP_Resource context,
[in] GLenum mode);
void DeleteBuffers([in] PP_Resource context,
[in] GLsizei n,
[in] GLuint_ptr_t buffers);
void DeleteFramebuffers([in] PP_Resource context,
[in] GLsizei n,
[in] GLuint_ptr_t framebuffers);
void DeleteProgram([in] PP_Resource context,
[in] GLuint program);
void DeleteRenderbuffers([in] PP_Resource context,
[in] GLsizei n,
[in] GLuint_ptr_t renderbuffers);
void DeleteShader([in] PP_Resource context,
[in] GLuint shader);
void DeleteTextures([in] PP_Resource context,
[in] GLsizei n,
[in] GLuint_ptr_t textures);
void DepthFunc([in] PP_Resource context,
[in] GLenum func);
void DepthMask([in] PP_Resource context,
[in] GLboolean flag);
void DepthRangef([in] PP_Resource context,
[in] GLclampf zNear,
[in] GLclampf zFar);
void DetachShader([in] PP_Resource context,
[in] GLuint program,
[in] GLuint shader);
void Disable([in] PP_Resource context,
[in] GLenum cap);
void DisableVertexAttribArray([in] PP_Resource context,
[in] GLuint index);
void DrawArrays([in] PP_Resource context,
[in] GLenum mode,
[in] GLint first,
[in] GLsizei count);
void DrawElements([in] PP_Resource context,
[in] GLenum mode,
[in] GLsizei count,
[in] GLenum type,
[in] mem_t indices);
void Enable([in] PP_Resource context,
[in] GLenum cap);
void EnableVertexAttribArray([in] PP_Resource context,
[in] GLuint index);
void Finish([in] PP_Resource context);
void Flush([in] PP_Resource context);
void FramebufferRenderbuffer([in] PP_Resource context,
[in] GLenum target,
[in] GLenum attachment,
[in] GLenum renderbuffertarget,
[in] GLuint renderbuffer);
void FramebufferTexture2D([in] PP_Resource context,
[in] GLenum target,
[in] GLenum attachment,
[in] GLenum textarget,
[in] GLuint texture,
[in] GLint level);
void FrontFace([in] PP_Resource context,
[in] GLenum mode);
void GenBuffers([in] PP_Resource context,
[in] GLsizei n,
[out] GLuint_ptr_t buffers);
void GenerateMipmap([in] PP_Resource context,
[in] GLenum target);
void GenFramebuffers([in] PP_Resource context,
[in] GLsizei n,
[out] GLuint_ptr_t framebuffers);
void GenRenderbuffers([in] PP_Resource context,
[in] GLsizei n,
[out] GLuint_ptr_t renderbuffers);
void GenTextures([in] PP_Resource context,
[in] GLsizei n,
[out] GLuint_ptr_t textures);
void GetActiveAttrib([in] PP_Resource context,
[in] GLuint program,
[in] GLuint index,
[in] GLsizei bufsize,
[out] GLsizei_ptr_t length,
[out] GLint_ptr_t size,
[out] GLenum_ptr_t type,
[out] str_t name);
void GetActiveUniform([in] PP_Resource context,
[in] GLuint program,
[in] GLuint index,
[in] GLsizei bufsize,
[out] GLsizei_ptr_t length,
[out] GLint_ptr_t size,
[out] GLenum_ptr_t type,
[out] str_t name);
void GetAttachedShaders([in] PP_Resource context,
[in] GLuint program,
[in] GLsizei maxcount,
[out] GLsizei_ptr_t count,
[out] GLuint_ptr_t shaders);
GLint GetAttribLocation([in] PP_Resource context,
[in] GLuint program,
[in] cstr_t name);
void GetBooleanv([in] PP_Resource context,
[in] GLenum pname,
[out] GLboolean_ptr_t params);
void GetBufferParameteriv([in] PP_Resource context,
[in] GLenum target,
[in] GLenum pname,
[out] GLint_ptr_t params);
GLenum GetError([in] PP_Resource context);
void GetFloatv([in] PP_Resource context,
[in] GLenum pname,
[out] GLfloat_ptr_t params);
void GetFramebufferAttachmentParameteriv([in] PP_Resource context,
[in] GLenum target,
[in] GLenum attachment,
[in] GLenum pname,
[out] GLint_ptr_t params);
void GetIntegerv([in] PP_Resource context,
[in] GLenum pname,
[out] GLint_ptr_t params);
void GetProgramiv([in] PP_Resource context,
[in] GLuint program,
[in] GLenum pname,
[out] GLint_ptr_t params);
void GetProgramInfoLog([in] PP_Resource context,
[in] GLuint program,
[in] GLsizei bufsize,
[out] GLsizei_ptr_t length,
[out] str_t infolog);
void GetRenderbufferParameteriv([in] PP_Resource context,
[in] GLenum target,
[in] GLenum pname,
[out] GLint_ptr_t params);
void GetShaderiv([in] PP_Resource context,
[in] GLuint shader,
[in] GLenum pname,
[out] GLint_ptr_t params);
void GetShaderInfoLog([in] PP_Resource context,
[in] GLuint shader,
[in] GLsizei bufsize,
[out] GLsizei_ptr_t length,
[out] str_t infolog);
void GetShaderPrecisionFormat([in] PP_Resource context,
[in] GLenum shadertype,
[in] GLenum precisiontype,
[out] GLint_ptr_t range,
[out] GLint_ptr_t precision);
void GetShaderSource([in] PP_Resource context,
[in] GLuint shader,
[in] GLsizei bufsize,
[out] GLsizei_ptr_t length,
[out] str_t source);
GLubyte_ptr_t GetString([in] PP_Resource context,
[in] GLenum name);
void GetTexParameterfv([in] PP_Resource context,
[in] GLenum target,
[in] GLenum pname,
[out] GLfloat_ptr_t params);
void GetTexParameteriv([in] PP_Resource context,
[in] GLenum target,
[in] GLenum pname,
[out] GLint_ptr_t params);
void GetUniformfv([in] PP_Resource context,
[in] GLuint program,
[in] GLint location,
[out] GLfloat_ptr_t params);
void GetUniformiv([in] PP_Resource context,
[in] GLuint program,
[in] GLint location,
[out] GLint_ptr_t params);
GLint GetUniformLocation([in] PP_Resource context,
[in] GLuint program,
[in] cstr_t name);
void GetVertexAttribfv([in] PP_Resource context,
[in] GLuint index,
[in] GLenum pname,
[out] GLfloat_ptr_t params);
void GetVertexAttribiv([in] PP_Resource context,
[in] GLuint index,
[in] GLenum pname,
[out] GLint_ptr_t params);
void GetVertexAttribPointerv([in] PP_Resource context,
[in] GLuint index,
[in] GLenum pname,
[out] mem_ptr_t pointer);
void Hint([in] PP_Resource context,
[in] GLenum target,
[in] GLenum mode);
GLboolean IsBuffer([in] PP_Resource context,
[in] GLuint buffer);
GLboolean IsEnabled([in] PP_Resource context,
[in] GLenum cap);
GLboolean IsFramebuffer([in] PP_Resource context,
[in] GLuint framebuffer);
GLboolean IsProgram([in] PP_Resource context,
[in] GLuint program);
GLboolean IsRenderbuffer([in] PP_Resource context,
[in] GLuint renderbuffer);
GLboolean IsShader([in] PP_Resource context,
[in] GLuint shader);
GLboolean IsTexture([in] PP_Resource context,
[in] GLuint texture);
void LineWidth([in] PP_Resource context,
[in] GLfloat width);
void LinkProgram([in] PP_Resource context,
[in] GLuint program);
void PixelStorei([in] PP_Resource context,
[in] GLenum pname,
[in] GLint param);
void PolygonOffset([in] PP_Resource context,
[in] GLfloat factor,
[in] GLfloat units);
void ReadPixels([in] PP_Resource context,
[in] GLint x,
[in] GLint y,
[in] GLsizei width,
[in] GLsizei height,
[in] GLenum format,
[in] GLenum type,
[out] mem_t pixels);
void ReleaseShaderCompiler([in] PP_Resource context);
void RenderbufferStorage([in] PP_Resource context,
[in] GLenum target,
[in] GLenum internalformat,
[in] GLsizei width,
[in] GLsizei height);
void SampleCoverage([in] PP_Resource context,
[in] GLclampf value,
[in] GLboolean invert);
void Scissor([in] PP_Resource context,
[in] GLint x,
[in] GLint y,
[in] GLsizei width,
[in] GLsizei height);
void ShaderBinary([in] PP_Resource context,
[in] GLsizei n,
[in] GLuint_ptr_t shaders,
[in] GLenum binaryformat,
[in] mem_t binary,
[in] GLsizei length);
void ShaderSource([in] PP_Resource context,
[in] GLuint shader,
[in] GLsizei count,
[out] cstr_t str,
[in] GLint_ptr_t length);
void StencilFunc([in] PP_Resource context,
[in] GLenum func,
[in] GLint ref,
[in] GLuint mask);
void StencilFuncSeparate([in] PP_Resource context,
[in] GLenum face,
[in] GLenum func,
[in] GLint ref,
[in] GLuint mask);
void StencilMask([in] PP_Resource context,
[in] GLuint mask);
void StencilMaskSeparate([in] PP_Resource context,
[in] GLenum face,
[in] GLuint mask);
void StencilOp([in] PP_Resource context,
[in] GLenum fail,
[in] GLenum zfail,
[in] GLenum zpass);
void StencilOpSeparate([in] PP_Resource context,
[in] GLenum face,
[in] GLenum fail,
[in] GLenum zfail,
[in] GLenum zpass);
void TexImage2D([in] PP_Resource context,
[in] GLenum target,
[in] GLint level,
[in] GLint internalformat,
[in] GLsizei width,
[in] GLsizei height,
[in] GLint border,
[in] GLenum format,
[in] GLenum type,
[in] mem_t pixels);
void TexParameterf([in] PP_Resource context,
[in] GLenum target,
[in] GLenum pname,
[in] GLfloat param);
void TexParameterfv([in] PP_Resource context,
[in] GLenum target,
[in] GLenum pname,
[in] GLfloat_ptr_t params);
void TexParameteri([in] PP_Resource context,
[in] GLenum target,
[in] GLenum pname,
[in] GLint param);
void TexParameteriv([in] PP_Resource context,
[in] GLenum target,
[in] GLenum pname,
[in] GLint_ptr_t params);
void TexSubImage2D([in] PP_Resource context,
[in] GLenum target,
[in] GLint level,
[in] GLint xoffset,
[in] GLint yoffset,
[in] GLsizei width,
[in] GLsizei height,
[in] GLenum format,
[in] GLenum type,
[in] mem_t pixels);
void Uniform1f([in] PP_Resource context,
[in] GLint location,
[in] GLfloat x);
void Uniform1fv([in] PP_Resource context,
[in] GLint location,
[in] GLsizei count,
[in] GLfloat_ptr_t v);
void Uniform1i([in] PP_Resource context,
[in] GLint location,
[in] GLint x);
void Uniform1iv([in] PP_Resource context,
[in] GLint location,
[in] GLsizei count,
[in] GLint_ptr_t v);
void Uniform2f([in] PP_Resource context,
[in] GLint location,
[in] GLfloat x,
[in] GLfloat y);
void Uniform2fv([in] PP_Resource context,
[in] GLint location,
[in] GLsizei count,
[in] GLfloat_ptr_t v);
void Uniform2i([in] PP_Resource context,
[in] GLint location,
[in] GLint x,
[in] GLint y);
void Uniform2iv([in] PP_Resource context,
[in] GLint location,
[in] GLsizei count,
[in] GLint_ptr_t v);
void Uniform3f([in] PP_Resource context,
[in] GLint location,
[in] GLfloat x,
[in] GLfloat y,
[in] GLfloat z);
void Uniform3fv([in] PP_Resource context,
[in] GLint location,
[in] GLsizei count,
[in] GLfloat_ptr_t v);
void Uniform3i([in] PP_Resource context,
[in] GLint location,
[in] GLint x,
[in] GLint y,
[in] GLint z);
void Uniform3iv([in] PP_Resource context,
[in] GLint location,
[in] GLsizei count,
[in] GLint_ptr_t v);
void Uniform4f([in] PP_Resource context,
[in] GLint location,
[in] GLfloat x,
[in] GLfloat y,
[in] GLfloat z,
[in] GLfloat w);
void Uniform4fv([in] PP_Resource context,
[in] GLint location,
[in] GLsizei count,
[in] GLfloat_ptr_t v);
void Uniform4i([in] PP_Resource context,
[in] GLint location,
[in] GLint x,
[in] GLint y,
[in] GLint z,
[in] GLint w);
void Uniform4iv([in] PP_Resource context,
[in] GLint location,
[in] GLsizei count,
[in] GLint_ptr_t v);
void UniformMatrix2fv([in] PP_Resource context,
[in] GLint location,
[in] GLsizei count,
[in] GLboolean transpose,
[in] GLfloat_ptr_t value);
void UniformMatrix3fv([in] PP_Resource context,
[in] GLint location,
[in] GLsizei count,
[in] GLboolean transpose,
[in] GLfloat_ptr_t value);
void UniformMatrix4fv([in] PP_Resource context,
[in] GLint location,
[in] GLsizei count,
[in] GLboolean transpose,
[in] GLfloat_ptr_t value);
void UseProgram([in] PP_Resource context,
[in] GLuint program);
void ValidateProgram([in] PP_Resource context,
[in] GLuint program);
void VertexAttrib1f([in] PP_Resource context,
[in] GLuint indx,
[in] GLfloat x);
void VertexAttrib1fv([in] PP_Resource context,
[in] GLuint indx,
[in] GLfloat_ptr_t values);
void VertexAttrib2f([in] PP_Resource context,
[in] GLuint indx,
[in] GLfloat x,
[in] GLfloat y);
void VertexAttrib2fv([in] PP_Resource context,
[in] GLuint indx,
[in] GLfloat_ptr_t values);
void VertexAttrib3f([in] PP_Resource context,
[in] GLuint indx,
[in] GLfloat x,
[in] GLfloat y,
[in] GLfloat z);
void VertexAttrib3fv([in] PP_Resource context,
[in] GLuint indx,
[in] GLfloat_ptr_t values);
void VertexAttrib4f([in] PP_Resource context,
[in] GLuint indx,
[in] GLfloat x,
[in] GLfloat y,
[in] GLfloat z,
[in] GLfloat w);
void VertexAttrib4fv([in] PP_Resource context,
[in] GLuint indx,
[in] GLfloat_ptr_t values);
void VertexAttribPointer([in] PP_Resource context,
[in] GLuint indx,
[in] GLint size,
[in] GLenum type,
[in] GLboolean normalized,
[in] GLsizei stride,
[in] mem_t ptr);
void Viewport([in] PP_Resource context,
[in] GLint x,
[in] GLint y,
[in] GLsizei width,
[in] GLsizei height);
};
[macro="PPB_OPENGLES2_INSTANCEDARRAYS_INTERFACE", force_struct_namespace]
interface PPB_OpenGLES2InstancedArrays {
void DrawArraysInstancedANGLE([in] PP_Resource context,
[in] GLenum mode,
[in] GLint first,
[in] GLsizei count,
[in] GLsizei primcount);
void DrawElementsInstancedANGLE([in] PP_Resource context,
[in] GLenum mode,
[in] GLsizei count,
[in] GLenum type,
[in] mem_t indices,
[in] GLsizei primcount);
void VertexAttribDivisorANGLE([in] PP_Resource context,
[in] GLuint index,
[in] GLuint divisor);
};
[macro="PPB_OPENGLES2_FRAMEBUFFERBLIT_INTERFACE", force_struct_namespace]
interface PPB_OpenGLES2FramebufferBlit {
void BlitFramebufferEXT([in] PP_Resource context,
[in] GLint srcX0,
[in] GLint srcY0,
[in] GLint srcX1,
[in] GLint srcY1,
[in] GLint dstX0,
[in] GLint dstY0,
[in] GLint dstX1,
[in] GLint dstY1,
[in] GLbitfield mask,
[in] GLenum filter);
};
[macro="PPB_OPENGLES2_FRAMEBUFFERMULTISAMPLE_INTERFACE", force_struct_namespace]
interface PPB_OpenGLES2FramebufferMultisample {
void RenderbufferStorageMultisampleEXT([in] PP_Resource context,
[in] GLenum target,
[in] GLsizei samples,
[in] GLenum internalformat,
[in] GLsizei width,
[in] GLsizei height);
};
[macro="PPB_OPENGLES2_CHROMIUMENABLEFEATURE_INTERFACE", force_struct_namespace]
interface PPB_OpenGLES2ChromiumEnableFeature {
GLboolean EnableFeatureCHROMIUM([in] PP_Resource context,
[in] cstr_t feature);
};
[macro="PPB_OPENGLES2_CHROMIUMMAPSUB_INTERFACE", force_struct_namespace]
interface PPB_OpenGLES2ChromiumMapSub {
mem_t MapBufferSubDataCHROMIUM([in] PP_Resource context,
[in] GLuint target,
[in] GLintptr offset,
[in] GLsizeiptr size,
[in] GLenum access);
void UnmapBufferSubDataCHROMIUM([in] PP_Resource context,
[in] mem_t mem);
mem_t MapTexSubImage2DCHROMIUM([in] PP_Resource context,
[in] GLenum target,
[in] GLint level,
[in] GLint xoffset,
[in] GLint yoffset,
[in] GLsizei width,
[in] GLsizei height,
[in] GLenum format,
[in] GLenum type,
[in] GLenum access);
void UnmapTexSubImage2DCHROMIUM([in] PP_Resource context,
[in] mem_t mem);
};
[macro="PPB_OPENGLES2_QUERY_INTERFACE", force_struct_namespace]
interface PPB_OpenGLES2Query {
void GenQueriesEXT([in] PP_Resource context,
[in] GLsizei n,
[out] GLuint_ptr_t queries);
void DeleteQueriesEXT([in] PP_Resource context,
[in] GLsizei n,
[in] GLuint_ptr_t queries);
GLboolean IsQueryEXT([in] PP_Resource context,
[in] GLuint id);
void BeginQueryEXT([in] PP_Resource context,
[in] GLenum target,
[in] GLuint id);
void EndQueryEXT([in] PP_Resource context,
[in] GLenum target);
void GetQueryivEXT([in] PP_Resource context,
[in] GLenum target,
[in] GLenum pname,
[out] GLint_ptr_t params);
void GetQueryObjectuivEXT([in] PP_Resource context,
[in] GLuint id,
[in] GLenum pname,
[out] GLuint_ptr_t params);
};
[macro="PPB_OPENGLES2_VERTEXARRAYOBJECT_INTERFACE", force_struct_namespace]
interface PPB_OpenGLES2VertexArrayObject {
void GenVertexArraysOES([in] PP_Resource context,
[in] GLsizei n,
[out] GLuint_ptr_t arrays);
void DeleteVertexArraysOES([in] PP_Resource context,
[in] GLsizei n,
[in] GLuint_ptr_t arrays);
GLboolean IsVertexArrayOES([in] PP_Resource context,
[in] GLuint array);
void BindVertexArrayOES([in] PP_Resource context,
[in] GLuint array);
};