rename upstream-man-pages to upstream-doc
[clinton/guile-figl.git] / upstream-doc / man4 / xhtml / glProgramUniform.xml
diff --git a/upstream-doc/man4/xhtml/glProgramUniform.xml b/upstream-doc/man4/xhtml/glProgramUniform.xml
new file mode 100644 (file)
index 0000000..eda92f9
--- /dev/null
@@ -0,0 +1,172 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
+<!-- saved from url=(0013)about:internet -->
+<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" pref:renderer="mathplayer-dl"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="stylesheet" type="text/css" href="opengl-man.css" /><title>glProgramUniform - OpenGL 4 Reference Pages</title><meta name="generator" content="DocBook XSL Stylesheets V1.69.1" /></head><body><div class="refentry" lang="en" xml:lang="en"><a id="glProgramUniform"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>glProgramUniform — Specify the value of a uniform variable for a specified program object</p></div><div class="refsynopsisdiv"><h2>C Specification</h2><div class="funcsynopsis"><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em"><tr><td><code class="funcdef">void <b class="fsfunc">glProgramUniform1f</b>(</code></td><td>GLuint  </td><td><var class="pdparam">program</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">location</var>, </td></tr><tr><td> </td><td>GLfloat  </td><td><var class="pdparam">v0</var><code>)</code>;</td></tr></table><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em"><tr><td><code class="funcdef">void <b class="fsfunc">glProgramUniform2f</b>(</code></td><td>GLuint  </td><td><var class="pdparam">program</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">location</var>, </td></tr><tr><td> </td><td>GLfloat  </td><td><var class="pdparam">v0</var>, </td></tr><tr><td> </td><td>GLfloat  </td><td><var class="pdparam">v1</var><code>)</code>;</td></tr></table><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em"><tr><td><code class="funcdef">void <b class="fsfunc">glProgramUniform3f</b>(</code></td><td>GLuint  </td><td><var class="pdparam">program</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">location</var>, </td></tr><tr><td> </td><td>GLfloat  </td><td><var class="pdparam">v0</var>, </td></tr><tr><td> </td><td>GLfloat  </td><td><var class="pdparam">v1</var>, </td></tr><tr><td> </td><td>GLfloat  </td><td><var class="pdparam">v2</var><code>)</code>;</td></tr></table><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em"><tr><td><code class="funcdef">void <b class="fsfunc">glProgramUniform4f</b>(</code></td><td>GLuint  </td><td><var class="pdparam">program</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">location</var>, </td></tr><tr><td> </td><td>GLfloat  </td><td><var class="pdparam">v0</var>, </td></tr><tr><td> </td><td>GLfloat  </td><td><var class="pdparam">v1</var>, </td></tr><tr><td> </td><td>GLfloat  </td><td><var class="pdparam">v2</var>, </td></tr><tr><td> </td><td>GLfloat  </td><td><var class="pdparam">v3</var><code>)</code>;</td></tr></table><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em"><tr><td><code class="funcdef">void <b class="fsfunc">glProgramUniform1i</b>(</code></td><td>GLuint  </td><td><var class="pdparam">program</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">location</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">v0</var><code>)</code>;</td></tr></table><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em"><tr><td><code class="funcdef">void <b class="fsfunc">glProgramUniform2i</b>(</code></td><td>GLuint  </td><td><var class="pdparam">program</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">location</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">v0</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">v1</var><code>)</code>;</td></tr></table><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em"><tr><td><code class="funcdef">void <b class="fsfunc">glProgramUniform3i</b>(</code></td><td>GLuint  </td><td><var class="pdparam">program</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">location</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">v0</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">v1</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">v2</var><code>)</code>;</td></tr></table><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em"><tr><td><code class="funcdef">void <b class="fsfunc">glProgramUniform4i</b>(</code></td><td>GLuint  </td><td><var class="pdparam">program</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">location</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">v0</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">v1</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">v2</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">v3</var><code>)</code>;</td></tr></table><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em"><tr><td><code class="funcdef">void <b class="fsfunc">glProgramUniform1ui</b>(</code></td><td>GLuint  </td><td><var class="pdparam">program</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">location</var>, </td></tr><tr><td> </td><td>GLuint  </td><td><var class="pdparam">v0</var><code>)</code>;</td></tr></table><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em"><tr><td><code class="funcdef">void <b class="fsfunc">glProgramUniform2ui</b>(</code></td><td>GLuint  </td><td><var class="pdparam">program</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">location</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">v0</var>, </td></tr><tr><td> </td><td>GLuint  </td><td><var class="pdparam">v1</var><code>)</code>;</td></tr></table><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em"><tr><td><code class="funcdef">void <b class="fsfunc">glProgramUniform3ui</b>(</code></td><td>GLuint  </td><td><var class="pdparam">program</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">location</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">v0</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">v1</var>, </td></tr><tr><td> </td><td>GLuint  </td><td><var class="pdparam">v2</var><code>)</code>;</td></tr></table><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0"><tr><td><code class="funcdef">void <b class="fsfunc">glProgramUniform4ui</b>(</code></td><td>GLuint  </td><td><var class="pdparam">program</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">location</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">v0</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">v1</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">v2</var>, </td></tr><tr><td> </td><td>GLuint  </td><td><var class="pdparam">v3</var><code>)</code>;</td></tr></table></div></div><div class="refsect1" lang="en" xml:lang="en"><a id="parameters"></a><h2>Parameters</h2><div class="variablelist"><dl><dt><span class="term"><em class="parameter"><code>program</code></em></span></dt><dd><p>Specifies the handle of the program containing the uniform
+            variable to be modified.</p></dd><dt><span class="term"><em class="parameter"><code>location</code></em></span></dt><dd><p>Specifies the location of the uniform variable
+            to be modified.</p></dd><dt><span class="term">
+            <em class="parameter"><code>v0</code></em>,
+            <em class="parameter"><code>v1</code></em>,
+            <em class="parameter"><code>v2</code></em>,
+            <em class="parameter"><code>v3</code></em>
+        </span></dt><dd><p>Specifies the new values to be used for the
+            specified uniform variable.</p></dd></dl></div></div><div class="refsynopsisdiv"><h2>C Specification</h2><div class="funcsynopsis"><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em"><tr><td><code class="funcdef">void <b class="fsfunc">glProgramUniform1fv</b>(</code></td><td>GLuint  </td><td><var class="pdparam">program</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">location</var>, </td></tr><tr><td> </td><td>GLsizei  </td><td><var class="pdparam">count</var>, </td></tr><tr><td> </td><td>const GLfloat * </td><td><var class="pdparam">value</var><code>)</code>;</td></tr></table><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em"><tr><td><code class="funcdef">void <b class="fsfunc">glProgramUniform2fv</b>(</code></td><td>GLuint  </td><td><var class="pdparam">program</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">location</var>, </td></tr><tr><td> </td><td>GLsizei  </td><td><var class="pdparam">count</var>, </td></tr><tr><td> </td><td>const GLfloat * </td><td><var class="pdparam">value</var><code>)</code>;</td></tr></table><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em"><tr><td><code class="funcdef">void <b class="fsfunc">glProgramUniform3fv</b>(</code></td><td>GLuint  </td><td><var class="pdparam">program</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">location</var>, </td></tr><tr><td> </td><td>GLsizei  </td><td><var class="pdparam">count</var>, </td></tr><tr><td> </td><td>const GLfloat * </td><td><var class="pdparam">value</var><code>)</code>;</td></tr></table><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em"><tr><td><code class="funcdef">void <b class="fsfunc">glProgramUniform4fv</b>(</code></td><td>GLuint  </td><td><var class="pdparam">program</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">location</var>, </td></tr><tr><td> </td><td>GLsizei  </td><td><var class="pdparam">count</var>, </td></tr><tr><td> </td><td>const GLfloat * </td><td><var class="pdparam">value</var><code>)</code>;</td></tr></table><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em"><tr><td><code class="funcdef">void <b class="fsfunc">glProgramUniform1iv</b>(</code></td><td>GLuint  </td><td><var class="pdparam">program</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">location</var>, </td></tr><tr><td> </td><td>GLsizei  </td><td><var class="pdparam">count</var>, </td></tr><tr><td> </td><td>const GLint * </td><td><var class="pdparam">value</var><code>)</code>;</td></tr></table><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em"><tr><td><code class="funcdef">void <b class="fsfunc">glProgramUniform2iv</b>(</code></td><td>GLuint  </td><td><var class="pdparam">program</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">location</var>, </td></tr><tr><td> </td><td>GLsizei  </td><td><var class="pdparam">count</var>, </td></tr><tr><td> </td><td>const GLint * </td><td><var class="pdparam">value</var><code>)</code>;</td></tr></table><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em"><tr><td><code class="funcdef">void <b class="fsfunc">glProgramUniform3iv</b>(</code></td><td>GLuint  </td><td><var class="pdparam">program</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">location</var>, </td></tr><tr><td> </td><td>GLsizei  </td><td><var class="pdparam">count</var>, </td></tr><tr><td> </td><td>const GLint * </td><td><var class="pdparam">value</var><code>)</code>;</td></tr></table><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em"><tr><td><code class="funcdef">void <b class="fsfunc">glProgramUniform4iv</b>(</code></td><td>GLuint  </td><td><var class="pdparam">program</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">location</var>, </td></tr><tr><td> </td><td>GLsizei  </td><td><var class="pdparam">count</var>, </td></tr><tr><td> </td><td>const GLint * </td><td><var class="pdparam">value</var><code>)</code>;</td></tr></table><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em"><tr><td><code class="funcdef">void <b class="fsfunc">glProgramUniform1uiv</b>(</code></td><td>GLuint  </td><td><var class="pdparam">program</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">location</var>, </td></tr><tr><td> </td><td>GLsizei  </td><td><var class="pdparam">count</var>, </td></tr><tr><td> </td><td>const GLuint * </td><td><var class="pdparam">value</var><code>)</code>;</td></tr></table><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em"><tr><td><code class="funcdef">void <b class="fsfunc">glProgramUniform2uiv</b>(</code></td><td>GLuint  </td><td><var class="pdparam">program</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">location</var>, </td></tr><tr><td> </td><td>GLsizei  </td><td><var class="pdparam">count</var>, </td></tr><tr><td> </td><td>const GLuint * </td><td><var class="pdparam">value</var><code>)</code>;</td></tr></table><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em"><tr><td><code class="funcdef">void <b class="fsfunc">glProgramUniform3uiv</b>(</code></td><td>GLuint  </td><td><var class="pdparam">program</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">location</var>, </td></tr><tr><td> </td><td>GLsizei  </td><td><var class="pdparam">count</var>, </td></tr><tr><td> </td><td>const GLuint * </td><td><var class="pdparam">value</var><code>)</code>;</td></tr></table><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0"><tr><td><code class="funcdef">void <b class="fsfunc">glProgramUniform4uiv</b>(</code></td><td>GLuint  </td><td><var class="pdparam">program</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">location</var>, </td></tr><tr><td> </td><td>GLsizei  </td><td><var class="pdparam">count</var>, </td></tr><tr><td> </td><td>const GLuint * </td><td><var class="pdparam">value</var><code>)</code>;</td></tr></table></div></div><div class="refsect1" lang="en" xml:lang="en"><a id="parameters2"></a><h2>Parameters</h2><div class="variablelist"><dl><dt><span class="term"><em class="parameter"><code>program</code></em></span></dt><dd><p>Specifies the handle of the program containing the uniform
+            variable to be modified.</p></dd><dt><span class="term"><em class="parameter"><code>location</code></em></span></dt><dd><p>Specifies the location of the uniform value to
+            be modified.</p></dd><dt><span class="term"><em class="parameter"><code>count</code></em></span></dt><dd><p>Specifies the number of elements that are to
+            be modified. This should be 1 if the targeted
+            uniform variable is not an array, and 1 or more if it is
+            an array.</p></dd><dt><span class="term"><em class="parameter"><code>value</code></em></span></dt><dd><p>Specifies a pointer to an array of
+            <em class="parameter"><code>count</code></em> values that will be
+            used to update the specified uniform
+            variable.</p></dd></dl></div></div><div class="refsynopsisdiv"><h2>C Specification</h2><div class="funcsynopsis"><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em"><tr><td><code class="funcdef">void <b class="fsfunc">glProgramUniformMatrix2fv</b>(</code></td><td>GLuint  </td><td><var class="pdparam">program</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">location</var>, </td></tr><tr><td> </td><td>GLsizei  </td><td><var class="pdparam">count</var>, </td></tr><tr><td> </td><td>GLboolean  </td><td><var class="pdparam">transpose</var>, </td></tr><tr><td> </td><td>const GLfloat * </td><td><var class="pdparam">value</var><code>)</code>;</td></tr></table><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em"><tr><td><code class="funcdef">void <b class="fsfunc">glProgramUniformMatrix3fv</b>(</code></td><td>GLuint  </td><td><var class="pdparam">program</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">location</var>, </td></tr><tr><td> </td><td>GLsizei  </td><td><var class="pdparam">count</var>, </td></tr><tr><td> </td><td>GLboolean  </td><td><var class="pdparam">transpose</var>, </td></tr><tr><td> </td><td>const GLfloat * </td><td><var class="pdparam">value</var><code>)</code>;</td></tr></table><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em"><tr><td><code class="funcdef">void <b class="fsfunc">glProgramUniformMatrix4fv</b>(</code></td><td>GLuint  </td><td><var class="pdparam">program</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">location</var>, </td></tr><tr><td> </td><td>GLsizei  </td><td><var class="pdparam">count</var>, </td></tr><tr><td> </td><td>GLboolean  </td><td><var class="pdparam">transpose</var>, </td></tr><tr><td> </td><td>const GLfloat * </td><td><var class="pdparam">value</var><code>)</code>;</td></tr></table><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em"><tr><td><code class="funcdef">void <b class="fsfunc">glProgramUniformMatrix2x3fv</b>(</code></td><td>GLuint  </td><td><var class="pdparam">program</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">location</var>, </td></tr><tr><td> </td><td>GLsizei  </td><td><var class="pdparam">count</var>, </td></tr><tr><td> </td><td>GLboolean  </td><td><var class="pdparam">transpose</var>, </td></tr><tr><td> </td><td>const GLfloat * </td><td><var class="pdparam">value</var><code>)</code>;</td></tr></table><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em"><tr><td><code class="funcdef">void <b class="fsfunc">glProgramUniformMatrix3x2fv</b>(</code></td><td>GLuint  </td><td><var class="pdparam">program</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">location</var>, </td></tr><tr><td> </td><td>GLsizei  </td><td><var class="pdparam">count</var>, </td></tr><tr><td> </td><td>GLboolean  </td><td><var class="pdparam">transpose</var>, </td></tr><tr><td> </td><td>const GLfloat * </td><td><var class="pdparam">value</var><code>)</code>;</td></tr></table><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em"><tr><td><code class="funcdef">void <b class="fsfunc">glProgramUniformMatrix2x4fv</b>(</code></td><td>GLuint  </td><td><var class="pdparam">program</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">location</var>, </td></tr><tr><td> </td><td>GLsizei  </td><td><var class="pdparam">count</var>, </td></tr><tr><td> </td><td>GLboolean  </td><td><var class="pdparam">transpose</var>, </td></tr><tr><td> </td><td>const GLfloat * </td><td><var class="pdparam">value</var><code>)</code>;</td></tr></table><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em"><tr><td><code class="funcdef">void <b class="fsfunc">glProgramUniformMatrix4x2fv</b>(</code></td><td>GLuint  </td><td><var class="pdparam">program</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">location</var>, </td></tr><tr><td> </td><td>GLsizei  </td><td><var class="pdparam">count</var>, </td></tr><tr><td> </td><td>GLboolean  </td><td><var class="pdparam">transpose</var>, </td></tr><tr><td> </td><td>const GLfloat * </td><td><var class="pdparam">value</var><code>)</code>;</td></tr></table><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em"><tr><td><code class="funcdef">void <b class="fsfunc">glProgramUniformMatrix3x4fv</b>(</code></td><td>GLuint  </td><td><var class="pdparam">program</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">location</var>, </td></tr><tr><td> </td><td>GLsizei  </td><td><var class="pdparam">count</var>, </td></tr><tr><td> </td><td>GLboolean  </td><td><var class="pdparam">transpose</var>, </td></tr><tr><td> </td><td>const GLfloat * </td><td><var class="pdparam">value</var><code>)</code>;</td></tr></table><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0"><tr><td><code class="funcdef">void <b class="fsfunc">glProgramUniformMatrix4x3fv</b>(</code></td><td>GLuint  </td><td><var class="pdparam">program</var>, </td></tr><tr><td> </td><td>GLint  </td><td><var class="pdparam">location</var>, </td></tr><tr><td> </td><td>GLsizei  </td><td><var class="pdparam">count</var>, </td></tr><tr><td> </td><td>GLboolean  </td><td><var class="pdparam">transpose</var>, </td></tr><tr><td> </td><td>const GLfloat * </td><td><var class="pdparam">value</var><code>)</code>;</td></tr></table></div></div><div class="refsect1" lang="en" xml:lang="en"><a id="parameters3"></a><h2>Parameters</h2><div class="variablelist"><dl><dt><span class="term"><em class="parameter"><code>program</code></em></span></dt><dd><p>Specifies the handle of the program containing the uniform
+            variable to be modified.</p></dd><dt><span class="term"><em class="parameter"><code>location</code></em></span></dt><dd><p>Specifies the location of the uniform value to
+            be modified.</p></dd><dt><span class="term"><em class="parameter"><code>count</code></em></span></dt><dd><p>Specifies the number of matrices that are to
+            be modified. This should be 1 if the targeted
+            uniform variable is not an array of matrices, and 1 or more if it is
+            an array of matrices.</p></dd><dt><span class="term"><em class="parameter"><code>transpose</code></em></span></dt><dd><p>Specifies whether to transpose the matrix as
+            the values are loaded into the uniform
+            variable.</p></dd><dt><span class="term"><em class="parameter"><code>value</code></em></span></dt><dd><p>Specifies a pointer to an array of
+            <em class="parameter"><code>count</code></em> values that will be
+            used to update the specified uniform
+            variable.</p></dd></dl></div></div><div class="refsect1" lang="en" xml:lang="en"><a id="description"></a><h2>Description</h2><p><code class="function">glProgramUniform</code> modifies the value of a
+    uniform variable or a uniform variable array. The location of
+    the uniform variable to be modified is specified by
+    <em class="parameter"><code>location</code></em>, which should be a value
+    returned by
+    <a href="glGetUniformLocation.xml"><span class="citerefentry"><span class="refentrytitle">glGetUniformLocation</span></span></a>.
+    <code class="function">glProgramUniform</code> operates on the program object
+    specified by <em class="parameter"><code>program</code></em>.</p><p>The commands <code class="function">glProgramUniform{1|2|3|4}{f|i|ui}</code>
+    are used to change the value of the uniform variable specified
+    by <em class="parameter"><code>location</code></em> using the values passed as
+    arguments. The number specified in the command should match the
+    number of components in the data type of the specified uniform
+    variable (e.g., <code class="function">1</code> for <code class="code">float</code>, <code class="code">int</code>, <code class="code">unsigned int</code>, <code class="code">bool</code>;
+    <code class="function">2</code> for <code class="code">vec2</code>, <code class="code">ivec2</code>, <code class="code">uvec2</code>, <code class="code">bvec2</code>, etc.). The suffix
+    <code class="function">f</code> indicates that floating-point values are
+    being passed; the suffix <code class="function">i</code> indicates that
+    integer values are being passed; the suffix <code class="function">ui</code> indicates that
+    unsigned integer values are being passed, and this type should also match
+    the data type of the specified uniform variable. The
+    <code class="function">i</code> variants of this function should be used
+    to provide values for uniform variables defined as <code class="code">int</code>, <code class="code">ivec2</code>,
+    <code class="code">ivec3</code>, <code class="code">ivec4</code>, or arrays of these. The
+    <code class="function">ui</code> variants of this function should be used
+    to provide values for uniform variables defined as <code class="code">unsigned int</code>, <code class="code">uvec2</code>,
+    <code class="code">uvec3</code>, <code class="code">uvec4</code>, or arrays of these. The <code class="function">f</code>
+    variants should be used to provide values for uniform variables
+    of type <code class="code">float</code>, <code class="code">vec2</code>, <code class="code">vec3</code>, <code class="code">vec4</code>, or arrays of these. Either the
+    <code class="function">i</code>, <code class="function">ui</code> or <code class="function">f</code> variants
+    may be used to provide values for uniform variables of type
+    <code class="code">bool</code>, <code class="code">bvec2</code>, <code class="code">bvec3</code>, <code class="code">bvec4</code>, or arrays of these. The uniform
+    variable will be set to <code class="code">false</code> if the input value is 0 or 0.0f,
+    and it will be set to <code class="code">true</code> otherwise.</p><p>All active uniform variables defined in a program object
+    are initialized to 0 when the program object is linked
+    successfully. They retain the values assigned to them by a call
+    to <code class="function">glProgramUniform</code> until the next successful
+    link operation occurs on the program object, when they are once
+    again initialized to 0.</p><p>The commands <code class="function">glProgramUniform{1|2|3|4}{f|i|ui}v</code>
+    can be used to modify a single uniform variable or a uniform
+    variable array. These commands pass a count and a pointer to the
+    values to be loaded into a uniform variable or a uniform
+    variable array. A count of 1 should be used if modifying the
+    value of a single uniform variable, and a count of 1 or greater
+    can be used to modify an entire array or part of an array. When
+    loading <span class="emphasis"><em>n</em></span> elements starting at an arbitrary
+    position <span class="emphasis"><em>m</em></span> in a uniform variable array,
+    elements <span class="emphasis"><em>m</em></span> + <span class="emphasis"><em>n</em></span> - 1 in
+    the array will be replaced with the new values. If
+    <em class="parameter"><code>m</code></em> + <em class="parameter"><code>n</code></em> - 1 is
+    larger than the size of the uniform variable array, values for
+    all array elements beyond the end of the array will be ignored.
+    The number specified in the name of the command indicates the
+    number of components for each element in
+    <em class="parameter"><code>value</code></em>, and it should match the number of
+    components in the data type of the specified uniform variable
+    (e.g., <code class="function">1</code> for <code class="code">float</code>, <code class="code">int</code>, <code class="code">bool</code>;
+    <code class="function">2</code> for <code class="code">vec2</code>, <code class="code">ivec2</code>, <code class="code">bvec2</code>, etc.). The data
+    type specified in the name of the command must match the data
+    type for the specified uniform variable as described previously
+    for <code class="function">glProgramUniform{1|2|3|4}{f|i|ui}</code>.</p><p>For uniform variable arrays, each element of the array is
+    considered to be of the type indicated in the name of the
+    command (e.g., <code class="function">glProgramUniform3f</code> or
+    <code class="function">glProgramUniform3fv</code> can be used to load a uniform
+    variable array of type vec3). The number of elements of the
+    uniform variable array to be modified is specified by
+    <em class="parameter"><code>count</code></em></p><p>The commands
+    <code class="function">glProgramUniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv</code> 
+        are used to modify a matrix or an array of matrices. The numbers in the
+    command name are interpreted as the dimensionality of the matrix.
+    The number <code class="function">2</code> indicates a 2 × 2 matrix
+    (i.e., 4 values), the number <code class="function">3</code> indicates a
+    3 × 3 matrix (i.e., 9 values), and the number
+    <code class="function">4</code> indicates a 4 × 4 matrix (i.e., 16
+    values). Non-square matrix dimensionality is explicit, with the first
+        number representing the number of columns and the second number
+        representing the number of rows.  For example, 
+        <code class="function">2x4</code> indicates a 2 × 4 matrix with 2 columns
+        and 4 rows (i.e., 8 values).
+        If <em class="parameter"><code>transpose</code></em> is
+    <code class="constant">GL_FALSE</code>, each matrix is assumed to be
+    supplied in column major order. If
+    <em class="parameter"><code>transpose</code></em> is
+    <code class="constant">GL_TRUE</code>, each matrix is assumed to be
+    supplied in row major order. The <em class="parameter"><code>count</code></em>
+    argument indicates the number of matrices to be passed. A count
+    of 1 should be used if modifying the value of a single matrix,
+    and a count greater than 1 can be used to modify an array of
+    matrices.</p></div><div class="refsect1" lang="en" xml:lang="en"><a id="notes"></a><h2>Notes</h2><p><code class="function">glProgramUniform1i</code> and
+    <code class="function">glProgramUniform1iv</code> are the only two functions
+    that may be used to load uniform variables defined as sampler
+    types. Loading samplers with any other function will result in a
+    <code class="constant">GL_INVALID_OPERATION</code> error.</p><p>If <em class="parameter"><code>count</code></em> is greater than 1 and the
+    indicated uniform variable is not an array, a
+    <code class="constant">GL_INVALID_OPERATION</code> error is generated and the
+    specified uniform variable will remain unchanged.</p><p>Other than the preceding exceptions, if the type and size
+    of the uniform variable as defined in the shader do not match
+    the type and size specified in the name of the command used to
+    load its value, a <code class="constant">GL_INVALID_OPERATION</code> error will
+    be generated and the specified uniform variable will remain
+    unchanged.</p><p>If <em class="parameter"><code>location</code></em> is a value other than
+    -1 and it does not represent a valid uniform variable location
+    in within <em class="parameter"><code>program</code></em>, an error will be generated, and
+    no changes will be made to the uniform variable storage of
+    <em class="parameter"><code>program</code></em>. If <em class="parameter"><code>location</code></em> is
+    equal to -1, the data passed in will be silently ignored and the
+    specified uniform variable will not be changed.</p></div><div class="refsect1" lang="en" xml:lang="en"><a id="errors"></a><h2>Errors</h2><p><code class="constant">GL_INVALID_OPERATION</code> is generated if
+    <em class="parameter"><code>program</code></em> does not refer to a program object owned
+    by the GL.</p><p><code class="constant">GL_INVALID_OPERATION</code> is generated if the
+    size of the uniform variable declared in the shader does not
+    match the size indicated by the <code class="function">glProgramUniform</code>
+    command.</p><p><code class="constant">GL_INVALID_OPERATION</code> is generated if one of
+    the signed or unsigned integer variants of this function is used to load a uniform
+    variable of type <code class="code">float</code>, <code class="code">vec2</code>, <code class="code">vec3</code>, <code class="code">vec4</code>, or an array of these,
+    or if one of the floating-point variants of this function is
+    used to load a uniform variable of type <code class="code">int</code>, <code class="code">ivec2</code>, <code class="code">ivec3</code>,
+    <code class="code">ivec4</code>, <code class="code">unsigned int</code>, <code class="code">uvec2</code>, <code class="code">uvec3</code>,
+    <code class="code">uvec4</code>, or an array of these.</p><p><code class="constant">GL_INVALID_OPERATION</code> is generated if one of
+    the signed integer variants of this function is used to load a uniform
+    variable of type <code class="code">unsigned int</code>, <code class="code">uvec2</code>, <code class="code">uvec3</code>,
+    <code class="code">uvec4</code>, or an array of these.</p><p><code class="constant">GL_INVALID_OPERATION</code> is generated if one of
+    the unsigned integer variants of this function is used to load a uniform
+    variable of type <code class="code">int</code>, <code class="code">ivec2</code>, <code class="code">ivec3</code>,
+    <code class="code">ivec4</code>, or an array of these.</p><p><code class="constant">GL_INVALID_OPERATION</code> is generated if
+    <em class="parameter"><code>location</code></em> is an invalid uniform location
+    for <em class="parameter"><code>program</code></em> and
+    <em class="parameter"><code>location</code></em> is not equal to -1.</p><p><code class="constant">GL_INVALID_VALUE</code> is generated if
+    <em class="parameter"><code>count</code></em> is less than 0.</p><p><code class="constant">GL_INVALID_OPERATION</code> is generated if
+    <em class="parameter"><code>count</code></em> is greater than 1 and the indicated
+    uniform variable is not an array variable.</p><p><code class="constant">GL_INVALID_OPERATION</code> is generated if a
+    sampler is loaded using a command other than
+    <code class="function">glProgramUniform1i</code> and
+    <code class="function">glProgramUniform1iv</code>.</p></div><div class="refsect1" lang="en" xml:lang="en"><a id="associatedgets"></a><h2>Associated Gets</h2><p><a href="glGetActiveUniform.xml"><span class="citerefentry"><span class="refentrytitle">glGetActiveUniform</span></span></a>
+    with the handle of a program object and the index of an active uniform variable</p><p><a href="glGetUniform.xml"><span class="citerefentry"><span class="refentrytitle">glGetUniform</span></span></a>
+    with the handle of a program object and the location of a
+    uniform variable</p><p><a href="glGetUniformLocation.xml"><span class="citerefentry"><span class="refentrytitle">glGetUniformLocation</span></span></a>
+    with the handle of a program object and the name of a uniform
+    variable</p></div><div class="refsect1" lang="en" xml:lang="en"><a id="seealso"></a><h2>See Also</h2><p><a href="glLinkProgram.xml"><span class="citerefentry"><span class="refentrytitle">glLinkProgram</span></span></a>,
+    <a href="glUseProgram.xml"><span class="citerefentry"><span class="refentrytitle">glUseProgram</span></span></a></p></div><div class="refsect1" lang="en" xml:lang="en"><a id="Copyright"></a><h2>Copyright</h2><p>
+            Copyright <span class="trademark"></span>© 2003-2005 3Dlabs Inc. Ltd. 
+            Copyright <span class="trademark"></span>© 2010 Khronos Group.
+            This material may be distributed subject to the terms and conditions set forth in 
+            the Open Publication License, v 1.0, 8 June 1999.
+            <a href="http://opencontent.org/openpub/" target="_top">http://opencontent.org/openpub/</a>.
+        </p></div></div></body></html>