|
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