<!DOCTYPE html>
<html lang="en"> <head><meta charset="utf-8"><title>glTexEnv - OpenGL 3 - docs.gl</title><link rel="shortcut icon" href="/favicon.ico"><script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script><link rel="stylesheet" href="../jquery-ui.css"><script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.1/jquery-ui.min.js"></script><script src="../jquery-bonsai/jquery.bonsai.js"></script><link href="../jquery-bonsai/jquery.bonsai.css" rel="stylesheet" type="text/css"><script src="../jquery-cookie/jquery.cookie.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=MML_HTMLorMML"></script><link href="../style.css" rel="stylesheet" type="text/css"><link id="pagestyle" href="../style_light.css" rel="stylesheet" type="text/css"><script>
    window.current_api = "gl31";
    window.base_directory = "../";
  </script><script src="../docs.gl.search.js"></script><script src="../docs.gl.js"></script></head> <body> <div class="header-bg"> <div class="toggle-container"><a href="#" id="style_light">Light</a> | <a href="#" id="style_dark">Dark</a></div> <div class="header-container"> <div class="header-inner"> <a href="/"><h1 class="header-logo">docs.<span class="thicken">GL</span></h1></a> <input id="search" placeholder="search" size="50"><input id="search_button" type="submit" value="Go"> <span style="clear:both;"></span> </div> </div> </div> <div id="everything"> <div id="toc"> <div id="versions_container"> <select id="versions_dropdown"><option class="versions_option" value="gl21">OpenGL 2.1</option><option class="versions_option" value="gl30">OpenGL 3.0</option><option class="versions_option" value="gl31">OpenGL 3.1</option><option class="versions_option" value="gl32">OpenGL 3.2</option><option class="versions_option" value="gl33" selected>OpenGL 3.3</option><option class="versions_option" value="gl40">OpenGL 4.0</option><option class="versions_option" value="gl41">OpenGL 4.1</option><option class="versions_option" value="gl42">OpenGL 4.2</option><option class="versions_option" value="gl43">OpenGL 4.3</option><option class="versions_option" value="gl44">OpenGL 4.4</option><option class="versions_option" value="gl45">OpenGL 4.5</option><option class="versions_option" value="es20">OpenGL ES 2.0</option><option class="versions_option" value="es30">OpenGL ES 3.0</option><option class="versions_option" value="es31">OpenGL ES 3.1</option><option class="versions_option" value="sl40">GLSL 4.0</option><option class="versions_option" value="sl41">GLSL 4.1</option><option class="versions_option" value="sl42">GLSL 4.2</option><option class="versions_option" value="sl43">GLSL 4.3</option><option class="versions_option" value="sl44">GLSL 4.4</option><option class="versions_option" value="sl45">GLSL 4.5</option><option class="versions_option" value="el30">GLSL ES 3.0</option><option class="versions_option" value="el31">GLSL ES 3.1</option></select> </div> <input id="hide_deprecated" type="checkbox"> <label id="hide_label" for="hide_deprecated">Hide unavailable</label> <ul id="command_categories"><li class="category es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">Textures<ul><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glActiveTexture</a></li><li><a class="rewritelink command es31 gl42 gl43 gl44 gl45">glBindImageTexture</a></li><li><a class="rewritelink command gl44 gl45">glBindImageTextures</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glBindTexture</a></li><li><a class="rewritelink command gl45">glBindTextureUnit</a></li><li><a class="rewritelink command gl44 gl45">glBindTextures</a></li><li><a class="rewritelink command gl44 gl45">glClearTexImage</a></li><li><a class="rewritelink command gl44 gl45">glClearTexSubImage</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glCompressedTexImage1D</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glCompressedTexImage2D</a></li><li><a class="rewritelink command es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glCompressedTexImage3D</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45 gl45">glCompressedTexSubImage1D</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45 gl45">glCompressedTexSubImage2D</a></li><li><a class="rewritelink command es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45 gl45">glCompressedTexSubImage3D</a></li><li><a class="rewritelink command gl43 gl44 gl45">glCopyImageSubData</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glCopyTexImage1D</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glCopyTexImage2D</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45 gl45">glCopyTexSubImage1D</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45 gl45">glCopyTexSubImage2D</a></li><li><a class="rewritelink command es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45 gl45">glCopyTexSubImage3D</a></li><li><a class="rewritelink command gl45">glCreateTextures</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glDeleteTextures</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glGenTextures</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45 gl45 gl45">glGetCompressedTexImage</a></li><li><a class="rewritelink command gl45">glGetCompressedTextureSubImage</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45 gl45 gl45">glGetTexImage</a></li><li><a class="rewritelink command es31 es31 gl20 gl20 gl21 gl21 gl30 gl30 gl31 gl31 gl32 gl32 gl33 gl33 gl40 gl40 gl41 gl41 gl42 gl42 gl43 gl43 gl44 gl44 gl45 gl45 gl45 gl45">glGetTexLevelParameter</a></li><li><a class="rewritelink command es20 es20 es30 es30 es31 es31 gl20 gl20 gl21 gl21 gl30 gl30 gl30 gl30 gl31 gl31 gl31 gl31 gl32 gl32 gl32 gl32 gl33 gl33 gl33 gl33 gl40 gl40 gl40 gl40 gl41 gl41 gl41 gl41 gl42 gl42 gl42 gl42 gl43 gl43 gl43 gl43 gl44 gl44 gl44 gl44 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45">glGetTexParameter</a></li><li><a class="rewritelink command gl45">glGetTextureSubImage</a></li><li><a class="rewritelink command gl43 gl44 gl45">glInvalidateTexImage</a></li><li><a class="rewritelink command gl43 gl44 gl45">glInvalidateTexSubImage</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glIsTexture</a></li><li><a class="rewritelink command gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45 gl45">glTexBuffer</a></li><li><a class="rewritelink command gl43 gl44 gl45 gl45">glTexBufferRange</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glTexImage1D</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glTexImage2D</a></li><li><a class="rewritelink command gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glTexImage2DMultisample</a></li><li><a class="rewritelink command es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glTexImage3D</a></li><li><a class="rewritelink command gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glTexImage3DMultisample</a></li><li><a class="rewritelink command es20 es20 es20 es20 es30 es30 es30 es30 es31 es31 es31 es31 gl20 gl20 gl20 gl20 gl21 gl21 gl21 gl21 gl30 gl30 gl30 gl30 gl30 gl30 gl31 gl31 gl31 gl31 gl31 gl31 gl32 gl32 gl32 gl32 gl32 gl32 gl33 gl33 gl33 gl33 gl33 gl33 gl40 gl40 gl40 gl40 gl40 gl40 gl41 gl41 gl41 gl41 gl41 gl41 gl42 gl42 gl42 gl42 gl42 gl42 gl43 gl43 gl43 gl43 gl43 gl43 gl44 gl44 gl44 gl44 gl44 gl44 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45">glTexParameter</a></li><li><a class="rewritelink command gl42 gl43 gl44 gl45 gl45">glTexStorage1D</a></li><li><a class="rewritelink command es30 es31 gl42 gl43 gl44 gl45 gl45">glTexStorage2D</a></li><li><a class="rewritelink command es31 gl43 gl44 gl45 gl45">glTexStorage2DMultisample</a></li><li><a class="rewritelink command es30 es31 gl42 gl43 gl44 gl45 gl45">glTexStorage3D</a></li><li><a class="rewritelink command gl43 gl44 gl45 gl45">glTexStorage3DMultisample</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45 gl45">glTexSubImage1D</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45 gl45">glTexSubImage2D</a></li><li><a class="rewritelink command es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45 gl45">glTexSubImage3D</a></li><li><a class="rewritelink command gl43 gl44 gl45">glTextureView</a></li></ul></li><li class="category es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">Rendering<ul><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glClear</a></li><li><a class="rewritelink command es30 es30 es30 es30 es31 es31 es31 es31 gl30 gl30 gl30 gl30 gl31 gl31 gl31 gl31 gl32 gl32 gl32 gl32 gl33 gl33 gl33 gl33 gl40 gl40 gl40 gl40 gl41 gl41 gl41 gl41 gl42 gl42 gl42 gl42 gl43 gl43 gl43 gl43 gl44 gl44 gl44 gl44 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45">glClearBuffer</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glClearColor</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl41 gl42 gl42 gl43 gl43 gl44 gl44 gl45 gl45">glClearDepth</a></li><li><a class="rewritelink command es20 es30 es31">glClearDepthf</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glClearStencil</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45 gl45">glDrawBuffer</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glFinish</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glFlush</a></li><li><a class="rewritelink command es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45 gl45">glReadBuffer</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45 gl45">glReadPixels</a></li></ul></li><li class="category es20 es30 es31 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45 gl20 gl21">Frame Buffers<ul><li><a class="rewritelink command es20 es30 es31 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glBindFramebuffer</a></li><li><a class="rewritelink command es20 es30 es31 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glBindRenderbuffer</a></li><li><a class="rewritelink command es30 es31 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45 gl45">glBlitFramebuffer</a></li><li><a class="rewritelink command es20 es30 es31 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45 gl45">glCheckFramebufferStatus</a></li><li><a class="rewritelink command gl45">glCreateFramebuffers</a></li><li><a class="rewritelink command gl45">glCreateRenderbuffers</a></li><li><a class="rewritelink command es20 es30 es31 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glDeleteFramebuffers</a></li><li><a class="rewritelink command es20 es30 es31 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glDeleteRenderbuffers</a></li><li><a class="rewritelink command es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45 gl45">glDrawBuffers</a></li><li><a class="rewritelink command es31 gl43 gl44 gl45 gl45">glFramebufferParameteri</a></li><li><a class="rewritelink command es20 es30 es31 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45 gl45">glFramebufferRenderbuffer</a></li><li><a class="rewritelink command gl30 gl30 gl30 gl31 gl31 gl31 gl32 gl32 gl32 gl33 gl33 gl33 gl40 gl40 gl40 gl41 gl41 gl41 gl42 gl42 gl42 gl43 gl43 gl43 gl44 gl44 gl44 gl45 gl45 gl45 gl45">glFramebufferTexture</a></li><li><a class="rewritelink command es20 es30 es31">glFramebufferTexture2D</a></li><li><a class="rewritelink command es30 es31 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45 gl45">glFramebufferTextureLayer</a></li><li><a class="rewritelink command es20 es30 es31 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glGenFramebuffers</a></li><li><a class="rewritelink command es20 es30 es31 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glGenRenderbuffers</a></li><li><a class="rewritelink command es20 es30 es31 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45 gl45">glGenerateMipmap</a></li><li><a class="rewritelink command gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45 gl45">glGetFramebufferAttachmentParameter</a></li><li><a class="rewritelink command es20 es30 es31">glGetFramebufferAttachmentParameteriv</a></li><li><a class="rewritelink command gl43 gl44 gl45">glGetFramebufferParameter</a></li><li><a class="rewritelink command es31">glGetFramebufferParameteriv</a></li><li><a class="rewritelink command gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45 gl45">glGetRenderbufferParameter</a></li><li><a class="rewritelink command es20 es30 es31">glGetRenderbufferParameteriv</a></li><li><a class="rewritelink command es30 es31 gl43 gl44 gl45 gl45 gl45">glInvalidateFramebuffer</a></li><li><a class="rewritelink command es30 es31 gl43 gl44 gl45">glInvalidateSubFramebuffer</a></li><li><a class="rewritelink command es20 es30 es31 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glIsFramebuffer</a></li><li><a class="rewritelink command es20 es30 es31 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glIsRenderbuffer</a></li><li><a class="rewritelink command es20 es30 es31 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45 gl45">glRenderbufferStorage</a></li><li><a class="rewritelink command es30 es31 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45 gl45">glRenderbufferStorageMultisample</a></li><li><a class="rewritelink command es31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glSampleMaski</a></li></ul></li><li class="category es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">Shaders<ul><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glAttachShader</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glBindAttribLocation</a></li><li><a class="rewritelink command gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glBindFragDataLocation</a></li><li><a class="rewritelink command gl33 gl40 gl41 gl42 gl43 gl44 gl45">glBindFragDataLocationIndexed</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glCompileShader</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glCreateProgram</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glCreateShader</a></li><li><a class="rewritelink command es31 gl41 gl42 gl43 gl44 gl45">glCreateShaderProgram</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glDeleteProgram</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glDeleteShader</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glDetachShader</a></li><li><a class="rewritelink command gl42 gl43 gl44 gl45">glGetActiveAtomicCounterBufferiv</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glGetActiveAttrib</a></li><li><a class="rewritelink command gl40 gl41 gl42 gl43 gl44 gl45">glGetActiveSubroutineName</a></li><li><a class="rewritelink command gl40 gl41 gl42 gl43 gl44 gl45">glGetActiveSubroutineUniform</a></li><li><a class="rewritelink command gl40 gl41 gl42 gl43 gl44 gl45">glGetActiveSubroutineUniformName</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glGetActiveUniform</a></li><li><a class="rewritelink command gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glGetActiveUniformBlock</a></li><li><a class="rewritelink command es30 es31 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glGetActiveUniformBlockName</a></li><li><a class="rewritelink command es30 es31">glGetActiveUniformBlockiv</a></li><li><a class="rewritelink command gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glGetActiveUniformName</a></li><li><a class="rewritelink command es30 es31 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glGetActiveUniformsiv</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glGetAttachedShaders</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glGetAttribLocation</a></li><li><a class="rewritelink command gl33 gl40 gl41 gl42 gl43 gl44 gl45">glGetFragDataIndex</a></li><li><a class="rewritelink command es30 es31 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glGetFragDataLocation</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glGetProgram</a></li><li><a class="rewritelink command es30 es31 gl41 gl42 gl43 gl44 gl45">glGetProgramBinary</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glGetProgramInfoLog</a></li><li><a class="rewritelink command es31 gl43 gl44 gl45">glGetProgramResource</a></li><li><a class="rewritelink command es31 gl43 gl44 gl45">glGetProgramResourceIndex</a></li><li><a class="rewritelink command es31 gl43 gl44 gl45">glGetProgramResourceLocation</a></li><li><a class="rewritelink command gl43 gl44 gl45">glGetProgramResourceLocationIndex</a></li><li><a class="rewritelink command es31 gl43 gl44 gl45">glGetProgramResourceName</a></li><li><a class="rewritelink command gl40 gl41 gl42 gl43 gl44 gl45">glGetProgramStage</a></li><li><a class="rewritelink command es20 es30 es31">glGetProgramiv</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glGetShader</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glGetShaderInfoLog</a></li><li><a class="rewritelink command es20 es30 es31 gl41 gl42 gl43 gl44 gl45">glGetShaderPrecisionFormat</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glGetShaderSource</a></li><li><a class="rewritelink command es20 es30 es31">glGetShaderiv</a></li><li><a class="rewritelink command gl40 gl41 gl42 gl43 gl44 gl45">glGetSubroutineIndex</a></li><li><a class="rewritelink command gl40 gl41 gl42 gl43 gl44 gl45">glGetSubroutineUniformLocation</a></li><li><a class="rewritelink command es20 es20 es30 es30 es30 es31 es31 es31 gl20 gl20 gl21 gl21 gl30 gl30 gl30 gl31 gl31 gl31 gl32 gl32 gl32 gl33 gl33 gl33 gl40 gl40 gl40 gl40 gl41 gl41 gl41 gl41 gl42 gl42 gl42 gl42 gl43 gl43 gl43 gl43 gl44 gl44 gl44 gl44 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45">glGetUniform</a></li><li><a class="rewritelink command es30 es31 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glGetUniformBlockIndex</a></li><li><a class="rewritelink command es30 es31 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glGetUniformIndices</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glGetUniformLocation</a></li><li><a class="rewritelink command gl40 gl41 gl42 gl43 gl44 gl45">glGetUniformSubroutine</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glIsProgram</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glIsShader</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glLinkProgram</a></li><li><a class="rewritelink command gl40 gl41 gl42 gl43 gl44 gl45">glMinSampleShading</a></li><li><a class="rewritelink command es30 es31 gl41 gl42 gl43 gl44 gl45">glProgramBinary</a></li><li><a class="rewritelink command gl41 gl42 gl43 gl44 gl45">glProgramParameter</a></li><li><a class="rewritelink command es30 es31">glProgramParameteri</a></li><li><a class="rewritelink command es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45">glProgramUniform</a></li><li><a class="rewritelink command es20 es30 es31 gl41 gl42 gl43 gl44 gl45">glReleaseShaderCompiler</a></li><li><a class="rewritelink command es20 es30 es31 gl41 gl42 gl43 gl44 gl45">glShaderBinary</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glShaderSource</a></li><li><a class="rewritelink command gl43 gl44 gl45">glShaderStorageBlockBinding</a></li><li><a class="rewritelink command es20 es20 es20 es20 es20 es20 es20 es20 es20 es20 es20 es20 es20 es20 es20 es20 es20 es20 es20 es30 es30 es30 es30 es30 es30 es30 es30 es30 es30 es30 es30 es30 es30 es30 es30 es30 es30 es30 es30 es30 es30 es30 es30 es30 es30 es30 es30 es30 es30 es30 es30 es30 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45">glUniform</a></li><li><a class="rewritelink command es30 es31 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glUniformBlockBinding</a></li><li><a class="rewritelink command gl40 gl41 gl42 gl43 gl44 gl45">glUniformSubroutines</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glUseProgram</a></li><li><a class="rewritelink command es31 gl41 gl42 gl43 gl44 gl45">glUseProgramStages</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glValidateProgram</a></li></ul></li><li class="category es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">Buffer Objects<ul><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glBindBuffer</a></li><li><a class="rewritelink command es30 es31 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glBindBufferBase</a></li><li><a class="rewritelink command es30 es31 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glBindBufferRange</a></li><li><a class="rewritelink command gl44 gl45">glBindBuffersBase</a></li><li><a class="rewritelink command gl44 gl45">glBindBuffersRange</a></li><li><a class="rewritelink command es31 gl43 gl44 gl45 gl45">glBindVertexBuffer</a></li><li><a class="rewritelink command gl44 gl45 gl45">glBindVertexBuffers</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45 gl45">glBufferData</a></li><li><a class="rewritelink command gl44 gl45 gl45">glBufferStorage</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45 gl45">glBufferSubData</a></li><li><a class="rewritelink command gl43 gl44 gl45 gl45">glClearBufferData</a></li><li><a class="rewritelink command gl43 gl44 gl45 gl45">glClearBufferSubData</a></li><li><a class="rewritelink command es30 es31 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45 gl45">glCopyBufferSubData</a></li><li><a class="rewritelink command gl45">glCreateBuffers</a></li><li><a class="rewritelink command gl45">glCreateVertexArrays</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glDeleteBuffers</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45 gl45">glDisableVertexAttribArray</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glDrawArrays</a></li><li><a class="rewritelink command es31 gl40 gl41 gl42 gl43 gl44 gl45">glDrawArraysIndirect</a></li><li><a class="rewritelink command es30 es31 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glDrawArraysInstanced</a></li><li><a class="rewritelink command gl42 gl43 gl44 gl45">glDrawArraysInstancedBaseInstance</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glDrawElements</a></li><li><a class="rewritelink command gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glDrawElementsBaseVertex</a></li><li><a class="rewritelink command es31 gl40 gl41 gl42 gl43 gl44 gl45">glDrawElementsIndirect</a></li><li><a class="rewritelink command es30 es31 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glDrawElementsInstanced</a></li><li><a class="rewritelink command gl42 gl43 gl44 gl45">glDrawElementsInstancedBaseInstance</a></li><li><a class="rewritelink command gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glDrawElementsInstancedBaseVertex</a></li><li><a class="rewritelink command gl42 gl43 gl44 gl45">glDrawElementsInstancedBaseVertexBaseInstance</a></li><li><a class="rewritelink command es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glDrawRangeElements</a></li><li><a class="rewritelink command gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glDrawRangeElementsBaseVertex</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45 gl45">glEnableVertexAttribArray</a></li><li><a class="rewritelink command es30 es31 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45 gl45">glFlushMappedBufferRange</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glGenBuffers</a></li><li><a class="rewritelink command es30 es31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45 gl45 gl45">glGetBufferParameter</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45 gl45">glGetBufferParameteriv</a></li><li><a class="rewritelink command es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45 gl45">glGetBufferPointerv</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45 gl45">glGetBufferSubData</a></li><li><a class="rewritelink command gl45 gl45">glGetVertexArrayIndexed</a></li><li><a class="rewritelink command gl45">glGetVertexArrayiv</a></li><li><a class="rewritelink command es20 es20 es30 es30 es30 es30 es31 es31 es31 es31 gl20 gl20 gl20 gl21 gl21 gl21 gl30 gl30 gl30 gl30 gl30 gl31 gl31 gl31 gl31 gl31 gl32 gl32 gl32 gl32 gl32 gl33 gl33 gl33 gl33 gl33 gl40 gl40 gl40 gl40 gl40 gl41 gl41 gl41 gl41 gl41 gl41 gl42 gl42 gl42 gl42 gl42 gl42 gl43 gl43 gl43 gl43 gl43 gl43 gl44 gl44 gl44 gl44 gl44 gl44 gl45 gl45 gl45 gl45 gl45 gl45">glGetVertexAttrib</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glGetVertexAttribPointerv</a></li><li><a class="rewritelink command gl43 gl44 gl45">glInvalidateBufferData</a></li><li><a class="rewritelink command gl43 gl44 gl45">glInvalidateBufferSubData</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glIsBuffer</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45 gl45">glMapBuffer</a></li><li><a class="rewritelink command es30 es31 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45 gl45">glMapBufferRange</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glMultiDrawArrays</a></li><li><a class="rewritelink command gl43 gl44 gl45">glMultiDrawArraysIndirect</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glMultiDrawElements</a></li><li><a class="rewritelink command gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glMultiDrawElementsBaseVertex</a></li><li><a class="rewritelink command gl43 gl44 gl45">glMultiDrawElementsIndirect</a></li><li><a class="rewritelink command gl40 gl40 gl41 gl41 gl42 gl42 gl43 gl43 gl44 gl44 gl45 gl45">glPatchParameter</a></li><li><a class="rewritelink command gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glPrimitiveRestartIndex</a></li><li><a class="rewritelink command gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glProvokingVertex</a></li><li><a class="rewritelink command es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45 gl45">glUnmapBuffer</a></li><li><a class="rewritelink command gl45">glVertexArrayElementBuffer</a></li><li><a class="rewritelink command es20 es20 es20 es20 es20 es20 es20 es20 es30 es30 es30 es30 es30 es30 es30 es30 es30 es30 es30 es30 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 es31 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45">glVertexAttrib</a></li><li><a class="rewritelink command es31 gl43 gl44 gl45 gl45">glVertexAttribBinding</a></li><li><a class="rewritelink command es30 es31 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glVertexAttribDivisor</a></li><li><a class="rewritelink command es31 es31 gl43 gl43 gl43 gl44 gl44 gl44 gl45 gl45 gl45 gl45 gl45 gl45">glVertexAttribFormat</a></li><li><a class="rewritelink command es20 es30 es30 es31 es31 gl20 gl21 gl30 gl30 gl31 gl31 gl32 gl32 gl33 gl33 gl40 gl40 gl41 gl41 gl41 gl42 gl42 gl42 gl43 gl43 gl43 gl44 gl44 gl44 gl45 gl45 gl45">glVertexAttribPointer</a></li><li><a class="rewritelink command es31 gl43 gl44 gl45 gl45">glVertexBindingDivisor</a></li></ul></li><li class="category es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">State Management<ul><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glBlendColor</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl40 gl41 gl41 gl42 gl42 gl43 gl43 gl44 gl44 gl45 gl45">glBlendEquation</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl40 gl41 gl41 gl42 gl42 gl43 gl43 gl44 gl44 gl45 gl45">glBlendEquationSeparate</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl40 gl41 gl41 gl42 gl42 gl43 gl43 gl44 gl44 gl45 gl45">glBlendFunc</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl40 gl41 gl41 gl42 gl42 gl43 gl43 gl44 gl44 gl45 gl45">glBlendFuncSeparate</a></li><li><a class="rewritelink command gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glClampColor</a></li><li><a class="rewritelink command gl45">glClipControl</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl30 gl31 gl31 gl32 gl32 gl33 gl33 gl40 gl40 gl41 gl41 gl42 gl42 gl43 gl43 gl44 gl44 gl45 gl45">glColorMask</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glCullFace</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glDepthFunc</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glDepthMask</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl41 gl42 gl42 gl43 gl43 gl44 gl44 gl45 gl45">glDepthRange</a></li><li><a class="rewritelink command gl41 gl42 gl43 gl44 gl45">glDepthRangeArray</a></li><li><a class="rewritelink command gl41 gl42 gl43 gl44 gl45">glDepthRangeIndexed</a></li><li><a class="rewritelink command es20 es30 es31">glDepthRangef</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl30 gl31 gl31 gl32 gl32 gl33 gl33 gl40 gl40 gl41 gl41 gl42 gl42 gl43 gl43 gl44 gl44 gl45 gl45">glDisable</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl30 gl31 gl31 gl32 gl32 gl33 gl33 gl40 gl40 gl41 gl41 gl42 gl42 gl43 gl43 gl44 gl44 gl45 gl45">glEnable</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glFrontFace</a></li><li><a class="rewritelink command es20 es20 es20 es30 es30 es30 es30 es30 es30 es31 es31 es31 es31 es31 es31 es31 gl20 gl20 gl20 gl20 gl21 gl21 gl21 gl21 gl30 gl30 gl30 gl30 gl30 gl30 gl31 gl31 gl31 gl31 gl31 gl31 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl32 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl33 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl40 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl41 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl42 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl43 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl44 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45 gl45">glGet</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glGetError</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glHint</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl30 gl31 gl31 gl32 gl32 gl33 gl33 gl40 gl40 gl41 gl41 gl42 gl42 gl43 gl43 gl44 gl44 gl45 gl45">glIsEnabled</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glLineWidth</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glLogicOp</a></li><li><a class="rewritelink command gl20 gl20 gl21 gl21 gl30 gl30 gl31 gl31 gl32 gl32 gl33 gl33 gl40 gl40 gl41 gl41 gl42 gl42 gl43 gl43 gl44 gl44 gl45 gl45">glPixelStore</a></li><li><a class="rewritelink command es20 es30 es31">glPixelStorei</a></li><li><a class="rewritelink command gl20 gl20 gl20 gl20 gl21 gl21 gl21 gl21 gl30 gl30 gl30 gl30 gl31 gl31 gl31 gl31 gl32 gl32 gl32 gl32 gl33 gl33 gl33 gl33 gl40 gl40 gl40 gl40 gl41 gl41 gl41 gl41 gl42 gl42 gl42 gl42 gl43 gl43 gl43 gl43 gl44 gl44 gl44 gl44 gl45 gl45 gl45 gl45">glPointParameter</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glPointSize</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glPolygonMode</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glPolygonOffset</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glSampleCoverage</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glScissor</a></li><li><a class="rewritelink command gl41 gl42 gl43 gl44 gl45">glScissorArray</a></li><li><a class="rewritelink command gl41 gl41 gl42 gl42 gl43 gl43 gl44 gl44 gl45 gl45">glScissorIndexed</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glStencilFunc</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glStencilFuncSeparate</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glStencilMask</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glStencilMaskSeparate</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glStencilOp</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glStencilOpSeparate</a></li><li><a class="rewritelink command es20 es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glViewport</a></li><li><a class="rewritelink command gl41 gl42 gl43 gl44 gl45">glViewportArray</a></li><li><a class="rewritelink command gl41 gl41 gl42 gl42 gl43 gl43 gl44 gl44 gl45 gl45">glViewportIndexed</a></li></ul></li><li class="category es30 es31 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">Transform Feedback<ul><li><a class="rewritelink command es30 es31 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glBeginTransformFeedback</a></li><li><a class="rewritelink command es30 es31 gl40 gl41 gl42 gl43 gl44 gl45">glBindTransformFeedback</a></li><li><a class="rewritelink command gl45">glCreateTransformFeedbacks</a></li><li><a class="rewritelink command es30 es31 gl40 gl41 gl42 gl43 gl44 gl45">glDeleteTransformFeedbacks</a></li><li><a class="rewritelink command gl40 gl41 gl42 gl43 gl44 gl45">glDrawTransformFeedback</a></li><li><a class="rewritelink command gl42 gl43 gl44 gl45">glDrawTransformFeedbackInstanced</a></li><li><a class="rewritelink command gl40 gl41 gl42 gl43 gl44 gl45">glDrawTransformFeedbackStream</a></li><li><a class="rewritelink command gl42 gl43 gl44 gl45">glDrawTransformFeedbackStreamInstanced</a></li><li><a class="rewritelink command es30 es31 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glEndTransformFeedback</a></li><li><a class="rewritelink command es30 es31 gl40 gl41 gl42 gl43 gl44 gl45">glGenTransformFeedbacks</a></li><li><a class="rewritelink command gl45 gl45 gl45">glGetTransformFeedback</a></li><li><a class="rewritelink command es30 es31 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glGetTransformFeedbackVarying</a></li><li><a class="rewritelink command es30 es31 gl40 gl41 gl42 gl43 gl44 gl45">glIsTransformFeedback</a></li><li><a class="rewritelink command es30 es31 gl40 gl41 gl42 gl43 gl44 gl45">glPauseTransformFeedback</a></li><li><a class="rewritelink command es30 es31 gl40 gl41 gl42 gl43 gl44 gl45">glResumeTransformFeedback</a></li><li><a class="rewritelink command gl45">glTransformFeedbackBufferBase</a></li><li><a class="rewritelink command gl45">glTransformFeedbackBufferRange</a></li><li><a class="rewritelink command es30 es31 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glTransformFeedbackVaryings</a></li></ul></li><li class="category es31 gl43 gl44 gl45 gl42 es30 gl32 gl33 gl40 gl41 es20 gl20 gl21 gl30 gl31">Utility<ul><li><a class="rewritelink command es31 gl43 gl44 gl45">glDispatchCompute</a></li><li><a class="rewritelink command es31 gl43 gl44 gl45">glDispatchComputeIndirect</a></li><li><a class="rewritelink command gl45">glGetGraphicsResetStatus</a></li><li><a class="rewritelink command gl42 gl43 gl43 gl44 gl44 gl45 gl45">glGetInternalformat</a></li><li><a class="rewritelink command es30 es31">glGetInternalformativ</a></li><li><a class="rewritelink command gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glGetMultisample</a></li><li><a class="rewritelink command es31">glGetMultisamplefv</a></li><li><a class="rewritelink command es20 es30 es30 es31 es31 gl20 gl21 gl30 gl30 gl31 gl31 gl32 gl32 gl33 gl33 gl40 gl40 gl41 gl41 gl42 gl42 gl43 gl43 gl44 gl44 gl45 gl45">glGetString</a></li><li><a class="rewritelink command es31 es31 gl42 gl43 gl44 gl45 gl45">glMemoryBarrier</a></li></ul></li><li class="category gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45 es30 es31 gl20 gl21">Queries<ul><li><a class="rewritelink command gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glBeginConditionalRender</a></li><li><a class="rewritelink command es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glBeginQuery</a></li><li><a class="rewritelink command gl40 gl41 gl42 gl43 gl44 gl45">glBeginQueryIndexed</a></li><li><a class="rewritelink command gl45">glCreateQueries</a></li><li><a class="rewritelink command es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glDeleteQueries</a></li><li><a class="rewritelink command gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glEndConditionalRender</a></li><li><a class="rewritelink command es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glEndQuery</a></li><li><a class="rewritelink command gl40 gl41 gl42 gl43 gl44 gl45">glEndQueryIndexed</a></li><li><a class="rewritelink command es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glGenQueries</a></li><li><a class="rewritelink command gl40 gl41 gl42 gl43 gl44 gl45">glGetQueryIndexed</a></li><li><a class="rewritelink command gl20 gl20 gl21 gl21 gl30 gl30 gl31 gl31 gl32 gl32 gl33 gl33 gl33 gl33 gl40 gl40 gl40 gl40 gl41 gl41 gl41 gl41 gl42 gl42 gl42 gl42 gl43 gl43 gl43 gl43 gl44 gl44 gl44 gl44 gl45 gl45 gl45 gl45">glGetQueryObject</a></li><li><a class="rewritelink command es30 es31">glGetQueryObjectuiv</a></li><li><a class="rewritelink command es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glGetQueryiv</a></li><li><a class="rewritelink command es30 es31 gl20 gl21 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glIsQuery</a></li><li><a class="rewritelink command gl33 gl40 gl41 gl42 gl43 gl44 gl45">glQueryCounter</a></li></ul></li><li class="category es30 es31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">Syncing<ul><li><a class="rewritelink command es30 es31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glClientWaitSync</a></li><li><a class="rewritelink command es30 es31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glDeleteSync</a></li><li><a class="rewritelink command es30 es31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glFenceSync</a></li><li><a class="rewritelink command gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glGetSync</a></li><li><a class="rewritelink command es30 es31">glGetSynciv</a></li><li><a class="rewritelink command es30 es31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glIsSync</a></li><li><a class="rewritelink command gl45">glTextureBarrier</a></li><li><a class="rewritelink command es30 es31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glWaitSync</a></li></ul></li><li class="category es30 es31 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">Vertex Array Objects<ul><li><a class="rewritelink command es30 es31 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glBindVertexArray</a></li><li><a class="rewritelink command es30 es31 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glDeleteVertexArrays</a></li><li><a class="rewritelink command es30 es31 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glGenVertexArrays</a></li><li><a class="rewritelink command es30 es31 gl30 gl31 gl32 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glIsVertexArray</a></li></ul></li><li class="category es30 es31 gl33 gl40 gl41 gl42 gl43 gl44 gl45">Samplers<ul><li><a class="rewritelink command es30 es31 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glBindSampler</a></li><li><a class="rewritelink command gl44 gl45">glBindSamplers</a></li><li><a class="rewritelink command gl45">glCreateSamplers</a></li><li><a class="rewritelink command es30 es31 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glDeleteSamplers</a></li><li><a class="rewritelink command es30 es31 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glGenSamplers</a></li><li><a class="rewritelink command es30 es30 es31 es31 gl33 gl33 gl33 gl33 gl40 gl40 gl40 gl40 gl41 gl41 gl41 gl41 gl42 gl42 gl42 gl42 gl43 gl43 gl43 gl43 gl44 gl44 gl44 gl44 gl45 gl45 gl45 gl45">glGetSamplerParameter</a></li><li><a class="rewritelink command es30 es31 gl33 gl40 gl41 gl42 gl43 gl44 gl45">glIsSampler</a></li><li><a class="rewritelink command es30 es30 es30 es30 es31 es31 es31 es31 gl33 gl33 gl33 gl33 gl33 gl33 gl40 gl40 gl40 gl40 gl40 gl40 gl41 gl41 gl41 gl41 gl41 gl41 gl42 gl42 gl42 gl42 gl42 gl42 gl43 gl43 gl43 gl43 gl43 gl43 gl44 gl44 gl44 gl44 gl44 gl44 gl45 gl45 gl45 gl45 gl45 gl45">glSamplerParameter</a></li></ul></li><li class="category es31 gl41 gl42 gl43 gl44 gl45">Program Pipelines<ul><li><a class="rewritelink command es31 gl41 gl42 gl43 gl44 gl45">glActiveShaderProgram</a></li><li><a class="rewritelink command es31 gl41 gl42 gl43 gl44 gl45">glBindProgramPipeline</a></li><li><a class="rewritelink command gl45">glCreateProgramPipelines</a></li><li><a class="rewritelink command es31 gl41 gl42 gl43 gl44 gl45">glDeleteProgramPipelines</a></li><li><a class="rewritelink command es31 gl41 gl42 gl43 gl44 gl45">glGenProgramPipelines</a></li><li><a class="rewritelink command es31 gl41 gl42 gl43 gl44 gl45">glGetProgramPipeline</a></li><li><a class="rewritelink command es31 gl41 gl42 gl43 gl44 gl45">glGetProgramPipelineInfoLog</a></li><li><a class="rewritelink command es31 gl41 gl42 gl43 gl44 gl45">glIsProgramPipeline</a></li><li><a class="rewritelink command es31 gl41 gl42 gl43 gl44 gl45">glValidateProgramPipeline</a></li></ul></li><li class="category gl20 gl21 gl30 gl31">Immediate Mode<ul><li><a class="rewritelink command gl20 gl21 gl30 gl31">glArrayElement</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glBegin</a></li><li><a class="rewritelink command gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31">glColor</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glEnd</a></li><li><a class="rewritelink command gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31">glEvalCoord</a></li><li><a class="rewritelink command gl20 gl20 gl21 gl21 gl30 gl30 gl31 gl31">glEvalMesh</a></li><li><a class="rewritelink command gl20 gl20 gl21 gl21 gl30 gl30 gl31 gl31">glEvalPoint</a></li><li><a class="rewritelink command gl20 gl20 gl20 gl20 gl21 gl21 gl21 gl21 gl30 gl30 gl30 gl30 gl31 gl31 gl31 gl31">glFogCoord</a></li><li><a class="rewritelink command gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31">glIndex</a></li><li><a class="rewritelink command gl20 gl20 gl20 gl20 gl21 gl21 gl21 gl21 gl30 gl30 gl30 gl30 gl31 gl31 gl31 gl31">glMaterial</a></li><li><a class="rewritelink command gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31">glMultiTexCoord</a></li><li><a class="rewritelink command gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31">glNormal</a></li><li><a class="rewritelink command gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31">glSecondaryColor</a></li><li><a class="rewritelink command gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31">glTexCoord</a></li><li><a class="rewritelink command gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31">glVertex</a></li></ul></li><li class="category gl20 gl21 gl30 gl31">GL2 Rasterization<ul><li><a class="rewritelink command gl20 gl21 gl30 gl31">glBitmap</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glClearIndex</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glClipPlane</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glCopyPixels</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glDrawPixels</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glFeedbackBuffer</a></li><li><a class="rewritelink command gl20 gl20 gl20 gl20 gl21 gl21 gl21 gl21 gl30 gl30 gl30 gl30 gl31 gl31 gl31 gl31">glFog</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glGetClipPlane</a></li><li><a class="rewritelink command gl20 gl20 gl20 gl21 gl21 gl21 gl30 gl30 gl30 gl31 gl31 gl31">glGetMap</a></li><li><a class="rewritelink command gl20 gl20 gl20 gl21 gl21 gl21 gl30 gl30 gl30 gl31 gl31 gl31">glGetPixelMap</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glGetPolygonStipple</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glInitNames</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glLineStipple</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glLoadName</a></li><li><a class="rewritelink command gl20 gl20 gl21 gl21 gl30 gl30 gl31 gl31">glMap1</a></li><li><a class="rewritelink command gl20 gl20 gl21 gl21 gl30 gl30 gl31 gl31">glMap2</a></li><li><a class="rewritelink command gl20 gl20 gl20 gl20 gl21 gl21 gl21 gl21 gl30 gl30 gl30 gl30 gl31 gl31 gl31 gl31">glMapGrid</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glPassThrough</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glPixelZoom</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glPolygonStipple</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glPopName</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glPushName</a></li><li><a class="rewritelink command gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31">glRasterPos</a></li><li><a class="rewritelink command gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31">glRect</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glRenderMode</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glSelectBuffer</a></li><li><a class="rewritelink command gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl20 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl21 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl30 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31 gl31">glWindowPos</a></li></ul></li><li class="category gl20 gl21 gl30 gl31">Client Arrays<ul><li><a class="rewritelink command gl20 gl21 gl30 gl31">glColorPointer</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glDisableClientState</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glEnableClientState</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glFogCoordPointer</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glIndexPointer</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glInterleavedArrays</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glNormalPointer</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glPopClientAttrib</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glPushClientAttrib</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glSecondaryColorPointer</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glTexCoordPointer</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glVertexPointer</a></li></ul></li><li class="category open_me gl20 gl21 gl30 gl31">Fixed Function<ul><li><a class="rewritelink command gl20 gl21 gl30 gl31">glAccum</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glAlphaFunc</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glClearAccum</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glColorMaterial</a></li><li><a class="rewritelink command gl20 gl20 gl21 gl21 gl30 gl30 gl31 gl31">glEdgeFlag</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glEdgeFlagPointer</a></li><li><a class="rewritelink command gl20 gl20 gl21 gl21 gl30 gl30 gl31 gl31">glGetLight</a></li><li><a class="rewritelink command gl20 gl20 gl21 gl21 gl30 gl30 gl31 gl31">glGetMaterial</a></li><li><a class="rewritelink command gl20 gl20 gl21 gl21 gl30 gl30 gl31 gl31">glGetTexEnv</a></li><li><a class="rewritelink command gl20 gl20 gl20 gl21 gl21 gl21 gl30 gl30 gl30 gl31 gl31 gl31">glGetTexGen</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glIndexMask</a></li><li><a class="rewritelink command gl20 gl20 gl20 gl20 gl21 gl21 gl21 gl21 gl30 gl30 gl30 gl30 gl31 gl31 gl31 gl31">glLight</a></li><li><a class="rewritelink command gl20 gl20 gl20 gl20 gl21 gl21 gl21 gl21 gl30 gl30 gl30 gl30 gl31 gl31 gl31 gl31">glLightModel</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glPopAttrib</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glPushAttrib</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glShadeModel</a></li><li><a class="rewritelink command current gl20 gl20 gl20 gl20 gl21 gl21 gl21 gl21 gl30 gl30 gl30 gl30 gl31 gl31 gl31 gl31">glTexEnv</a></li><li><a class="rewritelink command gl20 gl20 gl20 gl20 gl20 gl20 gl21 gl21 gl21 gl21 gl21 gl21 gl30 gl30 gl30 gl30 gl30 gl30 gl31 gl31 gl31 gl31 gl31 gl31">glTexGen</a></li></ul></li><li class="category gl20 gl21 gl30 gl31">Matrix State<ul><li><a class="rewritelink command gl20 gl21 gl30 gl31">glFrustum</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glLoadIdentity</a></li><li><a class="rewritelink command gl20 gl20 gl21 gl21 gl30 gl30 gl31 gl31">glLoadMatrix</a></li><li><a class="rewritelink command gl20 gl20 gl21 gl21 gl30 gl30 gl31 gl31">glLoadTransposeMatrix</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glMatrixMode</a></li><li><a class="rewritelink command gl20 gl20 gl21 gl21 gl30 gl30 gl31 gl31">glMultMatrix</a></li><li><a class="rewritelink command gl20 gl20 gl21 gl21 gl30 gl30 gl31 gl31">glMultTransposeMatrix</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glOrtho</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glPopMatrix</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glPushMatrix</a></li><li><a class="rewritelink command gl20 gl20 gl21 gl21 gl30 gl30 gl31 gl31">glRotate</a></li><li><a class="rewritelink command gl20 gl20 gl21 gl21 gl30 gl30 gl31 gl31">glScale</a></li><li><a class="rewritelink command gl20 gl20 gl21 gl21 gl30 gl30 gl31 gl31">glTranslate</a></li></ul></li><li class="category gl20 gl21 gl30 gl31">GL2 Textures<ul><li><a class="rewritelink command gl20 gl21 gl30 gl31">glAreTexturesResident</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glClientActiveTexture</a></li><li><a class="rewritelink command gl20 gl20 gl20 gl21 gl21 gl21 gl30 gl30 gl30 gl31 gl31 gl31">glPixelMap</a></li><li><a class="rewritelink command gl20 gl20 gl21 gl21 gl30 gl30 gl31 gl31">glPixelTransfer</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glPrioritizeTextures</a></li></ul></li><li class="category gl20 gl21 gl30 gl31">Call Lists<ul><li><a class="rewritelink command gl20 gl21 gl30 gl31">glCallList</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glCallLists</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glDeleteLists</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glEndList</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glGenLists</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glIsList</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glListBase</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31">glNewList</a></li></ul></li><li class="category gl43 gl44 gl45 gl20 gl21 gl30 gl31 es31">Debug<ul><li><a class="rewritelink command gl43 gl44 gl45">glDebugMessageCallback</a></li><li><a class="rewritelink command gl43 gl44 gl45">glDebugMessageControl</a></li><li><a class="rewritelink command gl43 gl44 gl45">glDebugMessageInsert</a></li><li><a class="rewritelink command gl43 gl44 gl45">glGetDebugMessageLog</a></li><li><a class="rewritelink command gl43 gl44 gl45">glGetObjectLabel</a></li><li><a class="rewritelink command gl43 gl44 gl45">glGetObjectPtrLabel</a></li><li><a class="rewritelink command gl20 gl21 gl30 gl31 gl43 gl44 gl45">glGetPointerv</a></li><li><a class="rewritelink command es31 gl43 gl44 gl45">glGetProgramInterface</a></li><li><a class="rewritelink command gl43 gl44 gl45">glObjectLabel</a></li><li><a class="rewritelink command gl43 gl44 gl45">glObjectPtrLabel</a></li><li><a class="rewritelink command gl43 gl44 gl45">glPopDebugGroup</a></li><li><a class="rewritelink command gl43 gl44 gl45">glPushDebugGroup</a></li></ul></li></ul> <ul id="glsl_command_categories"><li class="category el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">Trigonometry<ul><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">acos</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">acosh</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">asin</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">asinh</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">atan</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">atanh</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">cos</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">cosh</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">degrees</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">radians</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">sin</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">sinh</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">tan</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">tanh</a></li></ul></li><li class="category el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">Mathematics<ul><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">abs</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">ceil</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">clamp</a></li><li><a class="rewritelink command el30 el30 el30 el31 el31 el31 sl33 sl33 sl33 sl40 sl40 sl40 sl41 sl41 sl41 sl42 sl42 sl42 sl43 sl43 sl43 sl44 sl44 sl44 sl45 sl45 sl45">dFdx</a></li><li><a class="rewritelink command el30 el30 el30 el31 el31 el31 sl33 sl33 sl33 sl40 sl40 sl40 sl41 sl41 sl41 sl42 sl42 sl42 sl43 sl43 sl43 sl44 sl44 sl44 sl45 sl45 sl45">dFdy</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">exp</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">exp2</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">floor</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">floor</a></li><li><a class="rewritelink command el31 sl40 sl41 sl42 sl43 sl44 sl45">fma</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">fract</a></li><li><a class="rewritelink command el30 el30 el30 el31 el31 el31 sl33 sl33 sl33 sl40 sl40 sl40 sl41 sl41 sl41 sl42 sl42 sl42 sl43 sl43 sl43 sl44 sl44 sl44 sl45 sl45 sl45">fwidth</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">inversesqrt</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">isinf</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">isnan</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">log</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">log2</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">max</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">min</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">mix</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">mod</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">modf</a></li><li><a class="rewritelink command sl33 sl33 sl33 sl33 sl33 sl40 sl40 sl40 sl40 sl40 sl41 sl41 sl41 sl41 sl41 sl42 sl42 sl42 sl42 sl42 sl43 sl43 sl43 sl43 sl43 sl44 sl44 sl44 sl44 sl44 sl45 sl45 sl45 sl45 sl45">noise</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">pow</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">round</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">roundEven</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">sign</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">smoothstep</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">sqrt</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">step</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">trunc</a></li></ul></li><li class="category el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">Floating-Point<ul><li><a class="rewritelink command el30 el30 el31 el31 sl33 sl33 sl40 sl40 sl41 sl41 sl42 sl42 sl43 sl43 sl44 sl44 sl45 sl45">floatBitsToInt</a></li><li><a class="rewritelink command el31 sl40 sl41 sl42 sl43 sl44 sl45">frexp</a></li><li><a class="rewritelink command el30 el30 el31 el31 sl33 sl33 sl40 sl40 sl41 sl41 sl42 sl42 sl43 sl43 sl44 sl44 sl45 sl45">intBitsToFloat</a></li><li><a class="rewritelink command el31 sl40 sl41 sl42 sl43 sl44 sl45">ldexp</a></li><li><a class="rewritelink command sl40 sl41 sl42 sl43 sl44 sl45">packDouble2x32</a></li><li><a class="rewritelink command el30 el31 sl42 sl43 sl44 sl45">packHalf2x16</a></li><li><a class="rewritelink command el30 el30 el30 el30 el31 el31 el31 el31 sl41 sl41 sl41 sl41 sl42 sl42 sl42 sl42 sl43 sl43 sl43 sl43 sl44 sl44 sl44 sl44 sl45 sl45 sl45 sl45">packUnorm</a></li><li><a class="rewritelink command sl40 sl41 sl42 sl43 sl44 sl45">unpackDouble2x32</a></li><li><a class="rewritelink command el30 el31 sl42 sl43 sl44 sl45">unpackHalf2x16</a></li><li><a class="rewritelink command el30 el30 el30 el30 el31 el31 el31 el31 sl41 sl41 sl41 sl41 sl42 sl42 sl42 sl42 sl43 sl43 sl43 sl43 sl44 sl44 sl44 sl44 sl45 sl45 sl45 sl45">unpackUnorm</a></li></ul></li><li class="category sl33 sl40 sl41 sl42 sl43 sl44 sl45 el30 el31">Built-In Variables<ul><li><a class="rewritelink command sl33 sl40 sl41 sl42 sl43 sl44 sl45">gl_ClipDistance</a></li><li><a class="rewritelink command sl45">gl_CullDistance</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">gl_FragCoord</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">gl_FragDepth</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">gl_FrontFacing</a></li><li><a class="rewritelink command el31 sl43 sl44 sl45">gl_GlobalInvocationID</a></li><li><a class="rewritelink command sl45">gl_HelperInvocation</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">gl_InstanceID</a></li><li><a class="rewritelink command sl33 sl40 sl41 sl42 sl43 sl44 sl45">gl_InvocationID</a></li><li><a class="rewritelink command sl33 sl40 sl41 sl42 sl43 sl44 sl45">gl_Layer</a></li><li><a class="rewritelink command el31 sl43 sl44 sl45">gl_LocalInvocationID</a></li><li><a class="rewritelink command el31 sl43 sl44 sl45">gl_LocalInvocationIndex</a></li><li><a class="rewritelink command sl40 sl41 sl42 sl43 sl44 sl45">gl_NumSamples</a></li><li><a class="rewritelink command el31 sl43 sl44 sl45">gl_NumWorkGroups</a></li><li><a class="rewritelink command sl40 sl41 sl42 sl43 sl44 sl45">gl_PatchVerticesIn</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">gl_PointCoord</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">gl_PointSize</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">gl_Position</a></li><li><a class="rewritelink command sl33 sl40 sl41 sl42 sl43 sl44 sl45">gl_PrimitiveID</a></li><li><a class="rewritelink command sl33 sl40 sl41 sl42 sl43 sl44 sl45">gl_PrimitiveIDIn</a></li><li><a class="rewritelink command sl40 sl41 sl42 sl43 sl44 sl45">gl_SampleID</a></li><li><a class="rewritelink command sl40 sl41 sl42 sl43 sl44 sl45">gl_SampleMask</a></li><li><a class="rewritelink command sl40 sl41 sl42 sl43 sl44 sl45">gl_SampleMaskIn</a></li><li><a class="rewritelink command sl40 sl41 sl42 sl43 sl44 sl45">gl_SamplePosition</a></li><li><a class="rewritelink command sl40 sl41 sl42 sl43 sl44 sl45">gl_TessCoord</a></li><li><a class="rewritelink command sl40 sl41 sl42 sl43 sl44 sl45">gl_TessLevelInner</a></li><li><a class="rewritelink command sl40 sl41 sl42 sl43 sl44 sl45">gl_TessLevelOuter</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">gl_VertexID</a></li><li><a class="rewritelink command sl33 sl40 sl41 sl42 sl43 sl44 sl45">gl_ViewportIndex</a></li><li><a class="rewritelink command el31 sl43 sl44 sl45">gl_WorkGroupID</a></li><li><a class="rewritelink command el31 sl43 sl44 sl45">gl_WorkGroupSize</a></li></ul></li><li class="category el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">Vector<ul><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">cross</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">distance</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">dot</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">equal</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">faceforward</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">length</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">normalize</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">notEqual</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">reflect</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">refract</a></li></ul></li><li class="category el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">Component Comparison<ul><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">all</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">any</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">greaterThan</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">greaterThanEqual</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">lessThan</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">lessThanEqual</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">not</a></li></ul></li><li class="category sl40 sl41 sl42 sl43 sl44 sl45 sl33">Geometry Shader<ul><li><a class="rewritelink command sl40 sl41 sl42 sl43 sl44 sl45">EmitStreamVertex</a></li><li><a class="rewritelink command sl33 sl40 sl41 sl42 sl43 sl44 sl45">EmitVertex</a></li><li><a class="rewritelink command sl33 sl40 sl41 sl42 sl43 sl44 sl45">EndPrimitive</a></li><li><a class="rewritelink command sl40 sl41 sl42 sl43 sl44 sl45">EndStreamPrimitive</a></li></ul></li><li class="category sl40 sl41 sl42 sl43 sl44 sl45 el30 el31 sl33">Texture Sampling<ul><li><a class="rewritelink command sl40 sl41 sl42 sl43 sl44 sl45">interpolateAtCentroid</a></li><li><a class="rewritelink command sl40 sl41 sl42 sl43 sl44 sl45">interpolateAtOffset</a></li><li><a class="rewritelink command sl40 sl41 sl42 sl43 sl44 sl45">interpolateAtSample</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">texelFetch</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">texelFetchOffset</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">texture</a></li><li><a class="rewritelink command el31 sl40 sl41 sl42 sl43 sl44 sl45">textureGather</a></li><li><a class="rewritelink command el31 sl40 sl41 sl42 sl43 sl44 sl45">textureGatherOffset</a></li><li><a class="rewritelink command sl40 sl41 sl42 sl43 sl44 sl45">textureGatherOffsets</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">textureGrad</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">textureGradOffset</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">textureLod</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">textureLodOffset</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">textureOffset</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">textureProj</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">textureProjGrad</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">textureProjGradOffset</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">textureProjLod</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">textureProjLodOffset</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">textureProjOffset</a></li><li><a class="rewritelink command sl43 sl44 sl45">textureQueryLevels</a></li><li><a class="rewritelink command sl40 sl41 sl42 sl43 sl44 sl45">textureQueryLod</a></li><li><a class="rewritelink command sl45">textureSamples</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">textureSize</a></li></ul></li><li class="category el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">Matrix<ul><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">determinant</a></li><li><a class="rewritelink command el31 sl43 sl44 sl45">groupMemoryBarrier</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">inverse</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">matrixCompMult</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">outerProduct</a></li><li><a class="rewritelink command el30 el31 sl33 sl40 sl41 sl42 sl43 sl44 sl45">transpose</a></li></ul></li><li class="category el31 sl40 sl41 sl42 sl43 sl44 sl45">Integer<ul><li><a class="rewritelink command el31 sl40 sl41 sl42 sl43 sl44 sl45">bitCount</a></li><li><a class="rewritelink command el31 sl40 sl41 sl42 sl43 sl44 sl45">bitfieldExtract</a></li><li><a class="rewritelink command el31 sl40 sl41 sl42 sl43 sl44 sl45">bitfieldInsert</a></li><li><a class="rewritelink command el31 sl40 sl41 sl42 sl43 sl44 sl45">bitfieldReverse</a></li><li><a class="rewritelink command el31 sl40 sl41 sl42 sl43 sl44 sl45">findLSB</a></li><li><a class="rewritelink command el31 sl40 sl41 sl42 sl43 sl44 sl45">findMSB</a></li><li><a class="rewritelink command el31 sl40 sl41 sl42 sl43 sl44 sl45">uaddCarry</a></li><li><a class="rewritelink command el31 sl40 sl41 sl42 sl43 sl44 sl45">umulExtended</a></li><li><a class="rewritelink command el31 sl40 sl41 sl42 sl43 sl44 sl45">usubBorrow</a></li></ul></li><li class="category el31 sl42 sl43 sl44 sl45">Image<ul><li><a class="rewritelink command el31 sl42 sl43 sl44 sl45">imageAtomicAdd</a></li><li><a class="rewritelink command el31 sl42 sl43 sl44 sl45">imageAtomicAnd</a></li><li><a class="rewritelink command el31 sl42 sl43 sl44 sl45">imageAtomicCompSwap</a></li><li><a class="rewritelink command el31 sl42 sl43 sl44 sl45">imageAtomicExchange</a></li><li><a class="rewritelink command el31 sl42 sl43 sl44 sl45">imageAtomicMax</a></li><li><a class="rewritelink command el31 sl42 sl43 sl44 sl45">imageAtomicMin</a></li><li><a class="rewritelink command el31 sl42 sl43 sl44 sl45">imageAtomicOr</a></li><li><a class="rewritelink command el31 sl42 sl43 sl44 sl45">imageAtomicXor</a></li><li><a class="rewritelink command el31 sl42 sl43 sl44 sl45">imageLoad</a></li><li><a class="rewritelink command sl45">imageSamples</a></li><li><a class="rewritelink command el31 sl43 sl44 sl45">imageSize</a></li><li><a class="rewritelink command el31 sl42 sl43 sl44 sl45">imageStore</a></li></ul></li><li class="category el31 sl43 sl44 sl45 sl42">Atomic<ul><li><a class="rewritelink command el31 sl43 sl44 sl45">atomicAdd</a></li><li><a class="rewritelink command el31 sl43 sl44 sl45">atomicAnd</a></li><li><a class="rewritelink command el31 sl43 sl44 sl45">atomicCompSwap</a></li><li><a class="rewritelink command el31 sl42 sl43 sl44 sl45">atomicCounter</a></li><li><a class="rewritelink command el31 sl42 sl43 sl44 sl45">atomicCounterDecrement</a></li><li><a class="rewritelink command el31 sl42 sl43 sl44 sl45">atomicCounterIncrement</a></li><li><a class="rewritelink command el31 sl43 sl44 sl45">atomicExchange</a></li><li><a class="rewritelink command el31 sl43 sl44 sl45">atomicMax</a></li><li><a class="rewritelink command el31 sl43 sl44 sl45">atomicMin</a></li><li><a class="rewritelink command el31 sl43 sl44 sl45">atomicOr</a></li><li><a class="rewritelink command el31 sl43 sl44 sl45">atomicXor</a></li></ul></li><li class="category el31 sl40 sl41 sl42 sl43 sl44 sl45">Memory Barrier<ul><li><a class="rewritelink command el31 sl40 sl41 sl42 sl43 sl44 sl45">barrier</a></li><li><a class="rewritelink command el31 sl43 sl44 sl45">groupMemoryBarrier</a></li><li><a class="rewritelink command el31 sl40 sl41 sl42 sl43 sl44 sl45">memoryBarrier</a></li><li><a class="rewritelink command el31 sl43 sl44 sl45">memoryBarrierAtomicCounter</a></li><li><a class="rewritelink command el31 sl43 sl44 sl45">memoryBarrierBuffer</a></li><li><a class="rewritelink command el31 sl43 sl44 sl45">memoryBarrierImage</a></li><li><a class="rewritelink command el31 sl43 sl44 sl45">memoryBarrierShared</a></li></ul></li></ul> </div> <div id="khronos"> <div id="command_versions"><a class="current" href="../gl3/glTexEnv">OpenGL 3</a><br><a href="../gl2/glTexEnv">OpenGL 2</a><br></div> <h1 id="command_title">glTexEnv</h1> <div class="refentry" title="glTexEnv"><a id="glTexEnv"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>glTexEnv &#8212; set texture environment parameters</p></div><div class="refsynopsisdiv" title="C Specification"><h2>C Specification</h2><div class="funcsynopsis"><table class="funcprototype-table"><tr><td><code class="funcdef">void <b class="fsfunc">glTexEnvf</b>(</code></td><td>GLenum <var class="pdparam">target</var>, </td></tr><tr><td> </td><td>GLenum <var class="pdparam">pname</var>, </td></tr><tr><td> </td><td>GLfloat <var class="pdparam">param</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div><p></p><div class="funcsynopsis"><table class="funcprototype-table"><tr><td><code class="funcdef">void <b class="fsfunc">glTexEnvi</b>(</code></td><td>GLenum <var class="pdparam">target</var>, </td></tr><tr><td> </td><td>GLenum <var class="pdparam">pname</var>, </td></tr><tr><td> </td><td>GLint <var class="pdparam">param</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1" title="Parameters"><a id="parameters"></a><h2>Parameters</h2><div class="variablelist"><dl><dt><span class="term"><em class="parameter"><code>target</code></em></span></dt><dd><p> Specifies a texture environment. May be <code class="constant">GL_TEXTURE_ENV</code>, <code class="constant">GL_TEXTURE_FILTER_CONTROL</code> or <code class="constant">GL_POINT_SPRITE</code>. </p></dd><dt><span class="term"><em class="parameter"><code>pname</code></em></span></dt><dd><p> Specifies the symbolic name of a single-valued texture environment parameter. May be either <code class="constant">GL_TEXTURE_ENV_MODE</code>, <code class="constant">GL_TEXTURE_LOD_BIAS</code>, <code class="constant">GL_COMBINE_RGB</code>, <code class="constant">GL_COMBINE_ALPHA</code>, <code class="constant">GL_SRC0_RGB</code>, <code class="constant">GL_SRC1_RGB</code>, <code class="constant">GL_SRC2_RGB</code>, <code class="constant">GL_SRC0_ALPHA</code>, <code class="constant">GL_SRC1_ALPHA</code>, <code class="constant">GL_SRC2_ALPHA</code>, <code class="constant">GL_OPERAND0_RGB</code>, <code class="constant">GL_OPERAND1_RGB</code>, <code class="constant">GL_OPERAND2_RGB</code>, <code class="constant">GL_OPERAND0_ALPHA</code>, <code class="constant">GL_OPERAND1_ALPHA</code>, <code class="constant">GL_OPERAND2_ALPHA</code>, <code class="constant">GL_RGB_SCALE</code>, <code class="constant">GL_ALPHA_SCALE</code>, or <code class="constant">GL_COORD_REPLACE</code>. </p></dd><dt><span class="term"><em class="parameter"><code>param</code></em></span></dt><dd><p> Specifies a single symbolic constant, one of <code class="constant">GL_ADD</code>, <code class="constant">GL_ADD_SIGNED</code>, <code class="constant">GL_INTERPOLATE</code>, <code class="constant">GL_MODULATE</code>, <code class="constant">GL_DECAL</code>, <code class="constant">GL_BLEND</code>, <code class="constant">GL_REPLACE</code>, <code class="constant">GL_SUBTRACT</code>, <code class="constant">GL_COMBINE</code>, <code class="constant">GL_TEXTURE</code>, <code class="constant">GL_CONSTANT</code>, <code class="constant">GL_PRIMARY_COLOR</code>, <code class="constant">GL_PREVIOUS</code>, <code class="constant">GL_SRC_COLOR</code>, <code class="constant">GL_ONE_MINUS_SRC_COLOR</code>, <code class="constant">GL_SRC_ALPHA</code>, <code class="constant">GL_ONE_MINUS_SRC_ALPHA</code>, a single boolean value for the point sprite texture coordinate replacement, a single floating-point value for the texture level-of-detail bias, or 1.0, 2.0, or 4.0 when specifying the <code class="constant">GL_RGB_SCALE</code> or <code class="constant">GL_ALPHA_SCALE</code>. </p></dd></dl></div></div><div class="refsynopsisdiv" title="C Specification"><h2>C Specification</h2><div class="funcsynopsis"><table class="funcprototype-table"><tr><td><code class="funcdef">void <b class="fsfunc">glTexEnvfv</b>(</code></td><td>GLenum <var class="pdparam">target</var>, </td></tr><tr><td> </td><td>GLenum <var class="pdparam">pname</var>, </td></tr><tr><td> </td><td>const GLfloat * <var class="pdparam">params</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div><div class="funcsynopsis"><table class="funcprototype-table"><tr><td><code class="funcdef">void <b class="fsfunc">glTexEnviv</b>(</code></td><td>GLenum <var class="pdparam">target</var>, </td></tr><tr><td> </td><td>GLenum <var class="pdparam">pname</var>, </td></tr><tr><td> </td><td>const GLint * <var class="pdparam">params</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1" title="Parameters"><a id="parameters2"></a><h2>Parameters</h2><div class="variablelist"><dl><dt><span class="term"><em class="parameter"><code>target</code></em></span></dt><dd><p> Specifies a texture environment. May be either <code class="constant">GL_TEXTURE_ENV</code>, or <code class="constant">GL_TEXTURE_FILTER_CONTROL</code>. </p></dd><dt><span class="term"><em class="parameter"><code>pname</code></em></span></dt><dd><p> Specifies the symbolic name of a texture environment parameter. Accepted values are <code class="constant">GL_TEXTURE_ENV_MODE</code>, <code class="constant">GL_TEXTURE_ENV_COLOR</code>, or <code class="constant">GL_TEXTURE_LOD_BIAS</code>. </p></dd><dt><span class="term"><em class="parameter"><code>params</code></em></span></dt><dd><p> Specifies a pointer to a parameter array that contains either a single symbolic constant, single floating-point number, or an RGBA color. </p></dd></dl></div></div><div class="refsect1" title="Description"><a id="description"></a><h2>Description</h2><p> A texture environment specifies how texture values are interpreted when a fragment is textured. When <em class="parameter"><code>target</code></em> is <code class="constant">GL_TEXTURE_FILTER_CONTROL</code>, <em class="parameter"><code>pname</code></em> must be <code class="constant">GL_TEXTURE_LOD_BIAS</code>. When <em class="parameter"><code>target</code></em> is <code class="constant">GL_TEXTURE_ENV</code>, <em class="parameter"><code>pname</code></em> can be <code class="constant">GL_TEXTURE_ENV_MODE</code>, <code class="constant">GL_TEXTURE_ENV_COLOR</code>, <code class="constant">GL_COMBINE_RGB</code>, <code class="constant">GL_COMBINE_ALPHA</code>, <code class="constant">GL_RGB_SCALE</code>, <code class="constant">GL_ALPHA_SCALE</code>, <code class="constant">GL_SRC0_RGB</code>, <code class="constant">GL_SRC1_RGB</code>, <code class="constant">GL_SRC2_RGB</code>, <code class="constant">GL_SRC0_ALPHA</code>, <code class="constant">GL_SRC1_ALPHA</code>, or <code class="constant">GL_SRC2_ALPHA</code>. </p><p> If <em class="parameter"><code>pname</code></em> is <code class="constant">GL_TEXTURE_ENV_MODE</code>, then <em class="parameter"><code>params</code></em> is (or points to) the symbolic name of a texture function. Six texture functions may be specified: <code class="constant">GL_ADD</code>, <code class="constant">GL_MODULATE</code>, <code class="constant">GL_DECAL</code>, <code class="constant">GL_BLEND</code>, <code class="constant">GL_REPLACE</code>, or <code class="constant">GL_COMBINE</code>. </p><p> The following table shows the correspondence of filtered texture values <math overflow="scroll"><msub><mi mathvariant="italic">R</mi> <mi mathvariant="italic">t</mi></msub></math>, <math overflow="scroll"><msub><mi mathvariant="italic">G</mi> <mi mathvariant="italic">t</mi></msub></math>, <math overflow="scroll"><msub><mi mathvariant="italic">B</mi> <mi mathvariant="italic">t</mi></msub></math>, <math overflow="scroll"><msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">t</mi></msub></math>, <math overflow="scroll"><msub><mi mathvariant="italic">L</mi> <mi mathvariant="italic">t</mi></msub></math>, <math overflow="scroll"><msub><mi mathvariant="italic">I</mi> <mi mathvariant="italic">t</mi></msub></math> to texture source components. <math overflow="scroll"><msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">s</mi></msub></math> and <math overflow="scroll"><msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">s</mi></msub></math> are used by the texture functions described below. </p><p> </p><div class="informaltable"><table><colgroup><col><col><col></colgroup><thead><tr><th> Texture Base Internal Format </th><th class="center"> <math overflow="scroll"><msub><mi mathvariant="bold-italic">C</mi> <mi mathvariant="italic">s</mi></msub></math> </th><th class="center"> <math overflow="scroll"><msub><mi mathvariant="bold-italic">A</mi> <mi mathvariant="italic">s</mi></msub></math> </th></tr></thead><tbody><tr><td> <code class="constant">GL_ALPHA</code> </td><td> (0, 0, 0) </td><td> <math overflow="scroll"><msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">t</mi></msub></math> </td></tr><tr><td> <code class="constant">GL_LUMINANCE</code> </td><td> ( <math overflow="scroll"><msub><mi mathvariant="italic">L</mi> <mi mathvariant="italic">t</mi></msub></math>, <math overflow="scroll"><msub><mi mathvariant="italic">L</mi> <mi mathvariant="italic">t</mi></msub></math>, <math overflow="scroll"><msub><mi mathvariant="italic">L</mi> <mi mathvariant="italic">t</mi></msub></math> ) </td><td> 1 </td></tr><tr><td> <code class="constant">GL_LUMINANCE_ALPHA</code> </td><td> ( <math overflow="scroll"><msub><mi mathvariant="italic">L</mi> <mi mathvariant="italic">t</mi></msub></math>, <math overflow="scroll"><msub><mi mathvariant="italic">L</mi> <mi mathvariant="italic">t</mi></msub></math>, <math overflow="scroll"><msub><mi mathvariant="italic">L</mi> <mi mathvariant="italic">t</mi></msub></math> ) </td><td> <math overflow="scroll"><msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">t</mi></msub></math> </td></tr><tr><td> <code class="constant">GL_INTENSITY</code> </td><td> ( <math overflow="scroll"><msub><mi mathvariant="italic">I</mi> <mi mathvariant="italic">t</mi></msub></math>, <math overflow="scroll"><msub><mi mathvariant="italic">I</mi> <mi mathvariant="italic">t</mi></msub></math>, <math overflow="scroll"><msub><mi mathvariant="italic">I</mi> <mi mathvariant="italic">t</mi></msub></math> ) </td><td> <math overflow="scroll"><msub><mi mathvariant="italic">I</mi> <mi mathvariant="italic">t</mi></msub></math> </td></tr><tr><td> <code class="constant">GL_RGB</code> </td><td> ( <math overflow="scroll"><msub><mi mathvariant="italic">R</mi> <mi mathvariant="italic">t</mi></msub></math>, <math overflow="scroll"><msub><mi mathvariant="italic">G</mi> <mi mathvariant="italic">t</mi></msub></math>, <math overflow="scroll"><msub><mi mathvariant="italic">B</mi> <mi mathvariant="italic">t</mi></msub></math> ) </td><td> 1 </td></tr><tr><td> <code class="constant">GL_RGBA</code> </td><td> ( <math overflow="scroll"><msub><mi mathvariant="italic">R</mi> <mi mathvariant="italic">t</mi></msub></math>, <math overflow="scroll"><msub><mi mathvariant="italic">G</mi> <mi mathvariant="italic">t</mi></msub></math>, <math overflow="scroll"><msub><mi mathvariant="italic">B</mi> <mi mathvariant="italic">t</mi></msub></math> ) </td><td> <math overflow="scroll"><msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">t</mi></msub></math> </td></tr></tbody></table></div><p> A texture function acts on the fragment to be textured using the texture image value that applies to the fragment (see <a class="citerefentry" href="glTexParameter"><span class="citerefentry"><span class="refentrytitle">glTexParameter</span></span></a>) and produces an RGBA color for that fragment. The following table shows how the RGBA color is produced for each of the first five texture functions that can be chosen. <math overflow="scroll"><mi mathvariant="italic">C</mi></math> is a triple of color values (RGB) and <math overflow="scroll"><mi mathvariant="italic">A</mi></math> is the associated alpha value. RGBA values extracted from a texture image are in the range [0,1]. The subscript <math overflow="scroll"><mi mathvariant="italic">p</mi></math> refers to the color computed from the previous texture stage (or the incoming fragment if processing texture stage 0), the subscript <math overflow="scroll"><mi mathvariant="italic">s</mi></math> to the texture source color, the subscript <math overflow="scroll"><mi mathvariant="italic">c</mi></math> to the texture environment color, and the subscript <math overflow="scroll"><mi mathvariant="italic">v</mi></math> indicates a value produced by the texture function. </p><p> </p><div class="informaltable"><table><colgroup><col><col><col><col><col><col><col></colgroup><thead><tr><th class="center"> Texture Base Internal Format </th><th class="center"> <code class="constant">Value</code> </th><th class="center"> <code class="constant">GL_REPLACE</code> Function </th><th class="center"> <code class="constant">GL_MODULATE</code> Function </th><th class="center"> <code class="constant">GL_DECAL</code> Function </th><th class="center"> <code class="constant">GL_BLEND</code> Function </th><th class="center"> <code class="constant">GL_ADD</code> Function </th></tr></thead><tbody><tr><td class="center"> <code class="constant">GL_ALPHA</code> </td><td class="center"> <math overflow="scroll"> <mrow> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">v</mi> </msub> <mo>=</mo> </mrow> </math> </td><td class="center"> <math overflow="scroll"> <mrow> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">p</mi> </msub> </mrow> </math> </td><td class="center"> <math overflow="scroll"> <mrow> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">p</mi> </msub> </mrow> </math> </td><td class="center"> undefined </td><td class="center"> <math overflow="scroll"> <mrow> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">p</mi> </msub> </mrow> </math> </td><td class="center"> <math overflow="scroll"> <mrow> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">p</mi> </msub> </mrow> </math> </td></tr><tr><td class="center"> </td><td class="center"> <math overflow="scroll"> <mrow> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">v</mi> </msub> <mo>=</mo> </mrow> </math> </td><td class="center"> <math overflow="scroll"> <mrow> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">s</mi> </msub> </mrow> </math> </td><td class="center"> <math overflow="scroll"> <mrow> <mrow> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">p</mi> </msub> <mo>&#8290;</mo> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">s</mi> </msub> </mrow> </mrow> </math> </td><td class="center"> </td><td class="center"> <math overflow="scroll"> <mrow> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">v</mi> </msub> <mo>=</mo> <mrow> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">p</mi> </msub> <mo>&#8290;</mo> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">s</mi> </msub> </mrow> </mrow> </math> </td><td class="center"> <math overflow="scroll"> <mrow> <mrow> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">p</mi> </msub> <mo>&#8290;</mo> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">s</mi> </msub> </mrow> </mrow> </math> </td></tr><tr><td class="center"> <code class="constant">GL_LUMINANCE</code> </td><td class="center"> <math overflow="scroll"> <mrow> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">v</mi> </msub> <mo>=</mo> </mrow> </math> </td><td class="center"> <math overflow="scroll"> <mrow> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">s</mi> </msub> </mrow> </math> </td><td class="center"> <math overflow="scroll"> <mrow> <mrow> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">p</mi> </msub> <mo>&#8290;</mo> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">s</mi> </msub> </mrow> </mrow> </math> </td><td class="center"> undefined </td><td class="center"> <math overflow="scroll"> <mrow> <mrow> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">p</mi> </msub> <mo>&#8290;</mo> <mfenced open="(" close=")"> <mrow> <mn>1</mn> <mo>-</mo> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">s</mi> </msub> </mrow> </mfenced> <mo>+</mo> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">c</mi> </msub> <mo>&#8290;</mo> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">s</mi> </msub> </mrow> </mrow> </math> </td><td class="center"> <math overflow="scroll"> <mrow> <mrow> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">p</mi> </msub> <mo>+</mo> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">s</mi> </msub> </mrow> </mrow> </math> </td></tr><tr><td class="center"> (or 1) </td><td class="center"> <math overflow="scroll"> <mrow> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">v</mi> </msub> <mo>=</mo> </mrow> </math> </td><td class="center"> <math overflow="scroll"> <mrow> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">p</mi> </msub> </mrow> </math> </td><td class="center"> <math overflow="scroll"> <mrow> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">p</mi> </msub> </mrow> </math> </td><td class="center"> </td><td class="center"> <math overflow="scroll"> <mrow> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">p</mi> </msub> </mrow> </math> </td><td class="center"> <math overflow="scroll"> <mrow> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">p</mi> </msub> </mrow> </math> </td></tr><tr><td class="center"> <code class="constant">GL_LUMINANCE_ALPHA</code> </td><td class="center"> <math overflow="scroll"> <mrow> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">v</mi> </msub> <mo>=</mo> </mrow> </math> </td><td class="center"> <math overflow="scroll"> <mrow> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">s</mi> </msub> </mrow> </math> </td><td class="center"> <math overflow="scroll"> <mrow> <mrow> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">p</mi> </msub> <mo>&#8290;</mo> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">s</mi> </msub> </mrow> </mrow> </math> </td><td class="center"> undefined </td><td class="center"> <math overflow="scroll"> <mrow> <mrow> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">p</mi> </msub> <mo>&#8290;</mo> <mfenced open="(" close=")"> <mrow> <mn>1</mn> <mo>-</mo> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">s</mi> </msub> </mrow> </mfenced> <mo>+</mo> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">c</mi> </msub> <mo>&#8290;</mo> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">s</mi> </msub> </mrow> </mrow> </math> </td><td class="center"> <math overflow="scroll"> <mrow> <mrow> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">p</mi> </msub> <mo>+</mo> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">s</mi> </msub> </mrow> </mrow> </math> </td></tr><tr><td class="center"> (or 2) </td><td class="center"> <math overflow="scroll"> <mrow> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">v</mi> </msub> <mo>=</mo> </mrow> </math> </td><td class="center"> <math overflow="scroll"> <mrow> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">s</mi> </msub> </mrow> </math> </td><td class="center"> <math overflow="scroll"> <mrow> <mrow> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">p</mi> </msub> <mo>&#8290;</mo> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">s</mi> </msub> </mrow> </mrow> </math> </td><td class="center"> </td><td class="center"> <math overflow="scroll"> <mrow> <mrow> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">p</mi> </msub> <mo>&#8290;</mo> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">s</mi> </msub> </mrow> </mrow> </math> </td><td class="center"> <math overflow="scroll"> <mrow> <mrow> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">p</mi> </msub> <mo>&#8290;</mo> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">s</mi> </msub> </mrow> </mrow> </math> </td></tr><tr><td class="center"> <code class="constant">GL_INTENSITY</code> </td><td class="center"> <math overflow="scroll"> <mrow> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">v</mi> </msub> <mo>=</mo> </mrow> </math> </td><td class="center"> <math overflow="scroll"> <mrow> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">s</mi> </msub> </mrow> </math> </td><td class="center"> <math overflow="scroll"> <mrow> <mrow> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">p</mi> </msub> <mo>&#8290;</mo> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">s</mi> </msub> </mrow> </mrow> </math> </td><td class="center"> undefined </td><td class="center"> <math overflow="scroll"> <mrow> <mrow> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">p</mi> </msub> <mo>&#8290;</mo> <mfenced open="(" close=")"> <mrow> <mn>1</mn> <mo>-</mo> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">s</mi> </msub> </mrow> </mfenced> <mo>+</mo> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">c</mi> </msub> <mo>&#8290;</mo> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">s</mi> </msub> </mrow> </mrow> </math> </td><td class="center"> <math overflow="scroll"> <mrow> <mrow> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">p</mi> </msub> <mo>+</mo> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">s</mi> </msub> </mrow> </mrow> </math> </td></tr><tr><td class="center"> </td><td class="center"> <math overflow="scroll"> <mrow> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">v</mi> </msub> <mo>=</mo> </mrow> </math> </td><td class="center"> <math overflow="scroll"> <mrow> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">s</mi> </msub> </mrow> </math> </td><td class="center"> <math overflow="scroll"> <mrow> <mrow> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">p</mi> </msub> <mo>&#8290;</mo> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">s</mi> </msub> </mrow> </mrow> </math> </td><td class="center"> </td><td class="center"> <math overflow="scroll"> <mrow> <mrow> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">p</mi> </msub> <mo>&#8290;</mo> <mfenced open="(" close=")"> <mrow> <mn>1</mn> <mo>-</mo> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">s</mi> </msub> </mrow> </mfenced> <mo>+</mo> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">c</mi> </msub> <mo>&#8290;</mo> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">s</mi> </msub> </mrow> </mrow> </math> </td><td class="center"> <math overflow="scroll"> <mrow> <mrow> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">p</mi> </msub> <mo>+</mo> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">s</mi> </msub> </mrow> </mrow> </math> </td></tr><tr><td class="center"> <code class="constant">GL_RGB</code> </td><td class="center"> <math overflow="scroll"> <mrow> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">v</mi> </msub> <mo>=</mo> </mrow> </math> </td><td class="center"> <math overflow="scroll"> <mrow> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">s</mi> </msub> </mrow> </math> </td><td class="center"> <math overflow="scroll"> <mrow> <mrow> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">p</mi> </msub> <mo>&#8290;</mo> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">s</mi> </msub> </mrow> </mrow> </math> </td><td class="center"> <math overflow="scroll"> <mrow> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">s</mi> </msub> </mrow> </math> </td><td class="center"> <math overflow="scroll"> <mrow> <mrow> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">p</mi> </msub> <mo>&#8290;</mo> <mfenced open="(" close=")"> <mrow> <mn>1</mn> <mo>-</mo> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">s</mi> </msub> </mrow> </mfenced> <mo>+</mo> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">c</mi> </msub> <mo>&#8290;</mo> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">s</mi> </msub> </mrow> </mrow> </math> </td><td class="center"> <math overflow="scroll"> <mrow> <mrow> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">p</mi> </msub> <mo>+</mo> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">s</mi> </msub> </mrow> </mrow> </math> </td></tr><tr><td class="center"> (or 3) </td><td class="center"> <math overflow="scroll"> <mrow> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">v</mi> </msub> <mo>=</mo> </mrow> </math> </td><td class="center"> <math overflow="scroll"> <mrow> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">p</mi> </msub> </mrow> </math> </td><td class="center"> <math overflow="scroll"> <mrow> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">p</mi> </msub> </mrow> </math> </td><td class="center"> <math overflow="scroll"> <mrow> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">p</mi> </msub> </mrow> </math> </td><td class="center"> <math overflow="scroll"> <mrow> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">p</mi> </msub> </mrow> </math> </td><td class="center"> <math overflow="scroll"> <mrow> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">p</mi> </msub> </mrow> </math> </td></tr><tr><td class="center"> <code class="constant">GL_RGBA</code> </td><td class="center"> <math overflow="scroll"> <mrow> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">v</mi> </msub> <mo>=</mo> </mrow> </math> </td><td class="center"> <math overflow="scroll"> <mrow> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">s</mi> </msub> </mrow> </math> </td><td class="center"> <math overflow="scroll"> <mrow> <mrow> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">p</mi> </msub> <mo>&#8290;</mo> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">s</mi> </msub> </mrow> </mrow> </math> </td><td class="center"> <math overflow="scroll"> <mrow> <mrow> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">p</mi> </msub> <mo>&#8290;</mo> <mfenced open="(" close=")"> <mrow> <mn>1</mn> <mo>-</mo> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">s</mi> </msub> </mrow> </mfenced> <mo>+</mo> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">s</mi> </msub> <mo>&#8290;</mo> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">s</mi> </msub> </mrow> </mrow> </math> </td><td class="center"> <math overflow="scroll"> <mrow> <mrow> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">p</mi> </msub> <mo>&#8290;</mo> <mfenced open="(" close=")"> <mrow> <mn>1</mn> <mo>-</mo> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">s</mi> </msub> </mrow> </mfenced> <mo>+</mo> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">c</mi> </msub> <mo>&#8290;</mo> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">s</mi> </msub> </mrow> </mrow> </math> </td><td class="center"> <math overflow="scroll"> <mrow> <mrow> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">p</mi> </msub> <mo>+</mo> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">s</mi> </msub> </mrow> </mrow> </math> </td></tr><tr><td class="center"> (or 4) </td><td class="center"> <math overflow="scroll"> <mrow> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">v</mi> </msub> <mo>=</mo> </mrow> </math> </td><td class="center"> <math overflow="scroll"> <mrow> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">s</mi> </msub> </mrow> </math> </td><td class="center"> <math overflow="scroll"> <mrow> <mrow> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">p</mi> </msub> <mo>&#8290;</mo> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">s</mi> </msub> </mrow> </mrow> </math> </td><td class="center"> <math overflow="scroll"> <mrow> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">p</mi> </msub> </mrow> </math> </td><td class="center"> <math overflow="scroll"> <mrow> <mrow> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">p</mi> </msub> <mo>&#8290;</mo> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">s</mi> </msub> </mrow> </mrow> </math> </td><td class="center"> <math overflow="scroll"> <mrow> <mrow> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">p</mi> </msub> <mo>&#8290;</mo> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">s</mi> </msub> </mrow> </mrow> </math> </td></tr></tbody></table></div><p> If <em class="parameter"><code>pname</code></em> is <code class="constant">GL_TEXTURE_ENV_MODE</code>, and <em class="parameter"><code>params</code></em> is <code class="constant">GL_COMBINE</code>, the form of the texture function depends on the values of <code class="constant">GL_COMBINE_RGB</code> and <code class="constant">GL_COMBINE_ALPHA</code>. </p><p> The following describes how the texture sources, as specified by <code class="constant">GL_SRC0_RGB</code>, <code class="constant">GL_SRC1_RGB</code>, <code class="constant">GL_SRC2_RGB</code>, <code class="constant">GL_SRC0_ALPHA</code>, <code class="constant">GL_SRC1_ALPHA</code>, and <code class="constant">GL_SRC2_ALPHA</code>, are combined to produce a final texture color. In the following tables, <code class="constant">GL_SRC0_c</code> is represented by <math overflow="scroll"><mi mathvariant="italic">Arg0</mi></math>, <code class="constant">GL_SRC1_c</code> is represented by <math overflow="scroll"><mi mathvariant="italic">Arg1</mi></math>, and <code class="constant">GL_SRC2_c</code> is represented by <math overflow="scroll"><mi mathvariant="italic">Arg2</mi></math>. </p><p> <code class="constant">GL_COMBINE_RGB</code> accepts any of <code class="constant">GL_REPLACE</code>, <code class="constant">GL_MODULATE</code>, <code class="constant">GL_ADD</code>, <code class="constant">GL_ADD_SIGNED</code>, <code class="constant">GL_INTERPOLATE</code>, <code class="constant">GL_SUBTRACT</code>, <code class="constant">GL_DOT3_RGB</code>, or <code class="constant">GL_DOT3_RGBA</code>. </p><p> </p><div class="informaltable"><table><colgroup><col><col></colgroup><thead><tr><th><span class="bold"><strong> <code class="constant">GL_COMBINE_RGB</code> </strong></span></th><th><span class="bold"><strong> Texture Function </strong></span></th></tr></thead><tbody><tr><td> <code class="constant">GL_REPLACE</code> </td><td> <math overflow="scroll"><mi mathvariant="italic">Arg0</mi></math> </td></tr><tr><td> <code class="constant">GL_MODULATE</code> </td><td> <math overflow="scroll"> <mrow> <mi mathvariant="italic">Arg0</mi> <mo>&#215;</mo> <mi mathvariant="italic">Arg1</mi> </mrow> </math> </td></tr><tr><td> <code class="constant">GL_ADD</code> </td><td> <math overflow="scroll"> <mrow> <mi mathvariant="italic">Arg0</mi> <mo>+</mo> <mi mathvariant="italic">Arg1</mi> </mrow> </math> </td></tr><tr><td> <code class="constant">GL_ADD_SIGNED</code> </td><td> <math overflow="scroll"> <mrow> <mi mathvariant="italic">Arg0</mi> <mo>+</mo> <mi mathvariant="italic">Arg1</mi> <mo>-</mo> <mn>0.5</mn> </mrow> </math> </td></tr><tr><td> <code class="constant">GL_INTERPOLATE</code> </td><td> <math overflow="scroll"> <mrow> <mrow> <mi mathvariant="italic">Arg0</mi> <mo>&#215;</mo> <mi mathvariant="italic">Arg2</mi> </mrow> <mo>+</mo> <mrow> <mi mathvariant="italic">Arg1</mi> <mo>&#215;</mo> <mfenced open="(" close=")"> <mrow> <mn>1</mn> <mo>-</mo> <mi mathvariant="italic">Arg2</mi> </mrow> </mfenced> </mrow> </mrow> </math> </td></tr><tr><td> <code class="constant">GL_SUBTRACT</code> </td><td> <math overflow="scroll"> <mrow> <mi mathvariant="italic">Arg0</mi> <mo>-</mo> <mi mathvariant="italic">Arg1</mi> </mrow> </math> </td></tr><tr><td> <code class="constant">GL_DOT3_RGB</code> or <code class="constant">GL_DOT3_RGBA</code> </td><td> <math overflow="scroll"> <mrow> <mn>4</mn> <mo>&#215;</mo> <mfenced open="(" close=")"> <mrow> <mfenced open="(" close=")"> <mrow> <mfenced open="(" close=")"> <mrow> <mfenced open close> <msub><mi mathvariant="italic">Arg0</mi> <mi mathvariant="italic">r</mi> </msub> </mfenced> <mo>-</mo> <mn>0.5</mn> </mrow> </mfenced> <mo>&#215;</mo> <mfenced open="(" close=")"> <mrow> <mfenced open close> <msub><mi mathvariant="italic">Arg1</mi> <mi mathvariant="italic">r</mi> </msub> </mfenced> <mo>-</mo> <mn>0.5</mn> </mrow> </mfenced> </mrow> </mfenced> <mo>+</mo> <mfenced open="(" close=")"> <mrow> <mfenced open="(" close=")"> <mrow> <mfenced open close> <msub><mi mathvariant="italic">Arg0</mi> <mi mathvariant="italic">g</mi> </msub> </mfenced> <mo>-</mo> <mn>0.5</mn> </mrow> </mfenced> <mo>&#215;</mo> <mfenced open="(" close=")"> <mrow> <mfenced open close> <msub><mi mathvariant="italic">Arg1</mi> <mi mathvariant="italic">g</mi> </msub> </mfenced> <mo>-</mo> <mn>0.5</mn> </mrow> </mfenced> </mrow> </mfenced> <mo>+</mo> <mfenced open="(" close=")"> <mrow> <mfenced open="(" close=")"> <mrow> <mfenced open close> <msub><mi mathvariant="italic">Arg0</mi> <mi mathvariant="italic">b</mi> </msub> </mfenced> <mo>-</mo> <mn>0.5</mn> </mrow> </mfenced> <mo>&#215;</mo> <mfenced open="(" close=")"> <mrow> <mfenced open close> <msub><mi mathvariant="italic">Arg1</mi> <mi mathvariant="italic">b</mi> </msub> </mfenced> <mo>-</mo> <mn>0.5</mn> </mrow> </mfenced> </mrow> </mfenced> </mrow> </mfenced> </mrow> </math> </td></tr></tbody></table></div><p> The scalar results for <code class="constant">GL_DOT3_RGB</code> and <code class="constant">GL_DOT3_RGBA</code> are placed into each of the 3 (RGB) or 4 (RGBA) components on output. </p><p> Likewise, <code class="constant">GL_COMBINE_ALPHA</code> accepts any of <code class="constant">GL_REPLACE</code>, <code class="constant">GL_MODULATE</code>, <code class="constant">GL_ADD</code>, <code class="constant">GL_ADD_SIGNED</code>, <code class="constant">GL_INTERPOLATE</code>, or <code class="constant">GL_SUBTRACT</code>. The following table describes how alpha values are combined: </p><p> </p><div class="informaltable"><table><colgroup><col><col></colgroup><thead><tr><th><span class="bold"><strong> <code class="constant">GL_COMBINE_ALPHA</code> </strong></span></th><th><span class="bold"><strong> Texture Function </strong></span></th></tr></thead><tbody><tr><td> <code class="constant">GL_REPLACE</code> </td><td> <math overflow="scroll"><mi mathvariant="italic">Arg0</mi></math> </td></tr><tr><td> <code class="constant">GL_MODULATE</code> </td><td> <math overflow="scroll"> <mrow> <mi mathvariant="italic">Arg0</mi> <mo>&#215;</mo> <mi mathvariant="italic">Arg1</mi> </mrow> </math> </td></tr><tr><td> <code class="constant">GL_ADD</code> </td><td> <math overflow="scroll"> <mrow> <mi mathvariant="italic">Arg0</mi> <mo>+</mo> <mi mathvariant="italic">Arg1</mi> </mrow> </math> </td></tr><tr><td> <code class="constant">GL_ADD_SIGNED</code> </td><td> <math overflow="scroll"> <mrow> <mi mathvariant="italic">Arg0</mi> <mo>+</mo> <mi mathvariant="italic">Arg1</mi> <mo>-</mo> <mn>0.5</mn> </mrow> </math> </td></tr><tr><td> <code class="constant">GL_INTERPOLATE</code> </td><td> <math overflow="scroll"> <mrow> <mrow> <mi mathvariant="italic">Arg0</mi> <mo>&#215;</mo> <mi mathvariant="italic">Arg2</mi> </mrow> <mo>+</mo> <mrow> <mi mathvariant="italic">Arg1</mi> <mo>&#215;</mo> <mfenced open="(" close=")"> <mrow> <mn>1</mn> <mo>-</mo> <mi mathvariant="italic">Arg2</mi> </mrow> </mfenced> </mrow> </mrow> </math> </td></tr><tr><td> <code class="constant">GL_SUBTRACT</code> </td><td> <math overflow="scroll"> <mrow> <mi mathvariant="italic">Arg0</mi> <mo>-</mo> <mi mathvariant="italic">Arg1</mi> </mrow> </math> </td></tr></tbody></table></div><p> In the following tables, the value <math overflow="scroll"> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">s</mi> </msub> </math> represents the color sampled from the currently bound texture, <math overflow="scroll"> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">c</mi> </msub> </math> represents the constant texture-environment color, <math overflow="scroll"> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">f</mi> </msub> </math> represents the primary color of the incoming fragment, and <math overflow="scroll"> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">p</mi> </msub> </math> represents the color computed from the previous texture stage or <math overflow="scroll"> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">f</mi> </msub> </math> if processing texture stage 0. Likewise, <math overflow="scroll"> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">s</mi> </msub> </math>, <math overflow="scroll"> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">c</mi> </msub> </math>, <math overflow="scroll"> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">f</mi> </msub> </math>, and <math overflow="scroll"> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">p</mi> </msub> </math> represent the respective alpha values. </p><p> The following table describes the values assigned to <math overflow="scroll"><mi mathvariant="italic">Arg0</mi></math>, <math overflow="scroll"><mi mathvariant="italic">Arg1</mi></math>, and <math overflow="scroll"><mi mathvariant="italic">Arg2</mi></math> based upon the RGB sources and operands: </p><p> </p><div class="informaltable"><table><colgroup><col><col><col></colgroup><thead><tr><th><span class="bold"><strong> <code class="constant">GL_SRCn_RGB</code> </strong></span></th><th><span class="bold"><strong> <code class="constant">GL_OPERANDn_RGB</code> </strong></span></th><th class="center"><span class="bold"><strong> Argument Value </strong></span></th></tr></thead><tbody><tr><td> <code class="constant">GL_TEXTURE</code> </td><td> <code class="constant">GL_SRC_COLOR</code> </td><td class="center"> <math overflow="scroll"> <mfenced open close> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">s</mi> </msub> </mfenced> </math> </td></tr><tr><td> </td><td> <code class="constant">GL_ONE_MINUS_SRC_COLOR</code> </td><td class="center"> <math overflow="scroll"> <mrow> <mn>1</mn> <mo>-</mo> <mfenced open close> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">s</mi> </msub> </mfenced> </mrow> </math> </td></tr><tr><td> </td><td> <code class="constant">GL_SRC_ALPHA</code> </td><td class="center"> <math overflow="scroll"> <mfenced open close> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">s</mi> </msub> </mfenced> </math> </td></tr><tr><td> </td><td> <code class="constant">GL_ONE_MINUS_SRC_ALPHA</code> </td><td class="center"> <math overflow="scroll"> <mrow> <mn>1</mn> <mo>-</mo> <mfenced open close> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">s</mi> </msub> </mfenced> </mrow> </math> </td></tr><tr><td> <code class="constant">GL_TEXTUREn</code> </td><td> <code class="constant">GL_SRC_COLOR</code> </td><td class="center"> <math overflow="scroll"> <mfenced open close> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">s</mi> </msub> </mfenced> </math> </td></tr><tr><td> </td><td> <code class="constant">GL_ONE_MINUS_SRC_COLOR</code> </td><td class="center"> <math overflow="scroll"> <mrow> <mn>1</mn> <mo>-</mo> <mfenced open close> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">s</mi> </msub> </mfenced> </mrow> </math> </td></tr><tr><td> </td><td> <code class="constant">GL_SRC_ALPHA</code> </td><td class="center"> <math overflow="scroll"> <mfenced open close> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">s</mi> </msub> </mfenced> </math> </td></tr><tr><td> </td><td> <code class="constant">GL_ONE_MINUS_SRC_ALPHA</code> </td><td class="center"> <math overflow="scroll"> <mrow> <mn>1</mn> <mo>-</mo> <mfenced open close> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">s</mi> </msub> </mfenced> </mrow> </math> </td></tr><tr><td> <code class="constant">GL_CONSTANT</code> </td><td> <code class="constant">GL_SRC_COLOR</code> </td><td class="center"> <math overflow="scroll"> <mfenced open close> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">c</mi> </msub> </mfenced> </math> </td></tr><tr><td> </td><td> <code class="constant">GL_ONE_MINUS_SRC_COLOR</code> </td><td class="center"> <math overflow="scroll"> <mrow> <mn>1</mn> <mo>-</mo> <mfenced open close> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">c</mi> </msub> </mfenced> </mrow> </math> </td></tr><tr><td> </td><td> <code class="constant">GL_SRC_ALPHA</code> </td><td class="center"> <math overflow="scroll"> <mfenced open close> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">c</mi> </msub> </mfenced> </math> </td></tr><tr><td> </td><td> <code class="constant">GL_ONE_MINUS_SRC_ALPHA</code> </td><td class="center"> <math overflow="scroll"> <mrow> <mn>1</mn> <mo>-</mo> <mfenced open close> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">c</mi> </msub> </mfenced> </mrow> </math> </td></tr><tr><td> <code class="constant">GL_PRIMARY_COLOR</code> </td><td> <code class="constant">GL_SRC_COLOR</code> </td><td class="center"> <math overflow="scroll"> <mfenced open close> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">f</mi> </msub> </mfenced> </math> </td></tr><tr><td> </td><td> <code class="constant">GL_ONE_MINUS_SRC_COLOR</code> </td><td class="center"> <math overflow="scroll"> <mrow> <mn>1</mn> <mo>-</mo> <mfenced open close> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">f</mi> </msub> </mfenced> </mrow> </math> </td></tr><tr><td> </td><td> <code class="constant">GL_SRC_ALPHA</code> </td><td class="center"> <math overflow="scroll"> <mfenced open close> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">f</mi> </msub> </mfenced> </math> </td></tr><tr><td> </td><td> <code class="constant">GL_ONE_MINUS_SRC_ALPHA</code> </td><td class="center"> <math overflow="scroll"> <mrow> <mn>1</mn> <mo>-</mo> <mfenced open close> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">f</mi> </msub> </mfenced> </mrow> </math> </td></tr><tr><td> <code class="constant">GL_PREVIOUS</code> </td><td> <code class="constant">GL_SRC_COLOR</code> </td><td class="center"> <math overflow="scroll"> <mfenced open close> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">p</mi> </msub> </mfenced> </math> </td></tr><tr><td> </td><td> <code class="constant">GL_ONE_MINUS_SRC_COLOR</code> </td><td class="center"> <math overflow="scroll"> <mrow> <mn>1</mn> <mo>-</mo> <mfenced open close> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">p</mi> </msub> </mfenced> </mrow> </math> </td></tr><tr><td> </td><td> <code class="constant">GL_SRC_ALPHA</code> </td><td class="center"> <math overflow="scroll"> <mfenced open close> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">p</mi> </msub> </mfenced> </math> </td></tr><tr><td> </td><td> <code class="constant">GL_ONE_MINUS_SRC_ALPHA</code> </td><td class="center"> <math overflow="scroll"> <mrow> <mn>1</mn> <mo>-</mo> <mfenced open close> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">p</mi> </msub> </mfenced> </mrow> </math> </td></tr></tbody></table></div><p> For <code class="constant">GL_TEXTUREn</code> sources, <math overflow="scroll"> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">s</mi> </msub> </math> and <math overflow="scroll"> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">s</mi> </msub> </math> represent the color and alpha, respectively, produced from texture stage <math overflow="scroll"><mi mathvariant="italic">n</mi></math>. </p><p> The follow table describes the values assigned to <math overflow="scroll"><mi mathvariant="italic">Arg0</mi></math>, <math overflow="scroll"><mi mathvariant="italic">Arg1</mi></math>, and <math overflow="scroll"><mi mathvariant="italic">Arg2</mi></math> based upon the alpha sources and operands: </p><p> </p><div class="informaltable"><table><colgroup><col><col><col></colgroup><thead><tr><th><span class="bold"><strong> <code class="constant">GL_SRCn_ALPHA</code> </strong></span></th><th><span class="bold"><strong> <code class="constant">GL_OPERANDn_ALPHA</code> </strong></span></th><th class="center"><span class="bold"><strong> Argument Value </strong></span></th></tr></thead><tbody><tr><td> <code class="constant">GL_TEXTURE</code> </td><td> <code class="constant">GL_SRC_ALPHA</code> </td><td class="center"> <math overflow="scroll"> <mfenced open close> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">s</mi> </msub> </mfenced> </math> </td></tr><tr><td> </td><td> <code class="constant">GL_ONE_MINUS_SRC_ALPHA</code> </td><td class="center"> <math overflow="scroll"> <mrow> <mn>1</mn> <mo>-</mo> <mfenced open close> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">s</mi> </msub> </mfenced> </mrow> </math> </td></tr><tr><td> <code class="constant">GL_TEXTUREn</code> </td><td> <code class="constant">GL_SRC_ALPHA</code> </td><td class="center"> <math overflow="scroll"> <mfenced open close> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">s</mi> </msub> </mfenced> </math> </td></tr><tr><td> </td><td> <code class="constant">GL_ONE_MINUS_SRC_ALPHA</code> </td><td class="center"> <math overflow="scroll"> <mrow> <mn>1</mn> <mo>-</mo> <mfenced open close> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">s</mi> </msub> </mfenced> </mrow> </math> </td></tr><tr><td> <code class="constant">GL_CONSTANT</code> </td><td> <code class="constant">GL_SRC_ALPHA</code> </td><td class="center"> <math overflow="scroll"> <mfenced open close> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">c</mi> </msub> </mfenced> </math> </td></tr><tr><td> </td><td> <code class="constant">GL_ONE_MINUS_SRC_ALPHA</code> </td><td class="center"> <math overflow="scroll"> <mrow> <mn>1</mn> <mo>-</mo> <mfenced open close> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">c</mi> </msub> </mfenced> </mrow> </math> </td></tr><tr><td> <code class="constant">GL_PRIMARY_COLOR</code> </td><td> <code class="constant">GL_SRC_ALPHA</code> </td><td class="center"> <math overflow="scroll"> <mfenced open close> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">f</mi> </msub> </mfenced> </math> </td></tr><tr><td> </td><td> <code class="constant">GL_ONE_MINUS_SRC_ALPHA</code> </td><td class="center"> <math overflow="scroll"> <mrow> <mn>1</mn> <mo>-</mo> <mfenced open close> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">f</mi> </msub> </mfenced> </mrow> </math> </td></tr><tr><td> <code class="constant">GL_PREVIOUS</code> </td><td> <code class="constant">GL_SRC_ALPHA</code> </td><td class="center"> <math overflow="scroll"> <mfenced open close> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">p</mi> </msub> </mfenced> </math> </td></tr><tr><td> </td><td> <code class="constant">GL_ONE_MINUS_SRC_ALPHA</code> </td><td class="center"> <math overflow="scroll"> <mrow> <mn>1</mn> <mo>-</mo> <mfenced open close> <msub><mi mathvariant="italic">A</mi> <mi mathvariant="italic">p</mi> </msub> </mfenced> </mrow> </math> </td></tr></tbody></table></div><p> The RGB and alpha results of the texture function are multipled by the values of <code class="constant">GL_RGB_SCALE</code> and <code class="constant">GL_ALPHA_SCALE</code>, respectively, and clamped to the range <math overflow="scroll"> <mfenced open="[" close="]"> <mn>0</mn> <mn>1</mn> </mfenced> </math>. </p><p> If <em class="parameter"><code>pname</code></em> is <code class="constant">GL_TEXTURE_ENV_COLOR</code>, <em class="parameter"><code>params</code></em> is a pointer to an array that holds an RGBA color consisting of four values. Integer color components are interpreted linearly such that the most positive integer maps to 1.0, and the most negative integer maps to -1.0. The values are clamped to the range [0,1] when they are specified. <math overflow="scroll"> <msub><mi mathvariant="italic">C</mi> <mi mathvariant="italic">c</mi> </msub> </math> takes these four values. </p><p> If <em class="parameter"><code>pname</code></em> is <code class="constant">GL_TEXTURE_LOD_BIAS</code>, the value specified is added to the texture level-of-detail parameter, that selects which mipmap, or mipmaps depending upon the selected <code class="constant">GL_TEXTURE_MIN_FILTER</code>, will be sampled. </p><p> <code class="constant">GL_TEXTURE_ENV_MODE</code> defaults to <code class="constant">GL_MODULATE</code> and <code class="constant">GL_TEXTURE_ENV_COLOR</code> defaults to (0, 0, 0, 0). </p><p> If <em class="parameter"><code>target</code></em> is <code class="constant">GL_POINT_SPRITE</code> and <em class="parameter"><code>pname</code></em> is <code class="constant">GL_COORD_REPLACE</code>, the boolean value specified is used to either enable or disable point sprite texture coordinate replacement. The default value is <code class="constant">GL_FALSE</code>. </p></div><div class="refsect1" title="Notes"><a id="notes"></a><h2>Notes</h2><p> <code class="constant">GL_REPLACE</code> may only be used if the GL version is 1.1 or greater. </p><p> <code class="constant">GL_TEXTURE_FILTER_CONTROL</code> and <code class="constant">GL_TEXTURE_LOD_BIAS</code> may only be used if the GL version is 1.4 or greater. </p><p> <code class="constant">GL_COMBINE</code> mode and its associated constants may only be used if the GL version is 1.3 or greater. </p><p> <code class="constant">GL_TEXTUREn</code> may only be used if the GL version is 1.4 or greater. </p><p> Internal formats other than 1, 2, 3, or 4 may only be used if the GL version is 1.1 or greater. </p><p> For OpenGL versions 1.3 and greater, or when the <code class="code">ARB_multitexture</code> extension is supported, <code class="function">glTexEnv</code> controls the texture environment for the current active texture unit, selected by <a class="citerefentry" href="glActiveTexture"><span class="citerefentry"><span class="refentrytitle">glActiveTexture</span></span></a>. </p><p> <code class="constant">GL_POINT_SPRITE</code> and <code class="constant">GL_COORD_REPLACE</code> are available only if the GL version is 2.0 or greater. </p></div><div class="refsect1" title="Errors"><a id="errors"></a><h2>Errors</h2><p> <code class="constant">GL_INVALID_ENUM</code> is generated when <em class="parameter"><code>target</code></em> or <em class="parameter"><code>pname</code></em> is not one of the accepted defined values, or when <em class="parameter"><code>params</code></em> should have a defined constant value (based on the value of <em class="parameter"><code>pname</code></em>) and does not. </p><p> <code class="constant">GL_INVALID_VALUE</code> is generated if the <em class="parameter"><code>params</code></em> value for <code class="constant">GL_RGB_SCALE</code> or <code class="constant">GL_ALPHA_SCALE</code> are not one of 1.0, 2.0, or 4.0. </p><p> <code class="constant">GL_INVALID_OPERATION</code> is generated if <code class="function">glTexEnv</code> is executed between the execution of <a class="citerefentry" href="glBegin"><span class="citerefentry"><span class="refentrytitle">glBegin</span></span></a> and the corresponding execution of <a class="citerefentry" href="glEnd"><span class="citerefentry"><span class="refentrytitle">glEnd</span></span></a>. </p></div><div class="refsect1" title="Associated Gets"><a id="associatedgets"></a><h2>Associated Gets</h2><p> <a class="citerefentry" href="glGetTexEnv"><span class="citerefentry"><span class="refentrytitle">glGetTexEnv</span></span></a> </p></div><div class="refsect1" title="See Also"><a id="seealso"></a><h2>See Also</h2><p> <a class="citerefentry" href="glActiveTexture"><span class="citerefentry"><span class="refentrytitle">glActiveTexture</span></span></a>, <a class="citerefentry" href="glCopyPixels"><span class="citerefentry"><span class="refentrytitle">glCopyPixels</span></span></a>, <a class="citerefentry" href="glCopyTexImage1D"><span class="citerefentry"><span class="refentrytitle">glCopyTexImage1D</span></span></a>, <a class="citerefentry" href="glCopyTexImage2D"><span class="citerefentry"><span class="refentrytitle">glCopyTexImage2D</span></span></a>, <a class="citerefentry" href="glCopyTexSubImage1D"><span class="citerefentry"><span class="refentrytitle">glCopyTexSubImage1D</span></span></a>, <a class="citerefentry" href="glCopyTexSubImage2D"><span class="citerefentry"><span class="refentrytitle">glCopyTexSubImage2D</span></span></a>, <a class="citerefentry" href="glCopyTexSubImage3D"><span class="citerefentry"><span class="refentrytitle">glCopyTexSubImage3D</span></span></a>, <a class="citerefentry" href="glTexImage1D"><span class="citerefentry"><span class="refentrytitle">glTexImage1D</span></span></a>, <a class="citerefentry" href="glTexImage2D"><span class="citerefentry"><span class="refentrytitle">glTexImage2D</span></span></a>, <a class="citerefentry" href="glTexImage3D"><span class="citerefentry"><span class="refentrytitle">glTexImage3D</span></span></a>, <a class="citerefentry" href="glTexParameter"><span class="citerefentry"><span class="refentrytitle">glTexParameter</span></span></a>, <a class="citerefentry" href="glTexSubImage1D"><span class="citerefentry"><span class="refentrytitle">glTexSubImage1D</span></span></a>, <a class="citerefentry" href="glTexSubImage2D"><span class="citerefentry"><span class="refentrytitle">glTexSubImage2D</span></span></a>, <a class="citerefentry" href="glTexSubImage3D"><span class="citerefentry"><span class="refentrytitle">glTexSubImage3D</span></span></a> </p></div><div class="refsect1" title="Copyright"><div id="Copyright"><h2>Copyright</h2><p> Copyright &#169; 1991-2006 Silicon Graphics, Inc. This document is licensed under the SGI Free Software B License. For details, see <a class="ulink" href="https://web.archive.org/web/20171022161616/http://oss.sgi.com/projects/FreeB/" target="_top">https://web.archive.org/web/20171022161616/http://oss.sgi.com/projects/FreeB/</a>. </p></div></div></div> </div> <div id="improvepage">Think you can improve this page? <a href="https://github.com/BSVino/docs.gl/blob/mainline/gl3/glTexEnv.xhtml">Edit this page</a> on <a href="https://github.com/BSVino/docs.gl/">GitHub</a>.</div> </div> <div id="footer"> <div id="credits"><a href="https://docs.gl/">docs.gl</a> was written by <a href="https://twitter.com/VinoBS">Jorge Rodr&#237;guez</a>. Each entry is under individual copyright displayed at the bottom of that entry. All other content is in the public domain.<br> docs.gl is completely unaffiliated with OpenGL and Khronos.<br> These pages were last compiled on 12 April 2026 at 14:17:30 GMT.</div> </div> <script async src="../docs.gl.search.js"></script> </body> </html> 