Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

glwin.h

Go to the documentation of this file.
00001 /*
00002  * glwin.h -- Simple self-contained code for opening an 
00003  *            OpenGL-capable display window with a double 
00004  *            buffered mono or stereoscopic visual.
00005  *            This code is primarily meant for 2-D image display
00006  *            usage or for trivial 3-D rendering usage without
00007  *            any GLX/WGL extensions that have to be enumerated
00008  *            prior to window creation.
00009  I 
00010  *            This file is part of the Tachyon ray tracer.
00011  *            John E. Stone - john.stone@gmail.com
00012  *
00013  * $Id: glwin.h,v 1.16 2015/12/19 06:28:15 johns Exp $
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 

Generated on Fri Mar 29 02:45:18 2024 for VMD (current) by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002