%%
%% %CopyrightBegin%
%%
%% Copyright Ericsson AB 2008-2010. All Rights Reserved.
%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
%%
%% %CopyrightEnd%
%% OPENGL API
%% This file is generated DO NOT EDIT
%% @doc Standard OpenGL api.
%% See www.opengl.org
%%
%% Booleans are represented by integers 0 and 1.
%% @type mem(). memory block
%% @type enum(). An integer defined in gl.hrl
%% @type offset(). An integer which is an offset in an array
%% @type clamp(). A float clamped between 0.0 - 1.0
-module(gl).
-compile(inline).
-define(GLenum,32/native-unsigned).
-define(GLboolean,8/native-unsigned).
-define(GLbitfield,32/native-unsigned).
-define(GLbyte,8/native-signed).
-define(GLshort,16/native-signed).
-define(GLint,32/native-signed).
-define(GLubyte,8/native-unsigned).
-define(GLushort,16/native-unsigned).
-define(GLuint,32/native-unsigned).
-define(GLsizei,32/native-signed).
-define(GLfloat,32/native-float).
-define(GLclampf,32/native-float).
-define(GLdouble,64/native-float).
-define(GLclampd,64/native-float).
-define(GLsizeiptr,64/native-unsigned).
-define(GLintptr,64/native-unsigned).
-define(GLUquadric,64/native-unsigned).
-define(GLhandleARB,64/native-unsigned).
-define(GLsync,64/native-unsigned).
-define(GLuint64,64/native-unsigned).
-define(GLint64,64/native-signed).
-type clamp() :: float().
-type offset() :: non_neg_integer().
-type enum() :: non_neg_integer().
-type mem() :: binary() | tuple().
-export([accum/2,alphaFunc/2,areTexturesResident/1,arrayElement/1,'begin'/1,
bindTexture/2,bitmap/7,blendFunc/2,callList/1,callLists/1,clear/1,clearAccum/4,
clearColor/4,clearDepth/1,clearIndex/1,clearStencil/1,clipPlane/2,
color3b/3,color3bv/1,color3d/3,color3dv/1,color3f/3,color3fv/1,color3i/3,
color3iv/1,color3s/3,color3sv/1,color3ub/3,color3ubv/1,color3ui/3,color3uiv/1,
color3us/3,color3usv/1,color4b/4,color4bv/1,color4d/4,color4dv/1,color4f/4,
color4fv/1,color4i/4,color4iv/1,color4s/4,color4sv/1,color4ub/4,color4ubv/1,
color4ui/4,color4uiv/1,color4us/4,color4usv/1,colorMask/4,colorMaterial/2,
colorPointer/4,copyPixels/5,copyTexImage1D/7,copyTexImage2D/8,copyTexSubImage1D/6,
copyTexSubImage2D/8,cullFace/1,deleteLists/2,deleteTextures/1,depthFunc/1,
depthMask/1,depthRange/2,disable/1,disableClientState/1,drawArrays/3,
drawBuffer/1,drawElements/4,drawPixels/5,edgeFlag/1,edgeFlagPointer/2,
edgeFlagv/1,enable/1,enableClientState/1,'end'/0,endList/0,evalCoord1d/1,
evalCoord1dv/1,evalCoord1f/1,evalCoord1fv/1,evalCoord2d/2,evalCoord2dv/1,
evalCoord2f/2,evalCoord2fv/1,evalMesh1/3,evalMesh2/5,evalPoint1/1,
evalPoint2/2,feedbackBuffer/3,finish/0,flush/0,fogf/2,fogfv/2,fogi/2,
fogiv/2,frontFace/1,frustum/6,genLists/1,genTextures/1,getBooleanv/1,
getClipPlane/1,getDoublev/1,getError/0,getFloatv/1,getIntegerv/1,getLightfv/2,
getLightiv/2,getMapdv/3,getMapfv/3,getMapiv/3,getMaterialfv/2,getMaterialiv/2,
getPixelMapfv/2,getPixelMapuiv/2,getPixelMapusv/2,getPolygonStipple/0,
getString/1,getTexEnvfv/2,getTexEnviv/2,getTexGendv/2,getTexGenfv/2,
getTexGeniv/2,getTexImage/5,getTexLevelParameterfv/3,getTexLevelParameteriv/3,
getTexParameterfv/2,getTexParameteriv/2,hint/2,indexMask/1,indexPointer/3,
indexd/1,indexdv/1,indexf/1,indexfv/1,indexi/1,indexiv/1,indexs/1,indexsv/1,
indexub/1,indexubv/1,initNames/0,interleavedArrays/3,isEnabled/1,isList/1,
isTexture/1,lightModelf/2,lightModelfv/2,lightModeli/2,lightModeliv/2,
lightf/3,lightfv/3,lighti/3,lightiv/3,lineStipple/2,lineWidth/1,listBase/1,
loadIdentity/0,loadMatrixd/1,loadMatrixf/1,loadName/1,logicOp/1,map1d/6,
map1f/6,map2d/10,map2f/10,mapGrid1d/3,mapGrid1f/3,mapGrid2d/6,mapGrid2f/6,
materialf/3,materialfv/3,materiali/3,materialiv/3,matrixMode/1,multMatrixd/1,
multMatrixf/1,newList/2,normal3b/3,normal3bv/1,normal3d/3,normal3dv/1,
normal3f/3,normal3fv/1,normal3i/3,normal3iv/1,normal3s/3,normal3sv/1,
normalPointer/3,ortho/6,passThrough/1,pixelMapfv/3,pixelMapuiv/3,pixelMapusv/3,
pixelStoref/2,pixelStorei/2,pixelTransferf/2,pixelTransferi/2,pixelZoom/2,
pointSize/1,polygonMode/2,polygonOffset/2,polygonStipple/1,popAttrib/0,
popClientAttrib/0,popMatrix/0,popName/0,prioritizeTextures/2,pushAttrib/1,
pushClientAttrib/1,pushMatrix/0,pushName/1,rasterPos2d/2,rasterPos2dv/1,
rasterPos2f/2,rasterPos2fv/1,rasterPos2i/2,rasterPos2iv/1,rasterPos2s/2,
rasterPos2sv/1,rasterPos3d/3,rasterPos3dv/1,rasterPos3f/3,rasterPos3fv/1,
rasterPos3i/3,rasterPos3iv/1,rasterPos3s/3,rasterPos3sv/1,rasterPos4d/4,
rasterPos4dv/1,rasterPos4f/4,rasterPos4fv/1,rasterPos4i/4,rasterPos4iv/1,
rasterPos4s/4,rasterPos4sv/1,readBuffer/1,readPixels/7,rectd/4,rectdv/2,
rectf/4,rectfv/2,recti/4,rectiv/2,rects/4,rectsv/2,renderMode/1,rotated/4,
rotatef/4,scaled/3,scalef/3,scissor/4,selectBuffer/2,shadeModel/1,stencilFunc/3,
stencilMask/1,stencilOp/3,texCoord1d/1,texCoord1dv/1,texCoord1f/1,
texCoord1fv/1,texCoord1i/1,texCoord1iv/1,texCoord1s/1,texCoord1sv/1,
texCoord2d/2,texCoord2dv/1,texCoord2f/2,texCoord2fv/1,texCoord2i/2,
texCoord2iv/1,texCoord2s/2,texCoord2sv/1,texCoord3d/3,texCoord3dv/1,
texCoord3f/3,texCoord3fv/1,texCoord3i/3,texCoord3iv/1,texCoord3s/3,
texCoord3sv/1,texCoord4d/4,texCoord4dv/1,texCoord4f/4,texCoord4fv/1,
texCoord4i/4,texCoord4iv/1,texCoord4s/4,texCoord4sv/1,texCoordPointer/4,
texEnvf/3,texEnvfv/3,texEnvi/3,texEnviv/3,texGend/3,texGendv/3,texGenf/3,
texGenfv/3,texGeni/3,texGeniv/3,texImage1D/8,texImage2D/9,texParameterf/3,
texParameterfv/3,texParameteri/3,texParameteriv/3,texSubImage1D/7,
texSubImage2D/9,translated/3,translatef/3,vertex2d/2,vertex2dv/1,vertex2f/2,
vertex2fv/1,vertex2i/2,vertex2iv/1,vertex2s/2,vertex2sv/1,vertex3d/3,
vertex3dv/1,vertex3f/3,vertex3fv/1,vertex3i/3,vertex3iv/1,vertex3s/3,
vertex3sv/1,vertex4d/4,vertex4dv/1,vertex4f/4,vertex4fv/1,vertex4i/4,
vertex4iv/1,vertex4s/4,vertex4sv/1,vertexPointer/4,viewport/4,blendColor/4,
blendEquation/1,drawRangeElements/6,texImage3D/10,texSubImage3D/11,
copyTexSubImage3D/9,colorTable/6,colorTableParameterfv/3,colorTableParameteriv/3,
copyColorTable/5,getColorTable/4,getColorTableParameterfv/2,getColorTableParameteriv/2,
colorSubTable/6,copyColorSubTable/5,convolutionFilter1D/6,convolutionFilter2D/7,
convolutionParameterf/3,convolutionParameterfv/3,convolutionParameteri/3,
convolutionParameteriv/3,copyConvolutionFilter1D/5,copyConvolutionFilter2D/6,
getConvolutionFilter/4,getConvolutionParameterfv/2,getConvolutionParameteriv/2,
separableFilter2D/8,getHistogram/5,getHistogramParameterfv/2,getHistogramParameteriv/2,
getMinmax/5,getMinmaxParameterfv/2,getMinmaxParameteriv/2,histogram/4,
minmax/3,resetHistogram/1,resetMinmax/1,activeTexture/1,sampleCoverage/2,
compressedTexImage3D/9,compressedTexImage2D/8,compressedTexImage1D/7,
compressedTexSubImage3D/11,compressedTexSubImage2D/9,compressedTexSubImage1D/7,
getCompressedTexImage/3,clientActiveTexture/1,multiTexCoord1d/2,
multiTexCoord1dv/2,multiTexCoord1f/2,multiTexCoord1fv/2,multiTexCoord1i/2,
multiTexCoord1iv/2,multiTexCoord1s/2,multiTexCoord1sv/2,multiTexCoord2d/3,
multiTexCoord2dv/2,multiTexCoord2f/3,multiTexCoord2fv/2,multiTexCoord2i/3,
multiTexCoord2iv/2,multiTexCoord2s/3,multiTexCoord2sv/2,multiTexCoord3d/4,
multiTexCoord3dv/2,multiTexCoord3f/4,multiTexCoord3fv/2,multiTexCoord3i/4,
multiTexCoord3iv/2,multiTexCoord3s/4,multiTexCoord3sv/2,multiTexCoord4d/5,
multiTexCoord4dv/2,multiTexCoord4f/5,multiTexCoord4fv/2,multiTexCoord4i/5,
multiTexCoord4iv/2,multiTexCoord4s/5,multiTexCoord4sv/2,loadTransposeMatrixf/1,
loadTransposeMatrixd/1,multTransposeMatrixf/1,multTransposeMatrixd/1,
blendFuncSeparate/4,multiDrawArrays/3,pointParameterf/2,pointParameterfv/2,
pointParameteri/2,pointParameteriv/2,fogCoordf/1,fogCoordfv/1,fogCoordd/1,
fogCoorddv/1,fogCoordPointer/3,secondaryColor3b/3,secondaryColor3bv/1,
secondaryColor3d/3,secondaryColor3dv/1,secondaryColor3f/3,secondaryColor3fv/1,
secondaryColor3i/3,secondaryColor3iv/1,secondaryColor3s/3,secondaryColor3sv/1,
secondaryColor3ub/3,secondaryColor3ubv/1,secondaryColor3ui/3,secondaryColor3uiv/1,
secondaryColor3us/3,secondaryColor3usv/1,secondaryColorPointer/4,
windowPos2d/2,windowPos2dv/1,windowPos2f/2,windowPos2fv/1,windowPos2i/2,
windowPos2iv/1,windowPos2s/2,windowPos2sv/1,windowPos3d/3,windowPos3dv/1,
windowPos3f/3,windowPos3fv/1,windowPos3i/3,windowPos3iv/1,windowPos3s/3,
windowPos3sv/1,genQueries/1,deleteQueries/1,isQuery/1,beginQuery/2,
endQuery/1,getQueryiv/2,getQueryObjectiv/2,getQueryObjectuiv/2,bindBuffer/2,
deleteBuffers/1,genBuffers/1,isBuffer/1,bufferData/4,bufferSubData/4,
getBufferSubData/4,getBufferParameteriv/2,blendEquationSeparate/2,
drawBuffers/1,stencilOpSeparate/4,stencilFuncSeparate/4,stencilMaskSeparate/2,
attachShader/2,bindAttribLocation/3,compileShader/1,createProgram/0,
createShader/1,deleteProgram/1,deleteShader/1,detachShader/2,disableVertexAttribArray/1,
enableVertexAttribArray/1,getActiveAttrib/3,getActiveUniform/3,getAttachedShaders/2,
getAttribLocation/2,getProgramiv/2,getProgramInfoLog/2,getShaderiv/2,
getShaderInfoLog/2,getShaderSource/2,getUniformLocation/2,getUniformfv/2,
getUniformiv/2,getVertexAttribdv/2,getVertexAttribfv/2,getVertexAttribiv/2,
isProgram/1,isShader/1,linkProgram/1,shaderSource/2,useProgram/1,uniform1f/2,
uniform2f/3,uniform3f/4,uniform4f/5,uniform1i/2,uniform2i/3,uniform3i/4,
uniform4i/5,uniform1fv/2,uniform2fv/2,uniform3fv/2,uniform4fv/2,uniform1iv/2,
uniform2iv/2,uniform3iv/2,uniform4iv/2,uniformMatrix2fv/3,uniformMatrix3fv/3,
uniformMatrix4fv/3,validateProgram/1,vertexAttrib1d/2,vertexAttrib1dv/2,
vertexAttrib1f/2,vertexAttrib1fv/2,vertexAttrib1s/2,vertexAttrib1sv/2,
vertexAttrib2d/3,vertexAttrib2dv/2,vertexAttrib2f/3,vertexAttrib2fv/2,
vertexAttrib2s/3,vertexAttrib2sv/2,vertexAttrib3d/4,vertexAttrib3dv/2,
vertexAttrib3f/4,vertexAttrib3fv/2,vertexAttrib3s/4,vertexAttrib3sv/2,
vertexAttrib4Nbv/2,vertexAttrib4Niv/2,vertexAttrib4Nsv/2,vertexAttrib4Nub/5,
vertexAttrib4Nubv/2,vertexAttrib4Nuiv/2,vertexAttrib4Nusv/2,vertexAttrib4bv/2,
vertexAttrib4d/5,vertexAttrib4dv/2,vertexAttrib4f/5,vertexAttrib4fv/2,
vertexAttrib4iv/2,vertexAttrib4s/5,vertexAttrib4sv/2,vertexAttrib4ubv/2,
vertexAttrib4uiv/2,vertexAttrib4usv/2,vertexAttribPointer/6,uniformMatrix2x3fv/3,
uniformMatrix3x2fv/3,uniformMatrix2x4fv/3,uniformMatrix4x2fv/3,uniformMatrix3x4fv/3,
uniformMatrix4x3fv/3,colorMaski/5,getBooleani_v/2,getIntegeri_v/2,
enablei/2,disablei/2,isEnabledi/2,beginTransformFeedback/1,endTransformFeedback/0,
bindBufferRange/5,bindBufferBase/3,transformFeedbackVaryings/3,getTransformFeedbackVarying/3,
clampColor/2,beginConditionalRender/2,endConditionalRender/0,vertexAttribIPointer/5,
getVertexAttribIiv/2,getVertexAttribIuiv/2,vertexAttribI1i/2,vertexAttribI2i/3,
vertexAttribI3i/4,vertexAttribI4i/5,vertexAttribI1ui/2,vertexAttribI2ui/3,
vertexAttribI3ui/4,vertexAttribI4ui/5,vertexAttribI1iv/2,vertexAttribI2iv/2,
vertexAttribI3iv/2,vertexAttribI4iv/2,vertexAttribI1uiv/2,vertexAttribI2uiv/2,
vertexAttribI3uiv/2,vertexAttribI4uiv/2,vertexAttribI4bv/2,vertexAttribI4sv/2,
vertexAttribI4ubv/2,vertexAttribI4usv/2,getUniformuiv/2,bindFragDataLocation/3,
getFragDataLocation/2,uniform1ui/2,uniform2ui/3,uniform3ui/4,uniform4ui/5,
uniform1uiv/2,uniform2uiv/2,uniform3uiv/2,uniform4uiv/2,texParameterIiv/3,
texParameterIuiv/3,getTexParameterIiv/2,getTexParameterIuiv/2,clearBufferiv/3,
clearBufferuiv/3,clearBufferfv/3,clearBufferfi/4,getStringi/2,drawArraysInstanced/4,
drawElementsInstanced/5,texBuffer/3,primitiveRestartIndex/1,getInteger64i_v/2,
getBufferParameteri64v/2,framebufferTexture/4,vertexAttribDivisor/2,
minSampleShading/1,blendEquationi/2,blendEquationSeparatei/3,blendFunci/3,
blendFuncSeparatei/5,loadTransposeMatrixfARB/1,loadTransposeMatrixdARB/1,
multTransposeMatrixfARB/1,multTransposeMatrixdARB/1,weightbvARB/1,
weightsvARB/1,weightivARB/1,weightfvARB/1,weightdvARB/1,weightubvARB/1,
weightusvARB/1,weightuivARB/1,vertexBlendARB/1,currentPaletteMatrixARB/1,
matrixIndexubvARB/1,matrixIndexusvARB/1,matrixIndexuivARB/1,programStringARB/3,
bindProgramARB/2,deleteProgramsARB/1,genProgramsARB/1,programEnvParameter4dARB/6,
programEnvParameter4dvARB/3,programEnvParameter4fARB/6,programEnvParameter4fvARB/3,
programLocalParameter4dARB/6,programLocalParameter4dvARB/3,programLocalParameter4fARB/6,
programLocalParameter4fvARB/3,getProgramEnvParameterdvARB/2,getProgramEnvParameterfvARB/2,
getProgramLocalParameterdvARB/2,getProgramLocalParameterfvARB/2,
getProgramStringARB/3,getBufferParameterivARB/2,deleteObjectARB/1,
getHandleARB/1,detachObjectARB/2,createShaderObjectARB/1,shaderSourceARB/2,
compileShaderARB/1,createProgramObjectARB/0,attachObjectARB/2,linkProgramARB/1,
useProgramObjectARB/1,validateProgramARB/1,getObjectParameterfvARB/2,
getObjectParameterivARB/2,getInfoLogARB/2,getAttachedObjectsARB/2,
getUniformLocationARB/2,getActiveUniformARB/3,getUniformfvARB/2,
getUniformivARB/2,getShaderSourceARB/2,bindAttribLocationARB/3,getActiveAttribARB/3,
getAttribLocationARB/2,isRenderbuffer/1,bindRenderbuffer/2,deleteRenderbuffers/1,
genRenderbuffers/1,renderbufferStorage/4,getRenderbufferParameteriv/2,
isFramebuffer/1,bindFramebuffer/2,deleteFramebuffers/1,genFramebuffers/1,
checkFramebufferStatus/1,framebufferTexture1D/5,framebufferTexture2D/5,
framebufferTexture3D/6,framebufferRenderbuffer/4,getFramebufferAttachmentParameteriv/3,
generateMipmap/1,blitFramebuffer/10,renderbufferStorageMultisample/5,
framebufferTextureLayer/5,framebufferTextureFaceARB/5,flushMappedBufferRange/3,
bindVertexArray/1,deleteVertexArrays/1,genVertexArrays/1,isVertexArray/1,
getUniformIndices/2,getActiveUniformsiv/3,getActiveUniformName/3,
getUniformBlockIndex/2,getActiveUniformBlockiv/4,getActiveUniformBlockName/3,
uniformBlockBinding/3,copyBufferSubData/5,drawElementsBaseVertex/5,
drawRangeElementsBaseVertex/7,drawElementsInstancedBaseVertex/6,
provokingVertex/1,fenceSync/2,isSync/1,deleteSync/1,clientWaitSync/3,
waitSync/3,getInteger64v/1,getSynciv/3,texImage2DMultisample/6,texImage3DMultisample/7,
getMultisamplefv/2,sampleMaski/2,namedStringARB/3,deleteNamedStringARB/1,
compileShaderIncludeARB/2,isNamedStringARB/1,getNamedStringARB/2,
getNamedStringivARB/2,bindFragDataLocationIndexed/4,getFragDataIndex/2,
genSamplers/1,deleteSamplers/1,isSampler/1,bindSampler/2,samplerParameteri/3,
samplerParameteriv/3,samplerParameterf/3,samplerParameterfv/3,samplerParameterIiv/3,
samplerParameterIuiv/3,getSamplerParameteriv/2,getSamplerParameterIiv/2,
getSamplerParameterfv/2,getSamplerParameterIuiv/2,queryCounter/2,
getQueryObjecti64v/2,getQueryObjectui64v/2,drawArraysIndirect/2,
drawElementsIndirect/3,uniform1d/2,uniform2d/3,uniform3d/4,uniform4d/5,
uniform1dv/2,uniform2dv/2,uniform3dv/2,uniform4dv/2,uniformMatrix2dv/3,
uniformMatrix3dv/3,uniformMatrix4dv/3,uniformMatrix2x3dv/3,uniformMatrix2x4dv/3,
uniformMatrix3x2dv/3,uniformMatrix3x4dv/3,uniformMatrix4x2dv/3,uniformMatrix4x3dv/3,
getUniformdv/2,getSubroutineUniformLocation/3,getSubroutineIndex/3,
getActiveSubroutineUniformName/4,getActiveSubroutineName/4,uniformSubroutinesuiv/2,
getUniformSubroutineuiv/2,getProgramStageiv/3,patchParameteri/2,
patchParameterfv/2,bindTransformFeedback/2,deleteTransformFeedbacks/1,
genTransformFeedbacks/1,isTransformFeedback/1,pauseTransformFeedback/0,
resumeTransformFeedback/0,drawTransformFeedback/2,drawTransformFeedbackStream/3,
beginQueryIndexed/3,endQueryIndexed/2,getQueryIndexediv/3,releaseShaderCompiler/0,
shaderBinary/3,getShaderPrecisionFormat/2,depthRangef/2,clearDepthf/1,
getProgramBinary/2,programBinary/3,programParameteri/3,useProgramStages/3,
activeShaderProgram/2,createShaderProgramv/2,bindProgramPipeline/1,
deleteProgramPipelines/1,genProgramPipelines/1,isProgramPipeline/1,
getProgramPipelineiv/2,programUniform1i/3,programUniform1iv/3,programUniform1f/3,
programUniform1fv/3,programUniform1d/3,programUniform1dv/3,programUniform1ui/3,
programUniform1uiv/3,programUniform2i/4,programUniform2iv/3,programUniform2f/4,
programUniform2fv/3,programUniform2d/4,programUniform2dv/3,programUniform2ui/4,
programUniform2uiv/3,programUniform3i/5,programUniform3iv/3,programUniform3f/5,
programUniform3fv/3,programUniform3d/5,programUniform3dv/3,programUniform3ui/5,
programUniform3uiv/3,programUniform4i/6,programUniform4iv/3,programUniform4f/6,
programUniform4fv/3,programUniform4d/6,programUniform4dv/3,programUniform4ui/6,
programUniform4uiv/3,programUniformMatrix2fv/4,programUniformMatrix3fv/4,
programUniformMatrix4fv/4,programUniformMatrix2dv/4,programUniformMatrix3dv/4,
programUniformMatrix4dv/4,programUniformMatrix2x3fv/4,programUniformMatrix3x2fv/4,
programUniformMatrix2x4fv/4,programUniformMatrix4x2fv/4,programUniformMatrix3x4fv/4,
programUniformMatrix4x3fv/4,programUniformMatrix2x3dv/4,programUniformMatrix3x2dv/4,
programUniformMatrix2x4dv/4,programUniformMatrix4x2dv/4,programUniformMatrix3x4dv/4,
programUniformMatrix4x3dv/4,validateProgramPipeline/1,getProgramPipelineInfoLog/2,
vertexAttribL1d/2,vertexAttribL2d/3,vertexAttribL3d/4,vertexAttribL4d/5,
vertexAttribL1dv/2,vertexAttribL2dv/2,vertexAttribL3dv/2,vertexAttribL4dv/2,
vertexAttribLPointer/5,getVertexAttribLdv/2,viewportArrayv/2,viewportIndexedf/5,
viewportIndexedfv/2,scissorArrayv/2,scissorIndexed/5,scissorIndexedv/2,
depthRangeArrayv/2,depthRangeIndexed/3,getFloati_v/2,getDoublei_v/2,
debugMessageControlARB/5,debugMessageInsertARB/5,getDebugMessageLogARB/2,
getGraphicsResetStatusARB/0,resizeBuffersMESA/0,windowPos4dMESA/4,
windowPos4dvMESA/1,windowPos4fMESA/4,windowPos4fvMESA/1,windowPos4iMESA/4,
windowPos4ivMESA/1,windowPos4sMESA/4,windowPos4svMESA/1,depthBoundsEXT/2,
stencilClearTagEXT/2]).
-export([call/2, cast/2, send_bin/1]).
%% @hidden
call(Op, Args) ->
Port = get(opengl_port),
_ = erlang:port_control(Port,Op,Args),
rec().
%% @hidden
cast(Op, Args) ->
Port = get(opengl_port),
_ = erlang:port_control(Port,Op,Args),
ok.
%% @hidden
rec() ->
receive
{'_egl_result_', Res} -> Res;
{'_egl_error_', Op, Res} -> error({error,Res,Op})
end.
%% @hidden
send_bin(Bin) when is_binary(Bin) ->
Port = get(opengl_port),
erlang:port_command(Port,Bin);
send_bin(Tuple) when is_tuple(Tuple) ->
Port = get(opengl_port),
case element(2, Tuple) of
Bin when is_binary(Bin) ->
erlang:port_command(Port,Bin)
end.
%% API
%% @spec (Op::enum(),Value::float()) -> ok
%% @doc See external documentation.
-spec accum(enum(),float()) -> ok.
accum(Op,Value) ->
cast(5037, <>).
%% @spec (Func::enum(),Ref::clamp()) -> ok
%% @doc See external documentation.
-spec alphaFunc(enum(),clamp()) -> ok.
alphaFunc(Func,Ref) ->
cast(5038, <>).
%% @spec (Textures::[integer()]) -> {0|1,Residences::[0|1]}
%% @doc See external documentation.
-spec areTexturesResident([integer()]) -> {0|1,[0|1]}.
areTexturesResident(Textures) ->
call(5039, <<(length(Textures)):?GLuint,
(<< <> || C <- Textures>>)/binary,0:(((1+length(Textures)) rem 2)*32)>>).
%% @spec (I::integer()) -> ok
%% @doc See external documentation.
-spec arrayElement(integer()) -> ok.
arrayElement(I) ->
cast(5040, <>).
%% @spec (Mode::enum()) -> ok
%% @doc See external documentation.
-spec 'begin'(enum()) -> ok.
'begin'(Mode) ->
cast(5041, <>).
%% @spec (Target::enum(),Texture::integer()) -> ok
%% @doc See external documentation.
-spec bindTexture(enum(),integer()) -> ok.
bindTexture(Target,Texture) ->
cast(5042, <>).
%% @spec (Width::integer(),Height::integer(),Xorig::float(),Yorig::float(),Xmove::float(),Ymove::float(),Bitmap::offset()|mem()) -> ok
%% @doc See external documentation.
-spec bitmap(integer(),integer(),float(),float(),float(),float(),offset()|mem()) -> ok.
bitmap(Width,Height,Xorig,Yorig,Xmove,Ymove,Bitmap) when is_integer(Bitmap) ->
cast(5043, <>);
bitmap(Width,Height,Xorig,Yorig,Xmove,Ymove,Bitmap) ->
send_bin(Bitmap),
cast(5044, <>).
%% @spec (Sfactor::enum(),Dfactor::enum()) -> ok
%% @doc See external documentation.
-spec blendFunc(enum(),enum()) -> ok.
blendFunc(Sfactor,Dfactor) ->
cast(5045, <>).
%% @spec (List::integer()) -> ok
%% @doc See external documentation.
-spec callList(integer()) -> ok.
callList(List) ->
cast(5046, <>).
%% @spec (Lists::[integer()]) -> ok
%% @doc See external documentation.
-spec callLists([integer()]) -> ok.
callLists(Lists) ->
cast(5047, <<(length(Lists)):?GLuint,
(<< <> || C <- Lists>>)/binary,0:(((1+length(Lists)) rem 2)*32)>>).
%% @spec (Mask::integer()) -> ok
%% @doc See external documentation.
-spec clear(integer()) -> ok.
clear(Mask) ->
cast(5048, <>).
%% @spec (Red::float(),Green::float(),Blue::float(),Alpha::float()) -> ok
%% @doc See external documentation.
-spec clearAccum(float(),float(),float(),float()) -> ok.
clearAccum(Red,Green,Blue,Alpha) ->
cast(5049, <>).
%% @spec (Red::clamp(),Green::clamp(),Blue::clamp(),Alpha::clamp()) -> ok
%% @doc See external documentation.
-spec clearColor(clamp(),clamp(),clamp(),clamp()) -> ok.
clearColor(Red,Green,Blue,Alpha) ->
cast(5050, <>).
%% @spec (Depth::clamp()) -> ok
%% @doc See external documentation.
-spec clearDepth(clamp()) -> ok.
clearDepth(Depth) ->
cast(5051, <>).
%% @spec (C::float()) -> ok
%% @doc See external documentation.
-spec clearIndex(float()) -> ok.
clearIndex(C) ->
cast(5052, <>).
%% @spec (S::integer()) -> ok
%% @doc See external documentation.
-spec clearStencil(integer()) -> ok.
clearStencil(S) ->
cast(5053, <>).
%% @spec (Plane::enum(),Equation::{float(),float(),float(),float()}) -> ok
%% @doc See external documentation.
-spec clipPlane(enum(),{float(),float(),float(),float()}) -> ok.
clipPlane(Plane,{E1,E2,E3,E4}) ->
cast(5054, <>).
%% @spec (Red::integer(),Green::integer(),Blue::integer()) -> ok
%% @doc See external documentation.
-spec color3b(integer(),integer(),integer()) -> ok.
color3b(Red,Green,Blue) ->
cast(5055, <>).
%% @spec ({Red,Green,Blue}) -> ok
%% @equiv color3b(Red,Green,Blue)
-spec color3bv({integer(),integer(),integer()}) -> ok.
color3bv({Red,Green,Blue}) -> color3b(Red,Green,Blue).
%% @spec (Red::float(),Green::float(),Blue::float()) -> ok
%% @doc See external documentation.
-spec color3d(float(),float(),float()) -> ok.
color3d(Red,Green,Blue) ->
cast(5056, <>).
%% @spec ({Red,Green,Blue}) -> ok
%% @equiv color3d(Red,Green,Blue)
-spec color3dv({float(),float(),float()}) -> ok.
color3dv({Red,Green,Blue}) -> color3d(Red,Green,Blue).
%% @spec (Red::float(),Green::float(),Blue::float()) -> ok
%% @doc See external documentation.
-spec color3f(float(),float(),float()) -> ok.
color3f(Red,Green,Blue) ->
cast(5057, <>).
%% @spec ({Red,Green,Blue}) -> ok
%% @equiv color3f(Red,Green,Blue)
-spec color3fv({float(),float(),float()}) -> ok.
color3fv({Red,Green,Blue}) -> color3f(Red,Green,Blue).
%% @spec (Red::integer(),Green::integer(),Blue::integer()) -> ok
%% @doc See external documentation.
-spec color3i(integer(),integer(),integer()) -> ok.
color3i(Red,Green,Blue) ->
cast(5058, <>).
%% @spec ({Red,Green,Blue}) -> ok
%% @equiv color3i(Red,Green,Blue)
-spec color3iv({integer(),integer(),integer()}) -> ok.
color3iv({Red,Green,Blue}) -> color3i(Red,Green,Blue).
%% @spec (Red::integer(),Green::integer(),Blue::integer()) -> ok
%% @doc See external documentation.
-spec color3s(integer(),integer(),integer()) -> ok.
color3s(Red,Green,Blue) ->
cast(5059, <>).
%% @spec ({Red,Green,Blue}) -> ok
%% @equiv color3s(Red,Green,Blue)
-spec color3sv({integer(),integer(),integer()}) -> ok.
color3sv({Red,Green,Blue}) -> color3s(Red,Green,Blue).
%% @spec (Red::integer(),Green::integer(),Blue::integer()) -> ok
%% @doc See external documentation.
-spec color3ub(integer(),integer(),integer()) -> ok.
color3ub(Red,Green,Blue) ->
cast(5060, <>).
%% @spec ({Red,Green,Blue}) -> ok
%% @equiv color3ub(Red,Green,Blue)
-spec color3ubv({integer(),integer(),integer()}) -> ok.
color3ubv({Red,Green,Blue}) -> color3ub(Red,Green,Blue).
%% @spec (Red::integer(),Green::integer(),Blue::integer()) -> ok
%% @doc See external documentation.
-spec color3ui(integer(),integer(),integer()) -> ok.
color3ui(Red,Green,Blue) ->
cast(5061, <>).
%% @spec ({Red,Green,Blue}) -> ok
%% @equiv color3ui(Red,Green,Blue)
-spec color3uiv({integer(),integer(),integer()}) -> ok.
color3uiv({Red,Green,Blue}) -> color3ui(Red,Green,Blue).
%% @spec (Red::integer(),Green::integer(),Blue::integer()) -> ok
%% @doc See external documentation.
-spec color3us(integer(),integer(),integer()) -> ok.
color3us(Red,Green,Blue) ->
cast(5062, <>).
%% @spec ({Red,Green,Blue}) -> ok
%% @equiv color3us(Red,Green,Blue)
-spec color3usv({integer(),integer(),integer()}) -> ok.
color3usv({Red,Green,Blue}) -> color3us(Red,Green,Blue).
%% @spec (Red::integer(),Green::integer(),Blue::integer(),Alpha::integer()) -> ok
%% @doc See external documentation.
-spec color4b(integer(),integer(),integer(),integer()) -> ok.
color4b(Red,Green,Blue,Alpha) ->
cast(5063, <>).
%% @spec ({Red,Green,Blue,Alpha}) -> ok
%% @equiv color4b(Red,Green,Blue,Alpha)
-spec color4bv({integer(),integer(),integer(),integer()}) -> ok.
color4bv({Red,Green,Blue,Alpha}) -> color4b(Red,Green,Blue,Alpha).
%% @spec (Red::float(),Green::float(),Blue::float(),Alpha::float()) -> ok
%% @doc See external documentation.
-spec color4d(float(),float(),float(),float()) -> ok.
color4d(Red,Green,Blue,Alpha) ->
cast(5064, <>).
%% @spec ({Red,Green,Blue,Alpha}) -> ok
%% @equiv color4d(Red,Green,Blue,Alpha)
-spec color4dv({float(),float(),float(),float()}) -> ok.
color4dv({Red,Green,Blue,Alpha}) -> color4d(Red,Green,Blue,Alpha).
%% @spec (Red::float(),Green::float(),Blue::float(),Alpha::float()) -> ok
%% @doc See external documentation.
-spec color4f(float(),float(),float(),float()) -> ok.
color4f(Red,Green,Blue,Alpha) ->
cast(5065, <>).
%% @spec ({Red,Green,Blue,Alpha}) -> ok
%% @equiv color4f(Red,Green,Blue,Alpha)
-spec color4fv({float(),float(),float(),float()}) -> ok.
color4fv({Red,Green,Blue,Alpha}) -> color4f(Red,Green,Blue,Alpha).
%% @spec (Red::integer(),Green::integer(),Blue::integer(),Alpha::integer()) -> ok
%% @doc See external documentation.
-spec color4i(integer(),integer(),integer(),integer()) -> ok.
color4i(Red,Green,Blue,Alpha) ->
cast(5066, <>).
%% @spec ({Red,Green,Blue,Alpha}) -> ok
%% @equiv color4i(Red,Green,Blue,Alpha)
-spec color4iv({integer(),integer(),integer(),integer()}) -> ok.
color4iv({Red,Green,Blue,Alpha}) -> color4i(Red,Green,Blue,Alpha).
%% @spec (Red::integer(),Green::integer(),Blue::integer(),Alpha::integer()) -> ok
%% @doc See external documentation.
-spec color4s(integer(),integer(),integer(),integer()) -> ok.
color4s(Red,Green,Blue,Alpha) ->
cast(5067, <>).
%% @spec ({Red,Green,Blue,Alpha}) -> ok
%% @equiv color4s(Red,Green,Blue,Alpha)
-spec color4sv({integer(),integer(),integer(),integer()}) -> ok.
color4sv({Red,Green,Blue,Alpha}) -> color4s(Red,Green,Blue,Alpha).
%% @spec (Red::integer(),Green::integer(),Blue::integer(),Alpha::integer()) -> ok
%% @doc See external documentation.
-spec color4ub(integer(),integer(),integer(),integer()) -> ok.
color4ub(Red,Green,Blue,Alpha) ->
cast(5068, <>).
%% @spec ({Red,Green,Blue,Alpha}) -> ok
%% @equiv color4ub(Red,Green,Blue,Alpha)
-spec color4ubv({integer(),integer(),integer(),integer()}) -> ok.
color4ubv({Red,Green,Blue,Alpha}) -> color4ub(Red,Green,Blue,Alpha).
%% @spec (Red::integer(),Green::integer(),Blue::integer(),Alpha::integer()) -> ok
%% @doc See external documentation.
-spec color4ui(integer(),integer(),integer(),integer()) -> ok.
color4ui(Red,Green,Blue,Alpha) ->
cast(5069, <>).
%% @spec ({Red,Green,Blue,Alpha}) -> ok
%% @equiv color4ui(Red,Green,Blue,Alpha)
-spec color4uiv({integer(),integer(),integer(),integer()}) -> ok.
color4uiv({Red,Green,Blue,Alpha}) -> color4ui(Red,Green,Blue,Alpha).
%% @spec (Red::integer(),Green::integer(),Blue::integer(),Alpha::integer()) -> ok
%% @doc See external documentation.
-spec color4us(integer(),integer(),integer(),integer()) -> ok.
color4us(Red,Green,Blue,Alpha) ->
cast(5070, <>).
%% @spec ({Red,Green,Blue,Alpha}) -> ok
%% @equiv color4us(Red,Green,Blue,Alpha)
-spec color4usv({integer(),integer(),integer(),integer()}) -> ok.
color4usv({Red,Green,Blue,Alpha}) -> color4us(Red,Green,Blue,Alpha).
%% @spec (Red::0|1,Green::0|1,Blue::0|1,Alpha::0|1) -> ok
%% @doc See external documentation.
-spec colorMask(0|1,0|1,0|1,0|1) -> ok.
colorMask(Red,Green,Blue,Alpha) ->
cast(5071, <>).
%% @spec (Face::enum(),Mode::enum()) -> ok
%% @doc See external documentation.
-spec colorMaterial(enum(),enum()) -> ok.
colorMaterial(Face,Mode) ->
cast(5072, <>).
%% @spec (Size::integer(),Type::enum(),Stride::integer(),Pointer::offset()|mem()) -> ok
%% @doc See external documentation.
-spec colorPointer(integer(),enum(),integer(),offset()|mem()) -> ok.
colorPointer(Size,Type,Stride,Pointer) when is_integer(Pointer) ->
cast(5073, <>);
colorPointer(Size,Type,Stride,Pointer) ->
send_bin(Pointer),
cast(5074, <>).
%% @spec (X::integer(),Y::integer(),Width::integer(),Height::integer(),Type::enum()) -> ok
%% @doc See external documentation.
-spec copyPixels(integer(),integer(),integer(),integer(),enum()) -> ok.
copyPixels(X,Y,Width,Height,Type) ->
cast(5075, <>).
%% @spec (Target::enum(),Level::integer(),InternalFormat::enum(),X::integer(),Y::integer(),Width::integer(),Border::integer()) -> ok
%% @doc See external documentation.
-spec copyTexImage1D(enum(),integer(),enum(),integer(),integer(),integer(),integer()) -> ok.
copyTexImage1D(Target,Level,InternalFormat,X,Y,Width,Border) ->
cast(5076, <>).
%% @spec (Target::enum(),Level::integer(),InternalFormat::enum(),X::integer(),Y::integer(),Width::integer(),Height::integer(),Border::integer()) -> ok
%% @doc See external documentation.
-spec copyTexImage2D(enum(),integer(),enum(),integer(),integer(),integer(),integer(),integer()) -> ok.
copyTexImage2D(Target,Level,InternalFormat,X,Y,Width,Height,Border) ->
cast(5077, <>).
%% @spec (Target::enum(),Level::integer(),Xoffset::integer(),X::integer(),Y::integer(),Width::integer()) -> ok
%% @doc See external documentation.
-spec copyTexSubImage1D(enum(),integer(),integer(),integer(),integer(),integer()) -> ok.
copyTexSubImage1D(Target,Level,Xoffset,X,Y,Width) ->
cast(5078, <>).
%% @spec (Target::enum(),Level::integer(),Xoffset::integer(),Yoffset::integer(),X::integer(),Y::integer(),Width::integer(),Height::integer()) -> ok
%% @doc See external documentation.
-spec copyTexSubImage2D(enum(),integer(),integer(),integer(),integer(),integer(),integer(),integer()) -> ok.
copyTexSubImage2D(Target,Level,Xoffset,Yoffset,X,Y,Width,Height) ->
cast(5079, <>).
%% @spec (Mode::enum()) -> ok
%% @doc See external documentation.
-spec cullFace(enum()) -> ok.
cullFace(Mode) ->
cast(5080, <>).
%% @spec (List::integer(),Range::integer()) -> ok
%% @doc See external documentation.
-spec deleteLists(integer(),integer()) -> ok.
deleteLists(List,Range) ->
cast(5081, <>).
%% @spec (Textures::[integer()]) -> ok
%% @doc See external documentation.
-spec deleteTextures([integer()]) -> ok.
deleteTextures(Textures) ->
cast(5082, <<(length(Textures)):?GLuint,
(<< <> || C <- Textures>>)/binary,0:(((1+length(Textures)) rem 2)*32)>>).
%% @spec (Func::enum()) -> ok
%% @doc See external documentation.
-spec depthFunc(enum()) -> ok.
depthFunc(Func) ->
cast(5083, <>).
%% @spec (Flag::0|1) -> ok
%% @doc See external documentation.
-spec depthMask(0|1) -> ok.
depthMask(Flag) ->
cast(5084, <>).
%% @spec (ZNear::clamp(),ZFar::clamp()) -> ok
%% @doc See external documentation.
-spec depthRange(clamp(),clamp()) -> ok.
depthRange(ZNear,ZFar) ->
cast(5085, <>).
%% @spec (Cap::enum()) -> ok
%% @doc See external documentation.
-spec disable(enum()) -> ok.
disable(Cap) ->
cast(5086, <>).
%% @spec (Array::enum()) -> ok
%% @doc See external documentation.
-spec disableClientState(enum()) -> ok.
disableClientState(Array) ->
cast(5087, <>).
%% @spec (Mode::enum(),First::integer(),Count::integer()) -> ok
%% @doc See external documentation.
-spec drawArrays(enum(),integer(),integer()) -> ok.
drawArrays(Mode,First,Count) ->
cast(5088, <>).
%% @spec (Mode::enum()) -> ok
%% @doc See external documentation.
-spec drawBuffer(enum()) -> ok.
drawBuffer(Mode) ->
cast(5089, <>).
%% @spec (Mode::enum(),Count::integer(),Type::enum(),Indices::offset()|mem()) -> ok
%% @doc See external documentation.
-spec drawElements(enum(),integer(),enum(),offset()|mem()) -> ok.
drawElements(Mode,Count,Type,Indices) when is_integer(Indices) ->
cast(5090, <>);
drawElements(Mode,Count,Type,Indices) ->
send_bin(Indices),
cast(5091, <>).
%% @spec (Width::integer(),Height::integer(),Format::enum(),Type::enum(),Pixels::offset()|mem()) -> ok
%% @doc See external documentation.
-spec drawPixels(integer(),integer(),enum(),enum(),offset()|mem()) -> ok.
drawPixels(Width,Height,Format,Type,Pixels) when is_integer(Pixels) ->
cast(5092, <>);
drawPixels(Width,Height,Format,Type,Pixels) ->
send_bin(Pixels),
cast(5093, <>).
%% @spec (Flag::0|1) -> ok
%% @doc See external documentation.
-spec edgeFlag(0|1) -> ok.
edgeFlag(Flag) ->
cast(5094, <>).
%% @spec (Stride::integer(),Pointer::offset()|mem()) -> ok
%% @doc See external documentation.
-spec edgeFlagPointer(integer(),offset()|mem()) -> ok.
edgeFlagPointer(Stride,Pointer) when is_integer(Pointer) ->
cast(5095, <>);
edgeFlagPointer(Stride,Pointer) ->
send_bin(Pointer),
cast(5096, <>).
%% @spec ({Flag}) -> ok
%% @equiv edgeFlag(Flag)
-spec edgeFlagv({0|1}) -> ok.
edgeFlagv({Flag}) -> edgeFlag(Flag).
%% @spec (Cap::enum()) -> ok
%% @doc See external documentation.
-spec enable(enum()) -> ok.
enable(Cap) ->
cast(5097, <>).
%% @spec (Array::enum()) -> ok
%% @doc See external documentation.
-spec enableClientState(enum()) -> ok.
enableClientState(Array) ->
cast(5098, <>).
%% @spec () -> ok
%% @doc See external documentation.
-spec 'end'() -> ok.
'end'() ->
cast(5099, <<>>).
%% @spec () -> ok
%% @doc See external documentation.
-spec endList() -> ok.
endList() ->
cast(5100, <<>>).
%% @spec (U::float()) -> ok
%% @doc See external documentation.
-spec evalCoord1d(float()) -> ok.
evalCoord1d(U) ->
cast(5101, <>).
%% @spec ({U}) -> ok
%% @equiv evalCoord1d(U)
-spec evalCoord1dv({float()}) -> ok.
evalCoord1dv({U}) -> evalCoord1d(U).
%% @spec (U::float()) -> ok
%% @doc See external documentation.
-spec evalCoord1f(float()) -> ok.
evalCoord1f(U) ->
cast(5102, <>).
%% @spec ({U}) -> ok
%% @equiv evalCoord1f(U)
-spec evalCoord1fv({float()}) -> ok.
evalCoord1fv({U}) -> evalCoord1f(U).
%% @spec (U::float(),V::float()) -> ok
%% @doc See external documentation.
-spec evalCoord2d(float(),float()) -> ok.
evalCoord2d(U,V) ->
cast(5103, <>).
%% @spec ({U,V}) -> ok
%% @equiv evalCoord2d(U,V)
-spec evalCoord2dv({float(),float()}) -> ok.
evalCoord2dv({U,V}) -> evalCoord2d(U,V).
%% @spec (U::float(),V::float()) -> ok
%% @doc See external documentation.
-spec evalCoord2f(float(),float()) -> ok.
evalCoord2f(U,V) ->
cast(5104, <>).
%% @spec ({U,V}) -> ok
%% @equiv evalCoord2f(U,V)
-spec evalCoord2fv({float(),float()}) -> ok.
evalCoord2fv({U,V}) -> evalCoord2f(U,V).
%% @spec (Mode::enum(),I1::integer(),I2::integer()) -> ok
%% @doc See external documentation.
-spec evalMesh1(enum(),integer(),integer()) -> ok.
evalMesh1(Mode,I1,I2) ->
cast(5105, <>).
%% @spec (Mode::enum(),I1::integer(),I2::integer(),J1::integer(),J2::integer()) -> ok
%% @doc See external documentation.
-spec evalMesh2(enum(),integer(),integer(),integer(),integer()) -> ok.
evalMesh2(Mode,I1,I2,J1,J2) ->
cast(5106, <>).
%% @spec (I::integer()) -> ok
%% @doc See external documentation.
-spec evalPoint1(integer()) -> ok.
evalPoint1(I) ->
cast(5107, <>).
%% @spec (I::integer(),J::integer()) -> ok
%% @doc See external documentation.
-spec evalPoint2(integer(),integer()) -> ok.
evalPoint2(I,J) ->
cast(5108, <>).
%% @spec (Size::integer(),Type::enum(),Buffer::mem()) -> ok
%% @doc See external documentation.
-spec feedbackBuffer(integer(),enum(),mem()) -> ok.
feedbackBuffer(Size,Type,Buffer) ->
send_bin(Buffer),
call(5109, <>).
%% @spec () -> ok
%% @doc See external documentation.
-spec finish() -> ok.
finish() ->
cast(5110, <<>>).
%% @spec () -> ok
%% @doc See external documentation.
-spec flush() -> ok.
flush() ->
cast(5111, <<>>).
%% @spec (Pname::enum(),Param::float()) -> ok
%% @doc See external documentation.
-spec fogf(enum(),float()) -> ok.
fogf(Pname,Param) ->
cast(5112, <>).
%% @spec (Pname::enum(),Params::{float()}) -> ok
%% @doc See external documentation.
-spec fogfv(enum(),{float()}) -> ok.
fogfv(Pname,Params) ->
cast(5113, <> ||C <- tuple_to_list(Params)>>)/binary,0:(((0+size(Params)) rem 2)*32)>>).
%% @spec (Pname::enum(),Param::integer()) -> ok
%% @doc See external documentation.
-spec fogi(enum(),integer()) -> ok.
fogi(Pname,Param) ->
cast(5114, <>).
%% @spec (Pname::enum(),Params::{integer()}) -> ok
%% @doc See external documentation.
-spec fogiv(enum(),{integer()}) -> ok.
fogiv(Pname,Params) ->
cast(5115, <> ||C <- tuple_to_list(Params)>>)/binary,0:(((0+size(Params)) rem 2)*32)>>).
%% @spec (Mode::enum()) -> ok
%% @doc See external documentation.
-spec frontFace(enum()) -> ok.
frontFace(Mode) ->
cast(5116, <>).
%% @spec (Left::float(),Right::float(),Bottom::float(),Top::float(),ZNear::float(),ZFar::float()) -> ok
%% @doc See external documentation.
-spec frustum(float(),float(),float(),float(),float(),float()) -> ok.
frustum(Left,Right,Bottom,Top,ZNear,ZFar) ->
cast(5117, <>).
%% @spec (Range::integer()) -> integer()
%% @doc See external documentation.
-spec genLists(integer()) -> integer().
genLists(Range) ->
call(5118, <>).
%% @spec (N::integer()) -> [integer()]
%% @doc See external documentation.
-spec genTextures(integer()) -> [integer()].
genTextures(N) ->
call(5119, <>).
%% @spec (Pname::enum()) -> [0|1]
%% @doc See external documentation.
-spec getBooleanv(enum()) -> [0|1].
getBooleanv(Pname) ->
call(5120, <>).
%% @spec (Plane::enum()) -> {float(),float(),float(),float()}
%% @doc See external documentation.
-spec getClipPlane(enum()) -> {float(),float(),float(),float()}.
getClipPlane(Plane) ->
call(5121, <>).
%% @spec (Pname::enum()) -> [float()]
%% @doc See external documentation.
-spec getDoublev(enum()) -> [float()].
getDoublev(Pname) ->
call(5122, <>).
%% @spec () -> enum()
%% @doc See external documentation.
-spec getError() -> enum().
getError() ->
call(5123, <<>>).
%% @spec (Pname::enum()) -> [float()]
%% @doc See external documentation.
-spec getFloatv(enum()) -> [float()].
getFloatv(Pname) ->
call(5124, <>).
%% @spec (Pname::enum()) -> [integer()]
%% @doc See external documentation.
-spec getIntegerv(enum()) -> [integer()].
getIntegerv(Pname) ->
call(5125, <>).
%% @spec (Light::enum(),Pname::enum()) -> {float(),float(),float(),float()}
%% @doc See external documentation.
-spec getLightfv(enum(),enum()) -> {float(),float(),float(),float()}.
getLightfv(Light,Pname) ->
call(5126, <>).
%% @spec (Light::enum(),Pname::enum()) -> {integer(),integer(),integer(),integer()}
%% @doc See external documentation.
-spec getLightiv(enum(),enum()) -> {integer(),integer(),integer(),integer()}.
getLightiv(Light,Pname) ->
call(5127, <>).
%% @spec (Target::enum(),Query::enum(),V::mem()) -> ok
%% @doc See external documentation.
-spec getMapdv(enum(),enum(),mem()) -> ok.
getMapdv(Target,Query,V) ->
send_bin(V),
call(5128, <>).
%% @spec (Target::enum(),Query::enum(),V::mem()) -> ok
%% @doc See external documentation.
-spec getMapfv(enum(),enum(),mem()) -> ok.
getMapfv(Target,Query,V) ->
send_bin(V),
call(5129, <>).
%% @spec (Target::enum(),Query::enum(),V::mem()) -> ok
%% @doc See external documentation.
-spec getMapiv(enum(),enum(),mem()) -> ok.
getMapiv(Target,Query,V) ->
send_bin(V),
call(5130, <>).
%% @spec (Face::enum(),Pname::enum()) -> {float(),float(),float(),float()}
%% @doc See external documentation.
-spec getMaterialfv(enum(),enum()) -> {float(),float(),float(),float()}.
getMaterialfv(Face,Pname) ->
call(5131, <>).
%% @spec (Face::enum(),Pname::enum()) -> {integer(),integer(),integer(),integer()}
%% @doc See external documentation.
-spec getMaterialiv(enum(),enum()) -> {integer(),integer(),integer(),integer()}.
getMaterialiv(Face,Pname) ->
call(5132, <>).
%% @spec (Map::enum(),Values::mem()) -> ok
%% @doc See external documentation.
-spec getPixelMapfv(enum(),mem()) -> ok.
getPixelMapfv(Map,Values) ->
send_bin(Values),
call(5133, <>).
%% @spec (Map::enum(),Values::mem()) -> ok
%% @doc See external documentation.
-spec getPixelMapuiv(enum(),mem()) -> ok.
getPixelMapuiv(Map,Values) ->
send_bin(Values),
call(5134, <>).
%% @spec (Map::enum(),Values::mem()) -> ok
%% @doc See external documentation.
-spec getPixelMapusv(enum(),mem()) -> ok.
getPixelMapusv(Map,Values) ->
send_bin(Values),
call(5135, <>).
%% @spec () -> binary()
%% @doc See external documentation.
-spec getPolygonStipple() -> binary().
getPolygonStipple() ->
call(5136, <<>>).
%% @spec (Name::enum()) -> string()
%% @doc See external documentation.
-spec getString(enum()) -> string().
getString(Name) ->
call(5137, <>).
%% @spec (Target::enum(),Pname::enum()) -> {float(),float(),float(),float()}
%% @doc See external documentation.
-spec getTexEnvfv(enum(),enum()) -> {float(),float(),float(),float()}.
getTexEnvfv(Target,Pname) ->
call(5138, <>).
%% @spec (Target::enum(),Pname::enum()) -> {integer(),integer(),integer(),integer()}
%% @doc See external documentation.
-spec getTexEnviv(enum(),enum()) -> {integer(),integer(),integer(),integer()}.
getTexEnviv(Target,Pname) ->
call(5139, <>).
%% @spec (Coord::enum(),Pname::enum()) -> {float(),float(),float(),float()}
%% @doc See external documentation.
-spec getTexGendv(enum(),enum()) -> {float(),float(),float(),float()}.
getTexGendv(Coord,Pname) ->
call(5140, <>).
%% @spec (Coord::enum(),Pname::enum()) -> {float(),float(),float(),float()}
%% @doc See external documentation.
-spec getTexGenfv(enum(),enum()) -> {float(),float(),float(),float()}.
getTexGenfv(Coord,Pname) ->
call(5141, <>).
%% @spec (Coord::enum(),Pname::enum()) -> {integer(),integer(),integer(),integer()}
%% @doc See external documentation.
-spec getTexGeniv(enum(),enum()) -> {integer(),integer(),integer(),integer()}.
getTexGeniv(Coord,Pname) ->
call(5142, <>).
%% @spec (Target::enum(),Level::integer(),Format::enum(),Type::enum(),Pixels::mem()) -> ok
%% @doc See external documentation.
-spec getTexImage(enum(),integer(),enum(),enum(),mem()) -> ok.
getTexImage(Target,Level,Format,Type,Pixels) ->
send_bin(Pixels),
call(5143, <>).
%% @spec (Target::enum(),Level::integer(),Pname::enum()) -> {float()}
%% @doc See external documentation.
-spec getTexLevelParameterfv(enum(),integer(),enum()) -> {float()}.
getTexLevelParameterfv(Target,Level,Pname) ->
call(5144, <>).
%% @spec (Target::enum(),Level::integer(),Pname::enum()) -> {integer()}
%% @doc See external documentation.
-spec getTexLevelParameteriv(enum(),integer(),enum()) -> {integer()}.
getTexLevelParameteriv(Target,Level,Pname) ->
call(5145, <>).
%% @spec (Target::enum(),Pname::enum()) -> {float(),float(),float(),float()}
%% @doc See external documentation.
-spec getTexParameterfv(enum(),enum()) -> {float(),float(),float(),float()}.
getTexParameterfv(Target,Pname) ->
call(5146, <>).
%% @spec (Target::enum(),Pname::enum()) -> {integer(),integer(),integer(),integer()}
%% @doc See external documentation.
-spec getTexParameteriv(enum(),enum()) -> {integer(),integer(),integer(),integer()}.
getTexParameteriv(Target,Pname) ->
call(5147, <>).
%% @spec (Target::enum(),Mode::enum()) -> ok
%% @doc See external documentation.
-spec hint(enum(),enum()) -> ok.
hint(Target,Mode) ->
cast(5148, <>).
%% @spec (Mask::integer()) -> ok
%% @doc See external documentation.
-spec indexMask(integer()) -> ok.
indexMask(Mask) ->
cast(5149, <>).
%% @spec (Type::enum(),Stride::integer(),Pointer::offset()|mem()) -> ok
%% @doc See external documentation.
-spec indexPointer(enum(),integer(),offset()|mem()) -> ok.
indexPointer(Type,Stride,Pointer) when is_integer(Pointer) ->
cast(5150, <>);
indexPointer(Type,Stride,Pointer) ->
send_bin(Pointer),
cast(5151, <>).
%% @spec (C::float()) -> ok
%% @doc See external documentation.
-spec indexd(float()) -> ok.
indexd(C) ->
cast(5152, <>).
%% @spec ({C}) -> ok
%% @equiv indexd(C)
-spec indexdv({float()}) -> ok.
indexdv({C}) -> indexd(C).
%% @spec (C::float()) -> ok
%% @doc See external documentation.
-spec indexf(float()) -> ok.
indexf(C) ->
cast(5153, <>).
%% @spec ({C}) -> ok
%% @equiv indexf(C)
-spec indexfv({float()}) -> ok.
indexfv({C}) -> indexf(C).
%% @spec (C::integer()) -> ok
%% @doc See external documentation.
-spec indexi(integer()) -> ok.
indexi(C) ->
cast(5154, <>).
%% @spec ({C}) -> ok
%% @equiv indexi(C)
-spec indexiv({integer()}) -> ok.
indexiv({C}) -> indexi(C).
%% @spec (C::integer()) -> ok
%% @doc See external documentation.
-spec indexs(integer()) -> ok.
indexs(C) ->
cast(5155, <>).
%% @spec ({C}) -> ok
%% @equiv indexs(C)
-spec indexsv({integer()}) -> ok.
indexsv({C}) -> indexs(C).
%% @spec (C::integer()) -> ok
%% @doc See external documentation.
-spec indexub(integer()) -> ok.
indexub(C) ->
cast(5156, <>).
%% @spec ({C}) -> ok
%% @equiv indexub(C)
-spec indexubv({integer()}) -> ok.
indexubv({C}) -> indexub(C).
%% @spec () -> ok
%% @doc See external documentation.
-spec initNames() -> ok.
initNames() ->
cast(5157, <<>>).
%% @spec (Format::enum(),Stride::integer(),Pointer::offset()|mem()) -> ok
%% @doc See external documentation.
-spec interleavedArrays(enum(),integer(),offset()|mem()) -> ok.
interleavedArrays(Format,Stride,Pointer) when is_integer(Pointer) ->
cast(5158, <>);
interleavedArrays(Format,Stride,Pointer) ->
send_bin(Pointer),
cast(5159, <>).
%% @spec (Cap::enum()) -> 0|1
%% @doc See external documentation.
-spec isEnabled(enum()) -> 0|1.
isEnabled(Cap) ->
call(5160, <>).
%% @spec (List::integer()) -> 0|1
%% @doc See external documentation.
-spec isList(integer()) -> 0|1.
isList(List) ->
call(5161, <>).
%% @spec (Texture::integer()) -> 0|1
%% @doc See external documentation.
-spec isTexture(integer()) -> 0|1.
isTexture(Texture) ->
call(5162, <>).
%% @spec (Pname::enum(),Param::float()) -> ok
%% @doc See external documentation.
-spec lightModelf(enum(),float()) -> ok.
lightModelf(Pname,Param) ->
cast(5163, <>).
%% @spec (Pname::enum(),Params::{float()}) -> ok
%% @doc See external documentation.
-spec lightModelfv(enum(),{float()}) -> ok.
lightModelfv(Pname,Params) ->
cast(5164, <> ||C <- tuple_to_list(Params)>>)/binary,0:(((0+size(Params)) rem 2)*32)>>).
%% @spec (Pname::enum(),Param::integer()) -> ok
%% @doc See external documentation.
-spec lightModeli(enum(),integer()) -> ok.
lightModeli(Pname,Param) ->
cast(5165, <>).
%% @spec (Pname::enum(),Params::{integer()}) -> ok
%% @doc See external documentation.
-spec lightModeliv(enum(),{integer()}) -> ok.
lightModeliv(Pname,Params) ->
cast(5166, <> ||C <- tuple_to_list(Params)>>)/binary,0:(((0+size(Params)) rem 2)*32)>>).
%% @spec (Light::enum(),Pname::enum(),Param::float()) -> ok
%% @doc See external documentation.
-spec lightf(enum(),enum(),float()) -> ok.
lightf(Light,Pname,Param) ->
cast(5167, <>).
%% @spec (Light::enum(),Pname::enum(),Params::{float()}) -> ok
%% @doc See external documentation.
-spec lightfv(enum(),enum(),{float()}) -> ok.
lightfv(Light,Pname,Params) ->
cast(5168, <> ||C <- tuple_to_list(Params)>>)/binary,0:(((1+size(Params)) rem 2)*32)>>).
%% @spec (Light::enum(),Pname::enum(),Param::integer()) -> ok
%% @doc See external documentation.
-spec lighti(enum(),enum(),integer()) -> ok.
lighti(Light,Pname,Param) ->
cast(5169, <>).
%% @spec (Light::enum(),Pname::enum(),Params::{integer()}) -> ok
%% @doc See external documentation.
-spec lightiv(enum(),enum(),{integer()}) -> ok.
lightiv(Light,Pname,Params) ->
cast(5170, <> ||C <- tuple_to_list(Params)>>)/binary,0:(((1+size(Params)) rem 2)*32)>>).
%% @spec (Factor::integer(),Pattern::integer()) -> ok
%% @doc See external documentation.
-spec lineStipple(integer(),integer()) -> ok.
lineStipple(Factor,Pattern) ->
cast(5171, <>).
%% @spec (Width::float()) -> ok
%% @doc See external documentation.
-spec lineWidth(float()) -> ok.
lineWidth(Width) ->
cast(5172, <>).
%% @spec (Base::integer()) -> ok
%% @doc See external documentation.
-spec listBase(integer()) -> ok.
listBase(Base) ->
cast(5173, <>).
%% @spec () -> ok
%% @doc See external documentation.
-spec loadIdentity() -> ok.
loadIdentity() ->
cast(5174, <<>>).
%% @spec (M::{float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float()}) -> ok
%% @doc See external documentation.
-spec loadMatrixd({float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float()}) -> ok.
loadMatrixd({M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12,M13,M14,M15,M16}) ->
cast(5175, <>);
loadMatrixd({M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12}) ->
cast(5175, <>).
%% @spec (M::{float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float()}) -> ok
%% @doc See external documentation.
-spec loadMatrixf({float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float()}) -> ok.
loadMatrixf({M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12,M13,M14,M15,M16}) ->
cast(5176, <>);
loadMatrixf({M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12}) ->
cast(5176, <>).
%% @spec (Name::integer()) -> ok
%% @doc See external documentation.
-spec loadName(integer()) -> ok.
loadName(Name) ->
cast(5177, <>).
%% @spec (Opcode::enum()) -> ok
%% @doc See external documentation.
-spec logicOp(enum()) -> ok.
logicOp(Opcode) ->
cast(5178, <>).
%% @spec (Target::enum(),U1::float(),U2::float(),Stride::integer(),Order::integer(),Points::binary()) -> ok
%% @doc See external documentation.
-spec map1d(enum(),float(),float(),integer(),integer(),binary()) -> ok.
map1d(Target,U1,U2,Stride,Order,Points) ->
send_bin(Points),
cast(5179, <>).
%% @spec (Target::enum(),U1::float(),U2::float(),Stride::integer(),Order::integer(),Points::binary()) -> ok
%% @doc See external documentation.
-spec map1f(enum(),float(),float(),integer(),integer(),binary()) -> ok.
map1f(Target,U1,U2,Stride,Order,Points) ->
send_bin(Points),
cast(5180, <>).
%% @spec (Target::enum(),U1::float(),U2::float(),Ustride::integer(),Uorder::integer(),V1::float(),V2::float(),Vstride::integer(),Vorder::integer(),Points::binary()) -> ok
%% @doc See external documentation.
-spec map2d(enum(),float(),float(),integer(),integer(),float(),float(),integer(),integer(),binary()) -> ok.
map2d(Target,U1,U2,Ustride,Uorder,V1,V2,Vstride,Vorder,Points) ->
send_bin(Points),
cast(5181, <>).
%% @spec (Target::enum(),U1::float(),U2::float(),Ustride::integer(),Uorder::integer(),V1::float(),V2::float(),Vstride::integer(),Vorder::integer(),Points::binary()) -> ok
%% @doc See external documentation.
-spec map2f(enum(),float(),float(),integer(),integer(),float(),float(),integer(),integer(),binary()) -> ok.
map2f(Target,U1,U2,Ustride,Uorder,V1,V2,Vstride,Vorder,Points) ->
send_bin(Points),
cast(5182, <>).
%% @spec (Un::integer(),U1::float(),U2::float()) -> ok
%% @doc See external documentation.
-spec mapGrid1d(integer(),float(),float()) -> ok.
mapGrid1d(Un,U1,U2) ->
cast(5183, <>).
%% @spec (Un::integer(),U1::float(),U2::float()) -> ok
%% @doc See external documentation.
-spec mapGrid1f(integer(),float(),float()) -> ok.
mapGrid1f(Un,U1,U2) ->
cast(5184, <>).
%% @spec (Un::integer(),U1::float(),U2::float(),Vn::integer(),V1::float(),V2::float()) -> ok
%% @doc See external documentation.
-spec mapGrid2d(integer(),float(),float(),integer(),float(),float()) -> ok.
mapGrid2d(Un,U1,U2,Vn,V1,V2) ->
cast(5185, <>).
%% @spec (Un::integer(),U1::float(),U2::float(),Vn::integer(),V1::float(),V2::float()) -> ok
%% @doc See external documentation.
-spec mapGrid2f(integer(),float(),float(),integer(),float(),float()) -> ok.
mapGrid2f(Un,U1,U2,Vn,V1,V2) ->
cast(5186, <>).
%% @spec (Face::enum(),Pname::enum(),Param::float()) -> ok
%% @doc See external documentation.
-spec materialf(enum(),enum(),float()) -> ok.
materialf(Face,Pname,Param) ->
cast(5187, <>).
%% @spec (Face::enum(),Pname::enum(),Params::{float()}) -> ok
%% @doc See external documentation.
-spec materialfv(enum(),enum(),{float()}) -> ok.
materialfv(Face,Pname,Params) ->
cast(5188, <> ||C <- tuple_to_list(Params)>>)/binary,0:(((1+size(Params)) rem 2)*32)>>).
%% @spec (Face::enum(),Pname::enum(),Param::integer()) -> ok
%% @doc See external documentation.
-spec materiali(enum(),enum(),integer()) -> ok.
materiali(Face,Pname,Param) ->
cast(5189, <>).
%% @spec (Face::enum(),Pname::enum(),Params::{integer()}) -> ok
%% @doc See external documentation.
-spec materialiv(enum(),enum(),{integer()}) -> ok.
materialiv(Face,Pname,Params) ->
cast(5190, <> ||C <- tuple_to_list(Params)>>)/binary,0:(((1+size(Params)) rem 2)*32)>>).
%% @spec (Mode::enum()) -> ok
%% @doc See external documentation.
-spec matrixMode(enum()) -> ok.
matrixMode(Mode) ->
cast(5191, <>).
%% @spec (M::{float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float()}) -> ok
%% @doc See external documentation.
-spec multMatrixd({float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float()}) -> ok.
multMatrixd({M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12,M13,M14,M15,M16}) ->
cast(5192, <>);
multMatrixd({M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12}) ->
cast(5192, <>).
%% @spec (M::{float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float()}) -> ok
%% @doc See external documentation.
-spec multMatrixf({float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float(),float()}) -> ok.
multMatrixf({M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12,M13,M14,M15,M16}) ->
cast(5193, <>);
multMatrixf({M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12}) ->
cast(5193, <>).
%% @spec (List::integer(),Mode::enum()) -> ok
%% @doc See external documentation.
-spec newList(integer(),enum()) -> ok.
newList(List,Mode) ->
cast(5194, <>).
%% @spec (Nx::integer(),Ny::integer(),Nz::integer()) -> ok
%% @doc See external documentation.
-spec normal3b(integer(),integer(),integer()) -> ok.
normal3b(Nx,Ny,Nz) ->
cast(5195, <>).
%% @spec ({Nx,Ny,Nz}) -> ok
%% @equiv normal3b(Nx,Ny,Nz)
-spec normal3bv({integer(),integer(),integer()}) -> ok.
normal3bv({Nx,Ny,Nz}) -> normal3b(Nx,Ny,Nz).
%% @spec (Nx::float(),Ny::float(),Nz::float()) -> ok
%% @doc See external documentation.
-spec normal3d(float(),float(),float()) -> ok.
normal3d(Nx,Ny,Nz) ->
cast(5196, <>).
%% @spec ({Nx,Ny,Nz}) -> ok
%% @equiv normal3d(Nx,Ny,Nz)
-spec normal3dv({float(),float(),float()}) -> ok.
normal3dv({Nx,Ny,Nz}) -> normal3d(Nx,Ny,Nz).
%% @spec (Nx::float(),Ny::float(),Nz::float()) -> ok
%% @doc See external documentation.
-spec normal3f(float(),float(),float()) -> ok.
normal3f(Nx,Ny,Nz) ->
cast(5197, <>).
%% @spec ({Nx,Ny,Nz}) -> ok
%% @equiv normal3f(Nx,Ny,Nz)
-spec normal3fv({float(),float(),float()}) -> ok.
normal3fv({Nx,Ny,Nz}) -> normal3f(Nx,Ny,Nz).
%% @spec (Nx::integer(),Ny::integer(),Nz::integer()) -> ok
%% @doc See external documentation.
-spec normal3i(integer(),integer(),integer()) -> ok.
normal3i(Nx,Ny,Nz) ->
cast(5198, <>).
%% @spec ({Nx,Ny,Nz}) -> ok
%% @equiv normal3i(Nx,Ny,Nz)
-spec normal3iv({integer(),integer(),integer()}) -> ok.
normal3iv({Nx,Ny,Nz}) -> normal3i(Nx,Ny,Nz).
%% @spec (Nx::integer(),Ny::integer(),Nz::integer()) -> ok
%% @doc See external documentation.
-spec normal3s(integer(),integer(),integer()) -> ok.
normal3s(Nx,Ny,Nz) ->
cast(5199, <>).
%% @spec ({Nx,Ny,Nz}) -> ok
%% @equiv normal3s(Nx,Ny,Nz)
-spec normal3sv({integer(),integer(),integer()}) -> ok.
normal3sv({Nx,Ny,Nz}) -> normal3s(Nx,Ny,Nz).
%% @spec (Type::enum(),Stride::integer(),Pointer::offset()|mem()) -> ok
%% @doc See external documentation.
-spec normalPointer(enum(),integer(),offset()|mem()) -> ok.
normalPointer(Type,Stride,Pointer) when is_integer(Pointer) ->
cast(5200, <>);
normalPointer(Type,Stride,Pointer) ->
send_bin(Pointer),
cast(5201, <>).
%% @spec (Left::float(),Right::float(),Bottom::float(),Top::float(),ZNear::float(),ZFar::float()) -> ok
%% @doc See external documentation.
-spec ortho(float(),float(),float(),float(),float(),float()) -> ok.
ortho(Left,Right,Bottom,Top,ZNear,ZFar) ->
cast(5202, <>).
%% @spec (Token::float()) -> ok
%% @doc See external documentation.
-spec passThrough(float()) -> ok.
passThrough(Token) ->
cast(5203, <>).
%% @spec (Map::enum(),Mapsize::integer(),Values::binary()) -> ok
%% @doc See external documentation.
-spec pixelMapfv(enum(),integer(),binary()) -> ok.
pixelMapfv(Map,Mapsize,Values) ->
send_bin(Values),
cast(5204, <>).
%% @spec (Map::enum(),Mapsize::integer(),Values::binary()) -> ok
%% @doc See external documentation.
-spec pixelMapuiv(enum(),integer(),binary()) -> ok.
pixelMapuiv(Map,Mapsize,Values) ->
send_bin(Values),
cast(5205, <>).
%% @spec (Map::enum(),Mapsize::integer(),Values::binary()) -> ok
%% @doc See external documentation.
-spec pixelMapusv(enum(),integer(),binary()) -> ok.
pixelMapusv(Map,Mapsize,Values) ->
send_bin(Values),
cast(5206, <>).
%% @spec (Pname::enum(),Param::float()) -> ok
%% @doc See external documentation.
-spec pixelStoref(enum(),float()) -> ok.
pixelStoref(Pname,Param) ->
cast(5207, <>).
%% @spec (Pname::enum(),Param::integer()) -> ok
%% @doc See external documentation.
-spec pixelStorei(enum(),integer()) -> ok.
pixelStorei(Pname,Param) ->
cast(5208, <>).
%% @spec (Pname::enum(),Param::float()) -> ok
%% @doc See external documentation.
-spec pixelTransferf(enum(),float()) -> ok.
pixelTransferf(Pname,Param) ->
cast(5209, <>).
%% @spec (Pname::enum(),Param::integer()) -> ok
%% @doc See external documentation.
-spec pixelTransferi(enum(),integer()) -> ok.
pixelTransferi(Pname,Param) ->
cast(5210, <>).
%% @spec (Xfactor::float(),Yfactor::float()) -> ok
%% @doc See external documentation.
-spec pixelZoom(float(),float()) -> ok.
pixelZoom(Xfactor,Yfactor) ->
cast(5211, <>).
%% @spec (Size::float()) -> ok
%% @doc See external documentation.
-spec pointSize(float()) -> ok.
pointSize(Size) ->
cast(5212, <>).
%% @spec (Face::enum(),Mode::enum()) -> ok
%% @doc See external documentation.
-spec polygonMode(enum(),enum()) -> ok.
polygonMode(Face,Mode) ->
cast(5213, <>).
%% @spec (Factor::float(),Units::float()) -> ok
%% @doc See external documentation.
-spec polygonOffset(float(),float()) -> ok.
polygonOffset(Factor,Units) ->
cast(5214, <>).
%% @spec (Mask::binary()) -> ok
%% @doc See external documentation.
-spec polygonStipple(binary()) -> ok.
polygonStipple(Mask) ->
send_bin(Mask),
cast(5215, <<>>).
%% @spec () -> ok
%% @doc See external documentation.
-spec popAttrib() -> ok.
popAttrib() ->
cast(5216, <<>>).
%% @spec () -> ok
%% @doc See external documentation.
-spec popClientAttrib() -> ok.
popClientAttrib() ->
cast(5217, <<>>).
%% @spec () -> ok
%% @doc See external documentation.
-spec popMatrix() -> ok.
popMatrix() ->
cast(5218, <<>>).
%% @spec () -> ok
%% @doc See external documentation.
-spec popName() -> ok.
popName() ->
cast(5219, <<>>).
%% @spec (Textures::[integer()],Priorities::[clamp()]) -> ok
%% @doc See external documentation.
-spec prioritizeTextures([integer()],[clamp()]) -> ok.
prioritizeTextures(Textures,Priorities) ->
cast(5220, <<(length(Textures)):?GLuint,
(<< <> || C <- Textures>>)/binary,0:(((1+length(Textures)) rem 2)*32),(length(Priorities)):?GLuint,
(<< <> || C <- Priorities>>)/binary,0:(((1+length(Priorities)) rem 2)*32)>>).
%% @spec (Mask::integer()) -> ok
%% @doc See external documentation.
-spec pushAttrib(integer()) -> ok.
pushAttrib(Mask) ->
cast(5221, <>).
%% @spec (Mask::integer()) -> ok
%% @doc See external documentation.
-spec pushClientAttrib(integer()) -> ok.
pushClientAttrib(Mask) ->
cast(5222, <>).
%% @spec () -> ok
%% @doc See external documentation.
-spec pushMatrix() -> ok.
pushMatrix() ->
cast(5223, <<>>).
%% @spec (Name::integer()) -> ok
%% @doc See external documentation.
-spec pushName(integer()) -> ok.
pushName(Name) ->
cast(5224, <>).
%% @spec (X::float(),Y::float()) -> ok
%% @doc See external documentation.
-spec rasterPos2d(float(),float()) -> ok.
rasterPos2d(X,Y) ->
cast(5225, <>).
%% @spec ({X,Y}) -> ok
%% @equiv rasterPos2d(X,Y)
-spec rasterPos2dv({float(),float()}) -> ok.
rasterPos2dv({X,Y}) -> rasterPos2d(X,Y).
%% @spec (X::float(),Y::float()) -> ok
%% @doc See external documentation.
-spec rasterPos2f(float(),float()) -> ok.
rasterPos2f(X,Y) ->
cast(5226, <>).
%% @spec ({X,Y}) -> ok
%% @equiv rasterPos2f(X,Y)
-spec rasterPos2fv({float(),float()}) -> ok.
rasterPos2fv({X,Y}) -> rasterPos2f(X,Y).
%% @spec (X::integer(),Y::integer()) -> ok
%% @doc See external documentation.
-spec rasterPos2i(integer(),integer()) -> ok.
rasterPos2i(X,Y) ->
cast(5227, <>).
%% @spec ({X,Y}) -> ok
%% @equiv rasterPos2i(X,Y)
-spec rasterPos2iv({integer(),integer()}) -> ok.
rasterPos2iv({X,Y}) -> rasterPos2i(X,Y).
%% @spec (X::integer(),Y::integer()) -> ok
%% @doc See external documentation.
-spec rasterPos2s(integer(),integer()) -> ok.
rasterPos2s(X,Y) ->
cast(5228, <>).
%% @spec ({X,Y}) -> ok
%% @equiv rasterPos2s(X,Y)
-spec rasterPos2sv({integer(),integer()}) -> ok.
rasterPos2sv({X,Y}) -> rasterPos2s(X,Y).
%% @spec (X::float(),Y::float(),Z::float()) -> ok
%% @doc See external documentation.
-spec rasterPos3d(float(),float(),float()) -> ok.
rasterPos3d(X,Y,Z) ->
cast(5229, <>).
%% @spec ({X,Y,Z}) -> ok
%% @equiv rasterPos3d(X,Y,Z)
-spec rasterPos3dv({float(),float(),float()}) -> ok.
rasterPos3dv({X,Y,Z}) -> rasterPos3d(X,Y,Z).
%% @spec (X::float(),Y::float(),Z::float()) -> ok
%% @doc See external documentation.
-spec rasterPos3f(float(),float(),float()) -> ok.
rasterPos3f(X,Y,Z) ->
cast(5230, <>).
%% @spec ({X,Y,Z}) -> ok
%% @equiv rasterPos3f(X,Y,Z)
-spec rasterPos3fv({float(),float(),float()}) -> ok.
rasterPos3fv({X,Y,Z}) -> rasterPos3f(X,Y,Z).
%% @spec (X::integer(),Y::integer(),Z::integer()) -> ok
%% @doc See external documentation.
-spec rasterPos3i(integer(),integer(),integer()) -> ok.
rasterPos3i(X,Y,Z) ->
cast(5231, <>).
%% @spec ({X,Y,Z}) -> ok
%% @equiv rasterPos3i(X,Y,Z)
-spec rasterPos3iv({integer(),integer(),integer()}) -> ok.
rasterPos3iv({X,Y,Z}) -> rasterPos3i(X,Y,Z).
%% @spec (X::integer(),Y::integer(),Z::integer()) -> ok
%% @doc See external documentation.
-spec rasterPos3s(integer(),integer(),integer()) -> ok.
rasterPos3s(X,Y,Z) ->
cast(5232, <>).
%% @spec ({X,Y,Z}) -> ok
%% @equiv rasterPos3s(X,Y,Z)
-spec rasterPos3sv({integer(),integer(),integer()}) -> ok.
rasterPos3sv({X,Y,Z}) -> rasterPos3s(X,Y,Z).
%% @spec (X::float(),Y::float(),Z::float(),W::float()) -> ok
%% @doc See external documentation.
-spec rasterPos4d(float(),float(),float(),float()) -> ok.
rasterPos4d(X,Y,Z,W) ->
cast(5233, <>).
%% @spec ({X,Y,Z,W}) -> ok
%% @equiv rasterPos4d(X,Y,Z,W)
-spec rasterPos4dv({float(),float(),float(),float()}) -> ok.
rasterPos4dv({X,Y,Z,W}) -> rasterPos4d(X,Y,Z,W).
%% @spec (X::float(),Y::float(),Z::float(),W::float()) -> ok
%% @doc See external documentation.
-spec rasterPos4f(float(),float(),float(),float()) -> ok.
rasterPos4f(X,Y,Z,W) ->
cast(5234, <>).
%% @spec ({X,Y,Z,W}) -> ok
%% @equiv rasterPos4f(X,Y,Z,W)
-spec rasterPos4fv({float(),float(),float(),float()}) -> ok.
rasterPos4fv({X,Y,Z,W}) -> rasterPos4f(X,Y,Z,W).
%% @spec (X::integer(),Y::integer(),Z::integer(),W::integer()) -> ok
%% @doc See external documentation.
-spec rasterPos4i(integer(),integer(),integer(),integer()) -> ok.
rasterPos4i(X,Y,Z,W) ->
cast(5235, <>).
%% @spec ({X,Y,Z,W}) -> ok
%% @equiv rasterPos4i(X,Y,Z,W)
-spec rasterPos4iv({integer(),integer(),integer(),integer()}) -> ok.
rasterPos4iv({X,Y,Z,W}) -> rasterPos4i(X,Y,Z,W).
%% @spec (X::integer(),Y::integer(),Z::integer(),W::integer()) -> ok
%% @doc See external documentation.
-spec rasterPos4s(integer(),integer(),integer(),integer()) -> ok.
rasterPos4s(X,Y,Z,W) ->
cast(5236, <>).
%% @spec ({X,Y,Z,W}) -> ok
%% @equiv rasterPos4s(X,Y,Z,W)
-spec rasterPos4sv({integer(),integer(),integer(),integer()}) -> ok.
rasterPos4sv({X,Y,Z,W}) -> rasterPos4s(X,Y,Z,W).
%% @spec (Mode::enum()) -> ok
%% @doc See external documentation.
-spec readBuffer(enum()) -> ok.
readBuffer(Mode) ->
cast(5237, <>).
%% @spec (X::integer(),Y::integer(),Width::integer(),Height::integer(),Format::enum(),Type::enum(),Pixels::mem()) -> ok
%% @doc See external documentation.
-spec readPixels(integer(),integer(),integer(),integer(),enum(),enum(),mem()) -> ok.
readPixels(X,Y,Width,Height,Format,Type,Pixels) ->
send_bin(Pixels),
call(5238, <>).
%% @spec (X1::float(),Y1::float(),X2::float(),Y2::float()) -> ok
%% @doc See external documentation.
-spec rectd(float(),float(),float(),float()) -> ok.
rectd(X1,Y1,X2,Y2) ->
cast(5239, <>).
%% @spec (V1::{float(),float()},V2::{float(),float()}) -> ok
%% @doc See external documentation.
-spec rectdv({float(),float()},{float(),float()}) -> ok.
rectdv({V1,V2},{V1,V2}) ->
cast(5240, <>).
%% @spec (X1::float(),Y1::float(),X2::float(),Y2::float()) -> ok
%% @doc See external documentation.
-spec rectf(float(),float(),float(),float()) -> ok.
rectf(X1,Y1,X2,Y2) ->
cast(5241, <>).
%% @spec (V1::{float(),float()},V2::{float(),float()}) -> ok
%% @doc See external documentation.
-spec rectfv({float(),float()},{float(),float()}) -> ok.
rectfv({V1,V2},{V1,V2}) ->
cast(5242, <>).
%% @spec (X1::integer(),Y1::integer(),X2::integer(),Y2::integer()) -> ok
%% @doc See external documentation.
-spec recti(integer(),integer(),integer(),integer()) -> ok.
recti(X1,Y1,X2,Y2) ->
cast(5243, <>).
%% @spec (V1::{integer(),integer()},V2::{integer(),integer()}) -> ok
%% @doc See external documentation.
-spec rectiv({integer(),integer()},{integer(),integer()}) -> ok.
rectiv({V1,V2},{V1,V2}) ->
cast(5244, <>).
%% @spec (X1::integer(),Y1::integer(),X2::integer(),Y2::integer()) -> ok
%% @doc See external documentation.
-spec rects(integer(),integer(),integer(),integer()) -> ok.
rects(X1,Y1,X2,Y2) ->
cast(5245, <>).
%% @spec (V1::{integer(),integer()},V2::{integer(),integer()}) -> ok
%% @doc See external documentation.
-spec rectsv({integer(),integer()},{integer(),integer()}) -> ok.
rectsv({V1,V2},{V1,V2}) ->
cast(5246, <>).
%% @spec (Mode::enum()) -> integer()
%% @doc See external documentation.
-spec renderMode(enum()) -> integer().
renderMode(Mode) ->
call(5247, <>).
%% @spec (Angle::float(),X::float(),Y::float(),Z::float()) -> ok
%% @doc See external documentation.
-spec rotated(float(),float(),float(),float()) -> ok.
rotated(Angle,X,Y,Z) ->
cast(5248, <>).
%% @spec (Angle::float(),X::float(),Y::float(),Z::float()) -> ok
%% @doc See external documentation.
-spec rotatef(float(),float(),float(),float()) -> ok.
rotatef(Angle,X,Y,Z) ->
cast(5249, <>).
%% @spec (X::float(),Y::float(),Z::float()) -> ok
%% @doc See external documentation.
-spec scaled(float(),float(),float()) -> ok.
scaled(X,Y,Z) ->
cast(5250, <>).
%% @spec (X::float(),Y::float(),Z::float()) -> ok
%% @doc See external documentation.
-spec scalef(float(),float(),float()) -> ok.
scalef(X,Y,Z) ->
cast(5251, <>).
%% @spec (X::integer(),Y::integer(),Width::integer(),Height::integer()) -> ok
%% @doc See external documentation.
-spec scissor(integer(),integer(),integer(),integer()) -> ok.
scissor(X,Y,Width,Height) ->
cast(5252, <>).
%% @spec (Size::integer(),Buffer::mem()) -> ok
%% @doc See external documentation.
-spec selectBuffer(integer(),mem()) -> ok.
selectBuffer(Size,Buffer) ->
send_bin(Buffer),
call(5253, <>).
%% @spec (Mode::enum()) -> ok
%% @doc See external documentation.
-spec shadeModel(enum()) -> ok.
shadeModel(Mode) ->
cast(5254, <>).
%% @spec (Func::enum(),Ref::integer(),Mask::integer()) -> ok
%% @doc See external documentation.
-spec stencilFunc(enum(),integer(),integer()) -> ok.
stencilFunc(Func,Ref,Mask) ->
cast(5255, <>).
%% @spec (Mask::integer()) -> ok
%% @doc See external documentation.
-spec stencilMask(integer()) -> ok.
stencilMask(Mask) ->
cast(5256, <>).
%% @spec (Fail::enum(),Zfail::enum(),Zpass::enum()) -> ok
%% @doc See external documentation.
-spec stencilOp(enum(),enum(),enum()) -> ok.
stencilOp(Fail,Zfail,Zpass) ->
cast(5257, <>).
%% @spec (S::float()) -> ok
%% @doc See external documentation.
-spec texCoord1d(float()) -> ok.
texCoord1d(S) ->
cast(5258, <>).
%% @spec ({S}) -> ok
%% @equiv texCoord1d(S)
-spec texCoord1dv({float()}) -> ok.
texCoord1dv({S}) -> texCoord1d(S).
%% @spec (S::float()) -> ok
%% @doc See external documentation.
-spec texCoord1f(float()) -> ok.
texCoord1f(S) ->
cast(5259, <>).
%% @spec ({S}) -> ok
%% @equiv texCoord1f(S)
-spec texCoord1fv({float()}) -> ok.
texCoord1fv({S}) -> texCoord1f(S).
%% @spec (S::integer()) -> ok
%% @doc See external documentation.
-spec texCoord1i(integer()) -> ok.
texCoord1i(S) ->
cast(5260, <>).
%% @spec ({S}) -> ok
%% @equiv texCoord1i(S)
-spec texCoord1iv({integer()}) -> ok.
texCoord1iv({S}) -> texCoord1i(S).
%% @spec (S::integer()) -> ok
%% @doc See external documentation.
-spec texCoord1s(integer()) -> ok.
texCoord1s(S) ->
cast(5261, <>).
%% @spec ({S}) -> ok
%% @equiv texCoord1s(S)
-spec texCoord1sv({integer()}) -> ok.
texCoord1sv({S}) -> texCoord1s(S).
%% @spec (S::float(),T::float()) -> ok
%% @doc See external documentation.
-spec texCoord2d(float(),float()) -> ok.
texCoord2d(S,T) ->
cast(5262, <>).
%% @spec ({S,T}) -> ok
%% @equiv texCoord2d(S,T)
-spec texCoord2dv({float(),float()}) -> ok.
texCoord2dv({S,T}) -> texCoord2d(S,T).
%% @spec (S::float(),T::float()) -> ok
%% @doc See external documentation.
-spec texCoord2f(float(),float()) -> ok.
texCoord2f(S,T) ->
cast(5263, <>).
%% @spec ({S,T}) -> ok
%% @equiv texCoord2f(S,T)
-spec texCoord2fv({float(),float()}) -> ok.
texCoord2fv({S,T}) -> texCoord2f(S,T).
%% @spec (S::integer(),T::integer()) -> ok
%% @doc See external documentation.
-spec texCoord2i(integer(),integer()) -> ok.
texCoord2i(S,T) ->
cast(5264, <>).
%% @spec ({S,T}) -> ok
%% @equiv texCoord2i(S,T)
-spec texCoord2iv({integer(),integer()}) -> ok.
texCoord2iv({S,T}) -> texCoord2i(S,T).
%% @spec (S::integer(),T::integer()) -> ok
%% @doc See external documentation.
-spec texCoord2s(integer(),integer()) -> ok.
texCoord2s(S,T) ->
cast(5265, <>).
%% @spec ({S,T}) -> ok
%% @equiv texCoord2s(S,T)
-spec texCoord2sv({integer(),integer()}) -> ok.
texCoord2sv({S,T}) -> texCoord2s(S,T).
%% @spec (S::float(),T::float(),R::float()) -> ok
%% @doc See external documentation.
-spec texCoord3d(float(),float(),float()) -> ok.
texCoord3d(S,T,R) ->
cast(5266, <>).
%% @spec ({S,T,R}) -> ok
%% @equiv texCoord3d(S,T,R)
-spec texCoord3dv({float(),float(),float()}) -> ok.
texCoord3dv({S,T,R}) -> texCoord3d(S,T,R).
%% @spec (S::float(),T::float(),R::float()) -> ok
%% @doc See external documentation.
-spec texCoord3f(float(),float(),float()) -> ok.
texCoord3f(S,T,R) ->
cast(5267, <>).
%% @spec ({S,T,R}) -> ok
%% @equiv texCoord3f(S,T,R)
-spec texCoord3fv({float(),float(),float()}) -> ok.
texCoord3fv({S,T,R}) -> texCoord3f(S,T,R).
%% @spec (S::integer(),T::integer(),R::integer()) -> ok
%% @doc See external documentation.
-spec texCoord3i(integer(),integer(),integer()) -> ok.
texCoord3i(S,T,R) ->
cast(5268, <>).
%% @spec ({S,T,R}) -> ok
%% @equiv texCoord3i(S,T,R)
-spec texCoord3iv({integer(),integer(),integer()}) -> ok.
texCoord3iv({S,T,R}) -> texCoord3i(S,T,R).
%% @spec (S::integer(),T::integer(),R::integer()) -> ok
%% @doc See external documentation.
-spec texCoord3s(integer(),integer(),integer()) -> ok.
texCoord3s(S,T,R) ->
cast(5269, <>).
%% @spec ({S,T,R}) -> ok
%% @equiv texCoord3s(S,T,R)
-spec texCoord3sv({integer(),integer(),integer()}) -> ok.
texCoord3sv({S,T,R}) -> texCoord3s(S,T,R).
%% @spec (S::float(),T::float(),R::float(),Q::float()) -> ok
%% @doc See external documentation.
-spec texCoord4d(float(),float(),float(),float()) -> ok.
texCoord4d(S,T,R,Q) ->
cast(5270, <>).
%% @spec ({S,T,R,Q}) -> ok
%% @equiv texCoord4d(S,T,R,Q)
-spec texCoord4dv({float(),float(),float(),float()}) -> ok.
texCoord4dv({S,T,R,Q}) -> texCoord4d(S,T,R,Q).
%% @spec (S::float(),T::float(),R::float(),Q::float()) -> ok
%% @doc See external documentation.
-spec texCoord4f(float(),float(),float(),float()) -> ok.
texCoord4f(S,T,R,Q) ->
cast(5271, <>).
%% @spec ({S,T,R,Q}) -> ok
%% @equiv texCoord4f(S,T,R,Q)
-spec texCoord4fv({float(),float(),float(),float()}) -> ok.
texCoord4fv({S,T,R,Q}) -> texCoord4f(S,T,R,Q).
%% @spec (S::integer(),T::integer(),R::integer(),Q::integer()) -> ok
%% @doc See external documentation.
-spec texCoord4i(integer(),integer(),integer(),integer()) -> ok.
texCoord4i(S,T,R,Q) ->
cast(5272, <>).
%% @spec ({S,T,R,Q}) -> ok
%% @equiv texCoord4i(S,T,R,Q)
-spec texCoord4iv({integer(),integer(),integer(),integer()}) -> ok.
texCoord4iv({S,T,R,Q}) -> texCoord4i(S,T,R,Q).
%% @spec (S::integer(),T::integer(),R::integer(),Q::integer()) -> ok
%% @doc See external documentation.
-spec texCoord4s(integer(),integer(),integer(),integer()) -> ok.
texCoord4s(S,T,R,Q) ->
cast(5273, <>).
%% @spec ({S,T,R,Q}) -> ok
%% @equiv texCoord4s(S,T,R,Q)
-spec texCoord4sv({integer(),integer(),integer(),integer()}) -> ok.
texCoord4sv({S,T,R,Q}) -> texCoord4s(S,T,R,Q).
%% @spec (Size::integer(),Type::enum(),Stride::integer(),Pointer::offset()|mem()) -> ok
%% @doc See external documentation.
-spec texCoordPointer(integer(),enum(),integer(),offset()|mem()) -> ok.
texCoordPointer(Size,Type,Stride,Pointer) when is_integer(Pointer) ->
cast(5274, <>);
texCoordPointer(Size,Type,Stride,Pointer) ->
send_bin(Pointer),
cast(5275, <>).
%% @spec (Target::enum(),Pname::enum(),Param::float()) -> ok
%% @doc See external documentation.
-spec texEnvf(enum(),enum(),float()) -> ok.
texEnvf(Target,Pname,Param) ->
cast(5276, <>).
%% @spec (Target::enum(),Pname::enum(),Params::{float()}) -> ok
%% @doc See external documentation.
-spec texEnvfv(enum(),enum(),{float()}) -> ok.
texEnvfv(Target,Pname,Params) ->
cast(5277, <> ||C <- tuple_to_list(Params)>>)/binary,0:(((1+size(Params)) rem 2)*32)>>).
%% @spec (Target::enum(),Pname::enum(),Param::integer()) -> ok
%% @doc See external documentation.
-spec texEnvi(enum(),enum(),integer()) -> ok.
texEnvi(Target,Pname,Param) ->
cast(5278, <>).
%% @spec (Target::enum(),Pname::enum(),Params::{integer()}) -> ok
%% @doc See external documentation.
-spec texEnviv(enum(),enum(),{integer()}) -> ok.
texEnviv(Target,Pname,Params) ->
cast(5279, <> ||C <- tuple_to_list(Params)>>)/binary,0:(((1+size(Params)) rem 2)*32)>>).
%% @spec (Coord::enum(),Pname::enum(),Param::float()) -> ok
%% @doc See external documentation.
-spec texGend(enum(),enum(),float()) -> ok.
texGend(Coord,Pname,Param) ->
cast(5280, <>).
%% @spec (Coord::enum(),Pname::enum(),Params::{float()}) -> ok
%% @doc See external documentation.
-spec texGendv(enum(),enum(),{float()}) -> ok.
texGendv(Coord,Pname,Params) ->
cast(5281, <> ||C <- tuple_to_list(Params)>>)/binary>>).
%% @spec (Coord::enum(),Pname::enum(),Param::float()) -> ok
%% @doc See external documentation.
-spec texGenf(enum(),enum(),float()) -> ok.
texGenf(Coord,Pname,Param) ->
cast(5282, <>).
%% @spec (Coord::enum(),Pname::enum(),Params::{float()}) -> ok
%% @doc See external documentation.
-spec texGenfv(enum(),enum(),{float()}) -> ok.
texGenfv(Coord,Pname,Params) ->
cast(5283, <> ||C <- tuple_to_list(Params)>>)/binary,0:(((1+size(Params)) rem 2)*32)>>).
%% @spec (Coord::enum(),Pname::enum(),Param::integer()) -> ok
%% @doc See external documentation.
-spec texGeni(enum(),enum(),integer()) -> ok.
texGeni(Coord,Pname,Param) ->
cast(5284, <>).
%% @spec (Coord::enum(),Pname::enum(),Params::{integer()}) -> ok
%% @doc See external documentation.
-spec texGeniv(enum(),enum(),{integer()}) -> ok.
texGeniv(Coord,Pname,Params) ->
cast(5285, <> ||C <- tuple_to_list(Params)>>)/binary,0:(((1+size(Params)) rem 2)*32)>>).
%% @spec (Target::enum(),Level::integer(),Internalformat::integer(),Width::integer(),Border::integer(),Format::enum(),Type::enum(),Pixels::offset()|mem()) -> ok
%% @doc See external documentation.
-spec texImage1D(enum(),integer(),integer(),integer(),integer(),enum(),enum(),offset()|mem()) -> ok.
texImage1D(Target,Level,Internalformat,Width,Border,Format,Type,Pixels) when is_integer(Pixels) ->
cast(5286, <>);
texImage1D(Target,Level,Internalformat,Width,Border,Format,Type,Pixels) ->
send_bin(Pixels),
cast(5287, <>).
%% @spec (Target::enum(),Level::integer(),Internalformat::integer(),Width::integer(),Height::integer(),Border::integer(),Format::enum(),Type::enum(),Pixels::offset()|mem()) -> ok
%% @doc See external documentation.
-spec texImage2D(enum(),integer(),integer(),integer(),integer(),integer(),enum(),enum(),offset()|mem()) -> ok.
texImage2D(Target,Level,Internalformat,Width,Height,Border,Format,Type,Pixels) when is_integer(Pixels) ->
cast(5288, <>);
texImage2D(Target,Level,Internalformat,Width,Height,Border,Format,Type,Pixels) ->
send_bin(Pixels),
cast(5289, <>).
%% @spec (Target::enum(),Pname::enum(),Param::float()) -> ok
%% @doc See external documentation.
-spec texParameterf(enum(),enum(),float()) -> ok.
texParameterf(Target,Pname,Param) ->
cast(5290, <>).
%% @spec (Target::enum(),Pname::enum(),Params::{float()}) -> ok
%% @doc See external documentation.
-spec texParameterfv(enum(),enum(),{float()}) -> ok.
texParameterfv(Target,Pname,Params) ->
cast(5291, <> ||C <- tuple_to_list(Params)>>)/binary,0:(((1+size(Params)) rem 2)*32)>>).
%% @spec (Target::enum(),Pname::enum(),Param::integer()) -> ok
%% @doc See external documentation.
-spec texParameteri(enum(),enum(),integer()) -> ok.
texParameteri(Target,Pname,Param) ->
cast(5292, <>).
%% @spec (Target::enum(),Pname::enum(),Params::{integer()}) -> ok
%% @doc See external documentation.
-spec texParameteriv(enum(),enum(),{integer()}) -> ok.
texParameteriv(Target,Pname,Params) ->
cast(5293, <> ||C <- tuple_to_list(Params)>>)/binary,0:(((1+size(Params)) rem 2)*32)>>).
%% @spec (Target::enum(),Level::integer(),Xoffset::integer(),Width::integer(),Format::enum(),Type::enum(),Pixels::offset()|mem()) -> ok
%% @doc See external documentation.
-spec texSubImage1D(enum(),integer(),integer(),integer(),enum(),enum(),offset()|mem()) -> ok.
texSubImage1D(Target,Level,Xoffset,Width,Format,Type,Pixels) when is_integer(Pixels) ->
cast(5294, <>);
texSubImage1D(Target,Level,Xoffset,Width,Format,Type,Pixels) ->
send_bin(Pixels),
cast(5295, <>).
%% @spec (Target::enum(),Level::integer(),Xoffset::integer(),Yoffset::integer(),Width::integer(),Height::integer(),Format::enum(),Type::enum(),Pixels::offset()|mem()) -> ok
%% @doc See external documentation.
-spec texSubImage2D(enum(),integer(),integer(),integer(),integer(),integer(),enum(),enum(),offset()|mem()) -> ok.
texSubImage2D(Target,Level,Xoffset,Yoffset,Width,Height,Format,Type,Pixels) when is_integer(Pixels) ->
cast(5296, <>);
texSubImage2D(Target,Level,Xoffset,Yoffset,Width,Height,Format,Type,Pixels) ->
send_bin(Pixels),
cast(5297, <>).
%% @spec (X::float(),Y::float(),Z::float()) -> ok
%% @doc See external documentation.
-spec translated(float(),float(),float()) -> ok.
translated(X,Y,Z) ->
cast(5298, <>).
%% @spec (X::float(),Y::float(),Z::float()) -> ok
%% @doc See external documentation.
-spec translatef(float(),float(),float()) -> ok.
translatef(X,Y,Z) ->
cast(5299, <>).
%% @spec (X::float(),Y::float()) -> ok
%% @doc See