mirror of
https://github.com/DrBeef/Raze.git
synced 2024-12-11 13:21:39 +00:00
48 lines
898 B
C++
48 lines
898 B
C++
#pragma once
|
|
|
|
#include "matrix.h"
|
|
|
|
class DFrameBuffer;
|
|
|
|
enum
|
|
{
|
|
VR_MONO = 0,
|
|
VR_GREENMAGENTA = 1,
|
|
VR_REDCYAN = 2,
|
|
VR_SIDEBYSIDEFULL = 3,
|
|
VR_SIDEBYSIDESQUISHED = 4,
|
|
VR_LEFTEYEVIEW = 5,
|
|
VR_RIGHTEYEVIEW = 6,
|
|
VR_QUADSTEREO = 7,
|
|
VR_SIDEBYSIDELETTERBOX = 8,
|
|
VR_AMBERBLUE = 9,
|
|
VR_TOPBOTTOM = 11,
|
|
VR_ROWINTERLEAVED = 12,
|
|
VR_COLUMNINTERLEAVED = 13,
|
|
VR_CHECKERINTERLEAVED = 14
|
|
};
|
|
|
|
struct VREyeInfo
|
|
{
|
|
float mShiftFactor;
|
|
float mScaleFactor;
|
|
|
|
VSMatrix GetProjection(float fov, float aspectRatio, float fovRatio) const;
|
|
DVector3 GetViewShift(float yaw) const;
|
|
private:
|
|
float getShift() const;
|
|
|
|
};
|
|
|
|
struct VRMode
|
|
{
|
|
int mEyeCount;
|
|
float mHorizontalViewportScale;
|
|
float mVerticalViewportScale;
|
|
float mWeaponProjectionScale;
|
|
VREyeInfo mEyes[2];
|
|
|
|
static const VRMode *GetVRMode(bool toscreen = true);
|
|
void AdjustViewport(DFrameBuffer *fb) const;
|
|
VSMatrix GetHUDSpriteProjection() const;
|
|
};
|