opengl.cpp
上传用户:yunyi28
上传日期:2021-04-25
资源大小:6978k
文件大小:1k
源码类别:

分形几何

开发平台:

Visual C++

  1. #include "opengl.h"
  2. #include "math.h"
  3. HGLRC hRC=NULL;
  4. HWND hwd=NULL;
  5. opengl::opengl(void)
  6. {
  7. }
  8. opengl::~opengl(void)
  9. {
  10. }
  11. BOOL opengl::SetupPixelFormat(HDC hDC)
  12. {
  13. int nPixelFormat;
  14. PIXELFORMATDESCRIPTOR pfd={sizeof(PIXELFORMATDESCRIPTOR),1,PFD_DRAW_TO_WINDOW|PFD_SUPPORT_OPENGL|PFD_DOUBLEBUFFER,PFD_TYPE_RGBA,16,0,0,0,0,0,0,
  15. 0,0,0,
  16. 0,0,0,0,32,1,0,PFD_MAIN_PLANE,0,0,0,0};
  17. if(!(nPixelFormat=ChoosePixelFormat(hDC,&pfd)))
  18. {
  19. MessageBox(NULL,"找不到","Error",MB_OK|MB_ICONEXCLAMATION);
  20. return FALSE;
  21. }
  22. SetPixelFormat(hDC,nPixelFormat,&pfd);
  23. hRC=wglCreateContext(hDC);
  24. wglMakeCurrent(hDC,hRC);
  25. return true;
  26. }
  27. void opengl::init(HWND hwnd,int Width,int Height)
  28. {
  29. hwd = hwnd;
  30. glViewport(0,0,Width,Height);
  31. glMatrixMode(GL_PROJECTION);
  32. glLoadIdentity();
  33. gluPerspective(45.0f,(float)Width/Height,1.0f,500.0f);
  34. glMatrixMode(GL_MODELVIEW);
  35. glLoadIdentity();
  36. }
  37. void opengl::CleanUp()
  38. {
  39. wglMakeCurrent(hDC,NULL);
  40. wglDeleteContext(hRC);
  41. }
  42. void opengl::Render()
  43. {
  44. // for(int r=0;r<=360;r++)
  45. // {
  46. // glClearColor(0.0f,0.0f,0.0f,0.0f);
  47. // glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
  48. // glLoadIdentity();
  49. ///
  50. // m_bsipic.airplane(0,8,-50,r);
  51. ///
  52. //
  53. // }
  54. // m_bsipic.TriAndQuad_3D();
  55. // m_bsipic.Pbmp();
  56. // m_bsipic.StencilQuads();
  57. m_bsipic.Trees();
  58. // m_bsipic.IsPlane();
  59. glFlush();
  60. SwapBuffers(hDC);
  61. }
  62.  
  63. void opengl::ClearUI()
  64. {
  65. //glutCreateSubWindow((int)hwd, 0, 0, 200, 200);
  66. }
  67.