glui_internal_control.h
上传用户:gb3593
上传日期:2022-01-07
资源大小:3028k
文件大小:1k
源码类别:

游戏引擎

开发平台:

Visual C++

  1. /*
  2.  Header file for use by GLUI controls.  
  3.  Everything you need is right here.
  4. */
  5. #ifndef __GLUI_INTERNAL_CONTROL_H
  6. #define __GLUI_INTERNAL_CONTROL_H
  7. /* This is the main GLUI external header */
  8. #include "GL/glui.h"
  9. /* Here's some utility routines */
  10. #include "glui_internal.h"
  11. /**
  12.   A GLUI_Control-drawing sentinal object.
  13.   On creation, saves the current draw buffer and window.
  14.   On destruction, restores draw buffer and window.
  15.   This is way nicer than calling save/restore manually.
  16. */
  17. class GLUI_DrawingSentinal {
  18. int orig_buf, orig_win;
  19. GLUI_Control *c;
  20. public:
  21. /** The constructor sets up the drawing system */
  22. GLUI_DrawingSentinal(GLUI_Control *c_);
  23. /** The destructor cleans up drawing back how it was */
  24. ~GLUI_DrawingSentinal();
  25. // Do-nothing routine to avoid compiler warning about unused variable
  26. inline void avoid_warning(void) {}
  27. };
  28. /** Just drop a GLUI_DRAWINGSENTINAL_IDIOM at the start of your draw methods,
  29. and they'll return if we can't be drawn, and 
  30. automatically save and restore all needed state. 
  31. */
  32. #define GLUI_DRAWINGSENTINAL_IDIOM  if (NOT can_draw()) return; GLUI_DrawingSentinal drawSentinal(this); drawSentinal.avoid_warning();
  33. /** Return the time, in seconds. */
  34. inline double GLUI_Time(void) {return 0.001*glutGet(GLUT_ELAPSED_TIME);}
  35. #endif