… | |
… | |
309 | printf ("SDL_GL_MULTISAMPLESAMPLES: requested %d, got %d\n", fsaa, |
309 | printf ("SDL_GL_MULTISAMPLESAMPLES: requested %d, got %d\n", fsaa, |
310 | value); |
310 | value); |
311 | } |
311 | } |
312 | |
312 | |
313 | /* Set the window manager title bar */ |
313 | /* Set the window manager title bar */ |
314 | SDL_WM_SetCaption ("SDL GL test", "testgl"); |
314 | SDL_WM_SetCaption ("libgender rendering test", "gendertest"); |
315 | |
315 | |
316 | /* Set the gamma for the window */ |
316 | /* Set the gamma for the window */ |
317 | if (gamma != 0.0) |
317 | if (gamma != 0.0) |
318 | SDL_SetGamma (gamma, gamma, gamma); |
318 | SDL_SetGamma (gamma, gamma, gamma); |
319 | |
319 | |
|
|
320 | // load a entity |
|
|
321 | for (int i = 0; i < 7; i++) |
|
|
322 | { |
|
|
323 | txtprt_parser p; |
|
|
324 | entity_anim *f = new entity_anim; |
|
|
325 | entity *e; |
|
|
326 | try |
|
|
327 | { |
|
|
328 | e = p.read ("test.blasc"); |
|
|
329 | } catch (txtprt_i_exception & e) |
|
|
330 | { |
|
|
331 | cout << "ERR: " << e.msg << endl; |
|
|
332 | } |
|
|
333 | f->set (e); |
|
|
334 | f->m.translate (vec3 (i, -1, 0)); |
|
|
335 | f->vx = 0; |
|
|
336 | f->vy = 0; |
|
|
337 | f->vz = 0; |
|
|
338 | f->show (); |
|
|
339 | } |
|
|
340 | |
|
|
341 | camera.orig.x = camera.orig.y = camera.orig.z = 0; |
320 | camera.p = point (0, 0, 10); |
342 | camera.p = point (0, 0, 10); |
321 | camera.d = vec3 (0, 0, -1); |
343 | camera.d = vec3 (0, 0, -1); |
322 | camera.u = vec3 (0, 1, 0); |
344 | camera.u = vec3 (0, 1, 0); |
323 | camera.w = w; camera.h = h; |
345 | camera.w = w; camera.h = h; |
324 | camera.fov = 90; |
346 | camera.fov = 90; |
325 | |
347 | |
326 | glMatrixMode (GL_MODELVIEW); |
348 | glMatrixMode (GL_MODELVIEW); |
327 | glLoadIdentity (); |
349 | glLoadIdentity (); |
328 | |
350 | |
|
|
351 | glEnable (GL_CULL_FACE); |
329 | glEnable (GL_DEPTH_TEST); |
352 | glEnable (GL_DEPTH_TEST); |
330 | |
|
|
331 | glDepthFunc (GL_LESS); |
|
|
332 | |
|
|
333 | glShadeModel (GL_SMOOTH); |
353 | glShadeModel (GL_SMOOTH); |
334 | |
354 | |
335 | glEnable (GL_LIGHTING); |
355 | glEnable (GL_LIGHTING); |
336 | |
|
|
337 | //GLfloat lightc[4] = { 1, 0.1, 0.1, 1 }; |
356 | //GLfloat lightc[4] = { 1, 0.1, 0.1, 1 }; |
338 | //glLightf (GL_LIGHT0, GL_QUADRATIC_ATTENUATION); |
357 | //glLightf (GL_LIGHT0, GL_QUADRATIC_ATTENUATION); |
339 | //glLightfv (GL_LIGHT0, GL_DIFFUSE, lightc); |
358 | //glLightfv (GL_LIGHT0, GL_DIFFUSE, lightc); |
340 | glEnable (GL_LIGHT0); |
359 | glEnable (GL_LIGHT0); |
341 | glEnable (GL_COLOR_MATERIAL); |
|
|
342 | |
360 | |
343 | /* Loop until done. */ |
361 | /* Loop until done. */ |
344 | start_time = SDL_GetTicks (); |
362 | start_time = SDL_GetTicks (); |
345 | frames = 0; |
363 | frames = 0; |
|
|
364 | |
|
|
365 | draw_context c (camera); |
|
|
366 | |
346 | while (!done) |
367 | while (!done) |
347 | { |
368 | { |
348 | GLenum gl_error; |
369 | GLenum gl_error; |
349 | char *sdl_error; |
370 | char *sdl_error; |
350 | SDL_Event event; |
371 | SDL_Event event; |
… | |
… | |
360 | lightp[3] = 1; |
381 | lightp[3] = 1; |
361 | glLightfv (GL_LIGHT0, GL_POSITION, lightp); |
382 | glLightfv (GL_LIGHT0, GL_POSITION, lightp); |
362 | |
383 | |
363 | #if 0 |
384 | #if 0 |
364 | static GLfloat ry; |
385 | static GLfloat ry; |
365 | ry += 0.03; |
386 | ry += 0.001; |
366 | v.d.x = cos (ry); |
387 | camera.d.x = cos (ry); |
367 | v.d.z = sin (ry); |
388 | camera.d.z = sin (ry); |
|
|
389 | //camera.d.y = sin (ry * 0.1); |
368 | #endif |
390 | #endif |
369 | |
391 | |
370 | draw_context c; |
392 | c.mode = draw_context::DEPTH; |
|
|
393 | camera.draw (c); |
|
|
394 | c.drawn.clear (); |
371 | c.mode = draw_context::LIGHTED; |
395 | c.mode = draw_context::LIGHTED; |
372 | camera.draw (c); |
396 | camera.draw (c); |
373 | |
397 | |
374 | SDL_GL_SwapBuffers (); |
398 | SDL_GL_SwapBuffers (); |
|
|
399 | timer.frame (); |
375 | |
400 | |
376 | /* Check for error conditions. */ |
401 | /* Check for error conditions. */ |
377 | gl_error = glGetError (); |
402 | gl_error = glGetError (); |
378 | |
403 | |
379 | if (gl_error != GL_NO_ERROR) |
404 | if (gl_error != GL_NO_ERROR) |
… | |
… | |
431 | int slowly; |
456 | int slowly; |
432 | float gamma = 0.0; |
457 | float gamma = 0.0; |
433 | int noframe = 0; |
458 | int noframe = 0; |
434 | int fsaa = 0; |
459 | int fsaa = 0; |
435 | |
460 | |
436 | // load a entity |
|
|
437 | txtprt_parser p; |
|
|
438 | entity *e; |
|
|
439 | try { |
|
|
440 | e = p.read ("test.blasc"); |
|
|
441 | } catch (txtprt_i_exception & e) { |
|
|
442 | cout << "ERR: " << e.msg << endl; |
|
|
443 | } |
|
|
444 | e->show (); |
|
|
445 | |
|
|
446 | logo = 0; |
461 | logo = 0; |
447 | slowly = 0; |
462 | slowly = 0; |
448 | numtests = 1; |
463 | numtests = 1; |
449 | for (i = 1; argv[i]; ++i) |
464 | for (i = 1; argv[i]; ++i) |
450 | { |
465 | { |
… | |
… | |
478 | ("Usage: %s [-twice] [-logo] [-slow] [-bpp n] [-gamma n] [-noframe] [-fsaa]\n", |
493 | ("Usage: %s [-twice] [-logo] [-slow] [-bpp n] [-gamma n] [-noframe] [-fsaa]\n", |
479 | argv[0]); |
494 | argv[0]); |
480 | exit (0); |
495 | exit (0); |
481 | } |
496 | } |
482 | } |
497 | } |
|
|
498 | |
483 | for (i = 0; i < numtests; ++i) |
499 | for (i = 0; i < numtests; ++i) |
484 | { |
|
|
485 | RunGLTest (argc, argv, logo, slowly, bpp, gamma, noframe, fsaa); |
500 | RunGLTest (argc, argv, logo, slowly, bpp, gamma, noframe, fsaa); |
486 | } |
501 | |
487 | return 0; |
502 | return 0; |
488 | } |
503 | } |