… | |
… | |
28 | HotKey_ToggleFullScreen (void) |
28 | HotKey_ToggleFullScreen (void) |
29 | { |
29 | { |
30 | SDL_Surface *screen; |
30 | SDL_Surface *screen; |
31 | |
31 | |
32 | screen = SDL_GetVideoSurface (); |
32 | screen = SDL_GetVideoSurface (); |
|
|
33 | |
33 | if (SDL_WM_ToggleFullScreen (screen)) |
34 | if (SDL_WM_ToggleFullScreen (screen)) |
34 | printf ("Toggled fullscreen mode - now %s\n", |
35 | printf ("Toggled fullscreen mode - now %s\n", |
35 | (screen->flags & SDL_FULLSCREEN) ? "fullscreen" : "windowed"); |
36 | (screen->flags & SDL_FULLSCREEN) ? "fullscreen" : "windowed"); |
36 | else |
37 | else |
37 | printf ("Unable to toggle fullscreen mode\n"); |
38 | printf ("Unable to toggle fullscreen mode\n"); |
… | |
… | |
42 | { |
43 | { |
43 | SDL_GrabMode mode; |
44 | SDL_GrabMode mode; |
44 | |
45 | |
45 | printf ("Ctrl-G: toggling input grab!\n"); |
46 | printf ("Ctrl-G: toggling input grab!\n"); |
46 | mode = SDL_WM_GrabInput (SDL_GRAB_QUERY); |
47 | mode = SDL_WM_GrabInput (SDL_GRAB_QUERY); |
|
|
48 | |
47 | if (mode == SDL_GRAB_ON) |
49 | if (mode == SDL_GRAB_ON) |
48 | printf ("Grab was on\n"); |
50 | printf ("Grab was on\n"); |
49 | else |
51 | else |
50 | printf ("Grab was off\n"); |
52 | printf ("Grab was off\n"); |
51 | |
53 | |
52 | mode = SDL_WM_GrabInput (mode ? SDL_GRAB_OFF : SDL_GRAB_ON); |
54 | mode = SDL_WM_GrabInput (mode ? SDL_GRAB_OFF : SDL_GRAB_ON); |
|
|
55 | |
53 | if (mode == SDL_GRAB_ON) |
56 | if (mode == SDL_GRAB_ON) |
54 | printf ("Grab is now on\n"); |
57 | printf ("Grab is now on\n"); |
55 | else |
58 | else |
56 | printf ("Grab is now off\n"); |
59 | printf ("Grab is now off\n"); |
57 | } |
60 | } |
… | |
… | |
67 | HandleEvent (SDL_Event * event) |
70 | HandleEvent (SDL_Event * event) |
68 | { |
71 | { |
69 | int done; |
72 | int done; |
70 | |
73 | |
71 | done = 0; |
74 | done = 0; |
|
|
75 | |
72 | switch (event->type) |
76 | switch (event->type) |
73 | { |
77 | { |
74 | case SDL_ACTIVEEVENT: |
78 | case SDL_ACTIVEEVENT: |
75 | /* See what happened */ |
79 | /* See what happened */ |
76 | printf ("app %s ", event->active.gain ? "gained" : "lost"); |
80 | printf ("app %s ", event->active.gain ? "gained" : "lost"); |
… | |
… | |
337 | planet->show (); |
341 | planet->show (); |
338 | } |
342 | } |
339 | |
343 | |
340 | draw_floor (10, -500, -10, -1000); |
344 | draw_floor (10, -500, -10, -1000); |
341 | draw_level (); |
345 | draw_level (); |
|
|
346 | |
|
|
347 | |
|
|
348 | { |
|
|
349 | geometry_heightfield *hf = new geometry_heightfield; |
|
|
350 | geometry_transform *tr = new geometry_transform (hf); |
|
|
351 | tr->update (gl::matrix::scaling (10000., 10000., 10000.)); |
|
|
352 | entity *e = new entity (tr); |
|
|
353 | e->move (vec3 (-10000, -20, -10000)); |
|
|
354 | e->show (); |
|
|
355 | } |
|
|
356 | |
342 | //draw_test_nurb (); |
357 | //draw_test_nurb (); |
343 | #endif |
358 | #endif |
344 | |
359 | |
345 | //camera.orig.x = 108; camera.orig.y = 0; camera.orig.z = -368; |
360 | //camera.orig.x = 108; camera.orig.y = 0; camera.orig.z = -368; |
346 | camera.orig.x = 0; camera.orig.y = 0; camera.orig.z = 0; |
361 | camera.orig.x = 0; camera.orig.y = 0; camera.orig.z = 0; |
… | |
… | |
374 | camera.u = cross (camera.d, right); |
389 | camera.u = cross (camera.d, right); |
375 | |
390 | |
376 | camera.p = camera.p - camera.d * (camera_velocity_factor * timer.diff) * camera_velocity.z; |
391 | camera.p = camera.p - camera.d * (camera_velocity_factor * timer.diff) * camera_velocity.z; |
377 | camera.p = camera.p - camera.u * (camera_velocity_factor * timer.diff) * camera_velocity.y; |
392 | camera.p = camera.p - camera.u * (camera_velocity_factor * timer.diff) * camera_velocity.y; |
378 | |
393 | |
379 | test_mat.enable (camera); |
|
|
380 | |
394 | |
381 | camera.begin (); |
395 | camera.begin (); |
382 | camera.render (view::DEPTH); |
396 | camera.render (view::DEPTH); |
383 | camera.render (view::POSTDEPTH); |
397 | camera.render (view::POSTDEPTH); |
|
|
398 | test_mat.enable (camera); |
384 | camera.render (view::LIGHTED); |
399 | camera.render (view::LIGHTED); |
385 | camera.end (); |
400 | camera.end (); |
386 | |
401 | |
387 | SDL_GL_SwapBuffers (); |
402 | SDL_GL_SwapBuffers (); |
388 | timer.frame (); |
403 | timer.frame (); |
… | |
… | |
409 | |
424 | |
410 | /* Check if there's a pending event. */ |
425 | /* Check if there's a pending event. */ |
411 | while (SDL_PollEvent (&event)) |
426 | while (SDL_PollEvent (&event)) |
412 | done = HandleEvent (&event); |
427 | done = HandleEvent (&event); |
413 | |
428 | |
414 | |
|
|
415 | ++frames; |
429 | ++frames; |
416 | } |
430 | } |
417 | |
431 | |
418 | if (global_image) |
432 | if (global_image) |
419 | { |
433 | { |
420 | SDL_FreeSurface (global_image); |
434 | SDL_FreeSurface (global_image); |
421 | global_image = NULL; |
435 | global_image = NULL; |
422 | } |
436 | } |
|
|
437 | |
423 | if (global_texture) |
438 | if (global_texture) |
424 | { |
439 | { |
425 | glDeleteTextures (1, &global_texture); |
440 | glDeleteTextures (1, &global_texture); |
426 | global_texture = 0; |
441 | global_texture = 0; |
427 | } |
442 | } |