mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-02-10 06:29:00 +01:00
VideoCommon: Add 'Active' state to FreelookCamera to future proof if we ever add multiple cameras
This commit is contained in:
parent
a37fd8c5d9
commit
bcf63c463b
@ -319,3 +319,8 @@ void FreeLookCamera::SetClean()
|
||||
{
|
||||
m_dirty = false;
|
||||
}
|
||||
|
||||
bool FreeLookCamera::IsActive() const
|
||||
{
|
||||
return FreeLook::GetActiveConfig().enabled;
|
||||
}
|
||||
|
@ -66,6 +66,8 @@ public:
|
||||
void ResetSpeed();
|
||||
float GetSpeed() const;
|
||||
|
||||
bool IsActive() const;
|
||||
|
||||
private:
|
||||
bool m_dirty = false;
|
||||
float m_fov_x = 1.0f;
|
||||
@ -75,6 +77,7 @@ private:
|
||||
|
||||
float m_fov_step_size = 0.025f;
|
||||
float m_speed = 1.0f;
|
||||
bool m_enabled = true;
|
||||
};
|
||||
|
||||
extern FreeLookCamera g_freelook_camera;
|
||||
|
@ -356,7 +356,7 @@ void VertexShaderManager::SetConstants()
|
||||
case GX_PERSPECTIVE:
|
||||
{
|
||||
const Common::Vec2 fov =
|
||||
g_ActiveConfig.bFreeLook ? g_freelook_camera.GetFieldOfView() : Common::Vec2{1, 1};
|
||||
g_freelook_camera.IsActive() ? g_freelook_camera.GetFieldOfView() : Common::Vec2{1, 1};
|
||||
g_fProjectionMatrix[0] = rawProjection[0] * g_ActiveConfig.fAspectRatioHackW * fov.x;
|
||||
g_fProjectionMatrix[1] = 0.0f;
|
||||
g_fProjectionMatrix[2] = rawProjection[1] * g_ActiveConfig.fAspectRatioHackW * fov.x;
|
||||
@ -419,7 +419,7 @@ void VertexShaderManager::SetConstants()
|
||||
|
||||
auto corrected_matrix = s_viewportCorrection * Common::Matrix44::FromArray(g_fProjectionMatrix);
|
||||
|
||||
if (xfmem.projection.type == GX_PERSPECTIVE)
|
||||
if (g_freelook_camera.IsActive() && xfmem.projection.type == GX_PERSPECTIVE)
|
||||
corrected_matrix *= g_freelook_camera.GetView();
|
||||
|
||||
memcpy(constants.projection.data(), corrected_matrix.data.data(), 4 * sizeof(float4));
|
||||
|
Loading…
x
Reference in New Issue
Block a user