home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Exec 1 / CD_Magazyn_EXEC_nr_1.iso / Gry / battalion.lha / Battalion / source / tk_amiga.h < prev    next >
C/C++ Source or Header  |  1999-12-23  |  8KB  |  316 lines

  1. /* $Id: gltk.h,v 1.4 1997/08/19 02:36:22 brianp Exp $ */
  2.  
  3. /*
  4.  * Mesa 3-D graphics library
  5.  * Version:  2.4
  6.  * Copyright (C) 1995-1996  Brian Paul
  7.  *
  8.  * This library is free software; you can redistribute it and/or
  9.  * modify it under the terms of the GNU Library General Public
  10.  * License as published by the Free Software Foundation; either
  11.  * version 2 of the License, or (at your option) any later version.
  12.  *
  13.  * This library is distributed in the hope that it will be useful,
  14.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  16.  * Library General Public License for more details.
  17.  *
  18.  * You should have received a copy of the GNU Library General Public
  19.  * License along with this library; if not, write to the Free
  20.  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  21.  */
  22.  
  23.  
  24. /*
  25.  * This code originated from SGI and was modified for use with Mesa.
  26.  */
  27.  
  28.  
  29. #ifndef GLTK_INCLUDED
  30. #define GLTK_INCLUDED
  31.  
  32.  
  33. #ifdef __cplusplus
  34. extern "C" {
  35. #endif
  36.  
  37.  
  38. #ifdef __BEOS__
  39. #include "GL/gl.h"
  40. #include "GL/glu.h"
  41. #else
  42. #include <GL/gl.h>
  43. #include <GL/glu.h>
  44. #endif
  45.  
  46.  
  47. /*
  48. ** Nano Window Toolkit.
  49. ** Version 1.1
  50. */
  51.  
  52.  
  53. #if defined(__WIN32__) || defined(DOSVGA) || defined(FX)
  54. /*
  55. ** Display Mode Selection Criteria
  56. */
  57. enum {
  58.     TK_USE_ID = 1,
  59.     TK_EXACT_MATCH,
  60.     TK_MINIMUM_CRITERIA
  61. };
  62. #endif
  63.  
  64.  
  65. /*
  66. ** Window Types
  67. */
  68.  
  69. #define TK_RGB          0
  70. #define TK_INDEX        1
  71. #define TK_SINGLE       0
  72. #define TK_DOUBLE       2
  73. #define TK_DIRECT       0
  74. #define TK_INDIRECT     4
  75. #define TK_ACCUM        8
  76. #define TK_ALPHA        16
  77. #define TK_DEPTH        32
  78. #define TK_STENCIL      64
  79. #define TK_OVERLAY      128
  80. #define TK_UNDERLAY     256
  81.  
  82. /* 
  83. ** Window Masks
  84. */
  85.  
  86. #define TK_IS_RGB(x)            (((x) & TK_INDEX) == 0)
  87. #define TK_IS_INDEX(x)          (((x) & TK_INDEX) != 0)
  88. #define TK_IS_SINGLE(x)         (((x) & TK_DOUBLE) == 0)
  89. #define TK_IS_DOUBLE(x)         (((x) & TK_DOUBLE) != 0)
  90. #define TK_IS_DIRECT(x)         (((x) & TK_INDIRECT) == 0)
  91. #define TK_IS_INDIRECT(x)       (((x) & TK_INDIRECT) != 0)
  92. #define TK_HAS_ACCUM(x)         (((x) & TK_ACCUM) != 0)
  93. #define TK_HAS_ALPHA(x)         (((x) & TK_ALPHA) != 0)
  94. #define TK_HAS_DEPTH(x)         (((x) & TK_DEPTH) != 0)
  95. #define TK_HAS_OVERLAY(x)       (((x) & TK_OVERLAY) != 0)
  96. #define TK_HAS_UNDERLAY(x)      (((x) & TK_UNDERLAY) != 0)
  97. #define TK_HAS_STENCIL(x)       (((x) & TK_STENCIL) != 0)
  98.  
  99. /*
  100. ** Windowing System Specific Gets
  101. */
  102.  
  103. typedef enum {
  104.     TK_X_DISPLAY = 1,
  105.     TK_X_WINDOW
  106. } TKenum;
  107.  
  108. /*
  109. ** Event Status
  110. */
  111.  
  112. #define TK_LEFTBUTTON           1
  113. #define TK_RIGHTBUTTON          2
  114. #define TK_MIDDLEBUTTON         4
  115. #define TK_SHIFT                1
  116. #define TK_CONTROL              2
  117.  
  118. /* 
  119. ** Key Codes
  120. */
  121.  
  122. #define TK_BACKSPACE            0x8
  123. #define TK_TAB                  0x9
  124. #define TK_RETURN               0x0D
  125. #define TK_ESCAPE               0x1B
  126. #define TK_SPACE                0x20
  127. #define TK_LEFT                 0x25
  128. #define TK_UP                   0x26
  129. #define TK_RIGHT                0x27
  130. #define TK_DOWN                 0x28
  131. #define TK_DEL                  0x7f
  132. #define TK_SHIFT_L              0x100
  133. #define TK_SHIFT_R              0x101
  134. #define TK_CONTROL_L            0x102
  135. #define TK_ALT_L                0x104
  136. #define TK_ALT_R                0x105
  137. #define TK_A                    'A'
  138. #define TK_B                    'B'
  139. #define TK_C                    'C'
  140. #define TK_D                    'D'
  141. #define TK_E                    'E'
  142. #define TK_F                    'F'
  143. #define TK_G                    'G'
  144. #define TK_H                    'H'
  145. #define TK_I                    'I'
  146. #define TK_J                    'J'
  147. #define TK_K                    'K'
  148. #define TK_L                    'L'
  149. #define TK_M                    'M'
  150. #define TK_N                    'N'
  151. #define TK_O                    'O'
  152. #define TK_P                    'P'
  153. #define TK_Q                    'Q'
  154. #define TK_R                    'R'
  155. #define TK_S                    'S'
  156. #define TK_T                    'T'
  157. #define TK_U                    'U'
  158. #define TK_V                    'V'
  159. #define TK_W                    'W'
  160. #define TK_X                    'X'
  161. #define TK_Y                    'Y'
  162. #define TK_Z                    'Z'
  163. #define TK_a                    'a'
  164. #define TK_b                    'b'
  165. #define TK_c                    'c'
  166. #define TK_d                    'd'
  167. #define TK_e                    'e'
  168. #define TK_f                    'f'
  169. #define TK_g                    'g'
  170. #define TK_h                    'h'
  171. #define TK_i                    'i'
  172. #define TK_j                    'j'
  173. #define TK_k                    'k'
  174. #define TK_l                    'l'
  175. #define TK_m                    'm'
  176. #define TK_n                    'n'
  177. #define TK_o                    'o'
  178. #define TK_p                    'p'
  179. #define TK_q                    'q'
  180. #define TK_r                    'r'
  181. #define TK_s                    's'
  182. #define TK_t                    't'
  183. #define TK_u                    'u'
  184. #define TK_v                    'v'
  185. #define TK_w                    'w'
  186. #define TK_x                    'x'
  187. #define TK_y                    'y'
  188. #define TK_z                    'z'
  189. #define TK_0                    '0'
  190. #define TK_1                    '1'
  191. #define TK_2                    '2'
  192. #define TK_3                    '3'
  193. #define TK_4                    '4'
  194. #define TK_5                    '5'
  195. #define TK_6                    '6'
  196. #define TK_7                    '7'
  197. #define TK_8                    '8'
  198. #define TK_9                    '9'
  199.  
  200. /*
  201. ** Color Macros
  202. */
  203.  
  204. enum {
  205.     TK_BLACK = 0,
  206. #ifdef __WIN32__
  207.     TK_RED=10,
  208. #else
  209.     TK_RED,
  210. #endif
  211.     TK_GREEN,
  212.     TK_YELLOW,
  213.     TK_BLUE,
  214.     TK_MAGENTA,
  215.     TK_CYAN,
  216.     TK_WHITE
  217. };
  218.  
  219. #ifdef __BEOS__
  220. #pragma export on
  221. #endif
  222.  
  223. #if defined(__WIN32__) || defined(DOSVGA)
  224. extern float tkRGBMap[17][3];
  225. #else
  226. extern float tkRGBMap[8][3];
  227. #endif
  228.  
  229. #define TK_SETCOLOR(x, y) (TK_IS_RGB((x)) ? \
  230.                glColor3fv(tkRGBMap[(y)]) : glIndexf((y)))
  231.  
  232. /*
  233. ** RGB Image Structure
  234. */
  235.  
  236. typedef struct _TK_RGBImageRec {
  237.     GLint sizeX, sizeY;
  238.     unsigned char *data;
  239. } TK_RGBImageRec;
  240.  
  241. /*
  242. ** Prototypes
  243. */
  244.  
  245. extern void tkInitDisplayMode(GLenum);
  246. extern void tkInitPosition(int, int, int, int);
  247. extern GLenum tkInitWindow(char *);
  248. extern void tkCloseWindow(void);
  249. extern void tkQuit(void);
  250.  
  251. extern GLenum tkSetWindowLevel(GLenum);
  252. extern void tkSwapBuffers(void);
  253.  
  254. extern void tkExec(void);
  255. extern void tkExposeFunc(void (*)(int, int));
  256. extern void tkReshapeFunc(void (*)(int, int));
  257. extern void tkDisplayFunc(void (*)(void));
  258. extern void tkKeyDownFunc(GLenum (*)(int, GLenum));
  259. extern void tkKeyUpFunc(GLenum (*)(int, GLenum));
  260. extern void tkMouseDownFunc(GLenum (*)(int, int, GLenum));
  261. extern void tkMouseUpFunc(GLenum (*)(int, int, GLenum));
  262. extern void tkMouseMoveFunc(GLenum (*)(int, int, GLenum));
  263. extern void tkIdleFunc(void (*)(void));
  264.  
  265. extern int tkGetColorMapSize(void);
  266. extern void tkGetMouseLoc(int *, int *);
  267. extern void tkGetSystem(TKenum, void *);
  268.  
  269. extern void tkSetOneColor(int, float, float, float);
  270. extern void tkSetFogRamp(int, int);
  271. extern void tkSetGreyRamp(void);
  272. extern void tkSetRGBMap(int, float *);
  273. extern void tkSetOverlayMap(int, float *);
  274.  
  275. extern void tkNewCursor(GLint, GLubyte *, GLubyte *, GLenum, GLenum,
  276.             GLint, GLint);
  277. extern void tkSetCursor(GLint);
  278.  
  279. extern TK_RGBImageRec *tkRGBImageLoad(char *);
  280.  
  281. extern GLenum tkCreateStrokeFont(GLuint);
  282. extern GLenum tkCreateOutlineFont(GLuint);
  283. extern GLenum tkCreateFilledFont(GLuint);
  284. extern GLenum tkCreateBitmapFont(GLuint);
  285. extern void tkDrawStr(GLuint, char *);
  286.  
  287. extern void tkWireSphere(GLuint, float);
  288. extern void tkSolidSphere(GLuint, float);
  289. extern void tkWireCube(GLuint, float);
  290. extern void tkSolidCube(GLuint, float);
  291. extern void tkWireBox(GLuint, float, float, float);
  292. extern void tkSolidBox(GLuint, float, float, float);
  293. extern void tkWireTorus(GLuint, float, float);
  294. extern void tkSolidTorus(GLuint, float, float);
  295. extern void tkWireCylinder(GLuint, float, float);
  296. extern void tkSolidCylinder(GLuint, float, float);
  297. extern void tkWireCone(GLuint, float, float);
  298. extern void tkSolidCone(GLuint, float, float);
  299.  
  300. #ifdef __BEOS__
  301. #pragma export off
  302. #endif
  303.  
  304. #ifdef __cplusplus
  305. }
  306. #endif
  307.  
  308.  
  309. #ifdef __WIN32__
  310. #include <windows.h>
  311. HWND tkGetHWND(void);
  312. #endif /* WIN32 */
  313.  
  314.  
  315. #endif
  316.