Main.cpp
上传用户:sz83729876
上传日期:2013-03-07
资源大小:4140k
文件大小:2k
源码类别:

OpenGL

开发平台:

Windows_Unix

  1. //
  2. // a64ki
  3. // Copyright (c) 2002 Henrik Carlgren
  4. // http://ziruz.cjb.net
  5. // ziruz@hotpop.com
  6. //
  7. //
  8. // INCLUDE FILES
  9. //
  10. #include "system.h"
  11. #include "demo.h"
  12. #include "music.h"
  13. #include "config.h"
  14. #include <stdio.h>
  15. //
  16. // GLOBAL VARIABLES
  17. //
  18. FMUSIC_MODULE *musicModule;
  19. HINSTANCE applicationInstance;
  20. HWND windowHandle;
  21. HDC deviceContext;
  22. HGLRC renderContext;
  23. bool running = true;
  24. //
  25. // FUNCTION: WinMain
  26. //
  27. int WINAPI WinMain(HINSTANCE currentInstance, HINSTANCE otherInstance, LPSTR parameters, int show)
  28. {
  29. __int64 last, temp;
  30. long double timeScale, delta, time;
  31. applicationInstance = currentInstance;
  32. //
  33. // STARTUP
  34. //
  35. systemStartup();
  36. demoStartup();
  37. musicStartup();
  38. //
  39. // HPC
  40. //
  41. QueryPerformanceFrequency((LARGE_INTEGER *)&temp);
  42. timeScale = 1.0 / temp;
  43. //
  44. // GLOBAL OPENGL STATES
  45. //
  46. glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
  47. //
  48. // DEMO STUFF
  49. //
  50. #ifdef MUSIC
  51. FMUSIC_PlaySong(musicModule);
  52. #endif // MUSIC
  53. time = 0.0;
  54. QueryPerformanceCounter((LARGE_INTEGER *)&last);
  55. //
  56. // DEMO LOOP
  57. //
  58. while(running)
  59. {
  60. systemCycle(); // PROCESS ALL PENDING MESSAGES
  61. QueryPerformanceCounter((LARGE_INTEGER *)&temp);
  62. delta = (temp - last) * timeScale * 1000.0;
  63. QueryPerformanceCounter((LARGE_INTEGER *)&last);
  64. time += delta;
  65. demoCycle(time, delta); // DO SOME DEMO STUFF =)
  66. }
  67. //
  68. // CLEANUP
  69. //
  70. musicCleanup();
  71. demoCleanup();
  72. systemCleanup();
  73. //
  74. // THE END
  75. //
  76. return 0;
  77. }