> # NAME

> glslf - OpenGL fragment profile for the OpenGL Shading Lanauge (GLSL)

> # SYNOPSIS

>       glslf

> # DESCRIPTION

> This OpenGL profile corresponds to the per-fragment functionality introduced by the OpenGL Shading Language.

> The compiler output for this profile conforms to the language grammar defined by the OpenGL Shading Language specification.

> # 3D API DEPENDENCIES

> Requires support for OpenGL 2.0.

> ## OpenGL Extension Specifications

>      www.opengl.org/documentation/specs/version2.0/glspec20.pdf
>      www.opengl.org/documentation/glsl/
>      www.opengl.org/registry/doc/GLSLangSpec.Full.1.20.8.pdf

> # PROFILE OPTIONS

> version=val

>   GLSL version to target. Supported versions are 100, 110, 120, 130, 140 and 150.

> userTexCoord

>   Use user-defined varying instead of gl_TexCoord.

> ATI_draw_buffers

>   Use ATI_draw_buffers extension for MRT.

> EXT_gpu_shader4

>   Use EXT_gpu_shader4 extension where useful.

> # DATA TYPES

> The Cg half and fixed data types are both mapped to float because GLSL lacks first-class half and fixed data types.

> # SEMANTICS

> ## VARYING INPUT SEMANTICS

>       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

> ## UNIFORM INPUT SEMANTICS

> Sixteen texture units are supported:

>       Binding Semantic Name            Corresponding Data

>       TEXUNIT0                         Texture unit 0
>       TEXUNIT1                         Texture unit 1
>       ...
>       TEXUNIT15                        Texture unit 15

> 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:

>       www.opengl.org/documentation/glsl/
>       www.opengl.org/registry/doc/GLSLangSpec.Full.1.20.8.pdf

> Example:

>       glslf void main(float4 color : COLOR,
>                       out float4 ocol : COLOR)
>       {
>         ocol.xyz = mul(gl_NormalMatrix, color.xyz);
>         ocol.w = 1;
>       }

> ## OUTPUT SEMANTICS

> The following standard fragment output semantics are supported:

>       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

> # STANDARD LIBRARY ISSUES

> Fragment program Cg standard library routines are available.

> # SEE ALSO

> glslv, glslg