skia / external / github.com / KhronosGroup / OpenGL-Registry / bc93187978b46e0baae0b8556071d6b292b0bb97 / . / extensions / PGI / PGI_vertex_hints.txt

Name | |

PGI_vertex_hints | |

Name Strings | |

GL_PGI_vertex_hints | |

Version | |

$Date: 1996/04/22 23:24:19 $ $Revision: 1.1 $ | |

Number | |

76 | |

Dependencies | |

None | |

Overview | |

The extension allows the app to give hints regarding what kinds of | |

OpenGL function calls will happen between Begin/End pairs. | |

New Procedures and Functions | |

None | |

New Tokens | |

Accepted by the <target> parameters of Hint and HintPGI: | |

VERTEX_DATA_HINT_PGI 107050 | |

VERTEX_CONSISTENT_HINT_PGI 107051 | |

MATERIAL_SIDE_HINT_PGI 107052 | |

MAX_VERTEX_HINT_PGI 107053 | |

Accepted by the <mode> parameters of Hint and HintPGI: | |

COLOR3_BIT_PGI 0x00010000 | |

COLOR4_BIT_PGI 0x00020000 | |

EDGEFLAG_BIT_PGI 0x00040000 | |

INDEX_BIT_PGI 0x00080000 | |

MAT_AMBIENT_BIT_PGI 0x00100000 | |

MAT_AMBIENT_AND_DIFFUSE_BIT_PGI 0x00200000 | |

MAT_DIFFUSE_BIT_PGI 0x00400000 | |

MAT_EMISSION_BIT_PGI 0x00800000 | |

MAT_COLOR_INDEXES_BIT_PGI 0x01000000 | |

MAT_SHININESS_BIT_PGI 0x02000000 | |

MAT_SPECULAR_BIT_PGI 0x04000000 | |

NORMAL_BIT_PGI 0x08000000 | |

TEXCOORD1_BIT_PGI 0x10000000 | |

TEXCOORD2_BIT_PGI 0x20000000 | |

TEXCOORD3_BIT_PGI 0x40000000 | |

TEXCOORD4_BIT_PGI 0x80000000 | |

VERTEX23_BIT_PGI 0x00000004 | |

VERTEX4_BIT_PGI 0x00000008 | |

Additions to Chapter 2 of the 1.0 Specification (OpenGL Operation) | |

None | |

Additions to Chapter 3 of the 1.0 Specification (Rasterization) | |

None | |

Additions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations | |

and the Frame Buffer) | |

None | |

Additions to Chapter 5 of the 1.0 Specification (Special Functions) | |

Functions Hint and HintPGI accept the following targets and modes: | |

[All hints are subject to Push/Pop with the HINT_BIT attributes.] | |

<target> = VERTEX_DATA_HINT_PGI | |

This hint indicates which GL calls might occur between Begin/End pairs. | |

If <mode> is any of FALSE, then the hint is "disabled" -- this means | |

the application is not making any predictions about which GL calls | |

might occur between Begin/End pairs. Otherwise, <mode> must be a | |

bitwise OR of the following bits: | |

COLOR3_BIT_PGI Color3* | |

COLOR4_BIT_PGI Color4* | |

EDGEFLAG_BIT_PGI EdgeFlag* | |

INDEX_BIT_PGI Index* | |

MAT_AMBIENT_BIT_PGI Material*(pname=AMBIENT) | |

MAT_AMBIENT_AND_DIFFUSE_BIT_PGI Material*(pname=AMBIENT_AND_DIFFUSE) | |

MAT_DIFFUSE_BIT_PGI Material*(pname=DIFFUSE) | |

MAT_EMISSION_BIT_PGI Material*(pname=EMISSION) | |

MAT_COLOR_INDEXES_BIT_PGI Material*(pname=COLOR_INDEXES) | |

MAT_SHININESS_BIT_PGI Material*(pname=SHININESS) | |

MAT_SPECULAR_BIT_PGI Material*(pname=SPECULAR) | |

NORMAL_BIT_PGI Normal* | |

TEXCOORD1_BIT_PGI TexCoord1* | |

TEXCOORD2_BIT_PGI TexCoord2* | |

TEXCOORD3_BIT_PGI TexCoord3* | |

TEXCOORD4_BIT_PGI TexCoord4* | |

VERTEX23_BIT_PGI Vertex[23]* | |

VERTEX4_BIT_PGI Vertex4 | |

At least one of the bits VERTEX23_BIT_PGI or VERTEX4_BIT_PGI must be | |

set in <mode>. | |

Each bit above indicates that one of the associated OpenGL functions | |

might occur between Begin/End pairs. If <mode> does not contain a | |

given bit, then GL may assume that associated functions will not occur | |

between Begin/End pairs -- in this case, behavior of these functions | |

is undefined. (But the functions will not cause program termination.) | |

<target> = VERTEX_CONSISTENT_HINT_PGI | |

This hint indicates that OpenGL function calls will occur | |

consistently between Begin/End pairs. If <mode> is either | |

TRUE or FASTEST, then the application effectively is making | |

the following assertion: Between Begin/End pairs, if any of | |

the following functions -- Color, EdgeFlag, Index, Material, | |

Normal, TexCoord -- occurs before one Vertex call, then it | |

will occur before all Vertex calls. (Where "before" means the | |

function will occur between the current Vertex function and the | |

previous Vertex of Begin function.) If <mode> is NICEST, DONT_CARE, | |

or FALSE, the application is asserting that any sequence of | |

functions might occur between Begin/End pairs. | |

If both VERTEX_CONSISTENT_HINT_PGI and VERTEX_DATA_HINT_PGI are | |

enabled, then GL further assumes that any functions indicated in | |

VERTEX_DATA_HINT_PGI will be called before each vertex call. When | |

a single bit in VERTEX_DATA_HINT_PGI indicates a group of possible | |

functions, GL assumes that at least one function from the group will | |

be called before each Vertex function between Begin/End pairs. | |

<target> = MAX_VERTEX_HINT_PGI | |

This hint indicates the maximum number of Vertex functions which | |

will occur between Begin/End pairs. If <mode> is FALSE then the | |

hint is "disabled" -- any number of Vertex functions might occur | |

between Begin/End pairs. However, if <mode> is any value greater | |

than 0, then the application is asserting that at most that number | |

of Vertex functions will occur between Begin/End pairs. In this | |

case, if the application exceeds the promised number of Vertex | |

calls, program termination may occur. Negative numbers also | |

disable the hint. | |

<target> = MATERIAL_SIDE_HINT_PGI | |

This hint indicates which <face> paramters will occur for any | |

Material functions called between Begin/End pairs. If <mode> | |

is any of FALSE, DONT_CARE, NICEST, then this hint is "disabled" -- | |

any <face> parameters might occur in Material functions called | |

between Begin/End pairs. If <mode> is FRONT, BACK, or | |

FRONT_AND_BACK, then only the given value will be used in | |

Material functions called between Begin/End pairs. If <mode> | |

is TRUE or FASTEST, then only a single (unspecified) <face> | |

parameter will be used in Material functions called between | |

Begin/End pairs. | |

Additions to Chapter 6 of the 1.0 Specification (State and State Requests) | |

None | |

Additions to the GLX Specification | |

None | |

GLX Protocol | |

None | |

Interactions with PGI_misc_hints | |

If the PGI_misc_hints extension is available, then the hints | |

described above can be used through the HintPGI client function. | |

If PGI_misc_hints is not avialable, then the hints above must | |

be used through the usual Hint function. | |

Errors | |

INVALID_VALUE is generated if <target> for Hint or HintPGI is | |

VERTEX_DATA_HINT_PGI and <mode> is not FALSE or some combination | |

of the bits xxx_BIT_PGI. Also, if <mode> does not contain | |

VERTEX23_BIT_PGI or VERTEX4_BIT_PGI (or both), then INVALID_VALUE | |

is generated. | |

INVALID_ENUM is generated if <target> for Hint or HintPGI is | |

VERTEX_CONSISTENT_HINT_PGI and <mode> is not FASTEST, NICEST, | |

DONT_CARE, TRUE, or FALSE | |

INVALID_VALUE is generated if <target> for Hint or HintPGI is | |

MAX_VERTEX_HINT_PGI and <mode> is a negative number. | |

INVALID_ENUM is generated if <target> for Hint or HintPGI is | |

MATERIAL_SIDE_HINT_PGI and <mode> is not FASTEST, NICEST, | |

DONT_CARE, TRUE, FALSE, FRONT, BACK, or FRONT_AND_BACK. | |

New State | |

Initial | |

Get Value Get Command Type Value Attrib | |

--------- ----------- ---- ------- ------ | |

VERTEX_DATA_HINT_PGI GetIntegerv Z FALSE | |

VERTEX_CONSISTENT_HINT_PGI GetIntegerv Z FALSE | |

MAX_VERTEX_HINT_PGI GetIntegerv Z FALSE | |

MATERIAL_SIDE_HINT_PGI GetIntegerv Z FALSE | |

New Implementation Dependent State | |

None |