Skip to main content
Up and Coming
July 19, 2014

SDK 0.25 to 0.3.2 update -> functions removed??

I'm getting several errors after updating to SDK 0.3.2:

No member named 'Projection' in 'OVR::Util::Render::StereoEyeParamsWithOrtho'
No member named 'GetIPD' in 'OVR::Util::Render::StereoConfig'
No member named 'SetIPD' in 'OVR::Util::Render::StereoConfig'
No member named 'InterpupillaryDistance' in 'OVR::HMDInfo'
No member named 'HResolution' in 'OVR::HMDInfo'
No member named 'VResolution' in 'OVR::HMDInfo'
No member named 'SetPredictionEnabled' in 'OVR::SensorFusion'
No member named 'SetHMDInfo' in 'OVR::Util::Render::StereoConfig'

This is not exactly a stable interface!
Where's the guide on upgrading from 0.2.5 to 0.3.2?

    14 replies

    Inspiring
    July 19, 2014
    The API completely changed between 0.2.x and 0.3.x. It's not just about changing some function names, it's a totally different system. Check the included guide to see how it's supposed to work.
    AMD Ryzen 7 1800X | MSI X370 Titanium | G.Skill 16GB DDR4 3200 | EVGA SuperNOVA 1000 | Corsair Hydro H110i Gigabyte RX Vega 64 x2 | Samsung 960 Evo M.2 500GB | Seagate FireCuda SSHD 2TB | Phanteks ENTHOO EVOLV
    philippMAuthor
    Up and Coming
    July 19, 2014
    "cybereality" wrote:
    The API completely changed between 0.2.x and 0.3.x. It's not just about changing some function names, it's a totally different system. Check the included guide to see how it's supposed to work.



    The included guide talks about the C API only. I want to use the C++ API.
    Inspiring
    July 19, 2014
    If I'm not wrong, All core components of the SDK have now to be accessed only from C style functions.

    You still have classes for example, handeling math (for representing vectors, quaternions, matrices...).
    Obvously you can call the C api functions from C++ code.
    CV1+Touch; Running on GTX980 - 4770K - 32GB DDR3 Developer at LIV
    Inspiring
    July 19, 2014
    Here is a simple C++ example to get you started.

    https://developer.oculus.com/wiki/Minimal_Oculus_Application_0.3.x
    AMD Ryzen 7 1800X | MSI X370 Titanium | G.Skill 16GB DDR4 3200 | EVGA SuperNOVA 1000 | Corsair Hydro H110i Gigabyte RX Vega 64 x2 | Samsung 960 Evo M.2 500GB | Seagate FireCuda SSHD 2TB | Phanteks ENTHOO EVOLV
    philippMAuthor
    Up and Coming
    July 20, 2014
    "Ybalrid" wrote:
    If I'm not wrong, All core components of the SDK have now to be accessed only from C style functions.

    You still have classes for example, handeling math (for representing vectors, quaternions, matrices...).
    Obvously you can call the C api functions from C++ code.




    Oh really?
    Wow. I remember some morons who didn't understand object-oriented programming whining the "SDK is too object oriented" but does that mean now EVERYONE has to pretend it's 1989 and classes don't exist? Just to make sure I got this right: Someone who does not understand object-oriented programming and classes complains, and instead of providing a thin wrapper for them, you tear apart a perfectly working object-oriented interface, forcing everyone who relies on it to throw away their code and instead pretend it's 1989 and use the C-API only?? Great idea making the SDK work for the dumbest common denominator. Why not take out C entirely and force everyone to use Javascript instead? It's so much easier!

    Really brilliant solution. Everyone loves to see perfectly working code break and being forced to rewrite. Any idea how often you intend to repeat that? Just so I know when I should next look at the SDK for a stable API. 0.4? 0.9? 3.11?

    The example code you gave does not differ from the one in the PDF guide. It has nothing to do with the C++ interface.
    So where's the guide to CONVERT from "OO-style" to "lowest common denominator stlye"?
    And no, "throw everything away and start over" is NOT a conversion guide.
    With 1 bazillion $$ from facebook it should be possible to write a little guide that says "If you used A::B(), you should now use CAb() instead".
    Up and Coming
    July 20, 2014
    It's not about dumbing it down to people who don't understand object oriented programming; C-style functions make it easier to keep the public API consistent over time while the implementation details can change drastically. It also simplifies calling the API from other languages. I personally think it was a great idea to move to C-style functions and I'm sure you'll see the benefit once you start using it.
    Virtual Desktop Developer
    Inspiring
    July 20, 2014
    "philippM" wrote:

    With 1 bazillion $$ from facebook it should be possible to write a little guide that says "If you used A::B(), you should now use CAb() instead".


    Also, the differencies between the tow API are far beyond changing some "A::B()" to "CAb()"...
    CV1+Touch; Running on GTX980 - 4770K - 32GB DDR3 Developer at LIV
    Up and Coming
    July 21, 2014
    "philippM" wrote:
    inane rant


    whaaa... :?
    DK1 FREAK ...
    Participant
    July 21, 2014
    "philippM" wrote:
    With 1 bazillion $$ from facebook it should be possible to write a little guide that says "If you used A::B(), you should now use CAb() instead".
    "cybereality" wrote:
    It's not just about changing some function names, it's a totally different system. Check the included guide to see how it's supposed to work.
    cybereality literally stated it's not just about changing some function names, so it's probably not as easy as replacing a call of a static method with a call of a function either. cybereality also stated there's a guide included. :?
    DK2 ordered on March 19, 2014 at 09:50 AM PDT status: DELIVERED and I scratched the lenses within the first hour, f*** me :D
    Inspiring
    July 21, 2014
    "philippM" wrote:
    Wow. I remember some morons who didn't understand object-oriented programming whining the "SDK is too object oriented" but does that mean now EVERYONE has to pretend it's 1989 and classes don't exist? Just to make sure I got this right: Someone who does not understand object-oriented programming and classes complains, and instead of providing a thin wrapper for them, you tear apart a perfectly working object-oriented interface, forcing everyone who relies on it to throw away their code and instead pretend it's 1989 and use the C-API only??



    Pull your head out of your ass and listen. The C API exists not because people complained about the SDK being too object oriented, but because that's how most SDKs end up exposing their functionality, through C APIs.

    C APIs are the most portable kind of interface. They make it easy (frequently automated) to create bindings for a given API in another language, such as Python or Java.

    "philippM" wrote:
    Really brilliant solution. Everyone loves to see perfectly working code break and being forced to rewrite. Any idea how often you intend to repeat that? Just so I know when I should next look at the SDK for a stable API. 0.4? 0.9? 3.11?


    The C++ version of the SDK isn't gone. In fact it's used as the implementation code for the C API. There's nothing stopping you from using the C++ implementation code directly. Yes, some of the functions have changed and some have been removed since 0.2.x, but then again, it is a work in progress, and we were all warned that the implementation would be changing. Plus, this SDK was released more than a month ago, with the warnings coming months before that. There's no use complaining about it now like it's some kind of surprise.

    "philippM" wrote:
    With 1 bazillion $$ from facebook it should be possible to write a little guide that says "If you used A::B(), you should now use CAb() instead".


    Ask an actual question like 'What do I do now that <example function> is gone?' and someone will probably provide you a sensible answer. Rants serve no purpose at all.
    Brad Davis - Developer for High Fidelity Co-author of Oculus Rift in Action