<!DOCTYPE html>
<html lang="en"> <head><meta charset="utf-8"><title>glTexParameter - OpenGL ES 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 = "es31";
    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">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" selected>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 open_me 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 current 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 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 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 href="../gl4/glTexParameter">OpenGL 4</a><br><a href="../gl3/glTexParameter">OpenGL 3</a><br><a href="../gl2/glTexParameter">OpenGL 2</a><br><a class="current" href="../es3/glTexParameter">OpenGL ES 3</a><br><a href="../es2/glTexParameter">OpenGL ES 2</a><br></div> <h1 id="command_title">glTexParameter</h1> <div class="refentry" id="glTexParameter"> <div class="titlepage"></div> <div class="refnamediv"> <h2>Name</h2> <p>glTexParameter &#8212; set texture parameters</p> </div> <div class="refsynopsisdiv"> <h2>C Specification</h2> <div class="funcsynopsis"> <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table"> <tr> <td> <code class="funcdef">void <strong class="fsfunc">glTexParameterf</strong>(</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> <div class="funcsynopsis"> <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table"> <tr> <td> <code class="funcdef">void <strong class="fsfunc">glTexParameteri</strong>(</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 class="funcsynopsis"> <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table"> <tr> <td> <code class="funcdef">void <strong class="fsfunc">glTexParameterfv</strong>(</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 style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table"> <tr> <td> <code class="funcdef">void <strong class="fsfunc">glTexParameteriv</strong>(</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" id="parameters"> <h2>Parameters</h2> <div class="variablelist"> <dl class="variablelist"> <dt> <span class="term"> <em class="parameter"> <code>target</code> </em> </span> </dt> <dd> <p> Specifies the target texture, which must be either <code class="constant">GL_TEXTURE_2D</code>, <code class="constant">GL_TEXTURE_3D</code>, <code class="constant">GL_TEXTURE_2D_ARRAY</code>, or <code class="constant">GL_TEXTURE_CUBE_MAP</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 parameter. <em class="parameter"><code>pname</code></em> can be one of the following: <code class="constant">GL_DEPTH_STENCIL_TEXTURE_MODE</code>, <code class="constant">GL_TEXTURE_BASE_LEVEL</code>, <code class="constant">GL_TEXTURE_COMPARE_FUNC</code>, <code class="constant">GL_TEXTURE_COMPARE_MODE</code>, <code class="constant">GL_TEXTURE_MIN_FILTER</code>, <code class="constant">GL_TEXTURE_MAG_FILTER</code>, <code class="constant">GL_TEXTURE_MIN_LOD</code>, <code class="constant">GL_TEXTURE_MAX_LOD</code>, <code class="constant">GL_TEXTURE_MAX_LEVEL</code>, <code class="constant">GL_TEXTURE_SWIZZLE_R</code>, <code class="constant">GL_TEXTURE_SWIZZLE_G</code>, <code class="constant">GL_TEXTURE_SWIZZLE_B</code>, <code class="constant">GL_TEXTURE_SWIZZLE_A</code>, <code class="constant">GL_TEXTURE_WRAP_S</code>, <code class="constant">GL_TEXTURE_WRAP_T</code>, or <code class="constant">GL_TEXTURE_WRAP_R</code>. </p> </dd> <dt> <span class="term"> <em class="parameter"> <code>param</code> </em> </span> </dt> <dd> <p> Specifies the value of <em class="parameter"><code>pname</code></em>. </p> </dd> <dt> <span class="term"> <em class="parameter"> <code>params</code> </em> </span> </dt> <dd> <p> For the vector commands, specifies a pointer to an array where the value or values of <em class="parameter"><code>pname</code></em> are stored. </p> </dd> </dl> </div> </div> <div class="refsect1" id="description"> <h2>Description</h2> <p> <code class="function">glTexParameter</code> assigns the value or values in <em class="parameter"><code>params</code></em> to the texture parameter specified as <em class="parameter"><code>pname</code></em>. <em class="parameter"><code>target</code></em> defines the target texture, either <code class="constant">GL_TEXTURE_2D</code>, <code class="constant">GL_TEXTURE_CUBE_MAP</code>, <code class="constant">GL_TEXTURE_2D_ARRAY</code>, or <code class="constant">GL_TEXTURE_3D</code>. The following symbols are accepted in <em class="parameter"><code>pname</code></em>: </p> <div class="variablelist"> <dl class="variablelist"> <dt> <span class="term"> <code class="constant">GL_DEPTH_STENCIL_TEXTURE_MODE</code> </span> </dt> <dd> <p> Specifies the mode used to read from depth-stencil format textures. <em class="parameter"><code>params</code></em> must be one of <code class="constant">GL_DEPTH_COMPONENT</code> or <code class="constant">GL_STENCIL_INDEX</code>. If the depth stencil mode is <code class="constant">GL_DEPTH_COMPONENT</code>, then reads from depth-stencil format textures will return the depth component of the texel in <math overflow="scroll"><msub><mi>R</mi><mi>t</mi></msub></math> and the stencil component will be discarded. If the depth stencil mode is <code class="constant">GL_STENCIL_INDEX</code> then the stencil component is returned in <math overflow="scroll"><msub><mi>R</mi><mi>t</mi></msub></math> and the depth component is discarded. The initial value is <code class="constant">GL_DEPTH_COMPONENT</code>. </p> </dd> </dl> </div> <div class="variablelist"> <dl class="variablelist"> <dt> <span class="term"> <code class="constant">GL_TEXTURE_BASE_LEVEL</code> </span> </dt> <dd> <p> Specifies the index of the lowest defined mipmap level. This is an integer value. The initial value is 0. </p> </dd> </dl> </div> <p> </p> <div class="variablelist"> <dl class="variablelist"> <dt> <span class="term"> <code class="constant">GL_TEXTURE_COMPARE_FUNC</code> </span> </dt> <dd> <p> Specifies the comparison operator used when <code class="constant">GL_TEXTURE_COMPARE_MODE</code> is set to <code class="constant">GL_COMPARE_REF_TO_TEXTURE</code>. Permissible values are: </p> <div class="informaltable"> <table style="border-collapse: collapse; border-top: 2px solid ; border-bottom: 2px solid ; border-left: 2px solid ; border-right: 2px solid ; "> <colgroup> <col style="text-align: left; "> <col style="text-align: left; "> </colgroup> <thead> <tr> <th style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; "> <span class="bold"><strong> Texture Comparison Function </strong></span> </th> <th style="text-align: left; border-bottom: 2px solid ; "> <span class="bold"><strong> Computed result </strong></span> </th> </tr> </thead> <tbody> <tr> <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; "> <code class="constant">GL_LEQUAL</code> </td> <td style="text-align: left; border-bottom: 2px solid ; "> <math overflow="scroll"> <mrow> <mi mathvariant="italic">result</mi> <mo>=</mo> <mfenced open="{" close> <mrow> <mtable> <mtr><mtd> <mn>1.0</mn> </mtd></mtr> <mtr><mtd> <mn>0.0</mn> </mtd></mtr> </mtable> <mo>&#8290; </mo> <mtable> <mtr><mtd> <mrow> <mi mathvariant="italic">r</mi> <mo><=</mo> <mfenced open close> <msub><mi mathvariant="italic">D</mi> <mi mathvariant="italic">t</mi> </msub> </mfenced> </mrow> </mtd></mtr> <mtr><mtd> <mrow> <mi mathvariant="italic">r</mi> <mo>></mo> <mfenced open close> <msub><mi mathvariant="italic">D</mi> <mi mathvariant="italic">t</mi> </msub> </mfenced> </mrow> </mtd></mtr> </mtable> </mrow> </mfenced> </mrow> </math> </td> </tr> <tr> <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; "> <code class="constant">GL_GEQUAL</code> </td> <td style="text-align: left; border-bottom: 2px solid ; "> <math overflow="scroll"> <mrow> <mi mathvariant="italic">result</mi> <mo>=</mo> <mfenced open="{" close> <mrow> <mtable> <mtr><mtd> <mn>1.0</mn> </mtd></mtr> <mtr><mtd> <mn>0.0</mn> </mtd></mtr> </mtable> <mo>&#8290; </mo> <mtable> <mtr><mtd> <mrow> <mi mathvariant="italic">r</mi> <mo>>=</mo> <mfenced open close> <msub><mi mathvariant="italic">D</mi> <mi mathvariant="italic">t</mi> </msub> </mfenced> </mrow> </mtd></mtr> <mtr><mtd> <mrow> <mi mathvariant="italic">r</mi> <mo><</mo> <mfenced open close> <msub><mi mathvariant="italic">D</mi> <mi mathvariant="italic">t</mi> </msub> </mfenced> </mrow> </mtd></mtr> </mtable> </mrow> </mfenced> </mrow> </math> </td> </tr> <tr> <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; "> <code class="constant">GL_LESS</code> </td> <td style="text-align: left; border-bottom: 2px solid ; "> <math overflow="scroll"> <mrow> <mi mathvariant="italic">result</mi> <mo>=</mo> <mfenced open="{" close> <mrow> <mtable> <mtr><mtd> <mn>1.0</mn> </mtd></mtr> <mtr><mtd> <mn>0.0</mn> </mtd></mtr> </mtable> <mo>&#8290; </mo> <mtable> <mtr><mtd> <mrow> <mi mathvariant="italic">r</mi> <mo><</mo> <mfenced open close> <msub><mi mathvariant="italic">D</mi> <mi mathvariant="italic">t</mi> </msub> </mfenced> </mrow> </mtd></mtr> <mtr><mtd> <mrow> <mi mathvariant="italic">r</mi> <mo>>=</mo> <mfenced open close> <msub><mi mathvariant="italic">D</mi> <mi mathvariant="italic">t</mi> </msub> </mfenced> </mrow> </mtd></mtr> </mtable> </mrow> </mfenced> </mrow> </math> </td> </tr> <tr> <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; "> <code class="constant">GL_GREATER</code> </td> <td style="text-align: left; border-bottom: 2px solid ; "> <math overflow="scroll"> <mrow> <mi mathvariant="italic">result</mi> <mo>=</mo> <mfenced open="{" close> <mrow> <mtable> <mtr><mtd> <mn>1.0</mn> </mtd></mtr> <mtr><mtd> <mn>0.0</mn> </mtd></mtr> </mtable> <mo>&#8290; </mo> <mtable> <mtr><mtd> <mrow> <mi mathvariant="italic">r</mi> <mo>></mo> <mfenced open close> <msub><mi mathvariant="italic">D</mi> <mi mathvariant="italic">t</mi> </msub> </mfenced> </mrow> </mtd></mtr> <mtr><mtd> <mrow> <mi mathvariant="italic">r</mi> <mo><=</mo> <mfenced open close> <msub><mi mathvariant="italic">D</mi> <mi mathvariant="italic">t</mi> </msub> </mfenced> </mrow> </mtd></mtr> </mtable> </mrow> </mfenced> </mrow> </math> </td> </tr> <tr> <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; "> <code class="constant">GL_EQUAL</code> </td> <td style="text-align: left; border-bottom: 2px solid ; "> <math overflow="scroll"> <mrow> <mi mathvariant="italic">result</mi> <mo>=</mo> <mfenced open="{" close> <mrow> <mtable> <mtr><mtd> <mn>1.0</mn> </mtd></mtr> <mtr><mtd> <mn>0.0</mn> </mtd></mtr> </mtable> <mo>&#8290; </mo> <mtable> <mtr><mtd> <mrow> <mi mathvariant="italic">r</mi> <mo>=</mo> <mfenced open close> <msub><mi mathvariant="italic">D</mi> <mi mathvariant="italic">t</mi> </msub> </mfenced> </mrow> </mtd></mtr> <mtr><mtd> <mrow> <mi mathvariant="italic">r</mi> <mo>&#8800;</mo> <mfenced open close> <msub><mi mathvariant="italic">D</mi> <mi mathvariant="italic">t</mi> </msub> </mfenced> </mrow> </mtd></mtr> </mtable> </mrow> </mfenced> </mrow> </math> </td> </tr> <tr> <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; "> <code class="constant">GL_NOTEQUAL</code> </td> <td style="text-align: left; border-bottom: 2px solid ; "> <math overflow="scroll"> <mrow> <mi mathvariant="italic">result</mi> <mo>=</mo> <mfenced open="{" close> <mrow> <mtable> <mtr><mtd> <mn>1.0</mn> </mtd></mtr> <mtr><mtd> <mn>0.0</mn> </mtd></mtr> </mtable> <mo>&#8290; </mo> <mtable> <mtr><mtd> <mrow> <mi mathvariant="italic">r</mi> <mo>&#8800;</mo> <mfenced open close> <msub><mi mathvariant="italic">D</mi> <mi mathvariant="italic">t</mi> </msub> </mfenced> </mrow> </mtd></mtr> <mtr><mtd> <mrow> <mi mathvariant="italic">r</mi> <mo>=</mo> <mfenced open close> <msub><mi mathvariant="italic">D</mi> <mi mathvariant="italic">t</mi> </msub> </mfenced> </mrow> </mtd></mtr> </mtable> </mrow> </mfenced> </mrow> </math> </td> </tr> <tr> <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; "> <code class="constant">GL_ALWAYS</code> </td> <td style="text-align: left; border-bottom: 2px solid ; "> <math overflow="scroll"> <mrow> <mi mathvariant="italic">result</mi> <mo>=</mo> <mi>1.0</mi> </mrow> </math> </td> </tr> <tr> <td style="text-align: left; border-right: 2px solid ; "> <code class="constant">GL_NEVER</code> </td> <td style="text-align: left; "> <math overflow="scroll"> <mrow> <mi mathvariant="italic">result</mi> <mo>=</mo> <mi>0.0</mi> </mrow> </math> </td> </tr> </tbody> </table> </div> <p> where <math overflow="scroll"><mi mathvariant="italic">r</mi></math> is the current interpolated texture coordinate, and <math overflow="scroll"> <msub><mi mathvariant="italic">D</mi> <mi mathvariant="italic">t</mi> </msub> </math> is the depth texture value sampled from the currently bound depth texture. <math overflow="scroll"><mi mathvariant="italic">result</mi></math> is assigned to the the red channel. </p> </dd> <dt> <span class="term"> <code class="constant">GL_TEXTURE_COMPARE_MODE</code> </span> </dt> <dd> <p> Specifies the texture comparison mode for currently bound depth textures. That is, a texture whose internal format is <code class="constant">GL_DEPTH_COMPONENT_*</code>; see <a class="citerefentry" href="glTexImage2D"><span class="citerefentry"><span class="refentrytitle">glTexImage2D</span></span></a>) Permissible values are: </p> <div class="variablelist"> <dl class="variablelist"> <dt> <span class="term"> <code class="constant">GL_COMPARE_REF_TO_TEXTURE</code> </span> </dt> <dd> <p> Specifies that the interpolated and clamped <math overflow="scroll"><mi mathvariant="italic">r</mi></math> texture coordinate should be compared to the value in the currently bound depth texture. See the discussion of <code class="constant">GL_TEXTURE_COMPARE_FUNC</code> for details of how the comparison is evaluated. The result of the comparison is assigned to the red channel. </p> </dd> <dt> <span class="term"> <code class="constant">GL_NONE</code> </span> </dt> <dd> <p> Specifies that the red channel should be assigned the appropriate value from the currently bound depth texture. </p> </dd> </dl> </div> <p> </p> </dd> <dt> <span class="term"> <code class="constant">GL_TEXTURE_MIN_FILTER</code> </span> </dt> <dd> <p> The texture minifying function is used whenever the level-of-detail function used when sampling from the texture determines that the texture should be minified. There are six defined minifying functions. Two of them use either the nearest texture elements or a weighted average of multiple texture elements to compute the texture value. The other four use mipmaps. </p> <p> A mipmap is an ordered set of arrays representing the same image at progressively lower resolutions. If the texture has dimensions <math overflow="scroll"> <mrow> <msup><mn>2</mn> <mi mathvariant="italic">n</mi> </msup> <mo>&#215;</mo> <msup><mn>2</mn> <mi mathvariant="italic">m</mi> </msup> </mrow> </math>, there are <math overflow="scroll"> <mrow> <mrow> <mi mathvariant="italic">max</mi> <mo>&#8289;</mo> <mfenced open="(" close=")"> <mi mathvariant="italic">n</mi> <mi mathvariant="italic">m</mi> </mfenced> </mrow> <mo>+</mo> <mn>1</mn> </mrow> </math> mipmaps. The first mipmap is the original texture, with dimensions <math overflow="scroll"> <mrow> <msup><mn>2</mn> <mi mathvariant="italic">n</mi> </msup> <mo>&#215;</mo> <msup><mn>2</mn> <mi mathvariant="italic">m</mi> </msup> </mrow> </math>. Each subsequent mipmap has dimensions <math overflow="scroll"> <mrow> <msup><mn>2</mn> <mfenced open close> <mrow> <mi mathvariant="italic">k</mi> <mo>-</mo> <mn>1</mn> </mrow> </mfenced> </msup> <mo>&#215;</mo> <msup><mn>2</mn> <mfenced open close> <mrow> <mi mathvariant="italic">l</mi> <mo>-</mo> <mn>1</mn> </mrow> </mfenced> </msup> </mrow> </math>, where <math overflow="scroll"> <mrow> <msup><mn>2</mn> <mi mathvariant="italic">k</mi> </msup> <mo>&#215;</mo> <msup><mn>2</mn> <mi mathvariant="italic">l</mi> </msup> </mrow> </math> are the dimensions of the previous mipmap, until either <math overflow="scroll"> <mrow> <mi mathvariant="italic">k</mi> <mo>=</mo> <mn>0</mn> </mrow> </math> or <math overflow="scroll"> <mrow> <mi mathvariant="italic">l</mi> <mo>=</mo> <mn>0</mn> </mrow> </math>. At that point, subsequent mipmaps have dimension <math overflow="scroll"> <mrow> <mn>1</mn> <mo>&#215;</mo> <msup><mn>2</mn> <mfenced open close> <mrow> <mi mathvariant="italic">l</mi> <mo>-</mo> <mn>1</mn> </mrow> </mfenced> </msup> </mrow> </math> or <math overflow="scroll"> <mrow> <msup><mn>2</mn> <mfenced open close> <mrow> <mi mathvariant="italic">k</mi> <mo>-</mo> <mn>1</mn> </mrow> </mfenced> </msup> <mo>&#215;</mo> <mn>1</mn> </mrow> </math> until the final mipmap, which has dimension <math overflow="scroll"> <mrow> <mn>1</mn> <mo>&#215;</mo> <mn>1</mn> </mrow> </math>. To define the mipmaps, call <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>, or <a class="citerefentry" href="glCopyTexImage2D"><span class="citerefentry"><span class="refentrytitle">glCopyTexImage2D</span></span></a> with the <span class="emphasis"><em>level</em></span> argument indicating the order of the mipmaps. Level 0 is the original texture; level <math overflow="scroll"> <mrow> <mi mathvariant="italic">max</mi> <mo>&#8289;</mo> <mfenced open="(" close=")"> <mi mathvariant="italic">n</mi> <mi mathvariant="italic">m</mi> </mfenced> </mrow> </math> is the final <math overflow="scroll"> <mrow> <mn>1</mn> <mo>&#215;</mo> <mn>1</mn> </mrow> </math> mipmap. </p> <p> <em class="parameter"><code>params</code></em> supplies a function for minifying the texture as one of the following: </p> <div class="variablelist"> <dl class="variablelist"> <dt> <span class="term"> <code class="constant">GL_NEAREST</code> </span> </dt> <dd> <p> Returns the value of the texture element that is nearest (in Manhattan distance) to the specified texture coordinates. </p> </dd> <dt> <span class="term"> <code class="constant">GL_LINEAR</code> </span> </dt> <dd> <p> Returns the weighted average of the four texture elements that are closest to the specified texture coordinates. These can include items wrapped or repeated from other parts of a texture, depending on the values of <code class="constant">GL_TEXTURE_WRAP_S</code> and <code class="constant">GL_TEXTURE_WRAP_T</code>, and on the exact mapping. </p> </dd> <dt> <span class="term"> <code class="constant">GL_NEAREST_MIPMAP_NEAREST</code> </span> </dt> <dd> <p> Chooses the mipmap that most closely matches the size of the pixel being textured and uses the <code class="constant">GL_NEAREST</code> criterion (the texture element closest to the specified texture coordinates) to produce a texture value. </p> </dd> <dt> <span class="term"> <code class="constant">GL_LINEAR_MIPMAP_NEAREST</code> </span> </dt> <dd> <p> Chooses the mipmap that most closely matches the size of the pixel being textured and uses the <code class="constant">GL_LINEAR</code> criterion (a weighted average of the four texture elements that are closest to the specified texture coordinates) to produce a texture value. </p> </dd> <dt> <span class="term"> <code class="constant">GL_NEAREST_MIPMAP_LINEAR</code> </span> </dt> <dd> <p> Chooses the two mipmaps that most closely match the size of the pixel being textured and uses the <code class="constant">GL_NEAREST</code> criterion (the texture element closest to the specified texture coordinates ) to produce a texture value from each mipmap. The final texture value is a weighted average of those two values. </p> </dd> <dt> <span class="term"> <code class="constant">GL_LINEAR_MIPMAP_LINEAR</code> </span> </dt> <dd> <p> Chooses the two mipmaps that most closely match the size of the pixel being textured and uses the <code class="constant">GL_LINEAR</code> criterion (a weighted average of the texture elements that are closest to the specified texture coordinates) to produce a texture value from each mipmap. The final texture value is a weighted average of those two values. </p> </dd> </dl> </div> <p> </p> <p> As more texture elements are sampled in the minification process, fewer aliasing artifacts will be apparent. While the <code class="constant">GL_NEAREST</code> and <code class="constant">GL_LINEAR</code> minification functions can be faster than the other four, they sample only one or multiple texture elements to determine the texture value of the pixel being rendered and can produce moire patterns or ragged transitions. The initial value of <code class="constant">GL_TEXTURE_MIN_FILTER</code> is <code class="constant">GL_NEAREST_MIPMAP_LINEAR</code>. </p> </dd> </dl> </div> <p> </p> <div class="variablelist"> <dl class="variablelist"> <dt> <span class="term"> <code class="constant">GL_TEXTURE_MAG_FILTER</code> </span> </dt> <dd> <p> The texture magnification function is used whenever the level-of-detail function used when sampling from the texture determines that the texture should be magified. It sets the texture magnification function to either <code class="constant">GL_NEAREST</code> or <code class="constant">GL_LINEAR</code> (see below). <code class="constant">GL_NEAREST</code> is generally faster than <code class="constant">GL_LINEAR</code>, but it can produce textured images with sharper edges because the transition between texture elements is not as smooth. The initial value of <code class="constant">GL_TEXTURE_MAG_FILTER</code> is <code class="constant">GL_LINEAR</code>. </p> <div class="variablelist"> <dl class="variablelist"> <dt> <span class="term"> <code class="constant">GL_NEAREST</code> </span> </dt> <dd> <p> Returns the value of the texture element that is nearest (in Manhattan distance) to the specified texture coordinates. </p> </dd> <dt> <span class="term"> <code class="constant">GL_LINEAR</code> </span> </dt> <dd> <p> Returns the weighted average of the texture elements that are closest to the specified texture coordinates. These can include items wrapped or repeated from other parts of a texture, depending on the values of <code class="constant">GL_TEXTURE_WRAP_S</code> and <code class="constant">GL_TEXTURE_WRAP_T</code>, and on the exact mapping. </p> </dd> </dl> </div> <p> </p> </dd> </dl> </div> <p> </p> <div class="variablelist"> <dl class="variablelist"> <dt> <span class="term"> <code class="constant">GL_TEXTURE_MIN_LOD</code> </span> </dt> <dd> <p> Sets the minimum level-of-detail parameter. This floating-point value limits the selection of highest resolution mipmap (lowest mipmap level). The initial value is -1000. </p> </dd> </dl> </div> <p> </p> <div class="variablelist"> <dl class="variablelist"> <dt> <span class="term"> <code class="constant">GL_TEXTURE_MAX_LOD</code> </span> </dt> <dd> <p> Sets the maximum level-of-detail parameter. This floating-point value limits the selection of the lowest resolution mipmap (highest mipmap level). The initial value is 1000. </p> </dd> </dl> </div> <p> </p> <div class="variablelist"> <dl class="variablelist"> <dt> <span class="term"> <code class="constant">GL_TEXTURE_MAX_LEVEL</code> </span> </dt> <dd> <p> Sets the index of the highest defined mipmap level. This is an integer value. The initial value is 1000. </p> </dd> </dl> </div> <p> </p> <div class="variablelist"> <dl class="variablelist"> <dt> <span class="term"> <code class="constant">GL_TEXTURE_SWIZZLE_R</code> </span> </dt> <dd> <p> Sets the swizzle that will be applied to the <math overflow="scroll"><mi mathvariant="italic">r</mi></math> component of a texel before it is returned to the shader. Valid values for <em class="parameter"><code>param</code></em> are <code class="constant">GL_RED</code>, <code class="constant">GL_GREEN</code>, <code class="constant">GL_BLUE</code>, <code class="constant">GL_ALPHA</code>, <code class="constant">GL_ZERO</code> and <code class="constant">GL_ONE</code>. If <code class="constant">GL_TEXTURE_SWIZZLE_R</code> is <code class="constant">GL_RED</code>, the value for <math overflow="scroll"><mi mathvariant="italic">r</mi></math> will be taken from the first channel of the fetched texel. If <code class="constant">GL_TEXTURE_SWIZZLE_R</code> is <code class="constant">GL_GREEN</code>, the value for <math overflow="scroll"><mi mathvariant="italic">r</mi></math> will be taken from the second channel of the fetched texel. If <code class="constant">GL_TEXTURE_SWIZZLE_R</code> is <code class="constant">GL_BLUE</code>, the value for <math overflow="scroll"><mi mathvariant="italic">r</mi></math> will be taken from the third channel of the fetched texel. If <code class="constant">GL_TEXTURE_SWIZZLE_R</code> is <code class="constant">GL_ALPHA</code>, the value for <math overflow="scroll"><mi mathvariant="italic">r</mi></math> will be taken from the fourth channel of the fetched texel. If <code class="constant">GL_TEXTURE_SWIZZLE_R</code> is <code class="constant">GL_ZERO</code>, the value for <math overflow="scroll"><mi mathvariant="italic">r</mi></math> will be subtituted with <math overflow="scroll"><mn>0</mn></math>. If <code class="constant">GL_TEXTURE_SWIZZLE_R</code> is <code class="constant">GL_ONE</code>, the value for <math overflow="scroll"><mi mathvariant="italic">r</mi></math> will be subtituted with <math overflow="scroll"><mn>1</mn></math> for integer texture components, otherwise <math overflow="scroll"><mn>1.0</mn></math>. The initial value is <code class="constant">GL_RED</code>. </p> </dd> </dl> </div> <p> </p> <div class="variablelist"> <dl class="variablelist"> <dt> <span class="term"> <code class="constant">GL_TEXTURE_SWIZZLE_G</code> </span> </dt> <dd> <p> Sets the swizzle that will be applied to the <math overflow="scroll"><mi mathvariant="italic">g</mi></math> component of a texel before it is returned to the shader. Valid values for <em class="parameter"><code>param</code></em> and their effects are similar to those of <code class="constant">GL_TEXTURE_SWIZZLE_R</code>. The initial value is <code class="constant">GL_GREEN</code>. </p> </dd> </dl> </div> <p> </p> <div class="variablelist"> <dl class="variablelist"> <dt> <span class="term"> <code class="constant">GL_TEXTURE_SWIZZLE_B</code> </span> </dt> <dd> <p> Sets the swizzle that will be applied to the <math overflow="scroll"><mi mathvariant="italic">b</mi></math> component of a texel before it is returned to the shader. Valid values for <em class="parameter"><code>param</code></em> and their effects are similar to those of <code class="constant">GL_TEXTURE_SWIZZLE_R</code>. The initial value is <code class="constant">GL_BLUE</code>. </p> </dd> </dl> </div> <p> </p> <div class="variablelist"> <dl class="variablelist"> <dt> <span class="term"> <code class="constant">GL_TEXTURE_SWIZZLE_A</code> </span> </dt> <dd> <p> Sets the swizzle that will be applied to the <math overflow="scroll"><mi mathvariant="italic">a</mi></math> component of a texel before it is returned to the shader. Valid values for <em class="parameter"><code>param</code></em> and their effects are similar to those of <code class="constant">GL_TEXTURE_SWIZZLE_R</code>. The initial value is <code class="constant">GL_ALPHA</code>. </p> </dd> </dl> </div> <p> </p> <p> </p> <div class="variablelist"> <dl class="variablelist"> <dt> <span class="term"> <code class="constant">GL_TEXTURE_WRAP_S</code> </span> </dt> <dd> <p> Sets the wrap parameter for texture coordinate <math overflow="scroll"><mi mathvariant="italic">s</mi></math> to either <code class="constant">GL_CLAMP_TO_EDGE</code>, <code class="constant">GL_MIRRORED_REPEAT</code>, or <code class="constant">GL_REPEAT</code>. <code class="constant">GL_CLAMP_TO_EDGE</code> causes <math overflow="scroll"><mi mathvariant="italic">s</mi></math> coordinates to be clamped to the range <math overflow="scroll"> <mfenced open="[" close="]"> <mfenced open close> <mrow> <mfrac> <mn>1</mn> <mrow><mn>2</mn><mi mathvariant="italic">N</mi></mrow> </mfrac> </mrow> </mfenced> <mrow> <mn>1</mn> <mo>-</mo> <mfenced open close> <mrow> <mfrac> <mn>1</mn> <mrow><mn>2</mn><mi mathvariant="italic">N</mi></mrow> </mfrac> </mrow> </mfenced> </mrow> </mfenced> </math>, where <math overflow="scroll"><mi mathvariant="italic">N</mi></math> is the size of the texture in the direction of clamping. <code class="constant">GL_REPEAT</code> causes the integer part of the <math overflow="scroll"><mi mathvariant="italic">s</mi></math> coordinate to be ignored; the GL uses only the fractional part, thereby creating a repeating pattern. <code class="constant">GL_MIRRORED_REPEAT</code> causes the <math overflow="scroll"><mi mathvariant="italic">s</mi></math> coordinate to be set to the fractional part of the texture coordinate if the integer part of <math overflow="scroll"><mi mathvariant="italic">s</mi></math> is even; if the integer part of <math overflow="scroll"><mi mathvariant="italic">s</mi></math> is odd, then the <math overflow="scroll"><mi mathvariant="italic">s</mi></math> texture coordinate is set to <math overflow="scroll"> <mrow> <mn>1</mn> <mo>-</mo> <mrow> <mi mathvariant="italic">frac</mi> <mo>&#8289;</mo> <mfenced open="(" close=")"> <mi mathvariant="italic">s</mi> </mfenced> </mrow> </mrow> </math>, where <math overflow="scroll"> <mrow> <mi mathvariant="italic">frac</mi> <mo>&#8289;</mo> <mfenced open="(" close=")"> <mi mathvariant="italic">s</mi> </mfenced> </mrow> </math> represents the fractional part of <math overflow="scroll"><mi mathvariant="italic">s</mi></math>. Initially, <code class="constant">GL_TEXTURE_WRAP_S</code> is set to <code class="constant">GL_REPEAT</code>. </p> </dd> </dl> </div> <p> </p> <div class="variablelist"> <dl class="variablelist"> <dt> <span class="term"> <code class="constant">GL_TEXTURE_WRAP_T</code> </span> </dt> <dd> <p> Sets the wrap parameter for texture coordinate <math overflow="scroll"><mi mathvariant="italic">t</mi></math> to either <code class="constant">GL_CLAMP_TO_EDGE</code>, <code class="constant">GL_MIRRORED_REPEAT</code>, or <code class="constant">GL_REPEAT</code>. See the discussion under <code class="constant">GL_TEXTURE_WRAP_S</code>. Initially, <code class="constant">GL_TEXTURE_WRAP_T</code> is set to <code class="constant">GL_REPEAT</code>. </p> </dd> </dl> </div> <p> </p> <div class="variablelist"> <dl class="variablelist"> <dt> <span class="term"> <code class="constant">GL_TEXTURE_WRAP_R</code> </span> </dt> <dd> <p> Sets the wrap parameter for texture coordinate <math overflow="scroll"><mi mathvariant="italic">r</mi></math> to either <code class="constant">GL_CLAMP_TO_EDGE</code>, <code class="constant">GL_MIRRORED_REPEAT</code>, or <code class="constant">GL_REPEAT</code>. See the discussion under <code class="constant">GL_TEXTURE_WRAP_S</code>. Initially, <code class="constant">GL_TEXTURE_WRAP_R</code> is set to <code class="constant">GL_REPEAT</code>. </p> </dd> </dl> </div> </div> <div class="refsect1" id="notes"> <h2>Notes</h2> <p> Suppose that a program attempts to sample from a texture and has set <code class="constant">GL_TEXTURE_MIN_FILTER</code> to one of the functions that requires a mipmap. If either the dimensions of the texture images currently defined (with previous calls to <a class="citerefentry" href="glTexStorage2D"><span class="citerefentry"><span class="refentrytitle">glTexStorage2D</span></span></a>, <a class="citerefentry" href="glTexImage2D"><span class="citerefentry"><span class="refentrytitle">glTexImage2D</span></span></a>, <a class="citerefentry" href="glTexStorage3D"><span class="citerefentry"><span class="refentrytitle">glTexStorage3D</span></span></a>, <a class="citerefentry" href="glTexImage3D"><span class="citerefentry"><span class="refentrytitle">glTexImage3D</span></span></a>, or <a class="citerefentry" href="glCopyTexImage2D"><span class="citerefentry"><span class="refentrytitle">glCopyTexImage2D</span></span></a>) do not follow the proper sequence for mipmaps (described above), or there are fewer texture images defined than are needed, or the set of texture images have differing numbers of texture components, then the texture is considered <span class="emphasis"><em>incomplete</em></span>. </p> <p> Linear filtering accesses the four nearest texture elements only in 2D textures. In 1D textures, linear filtering accesses the two nearest texture elements. In 3D textures, linear filtering accesses the eight nearest texture elements. </p> <p> <code class="function">glTexParameter</code> specifies the texture parameters for the texture object bound to the active texture unit, specified by calling <a class="citerefentry" href="glActiveTexture"><span class="citerefentry"><span class="refentrytitle">glActiveTexture</span></span></a>. </p> </div> <div class="refsect1" id="errors"> <h2>Errors</h2> <p> <code class="constant">GL_INVALID_ENUM</code> is generated if <em class="parameter"><code>target</code></em> or <em class="parameter"><code>pname</code></em> is not one of the accepted defined values. </p> <p> <code class="constant">GL_INVALID_ENUM</code> is generated if <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> </div> <div class="refsect1" id="associatedgets"> <h2>Associated Gets</h2> <p> <a class="citerefentry" href="glGetTexParameter"><span class="citerefentry"><span class="refentrytitle">glGetTexParameter</span></span></a> </p> </div> <div class="refsect1" id="examples"><h2>Examples</h2><div class="example">Create a framebuffer object with a texture-based color attachment and a texture-based depth attachment. Using texture-based attachments allows sampling of those textures in shaders.<pre class="programlisting"><span class="codecomment">// fbo_width and fbo_height are the desired width and height of the FBO.</span>
<span class="codecomment">// For Opengl <= 4.4 or <span class="ckeyword">if</span> the <span class="constant">GL_ARB_</span>texture_non_power_of_two extension</span>
<span class="codecomment">// is present, fbo_width and fbo_height can be values other than 2^n <span class="ckeyword">for</span></span>
<span class="codecomment">// some integer n.</span>

<span class="codecomment">// Build the texture that will serve as the color attachment <span class="ckeyword">for</span> the framebuffer.</span>
<span class="ckeyword">GLuint</span> texture_map;
<a href="../es3/glGenTextures">glGenTextures</a>(1, &texture_map);
<a href="../es3/glBindTexture">glBindTexture</a>(<span class="constant">GL_TEXTURE_2D</span>, texture_map);

<a href="../es3/glTexParameter">glTexParameteri</a>(<span class="constant">GL_TEXTURE_2D</span>, <span class="constant">GL_TEXTURE_MIN_FILTER</span>, <span class="constant">GL_LINEAR</span>);
<a href="../es3/glTexParameter">glTexParameteri</a>(<span class="constant">GL_TEXTURE_2D</span>, <span class="constant">GL_TEXTURE_MAG_FILTER</span>, <span class="constant">GL_LINEAR</span>);
<a href="../es3/glTexParameter">glTexParameteri</a>(<span class="constant">GL_TEXTURE_2D</span>, <span class="constant">GL_TEXTURE_WRAP_S</span>, <span class="constant">GL_CLAMP_TO_BORDER</span>);
<a href="../es3/glTexParameter">glTexParameteri</a>(<span class="constant">GL_TEXTURE_2D</span>, <span class="constant">GL_TEXTURE_WRAP_T</span>, <span class="constant">GL_CLAMP_TO_BORDER</span>);

<a href="../es3/glTexImage2D">glTexImage2D</a>(<span class="constant">GL_TEXTURE_2D</span>, 0, <span class="constant">GL_RGBA</span>, fbo_width, fbo_height, 0, <span class="constant">GL_RGBA</span>, <span class="constant">GL_UNSIGNED_BYTE</span>, <span class="ckeyword">NULL</span>);

<a href="../es3/glBindTexture">glBindTexture</a>(<span class="constant">GL_TEXTURE_2D</span>, 0);

<span class="codecomment">// Build the texture that will serve as the depth attachment <span class="ckeyword">for</span> the framebuffer.</span>
<span class="ckeyword">GLuint</span> depth_texture;
<a href="../es3/glGenTextures">glGenTextures</a>(1, &depth_texture);
<a href="../es3/glBindTexture">glBindTexture</a>(<span class="constant">GL_TEXTURE_2D</span>, depth_texture);
<a href="../es3/glTexParameter">glTexParameteri</a>(<span class="constant">GL_TEXTURE_2D</span>, <span class="constant">GL_TEXTURE_MIN_FILTER</span>, <span class="constant">GL_NEAREST</span>);
<a href="../es3/glTexParameter">glTexParameteri</a>(<span class="constant">GL_TEXTURE_2D</span>, <span class="constant">GL_TEXTURE_MAG_FILTER</span>, <span class="constant">GL_NEAREST</span>);
<a href="../es3/glTexParameter">glTexParameteri</a>(<span class="constant">GL_TEXTURE_2D</span>, <span class="constant">GL_TEXTURE_WRAP_S</span>, <span class="constant">GL_CLAMP_TO_EDGE</span>);
<a href="../es3/glTexParameter">glTexParameteri</a>(<span class="constant">GL_TEXTURE_2D</span>, <span class="constant">GL_TEXTURE_WRAP_T</span>, <span class="constant">GL_CLAMP_TO_EDGE</span>);
<a href="../es3/glTexImage2D">glTexImage2D</a>(<span class="constant">GL_TEXTURE_2D</span>, 0, <span class="constant">GL_DEPTH_COMPONENT</span>, fbo_width, fbo_height, 0, <span class="constant">GL_DEPTH_COMPONENT</span>, <span class="constant">GL_UNSIGNED_BYTE</span>, <span class="ckeyword">NULL</span>);
<a href="../es3/glBindTexture">glBindTexture</a>(<span class="constant">GL_TEXTURE_2D</span>, 0);

<span class="codecomment">// Build the framebuffer.</span>
<span class="ckeyword">GLuint</span> framebuffer;
<a href="../es3/glGenFramebuffers">glGenFramebuffers</a>(1, &framebuffer);
<a href="../es3/glBindFramebuffer">glBindFramebuffer</a>(<span class="constant">GL_FRAMEBUFFER</span>, (<span class="ckeyword">GLuint</span>)framebuffer);
<a href="../es3/glFramebufferTexture">glFramebufferTexture2D</a>(<span class="constant">GL_FRAMEBUFFER</span>, <span class="constant">GL_COLOR_ATTACHMENT0</span>, <span class="constant">GL_TEXTURE_2D</span>, texture_map, 0);
<a href="../es3/glFramebufferTexture">glFramebufferTexture2D</a>(<span class="constant">GL_FRAMEBUFFER</span>, <span class="constant">GL_DEPTH_ATTACHMENT</span>, <span class="constant">GL_TEXTURE_2D</span>, depth_texture, 0);

<span class="ckeyword">GLenum</span> status = <a href="../es3/glCheckFramebufferStatus">glCheckFramebufferStatus</a>(<span class="constant">GL_FRAMEBUFFER</span>);
<span class="ckeyword">if</span> (status != <span class="constant">GL_FRAMEBUFFER_COMPLETE</span>)
    <span class="codecomment">// Error</span>

<a href="../es3/glBindFramebuffer">glBindFramebuffer</a>(<span class="constant">GL_FRAMEBUFFER</span>, 0);</pre></div><div class="example">Create a texture object with linear mipmaps and edge clamping.<pre class="programlisting"><span class="ckeyword">GLuint</span> texture_id;
<a href="../es3/glGenTextures">glGenTextures</a>(1, &texture_id);
<a href="../es3/glBindTexture">glBindTexture</a>(<span class="constant">GL_TEXTURE_2D</span>, texture_id);

<a href="../es3/glTexParameter">glTexParameteri</a>(<span class="constant">GL_TEXTURE_2D</span>, <span class="constant">GL_TEXTURE_MAG_FILTER</span>, <span class="constant">GL_LINEAR</span>);
<a href="../es3/glTexParameter">glTexParameteri</a>(<span class="constant">GL_TEXTURE_2D</span>, <span class="constant">GL_TEXTURE_MIN_FILTER</span>, <span class="constant">GL_LINEAR_MIPMAP_LINEAR</span>);

<a href="../es3/glTexParameter">glTexParameteri</a>(<span class="constant">GL_TEXTURE_2D</span>, <span class="constant">GL_TEXTURE_WRAP_S</span>, <span class="constant">GL_CLAMP_TO_EDGE</span>);
<a href="../es3/glTexParameter">glTexParameteri</a>(<span class="constant">GL_TEXTURE_2D</span>, <span class="constant">GL_TEXTURE_WRAP_T</span>, <span class="constant">GL_CLAMP_TO_EDGE</span>);

<span class="codecomment">// texture_data is the source data of your texture, in this <span class="ckeyword">case</span></span>
<span class="codecomment">// its size is <span class="ckeyword">sizeof</span>(<span class="ckeyword">unsigned</span> <span class="ckeyword">char</span>) * texture_width * texture_height * 4</span>
<a href="../es3/glTexImage2D">glTexImage2D</a>(<span class="constant">GL_TEXTURE_2D</span>, 0, <span class="constant">GL_RGBA</span>, texture_width, texture_height, 0, <span class="constant">GL_RGBA</span>, <span class="constant">GL_UNSIGNED_BYTE</span>, texture_data);
<a href="../es3/glGenerateMipmap">glGenerateMipmap</a>(<span class="constant">GL_TEXTURE_2D</span>); <span class="codecomment">// Unavailable in OpenGL 2.1, use gluBuild2DMipmaps() instead</span>

<a href="../es3/glBindTexture">glBindTexture</a>(<span class="constant">GL_TEXTURE_2D</span>, 0);
</pre></div></div><div class="refsect1" id="tutorials"><h2>Tutorials</h2><p><a href="https://www.songho.ca/opengl/gl_fbo.html">Songho - OpenGL Frame Buffer Object (FBO)</a><br><a href="https://open.gl/framebuffers">open.gl - Framebuffers</a><br><a href="https://open.gl/textures">open.gl - Textures Objects and Parameters</a><br><a href="https://www.opengl-tutorial.org/intermediate-tutorials/tutorial-14-render-to-texture/">opengl-tutorial.org - Tutorial 14 : Render To Texture</a><br><a href="https://www.opengl-tutorial.org/intermediate-tutorials/tutorial-16-shadow-mapping/">opengl-tutorial.org - Tutorial 16 : Shadow mapping</a><br><a href="https://www.opengl-tutorial.org/beginners-tutorials/tutorial-5-a-textured-cube/">opengl-tutorial.org - Tutorial 5 : A Textured Cube</a><br></p></div> <div class="refsect1" id="versions"> <h2>API Version Support</h2> <div class="informaltable"> <table style="border-collapse: collapse; border-top: 2px solid ; border-bottom: 2px solid ; border-left: 2px solid ; border-right: 2px solid ; "> <colgroup> <col style="text-align: left; "> <col style="text-align: center; " class="firstvers"> <col style="text-align: center; "> <col style="text-align: center; " class="lastvers"> </colgroup> <thead> <tr> <th style="text-align: left; border-right: 2px solid ; "> </th> <th style="text-align: center; border-bottom: 2px solid ; " colspan="3"> <span class="bold"><strong>OpenGL ES API Version</strong></span> </th> </tr> <tr> <th style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; "> <span class="bold"><strong>Function Name</strong></span> </th> <th style="text-align: center; border-right: 2px solid ; border-bottom: 2px solid ; "> <span class="bold"><strong>2.0</strong></span> </th> <th style="text-align: center; border-right: 2px solid ; border-bottom: 2px solid ; "> <span class="bold"><strong>3.0</strong></span> </th> <th style="text-align: center; border-bottom: 2px solid ; "> <span class="bold"><strong>3.1</strong></span> </th> </tr> </thead> <tbody> <tr> <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; "> <code class="function">glTexParameterf</code> </td> <td style="text-align: center; border-right: 2px solid ; border-bottom: 2px solid ; ">&#10004;</td> <td style="text-align: center; border-right: 2px solid ; border-bottom: 2px solid ; ">&#10004;</td> <td style="text-align: center; border-bottom: 2px solid ; ">&#10004;</td> </tr> <tr> <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; "> <code class="function">glTexParameterfv</code> </td> <td style="text-align: center; border-right: 2px solid ; border-bottom: 2px solid ; ">&#10004;</td> <td style="text-align: center; border-right: 2px solid ; border-bottom: 2px solid ; ">&#10004;</td> <td style="text-align: center; border-bottom: 2px solid ; ">&#10004;</td> </tr> <tr> <td style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; "> <code class="function">glTexParameteri</code> </td> <td style="text-align: center; border-right: 2px solid ; border-bottom: 2px solid ; ">&#10004;</td> <td style="text-align: center; border-right: 2px solid ; border-bottom: 2px solid ; ">&#10004;</td> <td style="text-align: center; border-bottom: 2px solid ; ">&#10004;</td> </tr> <tr> <td style="text-align: left; border-right: 2px solid ; "> <code class="function">glTexParameteriv</code> </td> <td style="text-align: center; border-right: 2px solid ; ">&#10004;</td> <td style="text-align: center; border-right: 2px solid ; ">&#10004;</td> <td style="text-align: center; ">&#10004;</td> </tr> </tbody> </table> </div> </div> <div class="refsect1" id="seealso"> <h2>See Also</h2> <p> <a class="citerefentry" href="glActiveTexture"><span class="citerefentry"><span class="refentrytitle">glActiveTexture</span></span></a>, <a class="citerefentry" href="glBindTexture"><span class="citerefentry"><span class="refentrytitle">glBindTexture</span></span></a>, <a class="citerefentry" href="glCopyTexImage2D"><span class="citerefentry"><span class="refentrytitle">glCopyTexImage2D</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="glPixelStorei"><span class="citerefentry"><span class="refentrytitle">glPixelStorei</span></span></a>, <a class="citerefentry" href="glSamplerParameter"><span class="citerefentry"><span class="refentrytitle">glSamplerParameter</span></span></a>, <a class="citerefentry" href="glTexStorage2D"><span class="citerefentry"><span class="refentrytitle">glTexStorage2D</span></span></a>, <a class="citerefentry" href="glTexImage2D"><span class="citerefentry"><span class="refentrytitle">glTexImage2D</span></span></a>, <a class="citerefentry" href="glTexStorage3D"><span class="citerefentry"><span class="refentrytitle">glTexStorage3D</span></span></a>, <a class="citerefentry" href="glTexImage3D"><span class="citerefentry"><span class="refentrytitle">glTexImage3D</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" id="Copyright"> <h2>Copyright</h2> <p> Copyright &#169; 1991-2006 Silicon Graphics, Inc. Copyright &#169; 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see <a class="link" 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 id="improvepage">Think you can improve this page? <a href="https://github.com/BSVino/docs.gl/blob/mainline/es3/glTexParameter.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> 