GLuint _s_t_a_r_t, GLuint _e_n_d, GLsizei _c_o_u_n_t, GLenum _t_y_p_e, const GLvoid _*_i_n_d_i_c_e_s )
delim $$
Implementations denote recommended maximum amounts of vertex and
index data,
which may be queried by calling ggllGGeett with argument
GGLL__MMAAXX__EELLEEMMEENNTTSS__VVEERRTTIICCEESS and GGLL__MMAAXX__EELLEEMMEENNTTSS__IINNDDIICCEESS.
If $"end" ~-~ "start" ~+~ 1$ is greater than the value of
GGLL__MMAAXX__EELLEEMMEENNTTSS__VVEERRTTIICCEESS, or if _c_o_u_n_t is greater than the value of
GGLL__MMAAXX__EELLEEMMEENNTTSS__IINNDDIICCEESS, then the call may operate at reduced
performance. There is no requirement that all vertices in the range
[_s_t_a_r_t, _e_n_d] be referenced. However, the implementation may
partially process unused vertices, reducing performance from what could
be achieved with an optimal index set.
When ggllDDrraawwRRaannggeeEElleemmeennttss is called, it uses _s_t_a_r_t sequential elements from an enabled array, starting at _c_o_u_n_t to construct a sequence of geometric primitives. _m_o_d_e specifies what kind of primitives are constructed, and how the array elements construct these primitives. If more than one array is enabled, each is used. If GGLL__VVEERRTTEEXX__AARRRRAAYY is not enabled, no geometric primitives are constructed.
Vertex attributes that are modified by ggllDDrraawwRRaannggeeEElleemmeennttss have an unspecified value after ggllDDrraawwRRaannggeeEElleemmeennttss returns. For example, if GGLL__CCOOLLOORR__AARRRRAAYY is enabled, the value of the current color is undefined after ggllDDrraawwRRaannggeeEElleemmeennttss executes. Attributes that aren't modified maintain their previous values.
ggllDDrraawwRRaannggeeEElleemmeennttss is included in display lists. If ggllDDrraawwRRaannggeeEElleemmeennttss is entered into a display list, the necessary array data (determined by the array pointers and enables) is also entered into the display list. Because the array pointers and enables are client-side state, their values affect display lists when the lists are created, not when the lists are executed.
GGLL__IINNVVAALLIIDD__EENNUUMM is generated if _m_o_d_e is not an accepted value.
GGLL__IINNVVAALLIIDD__VVAALLUUEE is generated if _c_o_u_n_t is negative.
GGLL__IINNVVAALLIIDD__VVAALLUUEE is generated if _e_n_d $<$ _s_t_a_r_t.
GGLL__IINNVVAALLIIDD__OOPPEERRAATTIIOONN is generated if ggllDDrraawwRRaannggeeEElleemmeennttss is executed between the execution of ggllBBeeggiinn and the corresponding ggllEEnndd.
ggllGGeett with argument GGLL__MMAAXX__EELLEEMMEENNTTSS__IINNDDIICCEESS