sensics / OSVR-RenderManager

Apache License 2.0
64 stars 45 forks source link

Custom gl timing info #338

Closed JeroMiya closed 6 years ago

JeroMiya commented 6 years ago

Adds an override to the OpenGL toolkit structure that allows applications to provide custom vsync timing information to RenderManager from a custom OpenGL window toolkit implementation (example SDL, Android View, Qt, etc...). No implementation is given for existing implementations - currently the SDL implementation which is the default on non-Android platforms, and the sample Qt implementation.

rpavlik commented 6 years ago

Assuming/appears that this breaks some API (the toolkit API, in C, as well as the C++ API that breaks if you look at it funny), but not sure how much code out there in the wild uses it, so not sure it's a big deal.

JeroMiya commented 6 years ago

Yes, it necessarily breaks API by adding a new override function. This is a drawback of the way the OpenGL Toolkit API was designed in that we can't add new overrides without breaking the API for existing code. A more opaque, weakly typed osvrRenderManagerSetOpenGLToolkitOverride(toolkit, overrideType, callbackFunc) style API (with strongly typed wrapper functions for convenience) might have been easier to extend without breaking API, but alas.