|
129 | 129 | -1.0, -1.3, -1.0,
|
130 | 130 | 1.0, -1.3, -1.0,
|
131 | 131 | 1.0, -1.3, 1.0,
|
| 132 | + 1.0, -1.3, 1.0, |
132 | 133 | -1.0, -1.3, 1.0,
|
| 134 | + -1.0, -1.3, -1.0, |
133 | 135 |
|
134 | 136 | -1.0, 1.3, -1.0,
|
135 | 137 | -1.0, 1.3, 1.0,
|
136 | 138 | 1.0, 1.3, 1.0,
|
| 139 | + 1.0, 1.3, 1.0, |
137 | 140 | 1.0, 1.3, -1.0,
|
| 141 | + -1.0, 1.3, -1.0, |
138 | 142 |
|
139 | 143 | -1.0, -1.0, -1.3,
|
140 | 144 | -1.0, 1.0, -1.3,
|
141 | 145 | 1.0, 1.0, -1.3,
|
| 146 | + 1.0, 1.0, -1.3, |
142 | 147 | 1.0, -1.0, -1.3,
|
| 148 | + -1.0, -1.0, -1.3, |
143 | 149 |
|
144 | 150 | 1.3, -1.0, -1.0,
|
145 | 151 | 1.3, 1.0, -1.0,
|
146 | 152 | 1.3, 1.0, 1.0,
|
| 153 | + 1.3, 1.0, 1.0, |
147 | 154 | 1.3, -1.0, 1.0,
|
| 155 | + 1.3, -1.0, -1.0, |
148 | 156 |
|
149 | 157 | -1.0, -1.0, 1.3,
|
150 | 158 | 1.0, -1.0, 1.3,
|
151 | 159 | 1.0, 1.0, 1.3,
|
| 160 | + 1.0, 1.0, 1.3, |
152 | 161 | -1.0, 1.0, 1.3,
|
| 162 | + -1.0, -1.0, 1.3, |
153 | 163 |
|
154 | 164 | -1.3, -1.0, -1.0,
|
155 | 165 | -1.3, -1.0, 1.0,
|
156 | 166 | -1.3, 1.0, 1.0,
|
157 |
| - -1.3, 1.0, -1.0 |
| 167 | + -1.3, 1.0, 1.0, |
| 168 | + -1.3, 1.0, -1.0, |
| 169 | + -1.3, -1.0, -1.0, |
158 | 170 | );
|
159 | 171 | my $verts = OpenGL::Array->new_list(GL_FLOAT,@verts);
|
160 | 172 |
|
161 | 173 | # Could calc norms on the fly
|
162 | 174 | my @norms =
|
163 | 175 | (
|
| 176 | + 0.0, -1.0, 0.0, |
164 | 177 | 0.0, -1.0, 0.0,
|
165 | 178 | 0.0, 1.0, 0.0,
|
| 179 | + 0.0, 1.0, 0.0, |
| 180 | + 0.0, 0.0,-1.0, |
166 | 181 | 0.0, 0.0,-1.0,
|
167 | 182 | 1.0, 0.0, 0.0,
|
| 183 | + 1.0, 0.0, 0.0, |
168 | 184 | 0.0, 0.0, 1.0,
|
169 |
| - -1.0, 0.0, 0.0 |
| 185 | + 0.0, 0.0, 1.0, |
| 186 | + -1.0, 0.0, 0.0, |
| 187 | + -1.0, 0.0, 0.0, |
170 | 188 | );
|
171 | 189 | my $norms = OpenGL::Array->new_list(GL_FLOAT,@norms);
|
172 | 190 |
|
|
176 | 194 | 0.9,0.2,0.2,.75,
|
177 | 195 | 0.9,0.2,0.2,.75,
|
178 | 196 | 0.9,0.2,0.2,.75,
|
| 197 | + 0.9,0.2,0.2,.75, |
| 198 | + 0.9,0.2,0.2,.75, |
179 | 199 |
|
180 | 200 | 0.5,0.5,0.5,.5,
|
181 | 201 | 0.5,0.5,0.5,.5,
|
182 | 202 | 0.5,0.5,0.5,.5,
|
183 | 203 | 0.5,0.5,0.5,.5,
|
| 204 | + 0.5,0.5,0.5,.5, |
| 205 | + 0.5,0.5,0.5,.5, |
184 | 206 |
|
185 | 207 | 0.2,0.9,0.2,.5,
|
186 | 208 | 0.2,0.9,0.2,.5,
|
187 | 209 | 0.2,0.9,0.2,.5,
|
188 | 210 | 0.2,0.9,0.2,.5,
|
| 211 | + 0.2,0.9,0.2,.5, |
| 212 | + 0.2,0.9,0.2,.5, |
189 | 213 |
|
190 | 214 | 0.2,0.2,0.9,.25,
|
191 | 215 | 0.2,0.2,0.9,.25,
|
192 | 216 | 0.2,0.2,0.9,.25,
|
193 | 217 | 0.2,0.2,0.9,.25,
|
| 218 | + 0.2,0.2,0.9,.25, |
| 219 | + 0.2,0.2,0.9,.25, |
194 | 220 |
|
195 | 221 | 0.9, 0.2, 0.2, 0.5,
|
196 | 222 | 0.2, 0.9, 0.2, 0.5,
|
197 | 223 | 0.2, 0.2, 0.9, 0.5,
|
| 224 | + 0.2, 0.2, 0.9, 0.5, |
198 | 225 | 0.1, 0.1, 0.1, 0.5,
|
| 226 | + 0.9, 0.2, 0.2, 0.5, |
199 | 227 |
|
200 | 228 | 0.9,0.9,0.2,0.0,
|
201 | 229 | 0.9,0.9,0.2,0.66,
|
202 | 230 | 0.9,0.9,0.2,1.0,
|
203 |
| - 0.9,0.9,0.2,0.33 |
| 231 | + 0.9,0.9,0.2,1.0, |
| 232 | + 0.9,0.9,0.2,0.33, |
| 233 | + 0.9,0.9,0.2,0.0, |
204 | 234 | );
|
205 | 235 | my $colors = OpenGL::Array->new_list(GL_FLOAT,@colors);
|
206 | 236 |
|
|
209 | 239 | 0.9, 0.2, 0.2, 0.5,
|
210 | 240 | 0.2, 0.9, 0.2, 0.5,
|
211 | 241 | 0.2, 0.2, 0.9, 0.5,
|
212 |
| - 0.1, 0.1, 0.1, 0.5 |
| 242 | + 0.2, 0.2, 0.9, 0.5, |
| 243 | + 0.1, 0.1, 0.1, 0.5, |
| 244 | + 0.9, 0.2, 0.2, 0.5, |
213 | 245 | );
|
214 |
| - |
215 | 246 | my $rainbow = OpenGL::Array->new_list(GL_FLOAT,@rainbow);
|
216 |
| -my $rainbow_offset = 64; |
| 247 | +my $rainbow_offset = 96; |
217 | 248 | my @rainbow_inc;
|
218 | 249 |
|
219 | 250 | my @texcoords =
|
220 | 251 | (
|
221 | 252 | 0.800, 0.800,
|
222 | 253 | 0.200, 0.800,
|
223 | 254 | 0.200, 0.200,
|
| 255 | + 0.200, 0.200, |
224 | 256 | 0.800, 0.200,
|
| 257 | + 0.800, 0.800, |
225 | 258 |
|
226 | 259 | 0.005, 1.995,
|
227 | 260 | 0.005, 0.005,
|
228 | 261 | 1.995, 0.005,
|
| 262 | + 1.995, 0.005, |
229 | 263 | 1.995, 1.995,
|
| 264 | + 0.005, 1.995, |
230 | 265 |
|
231 | 266 | 0.995, 0.005,
|
232 | 267 | 2.995, 2.995,
|
233 | 268 | 0.005, 0.995,
|
| 269 | + 0.005, 0.995, |
234 | 270 | -1.995, -1.995,
|
| 271 | + 0.995, 0.005, |
235 | 272 |
|
236 | 273 | 0.995, 0.005,
|
237 | 274 | 0.995, 0.995,
|
238 | 275 | 0.005, 0.995,
|
| 276 | + 0.005, 0.995, |
239 | 277 | 0.005, 0.005,
|
| 278 | + 0.995, 0.005, |
240 | 279 |
|
241 | 280 | -0.5, -0.5,
|
242 | 281 | 1.5, -0.5,
|
243 | 282 | 1.5, 1.5,
|
| 283 | + 1.5, 1.5, |
244 | 284 | -0.5, 1.5,
|
| 285 | + -0.5, -0.5, |
245 | 286 |
|
246 | 287 | 0.005, 0.005,
|
247 | 288 | 0.995, 0.005,
|
248 | 289 | 0.995, 0.995,
|
249 |
| - 0.005, 0.995 |
| 290 | + 0.995, 0.995, |
| 291 | + 0.005, 0.995, |
| 292 | + 0.005, 0.005, |
250 | 293 | );
|
251 | 294 | my $texcoords = OpenGL::Array->new_list(GL_FLOAT,@texcoords);
|
252 | 295 |
|
253 |
| -my @indices = (0..23); |
| 296 | +my @indices = (0..35); |
254 | 297 | my $indices = OpenGL::Array->new_list(GL_UNSIGNED_INT,@indices);
|
255 | 298 |
|
256 | 299 | my @xform =
|
257 | 300 | (
|
258 | 301 | 1.0, 0.0, 0.0, 0.0,
|
259 | 302 | 0.0, 1.0, 0.0, 0.0,
|
260 | 303 | 0.0, 0.0, 1.0, 0.0,
|
261 |
| - 0.0, 0.0, 0.0, 1.0 |
| 304 | + 0.0, 0.0, 0.0, 1.0, |
262 | 305 | );
|
263 | 306 | my $xform = OpenGL::Array->new_list(GL_FLOAT,@xform);
|
264 | 307 |
|
265 | 308 | my @fpsbox_coords = (
|
266 | 309 | 0.0, -2.0, 0.0,
|
267 | 310 | 0.0, 12.0, 0.0,
|
268 | 311 | 140.0, 12.0, 0.0,
|
| 312 | + 140.0, 12.0, 0.0, |
269 | 313 | 140.0, -2.0, 0.0,
|
| 314 | + 0.0, -2.0, 0.0, |
270 | 315 | );
|
271 | 316 |
|
272 | 317 | # ------
|
@@ -314,11 +359,12 @@ sub ourPrintString
|
314 | 359 | sub ourInitVertexBuffers
|
315 | 360 | {
|
316 | 361 | # Set initial colors for rainbow face
|
317 |
| - for (my $i=0; $i<16; $i++) |
318 |
| - { |
319 |
| - $rainbow[$i] = rand(1.0); |
320 |
| - $rainbow_inc[$i] = 0.01 - rand(0.02); |
321 |
| - } |
| 362 | + @rainbow = map [map rand(1.0), 0..3], 0..3; |
| 363 | + @rainbow = @rainbow[0,1,2,2,3,0]; |
| 364 | + @rainbow = map @$_, @rainbow; |
| 365 | + @rainbow_inc = map [map 0.01 - rand(0.02), 0..3], 0..3; |
| 366 | + @rainbow_inc = @rainbow_inc[0,1,2,2,3,0]; |
| 367 | + @rainbow_inc = map @$_, @rainbow_inc; |
322 | 368 |
|
323 | 369 | # Initialize VBOs if supported
|
324 | 370 | if ($hasVBO)
|
@@ -860,9 +906,9 @@ sub cbRenderScene
|
860 | 906 | glEnableClientState(GL_COLOR_ARRAY);
|
861 | 907 | glEnableClientState(GL_TEXTURE_COORD_ARRAY);
|
862 | 908 |
|
863 |
| - for (my $i=0; $i<scalar(@indices); $i+=4) |
| 909 | + for (my $i=0; $i<scalar(@indices); $i+=3) |
864 | 910 | {
|
865 |
| - glDrawArrays(GL_QUADS, $i, 4); |
| 911 | + glDrawArrays(GL_TRIANGLES, $i, 3); |
866 | 912 | }
|
867 | 913 |
|
868 | 914 | glDisableClientState(GL_TEXTURE_COORD_ARRAY);
|
@@ -928,7 +974,7 @@ sub cbRenderScene
|
928 | 974 | # Make sure we can read the FPS section by first placing a
|
929 | 975 | # dark, mostly opaque backdrop rectangle.
|
930 | 976 | glColor4f(0.2,0.2,0.2,0.75);
|
931 |
| - glBegin(GL_QUADS); |
| 977 | + glBegin(GL_TRIANGLES); |
932 | 978 | for (my $i=0; $i<scalar(@fpsbox_coords); $i+=3) {
|
933 | 979 | glVertex3f(@fpsbox_coords[$i..$i+2]);
|
934 | 980 | }
|
|
0 commit comments