main.cpp
上传用户:gzqinmao
上传日期:2022-07-13
资源大小:472k
文件大小:2k
源码类别:

OpenGL

开发平台:

Visual C++

  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include "Gut.h"
  4. #include "render_dx9.h"
  5. #include "render_dx10.h"
  6. #include "render_opengl.h"
  7. void main(int argc, char *argv[])
  8. {
  9. // 默认使用DirectX 9来绘图
  10. char *device = "dx9";
  11. void (*render)(void) = RenderFrameDX9;
  12. bool (*init_resource)(void) = InitResourceDX9;
  13. bool (*release_resource)(void) = ReleaseResourceDX9;
  14. #ifdef _ENABLE_DX10_
  15. printf("Pressn(1) for Direct3D9n(2) for OpenGLn(3) for Direct3D10n");
  16. #else
  17. printf("Pressn(1) for Direct3D9n(2) for OpenGLn");
  18. #endif
  19. int c = getche();
  20. switch(c)
  21. {
  22. default:
  23. case '1':
  24. render = RenderFrameDX9;
  25. init_resource = InitResourceDX9;
  26. release_resource = ReleaseResourceDX9;
  27. break;
  28. case '2':
  29. device = "opengl";
  30. init_resource = InitResourceOpenGL;
  31. release_resource = ReleaseResourceOpenGL;
  32. render = RenderFrameOpenGL;
  33. break;
  34. case '3':
  35. #ifdef _ENABLE_DX10_
  36. device = "dx10";
  37. init_resource = InitResourceDX10;
  38. release_resource = ReleaseResourceDX10;
  39. render = RenderFrameDX10;
  40. #endif
  41. break;
  42. }
  43. // 在(100,100)的位置打开一个大小为(512x512)的窗口
  44. GutCreateWindow(100, 100, 512, 512, device);
  45. // 做OpenGL或DirectX初始化
  46. if ( !GutInitGraphicsDevice(device) )
  47. {
  48. printf("Failed to initialize %s devicen", device);
  49. exit(0);
  50. }
  51. // 载入shader
  52. if ( !init_resource() )
  53. {
  54. release_resource();
  55. printf("Failed to load resourcesn");
  56. exit(0);
  57. }
  58. // 主循环
  59. while( GutProcessMessage() )
  60. {
  61. render();
  62. }
  63. // 释放shader
  64. release_resource();
  65. // 关闭OpenGL/DirectX绘图设备
  66. GutReleaseGraphicsDevice();
  67. }