Fixes
This commit is contained in:
@ -53,6 +53,7 @@ namespace ia::iae
|
||||
BOOL Renderer::s_ySortingEnabled{false};
|
||||
SDL_Rect Renderer::s_defaultScissor{};
|
||||
SDL_GPUViewport Renderer::s_defaultViewport{};
|
||||
Vec2 Renderer::s_activeSceneDesignViewport{};
|
||||
|
||||
EXTERN Vec2 g_sceneScalingFactor;
|
||||
EXTERN Vec2 g_sceneDesignViewport;
|
||||
@ -112,117 +113,43 @@ namespace ia::iae
|
||||
|
||||
s_circleGeometry = CreateGeometry(
|
||||
{
|
||||
{{0.0000000f, (1.0f / Engine::GetDisplayAspectRatio()) * 0.75f * 0.0000000f},
|
||||
{0.5000000f, 0.5000000f},
|
||||
{1.0f, 1.0f, 1.0f, 1.0f}}, // 0 Center
|
||||
{{1.0000000f, (1.0f / Engine::GetDisplayAspectRatio()) * 0.75f * 0.0000000f},
|
||||
{1.0000000f, 0.5000000f},
|
||||
{1.0f, 1.0f, 1.0f, 1.0f}}, // 1
|
||||
{{0.9848078f, (1.0f / Engine::GetDisplayAspectRatio()) * 0.75f * 0.1736482f},
|
||||
{0.9924039f, 0.5868241f},
|
||||
{1.0f, 1.0f, 1.0f, 1.0f}}, // 2
|
||||
{{0.9396926f, (1.0f / Engine::GetDisplayAspectRatio()) * 0.75f * 0.3420201f},
|
||||
{0.9698463f, 0.6710101f},
|
||||
{1.0f, 1.0f, 1.0f, 1.0f}}, // 3
|
||||
{{0.8660254f, (1.0f / Engine::GetDisplayAspectRatio()) * 0.75f * 0.5000000f},
|
||||
{0.9330127f, 0.7500000f},
|
||||
{1.0f, 1.0f, 1.0f, 1.0f}}, // 4
|
||||
{{0.7660444f, (1.0f / Engine::GetDisplayAspectRatio()) * 0.75f * 0.6427876f},
|
||||
{0.8830222f, 0.8213938f},
|
||||
{1.0f, 1.0f, 1.0f, 1.0f}}, // 5
|
||||
{{0.6427876f, (1.0f / Engine::GetDisplayAspectRatio()) * 0.75f * 0.7660444f},
|
||||
{0.8213938f, 0.8830222f},
|
||||
{1.0f, 1.0f, 1.0f, 1.0f}}, // 6
|
||||
{{0.5000000f, (1.0f / Engine::GetDisplayAspectRatio()) * 0.75f * 0.8660254f},
|
||||
{0.7500000f, 0.9330127f},
|
||||
{1.0f, 1.0f, 1.0f, 1.0f}}, // 7
|
||||
{{0.3420201f, (1.0f / Engine::GetDisplayAspectRatio()) * 0.75f * 0.9396926f},
|
||||
{0.6710101f, 0.9698463f},
|
||||
{1.0f, 1.0f, 1.0f, 1.0f}}, // 8
|
||||
{{0.1736482f, (1.0f / Engine::GetDisplayAspectRatio()) * 0.75f * 0.9848078f},
|
||||
{0.5868241f, 0.9924039f},
|
||||
{1.0f, 1.0f, 1.0f, 1.0f}}, // 9
|
||||
{{0.0000000f, (1.0f / Engine::GetDisplayAspectRatio()) * 0.75f * 1.0000000f},
|
||||
{0.5000000f, 1.0000000f},
|
||||
{1.0f, 1.0f, 1.0f, 1.0f}}, // 10
|
||||
{{-0.1736482f, (1.0f / Engine::GetDisplayAspectRatio()) * 0.75f * 0.9848078f},
|
||||
{0.4131759f, 0.9924039f},
|
||||
{1.0f, 1.0f, 1.0f, 1.0f}}, // 11
|
||||
{{-0.3420201f, (1.0f / Engine::GetDisplayAspectRatio()) * 0.75f * 0.9396926f},
|
||||
{0.3289899f, 0.9698463f},
|
||||
{1.0f, 1.0f, 1.0f, 1.0f}}, // 12
|
||||
{{-0.5000000f, (1.0f / Engine::GetDisplayAspectRatio()) * 0.75f * 0.8660254f},
|
||||
{0.2500000f, 0.9330127f},
|
||||
{1.0f, 1.0f, 1.0f, 1.0f}}, // 13
|
||||
{{-0.6427876f, (1.0f / Engine::GetDisplayAspectRatio()) * 0.75f * 0.7660444f},
|
||||
{0.1786062f, 0.8830222f},
|
||||
{1.0f, 1.0f, 1.0f, 1.0f}}, // 14
|
||||
{{-0.7660444f, (1.0f / Engine::GetDisplayAspectRatio()) * 0.75f * 0.6427876f},
|
||||
{0.1169778f, 0.8213938f},
|
||||
{1.0f, 1.0f, 1.0f, 1.0f}}, // 15
|
||||
{{-0.8660254f, (1.0f / Engine::GetDisplayAspectRatio()) * 0.75f * 0.5000000f},
|
||||
{0.0669873f, 0.7500000f},
|
||||
{1.0f, 1.0f, 1.0f, 1.0f}}, // 16
|
||||
{{-0.9396926f, (1.0f / Engine::GetDisplayAspectRatio()) * 0.75f * 0.3420201f},
|
||||
{0.0301537f, 0.6710101f},
|
||||
{1.0f, 1.0f, 1.0f, 1.0f}}, // 17
|
||||
{{-0.9848078f, (1.0f / Engine::GetDisplayAspectRatio()) * 0.75f * 0.1736482f},
|
||||
{0.0075961f, 0.5868241f},
|
||||
{1.0f, 1.0f, 1.0f, 1.0f}}, // 18
|
||||
{{-1.0000000f, (1.0f / Engine::GetDisplayAspectRatio()) * 0.75f * 0.0000000f},
|
||||
{0.0000000f, 0.5000000f},
|
||||
{1.0f, 1.0f, 1.0f, 1.0f}}, // 19
|
||||
{{-0.9848078f, (1.0f / Engine::GetDisplayAspectRatio()) * 0.75f * -0.1736482f},
|
||||
{0.0075961f, 0.4131759f},
|
||||
{1.0f, 1.0f, 1.0f, 1.0f}}, // 20
|
||||
{{-0.9396926f, (1.0f / Engine::GetDisplayAspectRatio()) * 0.75f * -0.3420201f},
|
||||
{0.0301537f, 0.3289899f},
|
||||
{1.0f, 1.0f, 1.0f, 1.0f}}, // 21
|
||||
{{-0.8660254f, (1.0f / Engine::GetDisplayAspectRatio()) * 0.75f * -0.5000000f},
|
||||
{0.0669873f, 0.2500000f},
|
||||
{1.0f, 1.0f, 1.0f, 1.0f}}, // 22
|
||||
{{-0.7660444f, (1.0f / Engine::GetDisplayAspectRatio()) * 0.75f * -0.6427876f},
|
||||
{0.1169778f, 0.1786062f},
|
||||
{1.0f, 1.0f, 1.0f, 1.0f}}, // 23
|
||||
{{-0.6427876f, (1.0f / Engine::GetDisplayAspectRatio()) * 0.75f * -0.7660444f},
|
||||
{0.1786062f, 0.1169778f},
|
||||
{1.0f, 1.0f, 1.0f, 1.0f}}, // 24
|
||||
{{-0.5000000f, (1.0f / Engine::GetDisplayAspectRatio()) * 0.75f * -0.8660254f},
|
||||
{0.2500000f, 0.0669873f},
|
||||
{1.0f, 1.0f, 1.0f, 1.0f}}, // 25
|
||||
{{-0.3420201f, (1.0f / Engine::GetDisplayAspectRatio()) * 0.75f * -0.9396926f},
|
||||
{0.3289899f, 0.0301537f},
|
||||
{1.0f, 1.0f, 1.0f, 1.0f}}, // 26
|
||||
{{-0.1736482f, (1.0f / Engine::GetDisplayAspectRatio()) * 0.75f * -0.9848078f},
|
||||
{0.4131759f, 0.0075961f},
|
||||
{1.0f, 1.0f, 1.0f, 1.0f}}, // 27
|
||||
{{-0.0000000f, (1.0f / Engine::GetDisplayAspectRatio()) * 0.75f * -1.0000000f},
|
||||
{0.5000000f, 0.0000000f},
|
||||
{1.0f, 1.0f, 1.0f, 1.0f}}, // 28
|
||||
{{0.1736482f, (1.0f / Engine::GetDisplayAspectRatio()) * 0.75f * -0.9848078f},
|
||||
{0.5868241f, 0.0075961f},
|
||||
{1.0f, 1.0f, 1.0f, 1.0f}}, // 29
|
||||
{{0.3420201f, (1.0f / Engine::GetDisplayAspectRatio()) * 0.75f * -0.9396926f},
|
||||
{0.6710101f, 0.0301537f},
|
||||
{1.0f, 1.0f, 1.0f, 1.0f}}, // 30
|
||||
{{0.5000000f, (1.0f / Engine::GetDisplayAspectRatio()) * 0.75f * -0.8660254f},
|
||||
{0.7500000f, 0.0669873f},
|
||||
{1.0f, 1.0f, 1.0f, 1.0f}}, // 31
|
||||
{{0.6427876f, (1.0f / Engine::GetDisplayAspectRatio()) * 0.75f * -0.7660444f},
|
||||
{0.8213938f, 0.1169778f},
|
||||
{1.0f, 1.0f, 1.0f, 1.0f}}, // 32
|
||||
{{0.7660444f, (1.0f / Engine::GetDisplayAspectRatio()) * 0.75f * -0.6427876f},
|
||||
{0.8830222f, 0.1786062f},
|
||||
{1.0f, 1.0f, 1.0f, 1.0f}}, // 33
|
||||
{{0.8660254f, (1.0f / Engine::GetDisplayAspectRatio()) * 0.75f * -0.5000000f},
|
||||
{0.9330127f, 0.2500000f},
|
||||
{1.0f, 1.0f, 1.0f, 1.0f}}, // 34
|
||||
{{0.9396926f, (1.0f / Engine::GetDisplayAspectRatio()) * 0.75f * -0.3420201f},
|
||||
{0.9698463f, 0.3289899f},
|
||||
{1.0f, 1.0f, 1.0f, 1.0f}}, // 35
|
||||
{{0.9848078f, (1.0f / Engine::GetDisplayAspectRatio()) * 0.75f * -0.1736482f},
|
||||
{0.9924039f, 0.4131759f},
|
||||
{1.0f, 1.0f, 1.0f, 1.0f}} // 36
|
||||
{{0.0000000f, 1 * 0.0000000f}, {0.5000000f, 0.5000000f}, {1.0f, 1.0f, 1.0f, 1.0f}}, // 0 Center
|
||||
{{1.0000000f, 1 * 0.0000000f}, {1.0000000f, 0.5000000f}, {1.0f, 1.0f, 1.0f, 1.0f}}, // 1
|
||||
{{0.9848078f, 1 * 0.1736482f}, {0.9924039f, 0.5868241f}, {1.0f, 1.0f, 1.0f, 1.0f}}, // 2
|
||||
{{0.9396926f, 1 * 0.3420201f}, {0.9698463f, 0.6710101f}, {1.0f, 1.0f, 1.0f, 1.0f}}, // 3
|
||||
{{0.8660254f, 1 * 0.5000000f}, {0.9330127f, 0.7500000f}, {1.0f, 1.0f, 1.0f, 1.0f}}, // 4
|
||||
{{0.7660444f, 1 * 0.6427876f}, {0.8830222f, 0.8213938f}, {1.0f, 1.0f, 1.0f, 1.0f}}, // 5
|
||||
{{0.6427876f, 1 * 0.7660444f}, {0.8213938f, 0.8830222f}, {1.0f, 1.0f, 1.0f, 1.0f}}, // 6
|
||||
{{0.5000000f, 1 * 0.8660254f}, {0.7500000f, 0.9330127f}, {1.0f, 1.0f, 1.0f, 1.0f}}, // 7
|
||||
{{0.3420201f, 1 * 0.9396926f}, {0.6710101f, 0.9698463f}, {1.0f, 1.0f, 1.0f, 1.0f}}, // 8
|
||||
{{0.1736482f, 1 * 0.9848078f}, {0.5868241f, 0.9924039f}, {1.0f, 1.0f, 1.0f, 1.0f}}, // 9
|
||||
{{0.0000000f, 1 * 1.0000000f}, {0.5000000f, 1.0000000f}, {1.0f, 1.0f, 1.0f, 1.0f}}, // 10
|
||||
{{-0.1736482f, 1 * 0.9848078f}, {0.4131759f, 0.9924039f}, {1.0f, 1.0f, 1.0f, 1.0f}}, // 11
|
||||
{{-0.3420201f, 1 * 0.9396926f}, {0.3289899f, 0.9698463f}, {1.0f, 1.0f, 1.0f, 1.0f}}, // 12
|
||||
{{-0.5000000f, 1 * 0.8660254f}, {0.2500000f, 0.9330127f}, {1.0f, 1.0f, 1.0f, 1.0f}}, // 13
|
||||
{{-0.6427876f, 1 * 0.7660444f}, {0.1786062f, 0.8830222f}, {1.0f, 1.0f, 1.0f, 1.0f}}, // 14
|
||||
{{-0.7660444f, 1 * 0.6427876f}, {0.1169778f, 0.8213938f}, {1.0f, 1.0f, 1.0f, 1.0f}}, // 15
|
||||
{{-0.8660254f, 1 * 0.5000000f}, {0.0669873f, 0.7500000f}, {1.0f, 1.0f, 1.0f, 1.0f}}, // 16
|
||||
{{-0.9396926f, 1 * 0.3420201f}, {0.0301537f, 0.6710101f}, {1.0f, 1.0f, 1.0f, 1.0f}}, // 17
|
||||
{{-0.9848078f, 1 * 0.1736482f}, {0.0075961f, 0.5868241f}, {1.0f, 1.0f, 1.0f, 1.0f}}, // 18
|
||||
{{-1.0000000f, 1 * 0.0000000f}, {0.0000000f, 0.5000000f}, {1.0f, 1.0f, 1.0f, 1.0f}}, // 19
|
||||
{{-0.9848078f, 1 * -0.1736482f}, {0.0075961f, 0.4131759f}, {1.0f, 1.0f, 1.0f, 1.0f}}, // 20
|
||||
{{-0.9396926f, 1 * -0.3420201f}, {0.0301537f, 0.3289899f}, {1.0f, 1.0f, 1.0f, 1.0f}}, // 21
|
||||
{{-0.8660254f, 1 * -0.5000000f}, {0.0669873f, 0.2500000f}, {1.0f, 1.0f, 1.0f, 1.0f}}, // 22
|
||||
{{-0.7660444f, 1 * -0.6427876f}, {0.1169778f, 0.1786062f}, {1.0f, 1.0f, 1.0f, 1.0f}}, // 23
|
||||
{{-0.6427876f, 1 * -0.7660444f}, {0.1786062f, 0.1169778f}, {1.0f, 1.0f, 1.0f, 1.0f}}, // 24
|
||||
{{-0.5000000f, 1 * -0.8660254f}, {0.2500000f, 0.0669873f}, {1.0f, 1.0f, 1.0f, 1.0f}}, // 25
|
||||
{{-0.3420201f, 1 * -0.9396926f}, {0.3289899f, 0.0301537f}, {1.0f, 1.0f, 1.0f, 1.0f}}, // 26
|
||||
{{-0.1736482f, 1 * -0.9848078f}, {0.4131759f, 0.0075961f}, {1.0f, 1.0f, 1.0f, 1.0f}}, // 27
|
||||
{{-0.0000000f, 1 * -1.0000000f}, {0.5000000f, 0.0000000f}, {1.0f, 1.0f, 1.0f, 1.0f}}, // 28
|
||||
{{0.1736482f, 1 * -0.9848078f}, {0.5868241f, 0.0075961f}, {1.0f, 1.0f, 1.0f, 1.0f}}, // 29
|
||||
{{0.3420201f, 1 * -0.9396926f}, {0.6710101f, 0.0301537f}, {1.0f, 1.0f, 1.0f, 1.0f}}, // 30
|
||||
{{0.5000000f, 1 * -0.8660254f}, {0.7500000f, 0.0669873f}, {1.0f, 1.0f, 1.0f, 1.0f}}, // 31
|
||||
{{0.6427876f, 1 * -0.7660444f}, {0.8213938f, 0.1169778f}, {1.0f, 1.0f, 1.0f, 1.0f}}, // 32
|
||||
{{0.7660444f, 1 * -0.6427876f}, {0.8830222f, 0.1786062f}, {1.0f, 1.0f, 1.0f, 1.0f}}, // 33
|
||||
{{0.8660254f, 1 * -0.5000000f}, {0.9330127f, 0.2500000f}, {1.0f, 1.0f, 1.0f, 1.0f}}, // 34
|
||||
{{0.9396926f, 1 * -0.3420201f}, {0.9698463f, 0.3289899f}, {1.0f, 1.0f, 1.0f, 1.0f}}, // 35
|
||||
{{0.9848078f, 1 * -0.1736482f}, {0.9924039f, 0.4131759f}, {1.0f, 1.0f, 1.0f, 1.0f}} // 36
|
||||
},
|
||||
{0, 1, 2, 0, 2, 3, 0, 3, 4, 0, 4, 5, 0, 5, 6, 0, 6, 7, 0, 7, 8, 0, 8, 9, 0, 9, 10,
|
||||
0, 10, 11, 0, 11, 12, 0, 12, 13, 0, 13, 14, 0, 14, 15, 0, 15, 16, 0, 16, 17, 0, 17, 18, 0, 18, 19,
|
||||
@ -365,8 +292,13 @@ namespace ia::iae
|
||||
if (s_activeCamera)
|
||||
s_activeCamera->SetViewport(newWidth, newHeight);
|
||||
|
||||
g_sceneScalingFactor = {(FLOAT32) newWidth / g_sceneDesignViewport.x,
|
||||
(FLOAT32) newHeight / g_sceneDesignViewport.y};
|
||||
UpdateSceneScalingFactor();
|
||||
}
|
||||
|
||||
VOID Renderer::UpdateSceneScalingFactor()
|
||||
{
|
||||
g_sceneScalingFactor = {(FLOAT32) s_screenWidth / s_activeSceneDesignViewport.x,
|
||||
(FLOAT32) s_screenHeight / s_activeSceneDesignViewport.y};
|
||||
IAE_LOG_INFO("Updated Scene Scale Factor: (", g_sceneScalingFactor.x, ", ", g_sceneScalingFactor.y, ")");
|
||||
}
|
||||
|
||||
@ -544,4 +476,16 @@ namespace ia::iae
|
||||
{
|
||||
return (Handle) Renderer::s_circleGeometry;
|
||||
}
|
||||
|
||||
VOID Engine::SetSceneDesignViewport(IN Vec2 value)
|
||||
{
|
||||
if (!value.x || !value.y)
|
||||
{
|
||||
Renderer::s_activeSceneDesignViewport = g_sceneDesignViewport;
|
||||
Renderer::UpdateSceneScalingFactor();
|
||||
return;
|
||||
}
|
||||
Renderer::s_activeSceneDesignViewport = value;
|
||||
Renderer::UpdateSceneScalingFactor();
|
||||
}
|
||||
} // namespace ia::iae
|
||||
Reference in New Issue
Block a user