Optimized Renderer

This commit is contained in:
Isuru Samarathunga
2025-10-21 10:44:11 +05:30
parent b10aacaee7
commit 86ed9346aa
21 changed files with 516 additions and 241 deletions

View File

@ -24,10 +24,15 @@
#include <SDL3/SDL_iostream.h>
#include <ResourceManager.hpp>
namespace ia::iae
{
EXTERN SDL_Window *g_windowHandle;
SIZE_T g_resourceNameCounter = 1;
SIZE_T g_resourceNameCounter {1};
Vec2 g_sceneScalingFactor{1.0f};
Vec2 g_sceneDesignViewport{1.0f};
BOOL Engine::IsDebugMode()
{
@ -96,8 +101,12 @@ namespace ia::iae
{
const auto data = ReadBinaryAsset(path);
const auto handle = CreateImage(name, data.data(), data.size());
if (!resizeToWidth || !resizeToHeight)
return handle;
const auto extent = GetImageExtent(handle);
return (resizeToWidth && resizeToHeight) ? RescaleImage(handle, {(FLOAT32)resizeToWidth/(FLOAT32)extent.x, (FLOAT32)resizeToHeight/(FLOAT32)extent.y}) : handle;
const auto newHandle = ResourceManager::RescaleImage(
handle, {(FLOAT32) resizeToWidth / (FLOAT32) extent.x, (FLOAT32) resizeToHeight / (FLOAT32) extent.y}, true);
return newHandle;
}
Handle Engine::CreateSoundFromFile(IN CONST String &name, IN CONST String &path)
@ -108,11 +117,16 @@ namespace ia::iae
Handle Engine::RescaleImage(IN CONST String &name, IN Vec2 factor)
{
return RescaleImage(GetImage(name), factor);
return ResourceManager::RescaleImage(GetImage(name), factor);
}
String Engine::GetUniqueResourceName()
{
return BuildString("__res_", g_resourceNameCounter++);
}
Vec2 Engine::GetSceneScalingFactor()
{
return g_sceneScalingFactor;
}
} // namespace ia::iae