libgoatvr

annotate src/vr.h @ 8:3d9ec6fe97d7

- added distortion mesh generation for the OpenHMD module (unfinished) - changed internal implementation function naming to use the vrimp_ prefix - added an opengl helper function to load extension entry points
author John Tsiombikas <nuclear@member.fsf.org>
date Sat, 20 Sep 2014 13:22:53 +0300
parents ded3d0a74e19
children 34d4643d61f9
rev   line source
nuclear@0 1 #ifndef VR_H_
nuclear@0 2 #define VR_H_
nuclear@0 3
nuclear@8 4 /* unit: pixels */
nuclear@0 5 #define VR_OPT_DISPLAY_WIDTH "display-xres"
nuclear@0 6 #define VR_OPT_DISPLAY_HEIGHT "display-yres"
nuclear@0 7 #define VR_OPT_LEYE_XRES "left-eye-xres"
nuclear@0 8 #define VR_OPT_LEYE_YRES "left-eye-yres"
nuclear@0 9 #define VR_OPT_REYE_XRES "right-eye-xres"
nuclear@0 10 #define VR_OPT_REYE_YRES "right-eye-yres"
nuclear@8 11 #define VR_OPT_WIN_XOFFS "win-xoffset"
nuclear@8 12 #define VR_OPT_WIN_YOFFS "win-yoffset"
nuclear@8 13 /* unit: meters */
nuclear@0 14 #define VR_OPT_EYE_HEIGHT "eye-height"
nuclear@0 15 #define VR_OPT_IPD "ipd"
nuclear@0 16
nuclear@0 17 enum {
nuclear@0 18 VR_EYE_LEFT,
nuclear@0 19 VR_EYE_RIGHT
nuclear@0 20 };
nuclear@0 21
nuclear@0 22 #ifdef __cplusplus
nuclear@0 23 extern "C" {
nuclear@0 24 #endif
nuclear@0 25
nuclear@0 26 int vr_init(void);
nuclear@0 27 void vr_shutdown(void);
nuclear@0 28
nuclear@0 29 int vr_module_count(void);
nuclear@0 30 const char *vr_module_name(int idx);
nuclear@0 31
nuclear@0 32 int vr_use_module(int idx);
nuclear@0 33 int vr_use_module_named(const char *name);
nuclear@0 34
nuclear@0 35 void vr_set_opti(const char *optname, int val);
nuclear@0 36 void vr_set_optf(const char *optname, float val);
nuclear@0 37 int vr_get_opti(const char *optname);
nuclear@0 38 float vr_get_optf(const char *optname);
nuclear@0 39
nuclear@0 40 int vr_view_translation(int eye, float *vec);
nuclear@0 41 int vr_view_rotation(int eye, float *quat);
nuclear@0 42
nuclear@0 43 /* returns non-zero if the active vr module provides this kind of matrix
nuclear@0 44 * information, otherwise it returns zero, and sets mat to identity
nuclear@0 45 */
nuclear@0 46 int vr_view_matrix(int eye, float *mat);
nuclear@0 47 int vr_proj_matrix(int eye, float znear, float zfar, float *mat);
nuclear@0 48
nuclear@0 49 void vr_begin(int eye);
nuclear@0 50 void vr_end(void);
nuclear@0 51 int vr_swap_buffers(void);
nuclear@0 52
nuclear@0 53 /* set the output texture or separate textures for each eye */
nuclear@0 54 void vr_output_texture(unsigned int tex, float umin, float vmin, float umax, float vmax);
nuclear@0 55 void vr_output_texture_eye(int eye, unsigned int tex, float umin, float vmin, float umax, float vmax);
nuclear@0 56
nuclear@0 57 void vr_recenter(void);
nuclear@0 58
nuclear@0 59 #ifdef __cplusplus
nuclear@0 60 }
nuclear@0 61 #endif
nuclear@0 62
nuclear@0 63 #endif /* VR_H_ */