00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifdef __cplusplus
00017 extern "C" {
00018 #endif
00019
00020 #define GLWIN_SUCCESS 0
00021 #define GLWIN_ERROR -1
00022 #define GLWIN_NOT_IMPLEMENTED -2
00023
00024 #define GLWIN_EV_POLL_NONBLOCK 0
00025 #define GLWIN_EV_POLL_BLOCK 1
00026
00027 #define GLWIN_EV_NONE 0
00028
00029 #define GLWIN_EV_KBD 1
00031 #define GLWIN_EV_KBD_UP 2
00032 #define GLWIN_EV_KBD_DOWN 3
00033 #define GLWIN_EV_KBD_LEFT 4
00034 #define GLWIN_EV_KBD_RIGHT 5
00035 #define GLWIN_EV_KBD_PAGE_UP 6
00036 #define GLWIN_EV_KBD_PAGE_DOWN 7
00037 #define GLWIN_EV_KBD_HOME 8
00038 #define GLWIN_EV_KBD_END 9
00039 #define GLWIN_EV_KBD_INSERT 10
00040 #define GLWIN_EV_KBD_DELETE 11
00041
00042 #define GLWIN_EV_KBD_F1 12
00043 #define GLWIN_EV_KBD_F2 13
00044 #define GLWIN_EV_KBD_F3 14
00045 #define GLWIN_EV_KBD_F4 15
00046 #define GLWIN_EV_KBD_F5 16
00047 #define GLWIN_EV_KBD_F6 17
00048 #define GLWIN_EV_KBD_F7 18
00049 #define GLWIN_EV_KBD_F8 19
00050 #define GLWIN_EV_KBD_F9 20
00051 #define GLWIN_EV_KBD_F10 21
00052 #define GLWIN_EV_KBD_F11 22
00053 #define GLWIN_EV_KBD_F12 23
00054
00055 #define GLWIN_EV_KBD_ESC 24
00056
00057 #define GLWIN_EV_MOUSE_MOVE 31
00058
00059 #define GLWIN_EV_MOUSE_LEFT 32
00060 #define GLWIN_EV_MOUSE_MIDDLE 34
00061 #define GLWIN_EV_MOUSE_RIGHT 35
00062 #define GLWIN_EV_MOUSE_WHEELUP 36
00063 #define GLWIN_EV_MOUSE_WHEELDOWN 37
00064
00065 #define GLWIN_EV_WINDOW_CLOSE 128
00067 #define GLWIN_STEREO_OFF 0
00068 #define GLWIN_STEREO_OVERUNDER 1
00069
00070 void * glwin_create(const char * wintitle, int width, int height);
00071 void glwin_destroy(void * voidhandle);
00072 void glwin_swap_buffers(void * voidhandle);
00073 int glwin_handle_events(void * voidhandle, int evblockmode);
00074 int glwin_get_wininfo(void * voidhandle, int *instereo, int *havestencil);
00075 int glwin_get_winsize(void * voidhandle, int *xsize, int *ysize);
00076 int glwin_get_winpos(void * voidhandle, int *xpos, int *ypos);
00077 int glwin_get_mousepointer(void *voidhandle, int *x, int *y);
00078 int glwin_get_lastevent(void * voidhandle, int *evdev, int *evval, char *evkey);
00079 int glwin_get_spaceball(void *voidhandle, int *rx, int *ry, int *rz, int *tx, int *ty, int *tz, int *buttons);
00080 int glwin_spaceball_available(void *voidhandle);
00081 int glwin_resize(void *voidhandle, int width, int height);
00082 int glwin_reposition(void *voidhandle, int xpos, int ypos);
00083 int glwin_fullscreen(void * voidhandle, int fson, int xinescreen);
00084 int glwin_query_extension(const char *extname);
00085 int glwin_query_vsync(void *voidhandle, int *onoff);
00086
00087 void glwin_draw_image(void * voidhandle, int ixs, int iys, unsigned char * img);
00088 void glwin_draw_image_rgb3u(void *voidhandle, int stereomode, int ixs, int iys,
00089 const unsigned char *rgb3u);
00090 void glwin_draw_image_tex_rgb3u(void *voidhandle,
00091 int stereomode, int ixs, int iys,
00092 const unsigned char *rgb3u);
00093
00094 void glwin_draw_sphere_tex(float rad, int res, float txlatstart, float txlatend);
00095 void glwin_spheremap_upload_tex_rgb3u(void *voidhandle, int ixs, int iys,
00096 const unsigned char *rgb3u);
00097 void glwin_spheremap_draw_prepare(void *voidhandle);
00098 void glwin_spheremap_draw_tex(void *voidhandle,
00099 int stereomode, int ixs, int iys,
00100 const float *hmdquat,
00101 float fov, float rad, int res);
00102
00103 int glwin_fbo_target_bind(void *voidhandle, void *voidtarget);
00104 int glwin_fbo_target_unbind(void *voidhandle, void *voidtarget);
00105 int glwin_fbo_target_destroy(void *voidhandle, void *voidtarget);
00106 int glwin_fbo_target_resize(void *voidhandle, void *voidtarget, int width, int height);
00107 void *glwin_fbo_target_create(void *voidhandle, int width, int height);
00108 int glwin_fbo_target_draw_normal(void *voidhandle, void *voidtarget);
00109 int glwin_fbo_target_draw_fbo(void *voidhandle, void *voidtarget, int width, int height);
00110 void * glwin_spheremap_create_hmd_warp(void *vwin, int wsx, int wsy, int wrot,
00111 int warpdivs, int ixs, int iys,
00112 const float *user_coeffs);
00113 void glwin_spheremap_destroy_hmd_warp(void *vwin, void *voidwarp);
00114 void glwin_spheremap_update_hmd_warp(void *vwin, void *voidwarp,
00115 int wsx, int wsy,
00116 int warpdivs, int ixs, int iys,
00117 const float *user_coeffs, int forceupdate);
00118 int glwin_spheremap_draw_hmd_warp(void *vwin, void *voidwarp,
00119 int drawimage, int drawlines, int chromcorr,
00120 int wsx, int wsy,
00121 int ixs, int iys, const float *hmdquat,
00122 float fov, float rad, int hmd_spres);
00123
00124 #ifdef __cplusplus
00125 }
00126 #endif
00127