#ifndef RAYLIB_CPP_INCLUDE_VRSTEREOCONFIG_HPP_ #define RAYLIB_CPP_INCLUDE_VRSTEREOCONFIG_HPP_ #include "./raylib.hpp" #include "./raylib-cpp-utils.hpp" namespace raylib { /** * VR stereo config functions for VR simulator */ class VrStereoConfig : public ::VrStereoConfig { public: VrStereoConfig(const ::VrDeviceInfo& info) { Load(info); } /** * Load VR stereo config for VR simulator device parameters */ inline void Load(const ::VrDeviceInfo& info) { set(LoadVrStereoConfig(info)); } /** * Unload VR stereo config */ ~VrStereoConfig() { Unload(); } /** * Begin stereo rendering */ inline VrStereoConfig& BeginMode() { ::BeginVrStereoMode(*this); return *this; } /** * End stereo rendering */ inline VrStereoConfig& EndMode() { ::EndVrStereoMode(); return *this; } /** * Unload VR stereo config */ inline void Unload() { ::UnloadVrStereoConfig(*this); } private: void set(const ::VrStereoConfig& config) { projection[0] = config.projection[0]; projection[1] = config.projection[1]; viewOffset[0] = config.viewOffset[0]; viewOffset[1] = config.viewOffset[1]; leftLensCenter[0] = config.leftLensCenter[0]; leftLensCenter[1] = config.leftLensCenter[1]; rightLensCenter[0] = config.rightLensCenter[0]; rightLensCenter[1] = config.rightLensCenter[1]; leftScreenCenter[0] = config.leftScreenCenter[0]; leftScreenCenter[1] = config.leftScreenCenter[1]; rightScreenCenter[0] = config.rightScreenCenter[0]; rightScreenCenter[1] = config.rightScreenCenter[1]; scale[0] = config.scale[0]; scale[1] = config.scale[1]; scaleIn[0] = config.scaleIn[0]; scaleIn[1] = config.scaleIn[1]; } }; } // namespace raylib using RVrStereoConfig = raylib::VrStereoConfig; #endif // RAYLIB_CPP_INCLUDE_VRSTEREOCONFIG_HPP_