3 * Daniel Nelson - 9/1/0
5 * Copyright (C) 2000 Daniel Nelson
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version 2
10 * of the License, or (at your option) any later version.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
21 * Daniel Nelson - aluminumangel.org
25 * Generates a display list for the cap of thin garbage.
33 #include "Displayer.h"
35 GLuint
Displayer::garbage_thin_cap_list
;
37 void Displayer::generateGarbageThinCapList ( )
39 garbage_thin_cap_list
= glGenLists(1);
41 glEnableClientState(GL_VERTEX_ARRAY
);
42 glEnableClientState(GL_NORMAL_ARRAY
);
43 glEnableClientState(GL_TEXTURE_COORD_ARRAY
);
45 glNewList(garbage_thin_cap_list
, GL_COMPILE
);
47 GLfloat vertices_0
[3 * 18] = {
68 GLfloat vertices_1
[3 * 8] = {
79 GLfloat vertices_2
[3 * 8] = {
90 GLfloat vertices_3
[3 * 4] = {
97 GLfloat normals_0
[3 * 18] = {
118 GLfloat normals_1
[3 * 8] = {
129 GLfloat normals_2
[3 * 8] = {
140 GLfloat normals_3
[3 * 4] = {
147 GLfloat tex_coords_0
[3 * 18];
148 for (int n
= 3 * 18; n
--; )
149 tex_coords_0
[n
] = vertices_0
[n
] * DC_GARBAGE_LIGHTMAP_COORD_CONVERTER
;
151 GLfloat tex_coords_1
[3 * 8];
152 for (int n
= 3 * 8; n
--; )
153 tex_coords_1
[n
] = vertices_1
[n
] * DC_GARBAGE_LIGHTMAP_COORD_CONVERTER
;
155 GLfloat tex_coords_2
[3 * 8];
156 for (int n
= 3 * 8; n
--; )
157 tex_coords_2
[n
] = vertices_2
[n
] * DC_GARBAGE_LIGHTMAP_COORD_CONVERTER
;
159 GLfloat tex_coords_3
[3 * 4];
160 for (int n
= 3 * 4; n
--; )
161 tex_coords_3
[n
] = vertices_3
[n
] * DC_GARBAGE_LIGHTMAP_COORD_CONVERTER
;
163 glVertexPointer(3, GL_FLOAT
, 0, vertices_0
);
164 glNormalPointer(GL_FLOAT
, 0, normals_0
);
165 glTexCoordPointer(3, GL_FLOAT
, 0, tex_coords_0
);
166 glDrawArrays(GL_TRIANGLE_STRIP
, 0, 18);
168 glVertexPointer(3, GL_FLOAT
, 0, vertices_1
);
169 glNormalPointer(GL_FLOAT
, 0, normals_1
);
170 glTexCoordPointer(3, GL_FLOAT
, 0, tex_coords_1
);
171 glDrawArrays(GL_TRIANGLE_STRIP
, 0, 8);
173 glVertexPointer(3, GL_FLOAT
, 0, vertices_2
);
174 glNormalPointer(GL_FLOAT
, 0, normals_2
);
175 glTexCoordPointer(3, GL_FLOAT
, 0, tex_coords_2
);
176 glDrawArrays(GL_TRIANGLE_STRIP
, 0, 8);
178 glVertexPointer(3, GL_FLOAT
, 0, vertices_3
);
179 glNormalPointer(GL_FLOAT
, 0, normals_3
);
180 glTexCoordPointer(3, GL_FLOAT
, 0, tex_coords_3
);
181 glDrawArrays(GL_TRIANGLE_STRIP
, 0, 4);
185 glDisableClientState(GL_VERTEX_ARRAY
);
186 glDisableClientState(GL_NORMAL_ARRAY
);
187 glDisableClientState(GL_TEXTURE_COORD_ARRAY
);