<HTML> <HEAD> <TITLE>glslf</TITLE> <STYLE TYPE="text/css" MEDIA=screen> <!-- BODY { font-family: Arial,Helvetica; } BLOCKQUOTE { margin: 10pt; } H1,A { color: #336699; } /*** Top menu style ****/ .mmenuon { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #ff6600; font-size: 10pt; } .mmenuoff { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #ffffff; font-size: 10pt; } .cpyright { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #ffffff; font-size: xx-small; } .cpyrightText { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #ffffff; font-size: xx-small; } .sections { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: 11pt; } .dsections { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: 12pt; } .slink { font-family: Arial,Helvetica; font-weight: normal; text-decoration: none; color: #336699; font-size: 9pt; } .slink2 { font-family: Arial,Helvetica; text-decoration: none; color: #336699; } .maintitle { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: 18pt; } .dblArrow { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: small; } .menuSec { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: small; } .newstext { font-family: Arial,Helvetica; font-size: small; } .linkmenu { font-family: Arial,Helvetica; color: #000000; font-weight: bold; text-decoration: none; } P { font-family: Arial,Helvetica; } PRE { font-family: monospace; white-space: pre; font-color: #333333; font-weight: 100; background-color: #eeeeee; padding: 5px; width: 90%; border-style: solid; border-width: 2px; border-color: #bebebe; } .quote { font-family: Times; text-decoration: none; color: #000000; font-size: 9pt; font-style: italic; } .smstd { font-family: Arial,Helvetica; color: #000000; font-size: x-small; } .std { font-family: Arial,Helvetica; color: #000000; } .meerkatTitle { font-family: sans-serif; font-size: x-small; color: black; } .meerkatDescription { font-family: sans-serif; font-size: 10pt; color: black } .meerkatCategory { font-family: sans-serif; font-size: 9pt; font-weight: bold; font-style: italic; color: brown; } .meerkatChannel { font-family: sans-serif; font-size: 9pt; font-style: italic; color: brown; } .meerkatDate { font-family: sans-serif; font-size: xx-small; color: #336699; } .tocTitle { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #333333; font-size: 10pt; } .toc-item { font-family: Arial,Helvetica; font-weight: bold; color: #336699; font-size: 10pt; text-decoration: underline; } .perlVersion { font-family: Arial,Helvetica; font-weight: bold; color: #336699; font-size: 10pt; text-decoration: none; } .docTitle { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #000000; font-size: 10pt; } .dotDot { font-family: Arial,Helvetica; font-weight: bold; color: #000000; font-size: 9pt; } .docSec { font-family: Arial,Helvetica; font-weight: normal; color: #333333; font-size: 9pt; } .docVersion { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: 10pt; } .docSecs-on { font-family: Arial,Helvetica; font-weight: normal; text-decoration: none; color: #ff0000; font-size: 10pt; } .docSecs-off { font-family: Arial,Helvetica; font-weight: normal; text-decoration: none; color: #333333; font-size: 10pt; } h3 { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: small; } h2 { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: medium; } h1 { font-family: Verdana,Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: large; } DL { font-family: Arial,Helvetica; font-weight: normal; text-decoration: none; color: #333333; font-size: 10pt; } UL > LI > A { font-family: Arial,Helvetica; font-weight: bold; color: #336699; font-size: 10pt; } .moduleInfo { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #333333; font-size: 11pt; } .moduleInfoSec { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: 10pt; } .moduleInfoVal { font-family: Arial,Helvetica; font-weight: normal; text-decoration: underline; color: #000000; font-size: 10pt; } .cpanNavTitle { font-family: Arial,Helvetica; font-weight: bold; color: #ffffff; font-size: 10pt; } .cpanNavLetter { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #333333; font-size: 9pt; } .cpanCat { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: 9pt; } --> </STYLE> </HEAD> <BODY> <object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e"> </object> <BLOCKQUOTE> <H1><A NAME="NAME"><A NAME="1">NAME </A></A></H1> <P> <B>glslf</B> - OpenGL fragment profile for the OpenGL Shading Lanauge (GLSL) </P> <H1><A NAME="SYNOPSIS"><A NAME="2">SYNOPSIS </A></A></H1> <PRE> glslf </PRE> <H1><A NAME="DESCRIPTION"><A NAME="3">DESCRIPTION </A></A></H1> <P> This OpenGL profile corresponds to the per-fragment functionality introduced by the OpenGL Shading Language. </P> <P> The compiler output for this profile conforms to the language grammar defined by the OpenGL Shading Language specification. </P> <H1><A NAME="3D_API_DEPENDENCIES"><A NAME="4">3D API DEPENDENCIES </A></A></H1> <P> Requires support for <B>OpenGL 2.0</B>. </P> <H2><A NAME="OPENGL_EXTENSION_SPECIFICATIONS"><A NAME="5">OpenGL Extension Specifications </A></A></H2> <PRE> <A HREF="http://www.opengl.org/documentation/specs/version2.0/glspec20.pdf">www.opengl.org/documentation/specs/version2.0/glspec20.pdf</A> <A HREF="http://www.opengl.org/documentation/glsl/">www.opengl.org/documentation/glsl/</A> <A HREF="http://www.opengl.org/registry/doc/GLSLangSpec.Full.1.20.8.pdf">www.opengl.org/registry/doc/GLSLangSpec.Full.1.20.8.pdf</A> </PRE> <H1><A NAME="PROFILE_OPTIONS"><A NAME="6">PROFILE OPTIONS </A></A></H1> <DL> <DT><STRONG>version=<I>val</I> </STRONG></DT> <DD> <P> GLSL version to target. Supported versions are <B>100</B>, <B>110</B>, <B>120</B>, <B>130</B>, <B>140</B> and <B>150</B>. </P> <DT><STRONG>userTexCoord </STRONG></DT> <DD> <P> Use user-defined varying instead of <B>gl_TexCoord</B>. </P> <DT><STRONG>ATI_draw_buffers </STRONG></DT> <DD> <P> Use <B>ATI_draw_buffers</B> extension for MRT. </P> <DT><STRONG>EXT_gpu_shader4 </STRONG></DT> <DD> <P> Use <B>EXT_gpu_shader4</B> extension where useful. </P> </DD></DL> <H1><A NAME="DATA_TYPES"><A NAME="7">DATA TYPES </A></A></H1> <P> The Cg half and fixed data types are both mapped to float because GLSL lacks first-class half and fixed data types. </P> <H1><A NAME="SEMANTICS"><A NAME="8">SEMANTICS </A></A></H1> <H2><A NAME="VARYING_INPUT_SEMANTICS"><A NAME="9">VARYING INPUT SEMANTICS </A></A></H2> <PRE> Binding Semantics Name Corresponding Data GLSL Equivalent COLOR Primary color (float4) gl_Color COLOR0 COL0 COL COLOR1 Secondary color (float4) gl_SecondaryColor COL1 TEXCOORD Texture coordinate set 0 gl_TexCoord[0] TEXCOORD# Texture coordinate set # gl_TexCoord[#] TEX# FACE Front/back facing (+1/-1) gl_FrontFacing </PRE> <H2><A NAME="UNIFORM_INPUT_SEMANTICS"><A NAME="10">UNIFORM INPUT SEMANTICS </A></A></H2> <P> Sixteen texture units are supported: </P> <PRE> Binding Semantic Name Corresponding Data TEXUNIT0 Texture unit 0 TEXUNIT1 Texture unit 1 ... TEXUNIT15 Texture unit 15 </PRE><P> The Cg profiles for GLSL provide access to all the uniform constants and variables documented in Section 7.4 (Built-in Constants) and 7.5 (Built-in Uniform State) respectively of the OpenGL Shading Language specification found at: </P> <PRE> <A HREF="http://www.opengl.org/documentation/glsl/">www.opengl.org/documentation/glsl/</A> <A HREF="http://www.opengl.org/registry/doc/GLSLangSpec.Full.1.20.8.pdf">www.opengl.org/registry/doc/GLSLangSpec.Full.1.20.8.pdf</A> </PRE><P> Example: </P> <PRE> glslf void main(float4 color : COLOR, out float4 ocol : COLOR) { ocol.xyz = mul(gl_NormalMatrix, color.xyz); ocol.w = 1; } </PRE> <H2><A NAME="OUTPUT_SEMANTICS"><A NAME="11">OUTPUT SEMANTICS </A></A></H2> <P> The following standard fragment output semantics are supported: </P> <PRE> Binding Semantics Name Corresponding Data GLSL Equivalent COLOR Output color (float4) gl_FragColor COLOR0 COL0 COL COLOR0-COLOR7 Output color (float4) gl_FragData[n] COL0-COL7 for draw buffers 0 to 7 DEPTH Output depth (float) gl_FragDepth DEPR </PRE> <H1><A NAME="STANDARD_LIBRARY_ISSUES"><A NAME="12">STANDARD LIBRARY ISSUES </A></A></H1> <P> Fragment program Cg standard library routines are available. </P> <H1><A NAME="SEE_ALSO"><A NAME="13">SEE ALSO </A></A></H1> <P> <A HREF="glslv.html">glslv</A>, <A HREF="glslg.html">glslg</A> </P> </BLOCKQUOTE> </BODY>