• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1XXX - Not complete yet!!!
2
3Name
4
5    EXT_index_material
6
7Name Strings
8
9    GL_EXT_index_material
10
11Version
12
13    $Date: 1996/11/21 00:52:24 $ $Revision: 1.4 $
14
15Number
16
17    94
18
19Dependencies
20
21    None
22
23Overview
24
25    This extends color index lighting to include a way for the current
26    index to contribute to the color index produced by lighting.  This
27    works much like ColorMaterial does for RGBA lighting by allowing
28    one or more color index material properties to be attached to the
29    current index.
30
31    The color index lighting formula is also modified so that the lit
32    color index may be bitwise shifted in order to allow greater control
33    when using lighting and fog together in color index mode.
34
35New Procedures and Functions
36
37    void IndexMaterialEXT (enum face, enum mode )
38
39New Tokens
40
41    Accepted by the <cap> parameter of Enable, Disable, IsEnabled,
42    and by the <pname> parameter of GetBooleanv, GetIntegerv,
43    GetFloatv, and GetDoublev:
44
45        INDEX_MATERIAL_EXT
46
47    Accepted by the <pname> parameter of GetBooleanv, GetIntegerv,
48    GetFloatv, and GetDoublev:
49
50        INDEX_MATERIAL_PARAMETER_EXT
51        INDEX_MATERIAL_FACE_EXT
52
53Additions to Chapter 2 of the 1.1 Specification (OpenGL Operation)
54
55    In Section 2.13.5 "Color Index Lighting", the discussion of color
56    index lighting is continued after the computation of the final color
57    index as follows:
58
59    Arithmetic on Color Indexes
60
61    After a final color index is computed, the index is converted to a
62    fixed-point value with an unspecified number of bits to the right
63    of the binary point, the nearest fixed-point value is selected.
64    Then the fixed-point value is shifted by |index_shift| bits, left
65    if index_shift is > 0 and right otherwise.  In either case the
66    shift is zero filled.  Then the signed integer offset index_offset
67    is added to the index.  index_shift and index_offset are set using
68    the Material Command with <pname> set to INDEX_SHIFT and
69    INDEX_OFFSET respectively.
70
71    Index Material
72
73    It is possible to attach one or more color index material properties
74    to the current index, so that they continuously track its value.  This
75    behavior is enabled and disabled by calling Enable or Disable with
76    the symbolic constant INDEX_MATERIAL_EXT.  The command that controls
77    which of these modes is selected is
78
79        void IndexMaterial (enum face, enum mode);
80
81    <face> is one of FRONT, BACK, or FRONT_AND_BACK, indicating whether
82    the front material, back material, or both are affected by the current
83    index.  <mode> must be INDEX_OFFSET.  The replacements made to
84    material properties are permanent; the replaced values remain until
85    changed by either sending a new index or by setting a new material
86    value when IndexMaterial is not currently enabled to override that
87    particular value.  When INDEX_MATERIAL is enabled, the indicated
88    parameter or parameters always track the current index.
89
90    Section 2.13.6 "Clamping or Masking" is modified slightly as
91    follows: "For a color index, if lighting is enabled, the color index
92    is already in fixed-point, otherwise, the index is first converted
93    to fixed-point..."
94
95Additions to Chapter 3 of the 1.1 Specification (Rasterization)
96
97    None
98
99Additions to Chapter 4 of the 1.1 Specification (Per-Fragment Operations
100and the Frame Buffer)
101
102    None
103
104Additions to Chapter 5 of the 1.1 Specification (Special Functions)
105
106    None
107
108Additions to Chapter 6 of the 1.1 Specification (State and State Requests)
109
110    None
111
112Additions to the GLX Specification
113
114    XXX - Not complete yet!!!
115
116GLX Protocol
117
118    XXX - Not complete yet!!!
119
120Errors
121
122    INVALID_ENUM is generated if IndexMaterial parameter <face> is not FRONT,
123    BACK, or FRONT_AND_BACK.
124
125    INVALID_ENUM is generated if IndexMaterial parameter <mode> is not
126    INDEX_OFFSET.
127
128    INVALID_OPERATION is generated if IndexMaterial is called between
129    execution of Begin and the corresponding execution of End.
130
131New State
132
133                                                                Initial
134    Get Value                           Get Command     Type    Value                   Attrib
135    ---------                           -----------     ----    -------                 ------
136
137    INDEX_MATERIAL_EXT                  IsEnabled       B       False                   lighting/enable
138    INDEX_MATERIAL_PARAMETER_EXT        GetIntegerv     Z1      INDEX_OFFSET            lighting
139    INDEX_MATERIAL_FACE_EXT             GetIntegerv     Z3      FRONT_AND_BACK          lighting
140    INDEX_SHIFT                         GetMaterialfv   2 x R   0                       lighting
141    INDEX_OFFSET                        GetMaterialfv   2 x R   0                       lighting
142
143New Implementation Dependent State
144
145    None
146