goatvr1

view include/goatvr.h @ 1:3698f7b31ee6

foo
author John Tsiombikas <nuclear@member.fsf.org>
date Wed, 11 Nov 2015 23:57:02 +0200
parents c994aa032e3c
children
line source
1 #ifndef GOATVR_H_
2 #define GOATVR_H_
4 enum {
5 GVR_EYE_CENTER,
6 GVR_EYE_LEFT,
7 GVR_EYE_RIGHT
8 };
10 int gvr_init(void);
11 void gvr_shutdown(void);
13 /* ---- VR backend module management ---- */
14 int gvr_module_count(void);
15 char *gvr_module_name(int idx);
16 int gvr_module_available(int idx);
18 int gvr_active_module(void);
19 int gvr_use_module(int idx);
21 /* Enter VR rendering mode. GoatVR will assume control of your output, go fullscreen,
22 * reposition your window to show up on the VR device, or whatever is needed depending
23 * on the selected vr module.
24 */
25 int gvr_enter_vr(void);
26 /* Leave VR rendering mode and return to the previous rendering state */
27 int gvr_leave_vr(void);
29 /* ---- rendering ---- */
30 void gvr_begin(int eye);
31 void gvr_end(void);
32 void gvr_present(void);
34 /* expose internal render target objects, usually not needed */
35 void gvr_get_viewport(int *vp);
36 unsigned int gvr_get_fbo(void);
37 unsigned int gvr_get_fbo_texture(void);
38 unsigned int gvr_get_fbo_depth(void);
40 /* ---- tracking ---- */
41 int gvr_position(float *vec, int track_id);
42 int gvr_rotation(float *quat, int track_id);
43 int gvr_matrix(float *mat, int track_id);
45 int gvr_view_matrix(float *mat, int eye); /* equivalent to inverse of gvr_matrix(mat, eye) */
46 int gvr_proj_matrix(float *mat, int eye, float znear, float zfar);
48 /* ---- options and parameters ---- */
50 /* set fov in degrees, for backends which do not dictate an fov (mostly for fallback) */
51 void gvr_set_fov(float fov);
52 float gvr_get_fov(void); /* might be approximate fov */
54 void gvr_set_eye_height(void); /* override eye height */
55 float gvr_get_eye_height(void);
56 void gvr_set_ipd(void); /* override ipd */
57 float gvr_get_ipd(void);
59 #endif /* GOATVR_H_ */