sdlut.h
上传用户:lijia5631
上传日期:2008-11-10
资源大小:1214k
文件大小:3k
源码类别:

视频捕捉/采集

开发平台:

MultiPlatform

  1. #ifndef __SDLUT_H__
  2. #define __SDLUT_H__
  3. #include <SDL/SDL.h>
  4. #include <stdio.h>
  5. #ifdef __cplusplus
  6. extern "C" {
  7. #endif
  8. /*
  9.  * GLUT-like interface to SDL, cause GLUT is nice, but SDL is better.
  10.  * Check http://www.libsdl.org/ for shitty documentation. --sjd
  11.  */
  12. #if 0
  13. /* flags to sdlutInit */
  14. #define SDLUT_GRAB 0x01 /* grab all mouse / key events */
  15. #define SDLUT_REPEAT 0x02 /* enable key-repeating */
  16. #endif
  17. /* flags to sdlutInitDisplayMode */
  18. #define SDLUT_DOUBLE 0x01 /* request double-buffering */
  19. #define SDLUT_RGB 0x02 /* request RGB */
  20. #define SDLUT_DEPTH 0x04 /* request depth-buffering */
  21. #define SDLUT_STENCIL 0x08 /* request stencil-buffering */
  22. #define SDLUT_ALPHA 0x10 /* request alpha channel */
  23. #define SDLUT_FSAA 0x20 /* full screen anti aliasing */
  24. #define SDLUT_RGBA 0x12 /* request four channels */
  25. /* flags to sdlutCreateWindow */
  26. #define SDLUT_FULLSCREEN SDL_FULLSCREEN /* request full-screen mode */
  27. /* must be called first!  initializes SDL */
  28. void sdlutInit ();
  29. /* call with flags to set the appropriate OpenGL attributes */
  30. void sdlutInitDisplayMode (int flags);
  31. /* creates the SDL window - only one allowed! */
  32. void sdlutCreateWindow (const char* title, int width, int height, 
  33.                         int bpp, int flags);
  34. /* destroys the window and the SDL instance */
  35. void sdlutDestroyWindow ();
  36. /* register callbacks that take SDL-style events */
  37. void sdlutActiveFunc   (void (*func)(SDL_ActiveEvent* activeEvent));
  38. void sdlutDisplayFunc  (void (*func)(void));
  39. void sdlutIdleFunc     (void (*func)(void));
  40. void sdlutKeyboardFunc (void (*func)(SDL_KeyboardEvent* keyEvent));
  41. void sdlutMotionFunc   (void (*func)(SDL_MouseMotionEvent* mouseMotionEvent));
  42. void sdlutMouseFunc    (void (*func)(SDL_MouseButtonEvent* mouseButtonEvent));
  43. void sdlutResizeFunc   (void (*func)(SDL_ResizeEvent* resizeEvent));
  44. /* register callbacks that take GLUT-style events */
  45. void sdlutGlutDisplayFunc  (void (*func)(void));
  46. void sdlutGlutIdleFunc     (void (*func)(void));
  47. void sdlutGlutKeyboardFunc (void (*func)(unsigned char key, int x, int y));
  48. void sdlutGlutMouseFunc    (void (*func)(int button, int state, int x, int y));
  49. void sdlutGlutMotionFunc   (void (*func)(int x, int y));
  50. void sdlutGlutReshapeFunc  (void (*func)(int w, int h));
  51. /* after init and registration, enter the main loop to handle events.  
  52.    returns when a quit event is generated */
  53. void sdlutMainLoop ();
  54. /* used like glutPostRedisplay, to signal the screen needs refreshing */
  55. void sdlutPostRedisplay ();
  56. /* when double-buffering, swaps front and back buffers */
  57. void sdlutSwapBuffers ();
  58. /* hack way to shift an ascii keycode, since SDL doesn't. bah. */
  59. unsigned char sdlutShiftASCII (unsigned char c);
  60. /* ticks since last called (0 for first call) */
  61. unsigned int sdlutGetElapsed ();
  62. #ifdef __cplusplus
  63. }
  64. #endif
  65. #endif /* __SDLUT_H__ */