nuclear@4: #ifndef VR_H_ nuclear@4: #define VR_H_ nuclear@4: nuclear@7: #define VR_OPT_DISPLAY_WIDTH "display-xres" nuclear@7: #define VR_OPT_DISPLAY_HEIGHT "display-yres" nuclear@7: #define VR_OPT_LEYE_XRES "left-eye-xres" nuclear@7: #define VR_OPT_LEYE_YRES "left-eye-yres" nuclear@7: #define VR_OPT_REYE_XRES "right-eye-xres" nuclear@7: #define VR_OPT_REYE_YRES "right-eye-yres" nuclear@7: #define VR_OPT_EYE_HEIGHT "eye-height" nuclear@7: #define VR_OPT_IPD "ipd" nuclear@11: #define VR_OPT_WIN_XOFFS "win-xoffset" nuclear@11: #define VR_OPT_WIN_YOFFS "win-yoffset" nuclear@7: nuclear@5: enum { nuclear@5: VR_EYE_LEFT, nuclear@5: VR_EYE_RIGHT nuclear@5: }; nuclear@5: nuclear@4: #ifdef __cplusplus nuclear@4: extern "C" { nuclear@4: #endif nuclear@4: nuclear@4: int vr_init(void); nuclear@4: void vr_shutdown(void); nuclear@4: nuclear@4: int vr_module_count(void); nuclear@4: const char *vr_module_name(int idx); nuclear@4: nuclear@4: int vr_use_module(int idx); nuclear@4: int vr_use_module_named(const char *name); nuclear@4: nuclear@7: void vr_set_opti(const char *optname, int val); nuclear@7: void vr_set_optf(const char *optname, float val); nuclear@7: int vr_get_opti(const char *optname); nuclear@7: float vr_get_optf(const char *optname); nuclear@7: nuclear@7: int vr_view_translation(int eye, float *vec); nuclear@7: int vr_view_rotation(int eye, float *quat); nuclear@5: nuclear@4: /* returns non-zero if the active vr module provides this kind of matrix nuclear@4: * information, otherwise it returns zero, and sets mat to identity nuclear@4: */ nuclear@4: int vr_view_matrix(int eye, float *mat); nuclear@7: int vr_proj_matrix(int eye, float znear, float zfar, float *mat); nuclear@4: nuclear@5: void vr_begin(int eye); nuclear@5: void vr_end(void); nuclear@6: int vr_swap_buffers(void); nuclear@4: nuclear@7: /* set the output texture or separate textures for each eye */ nuclear@7: void vr_output_texture(unsigned int tex, float umin, float vmin, float umax, float vmax); nuclear@7: void vr_output_texture_eye(int eye, unsigned int tex, float umin, float vmin, float umax, float vmax); nuclear@7: nuclear@7: void vr_recenter(void); nuclear@7: nuclear@4: #ifdef __cplusplus nuclear@4: } nuclear@4: #endif nuclear@4: nuclear@4: #endif /* VR_H_ */