home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / detk45he.zip / gl / tk.h < prev   
C/C++ Source or Header  |  1999-05-11  |  6KB  |  247 lines

  1. #include <GL/gl.h>
  2. #include <GL/pgl.h>
  3. #include <GL/glu.h>
  4.  
  5. /*
  6. ** Nano Window Toolkit.
  7. */
  8.  
  9. /*
  10. ** Window Types
  11. */
  12.  
  13. #define PM_ESCAPE    0x0f
  14. #define PM_LEFT        0x15
  15. #define PM_UP        0x16
  16. #define PM_RIGHT    0x17
  17. #define PM_DOWN        0x18
  18.  
  19. #define TK_RGB        0
  20. #define TK_INDEX    1
  21. #define TK_SINGLE    0
  22. #define TK_DOUBLE    2
  23. #define TK_DIRECT    0
  24. #define TK_INDIRECT    4
  25. #define TK_ACCUM    8
  26. #define TK_ALPHA    16
  27. #define TK_DEPTH    32
  28. #define TK_OVERLAY    64
  29. #define TK_UNDERLAY    128
  30. #define TK_STENCIL    512
  31.  
  32. /*
  33. ** Display Mode Selection Criteria
  34. */
  35.  
  36. enum {
  37.     TK_USE_ID = 1,
  38.     TK_EXACT_MATCH,
  39.     TK_MINIMUM_CRITERIA
  40. };
  41.  
  42. /* 
  43. ** Window Masks
  44. */
  45.  
  46. #define TK_IS_RGB(x)        (((x) & TK_INDEX) == 0)
  47. #define TK_IS_INDEX(x)        (((x) & TK_INDEX) != 0)
  48. #define TK_IS_SINGLE(x)        (((x) & TK_DOUBLE) == 0)
  49. #define TK_IS_DOUBLE(x)        (((x) & TK_DOUBLE) != 0)
  50. #define TK_IS_DIRECT(x)        (((x) & TK_INDIRECT) == 0)
  51. #define TK_IS_INDIRECT(x)    (((x) & TK_INDIRECT) != 0)
  52. #define TK_HAS_ACCUM(x)        (((x) & TK_ACCUM) != 0)
  53. #define TK_HAS_ALPHA(x)        (((x) & TK_ALPHA) != 0)
  54. #define TK_HAS_DEPTH(x)        (((x) & TK_DEPTH) != 0)
  55. #define TK_HAS_OVERLAY(x)    (((x) & TK_OVERLAY) != 0)
  56. #define TK_HAS_UNDERLAY(x)    (((x) & TK_UNDERLAY) != 0)
  57. #define TK_HAS_STENCIL(x)    (((x) & TK_STENCIL) != 0)
  58.  
  59. /*
  60. ** Windowing System Specific Gets
  61. */
  62.  
  63. enum {
  64.     TK_X_DISPLAY = 1,
  65.     TK_X_WINDOW,
  66.     TK_PM_HAB,
  67.     TK_PM_HWND
  68. };
  69.  
  70. /*
  71. ** Event Status
  72. */
  73.  
  74. #define    TK_LEFTBUTTON        1
  75. #define    TK_RIGHTBUTTON        2
  76. #define    TK_MIDDLEBUTTON        4
  77. #define    TK_SHIFT        1
  78. #define    TK_CONTROL        2
  79.  
  80. /* 
  81. ** Key Codes
  82. */
  83.  
  84. #define TK_RETURN        0x0D
  85. #define TK_ESCAPE        0x1B
  86. #define TK_SPACE        0x20
  87. #define TK_LEFT            0x25
  88. #define TK_UP            0x26
  89. #define TK_RIGHT        0x27
  90. #define TK_DOWN            0x28
  91. #define TK_A            'A'
  92. #define TK_B            'B'
  93. #define TK_C            'C'
  94. #define TK_D            'D'
  95. #define TK_E            'E'
  96. #define TK_F            'F'
  97. #define TK_G            'G'
  98. #define TK_H            'H'
  99. #define TK_I            'I'
  100. #define TK_J            'J'
  101. #define TK_K            'K'
  102. #define TK_L            'L'
  103. #define TK_M            'M'
  104. #define TK_N            'N'
  105. #define TK_O            'O'
  106. #define TK_P            'P'
  107. #define TK_Q            'Q'
  108. #define TK_R            'R'
  109. #define TK_S            'S'
  110. #define TK_T            'T'
  111. #define TK_U            'U'
  112. #define TK_V            'V'
  113. #define TK_W            'W'
  114. #define TK_X            'X'
  115. #define TK_Y            'Y'
  116. #define TK_Z            'Z'
  117. #define TK_a            'a'
  118. #define TK_b            'b'
  119. #define TK_c            'c'
  120. #define TK_d            'd'
  121. #define TK_e            'e'
  122. #define TK_f            'f'
  123. #define TK_g            'g'
  124. #define TK_h            'h'
  125. #define TK_i            'i'
  126. #define TK_j            'j'
  127. #define TK_k            'k'
  128. #define TK_l            'l'
  129. #define TK_m            'm'
  130. #define TK_n            'n'
  131. #define TK_o            'o'
  132. #define TK_p            'p'
  133. #define TK_q            'q'
  134. #define TK_r            'r'
  135. #define TK_s            's'
  136. #define TK_t            't'
  137. #define TK_u            'u'
  138. #define TK_v            'v'
  139. #define TK_w            'w'
  140. #define TK_x            'x'
  141. #define TK_y            'y'
  142. #define TK_z            'z'
  143. #define TK_0            '0'
  144. #define TK_1            '1'
  145. #define TK_2            '2'
  146. #define TK_3            '3'
  147. #define TK_4            '4'
  148. #define TK_5            '5'
  149. #define TK_6            '6'
  150. #define TK_7            '7'
  151. #define TK_8            '8'
  152. #define TK_9            '9'
  153.  
  154. /*
  155. ** Color Macros
  156. */
  157.  
  158. enum {
  159.     TK_BLACK = 0,
  160.     TK_RED,
  161.     TK_GREEN,
  162.     TK_YELLOW,
  163.     TK_BLUE,
  164.     TK_MAGENTA,
  165.     TK_CYAN,
  166.     TK_WHITE
  167. };
  168.  
  169. extern float tkRGBMap[8][3];
  170.  
  171. #define TK_SETCOLOR(x, y) (TK_IS_RGB((x)) ? \
  172.                    glColor3fv(tkRGBMap[(y)]) : glIndexf((y)))
  173.  
  174. /*
  175. ** RGB Image Structure
  176. */
  177.  
  178. typedef struct _TK_RGBImageRec {
  179.     GLint sizeX, sizeY;
  180.     unsigned char *data;
  181. } TK_RGBImageRec;
  182.  
  183. /*
  184. ** Prototypes
  185. */
  186.  
  187. extern PVISUALCONFIG APIENTRY tkGetCurrentConfig(void);
  188. extern void APIENTRY tkInitDisplayMode(GLenum);
  189. extern void APIENTRY tkInitPosition(int, int, int, int);
  190. extern GLenum APIENTRY tkInitWindow(char *);
  191. extern void APIENTRY tkCloseWindow(void);
  192. extern void APIENTRY tkQuit(void);
  193.  
  194. extern GLenum APIENTRY tkSetWindowLevel(GLenum);
  195. extern void APIENTRY tkSwapBuffers(void);
  196.  
  197. extern void APIENTRY tkExec(void);
  198. extern void APIENTRY tkExposeFunc(void (* APIENTRY)(int, int));
  199. extern void APIENTRY tkReshapeFunc(void (* APIENTRY)(int, int));
  200. extern void APIENTRY tkDisplayFunc(void (* APIENTRY)(void));
  201. extern void APIENTRY tkKeyDownFunc(GLenum (* APIENTRY)(int, GLenum));
  202. extern void APIENTRY tkMouseDownFunc(GLenum (* APIENTRY)(int, int, GLenum));
  203. extern void APIENTRY tkMouseUpFunc(GLenum (* APIENTRY)(int, int, GLenum));
  204. extern void APIENTRY tkMouseMoveFunc(GLenum (* APIENTRY)(int, int, GLenum));
  205. extern void APIENTRY tkIdleFunc(void (* APIENTRY)(void));
  206.  
  207. extern GLint APIENTRY tkGetColorMapSize(void);
  208. extern void APIENTRY tkGetMouseLoc(int *, int *);
  209. extern void APIENTRY tkGetSystem(GLenum, void *);
  210.  
  211. extern void APIENTRY tkSetOneColor(int, float, float, float);
  212. extern void APIENTRY tkSetFogRamp(int, int);
  213. extern void APIENTRY tkSetGreyRamp(void);
  214. extern void APIENTRY tkSetRGBMap(int, float *);
  215.  
  216. extern void APIENTRY tkNewCursor(GLint, GLubyte *, GLubyte *, GLenum, GLenum,
  217.             GLint, GLint);
  218. extern void APIENTRY tkSetCursor(GLint);
  219.  
  220. extern TK_RGBImageRec* APIENTRY tkRGBImageLoad(char *);
  221.  
  222. extern GLenum APIENTRY tkCreateStrokeFont(GLuint);
  223. extern GLenum APIENTRY tkCreateOutlineFont(GLuint);
  224. extern GLenum APIENTRY tkCreateFilledFont(GLuint);
  225. extern GLenum APIENTRY tkCreateBitmapFont(GLuint);
  226. extern void APIENTRY tkDrawStr(GLuint, char *);
  227.  
  228. extern void APIENTRY tkWireSphere(GLuint, float);
  229. extern void APIENTRY tkSolidSphere(GLuint, float);
  230. extern void APIENTRY tkWireCube(GLuint, float);
  231. extern void APIENTRY tkSolidCube(GLuint, float);
  232. extern void APIENTRY tkWireBox(GLuint, float, float, float);
  233. extern void APIENTRY tkSolidBox(GLuint, float, float, float);
  234. extern void APIENTRY tkWireTorus(GLuint, float, float);
  235. extern void APIENTRY tkSolidTorus(GLuint, float, float);
  236. extern void APIENTRY tkWireCylinder(GLuint, float, float);
  237. extern void APIENTRY tkSolidCylinder(GLuint, float, float);
  238. extern void APIENTRY tkWireCone(GLuint, float, float);
  239. extern void APIENTRY tkSolidCone(GLuint, float, float);
  240. extern GLint APIENTRY tkGetDisplayModePolicy(void);
  241. extern GLint APIENTRY tkGetDisplayModeID(void);
  242. extern GLenum APIENTRY tkGetDisplayMode(void);
  243. extern void APIENTRY tkInitDisplayMode(GLenum);
  244. extern void APIENTRY tkInitDisplayModePolicy(GLenum);
  245. extern GLenum APIENTRY tkInitDisplayModeID(GLint);
  246. void APIENTRY tkClipBoard(void);
  247.