RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : tk.h


Список сообщений | Написать новое | Ответить на сообщение | Домой Поиск:
Предыдущее сообщение | Следующее сообщение
From : GA
To : Heinrich
Subj : tk.h

#include <GL/gl.h>
#include <GL/pgl.h>
#include <GL/glu.h>

/*
** Nano Window Toolkit.
*/

/*
** Window Types
*/

#define PM_ESCAPE 0x0f
#define PM_LEFT 0x15
#define PM_UP 0x16
#define PM_RIGHT 0x17
#define PM_DOWN 0x18

#define TK_RGB 0
#define TK_INDEX 1
#define TK_SINGLE 0
#define TK_DOUBLE 2
#define TK_DIRECT 0
#define TK_INDIRECT 4
#define TK_ACCUM 8
#define TK_ALPHA 16
#define TK_DEPTH 32
#define TK_OVERLAY 64
#define TK_UNDERLAY 128
#define TK_STENCIL 512

/*
** Display Mode Selection Criteria
*/

enum {
TK_USE_ID = 1,
TK_EXACT_MATCH,
TK_MINIMUM_CRITERIA
};

/*
** Window Masks
*/

#define TK_IS_RGB(x) (((x) & TK_INDEX) == 0)
#define TK_IS_INDEX(x) (((x) & TK_INDEX) != 0)
#define TK_IS_SINGLE(x) (((x) & TK_DOUBLE) == 0)
#define TK_IS_DOUBLE(x) (((x) & TK_DOUBLE) != 0)
#define TK_IS_DIRECT(x) (((x) & TK_INDIRECT) == 0)
#define TK_IS_INDIRECT(x) (((x) & TK_INDIRECT) != 0)
#define TK_HAS_ACCUM(x) (((x) & TK_ACCUM) != 0)
#define TK_HAS_ALPHA(x) (((x) & TK_ALPHA) != 0)
#define TK_HAS_DEPTH(x) (((x) & TK_DEPTH) != 0)
#define TK_HAS_OVERLAY(x) (((x) & TK_OVERLAY) != 0)
#define TK_HAS_UNDERLAY(x) (((x) & TK_UNDERLAY) != 0)
#define TK_HAS_STENCIL(x) (((x) & TK_STENCIL) != 0)

/*
** Windowing System Specific Gets
*/

enum {
TK_X_DISPLAY = 1,
TK_X_WINDOW,
TK_PM_HAB,
TK_PM_HWND
};

/*
** Event Status
*/

#define TK_LEFTBUTTON 1
#define TK_RIGHTBUTTON 2
#define TK_MIDDLEBUTTON 4
#define TK_SHIFT 1
#define TK_CONTROL 2

/*
** Key Codes
*/

#define TK_RETURN 0x0D
#define TK_ESCAPE 0x1B
#define TK_SPACE 0x20
#define TK_LEFT 0x25
#define TK_UP 0x26
#define TK_RIGHT 0x27
#define TK_DOWN 0x28
#define TK_A 'A'
#define TK_B 'B'
#define TK_C 'C'
#define TK_D 'D'
#define TK_E 'E'
#define TK_F 'F'
#define TK_G 'G'
#define TK_H 'H'
#define TK_I 'I'
#define TK_J 'J'
#define TK_K 'K'
#define TK_L 'L'
#define TK_M 'M'
#define TK_N 'N'
#define TK_O 'O'
#define TK_P 'P'
#define TK_Q 'Q'
#define TK_R 'R'
#define TK_S 'S'
#define TK_T 'T'
#define TK_U 'U'
#define TK_V 'V'
#define TK_W 'W'
#define TK_X 'X'
#define TK_Y 'Y'
#define TK_Z 'Z'
#define TK_a 'a'
#define TK_b 'b'
#define TK_c 'c'
#define TK_d 'd'
#define TK_e 'e'
#define TK_f 'f'
#define TK_g 'g'
#define TK_h 'h'
#define TK_i 'i'
#define TK_j 'j'
#define TK_k 'k'
#define TK_l 'l'
#define TK_m 'm'
#define TK_n 'n'
#define TK_o 'o'
#define TK_p 'p'
#define TK_q 'q'
#define TK_r 'r'
#define TK_s 's'
#define TK_t 't'
#define TK_u 'u'
#define TK_v 'v'
#define TK_w 'w'
#define TK_x 'x'
#define TK_y 'y'
#define TK_z 'z'
#define TK_0 '0'
#define TK_1 '1'
#define TK_2 '2'
#define TK_3 '3'
#define TK_4 '4'
#define TK_5 '5'
#define TK_6 '6'
#define TK_7 '7'
#define TK_8 '8'
#define TK_9 '9'

/*
** Color Macros
*/

enum {
TK_BLACK = 0,
TK_RED,
TK_GREEN,
TK_YELLOW,
TK_BLUE,
TK_MAGENTA,
TK_CYAN,
TK_WHITE
};

extern float tkRGBMap[8][3];

#define TK_SETCOLOR(x, y) (TK_IS_RGB((x)) ? \
glColor3fv(tkRGBMap[(y)]) : glIndexf((y)))

/*
** RGB Image Structure
*/

typedef struct _TK_RGBImageRec {
GLint sizeX, sizeY;
unsigned char *data;
} TK_RGBImageRec;

/*
** Prototypes
*/

extern PVISUALCONFIG APIENTRY tkGetCurrentConfig(void);
extern void APIENTRY tkInitDisplayMode(GLenum);
extern void APIENTRY tkInitPosition(int, int, int, int);
extern GLenum APIENTRY tkInitWindow(char *);
extern void APIENTRY tkCloseWindow(void);
extern void APIENTRY tkQuit(void);

extern GLenum APIENTRY tkSetWindowLevel(GLenum);
extern void APIENTRY tkSwapBuffers(void);

extern void APIENTRY tkExec(void);
extern void APIENTRY tkExposeFunc(void (* APIENTRY)(int, int));
extern void APIENTRY tkReshapeFunc(void (* APIENTRY)(int, int));
extern void APIENTRY tkDisplayFunc(void (* APIENTRY)(void));
extern void APIENTRY tkKeyDownFunc(GLenum (* APIENTRY)(int, GLenum));
extern void APIENTRY tkMouseDownFunc(GLenum (* APIENTRY)(int, int, GLenum));
extern void APIENTRY tkMouseUpFunc(GLenum (* APIENTRY)(int, int, GLenum));
extern void APIENTRY tkMouseMoveFunc(GLenum (* APIENTRY)(int, int, GLenum));
extern void APIENTRY tkIdleFunc(void (* APIENTRY)(void));

extern GLint APIENTRY tkGetColorMapSize(void);
extern void APIENTRY tkGetMouseLoc(int *, int *);
extern void APIENTRY tkGetSystem(GLenum, void *);

extern void APIENTRY tkSetOneColor(int, float, float, float);
extern void APIENTRY tkSetFogRamp(int, int);
extern void APIENTRY tkSetGreyRamp(void);
extern void APIENTRY tkSetRGBMap(int, float *);

extern void APIENTRY tkNewCursor(GLint, GLubyte *, GLubyte *, GLenum, GLenum,
GLint, GLint);
extern void APIENTRY tkSetCursor(GLint);

extern TK_RGBImageRec* APIENTRY tkRGBImageLoad(char *);

extern GLenum APIENTRY tkCreateStrokeFont(GLuint);
extern GLenum APIENTRY tkCreateOutlineFont(GLuint);
extern GLenum APIENTRY tkCreateFilledFont(GLuint);
extern GLenum APIENTRY tkCreateBitmapFont(GLuint);
extern void APIENTRY tkDrawStr(GLuint, char *);

extern void APIENTRY tkWireSphere(GLuint, float);
extern void APIENTRY tkSolidSphere(GLuint, float);
extern void APIENTRY tkWireCube(GLuint, float);
extern void APIENTRY tkSolidCube(GLuint, float);
extern void APIENTRY tkWireBox(GLuint, float, float, float);
extern void APIENTRY tkSolidBox(GLuint, float, float, float);
extern void APIENTRY tkWireTorus(GLuint, float, float);
extern void APIENTRY tkSolidTorus(GLuint, float, float);
extern void APIENTRY tkWireCylinder(GLuint, float, float);
extern void APIENTRY tkSolidCylinder(GLuint, float, float);
extern void APIENTRY tkWireCone(GLuint, float, float);
extern void APIENTRY tkSolidCone(GLuint, float, float);
extern GLint APIENTRY tkGetDisplayModePolicy(void);
extern GLint APIENTRY tkGetDisplayModeID(void);
extern GLenum APIENTRY tkGetDisplayMode(void);
extern void APIENTRY tkInitDisplayMode(GLenum);
extern void APIENTRY tkInitDisplayModePolicy(GLenum);
extern GLenum APIENTRY tkInitDisplayModeID(GLint);
void APIENTRY tkClipBoard(void);


Sun 13 Jul 2003 16:04 Mozilla/4.61 [en] (OS/2; U)




Programmed by Dmitri Maximovich, Dmitry I. Platonoff, Eugen Kuleshov.
25.09.99 (c) 1999, RU/2. All rights reserved.
Rewritten by Dmitry Ban. All rights ignored.