libgoatvr
annotate src/opengl.c @ 19:437fe32ac633
ops... wasn't handling the stereo eye separation correctly.
also fixed a bug in vr_libovr.c causing an assertion inside LibOVR when ovrHmd_GetEyePose was called as a result of calls to view_rotation or view_translation outside of vr_begin/vr_end
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Sat, 04 Oct 2014 03:39:14 +0300 |
parents | d12592558809 |
children | 1a8343ea54ce |
rev | line source |
---|---|
nuclear@5 | 1 #include "opengl.h" |
nuclear@5 | 2 |
nuclear@5 | 3 #ifdef __unix__ |
nuclear@8 | 4 void vrimp_swap_buffers(void) |
nuclear@5 | 5 { |
nuclear@5 | 6 Display *dpy = glXGetCurrentDisplay(); |
nuclear@5 | 7 Drawable win = glXGetCurrentDrawable(); |
nuclear@5 | 8 glXSwapBuffers(dpy, win); |
nuclear@5 | 9 } |
nuclear@8 | 10 |
nuclear@8 | 11 void (*vrimp_glfunc(const char *name))() |
nuclear@8 | 12 { |
nuclear@8 | 13 return glXGetProcAddress((const unsigned char*)name); |
nuclear@8 | 14 } |
nuclear@9 | 15 #endif /* __unix__ */ |
nuclear@5 | 16 |
nuclear@5 | 17 #ifdef WIN32 |
nuclear@8 | 18 void vrimp_swap_buffers(void) |
nuclear@5 | 19 { |
nuclear@5 | 20 HDC dc = wglGetCurrentDC(); |
nuclear@5 | 21 SwapBuffers(dc); |
nuclear@5 | 22 } |
nuclear@8 | 23 |
nuclear@8 | 24 void (*vrimp_glfunc(const char *name))() |
nuclear@8 | 25 { |
nuclear@10 | 26 return (void (*)())wglGetProcAddress(name); |
nuclear@8 | 27 } |
nuclear@9 | 28 #endif /* WIN32 */ |
nuclear@9 | 29 |
nuclear@9 | 30 #ifdef __APPLE__ |
nuclear@9 | 31 void vrimp_swap_buffers(void) |
nuclear@9 | 32 { |
nuclear@9 | 33 /* TODO: I don't think this can even be done without obj-c and a pointer |
nuclear@9 | 34 * to a GLView class or whatever the fuck it's called... investigate further |
nuclear@9 | 35 */ |
nuclear@9 | 36 } |
nuclear@9 | 37 |
nuclear@9 | 38 |
nuclear@9 | 39 void (*vrimp_glfunc(const char *name))() |
nuclear@9 | 40 { |
nuclear@9 | 41 /* TODO: whatever */ |
nuclear@9 | 42 return 0; |
nuclear@9 | 43 } |
nuclear@9 | 44 #endif /* __APPLE__ */ |