browser/external/raylib-cpp-4.5.1/include/VrStereoConfig.hpp
2023-09-27 15:02:24 -04:00

79 lines
2.0 KiB
C++

#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_