Engine API Enhancements
This commit is contained in:
@ -19,6 +19,8 @@
|
||||
#include <Renderer/EmbeddedShader.hpp>
|
||||
#include <Renderer/Renderer.hpp>
|
||||
|
||||
#include <WorldManager.hpp>
|
||||
|
||||
#include <backends/imgui_impl_sdl3.h>
|
||||
#include <backends/imgui_impl_sdlgpu3.h>
|
||||
|
||||
@ -88,7 +90,7 @@ namespace ia::iae
|
||||
|
||||
DebugDraw::Initialize();
|
||||
|
||||
s_state.ColorTargetInfo.clear_color = SDL_FColor{0.33f, 0.33f, 0.33f, 1.0f};
|
||||
s_state.ColorTargetInfo.clear_color = SDL_FColor{0.0f, 0.0f, 0.0f, 1.0f};
|
||||
s_state.ColorTargetInfo.load_op = SDL_GPU_LOADOP_CLEAR;
|
||||
s_state.ColorTargetInfo.store_op = SDL_GPU_STOREOP_STORE;
|
||||
|
||||
@ -138,6 +140,8 @@ namespace ia::iae
|
||||
if (!(s_state.ActiveCommandBuffer = SDL_AcquireGPUCommandBuffer(s_gpuDevice)))
|
||||
THROW_UNKNOWN("Failed to acquire SDL GPU command buffer: ", SDL_GetError());
|
||||
|
||||
const auto clearColor = WorldManager::GetActiveScene()->BackgroundColor().GetAsFloatVec();
|
||||
s_state.ColorTargetInfo.clear_color = SDL_FColor{clearColor.x, clearColor.y, clearColor.z, 1.0f};
|
||||
s_state.ColorTargetInfo.texture = s_renderTargetSceneColor;
|
||||
s_state.DepthStencilTargetInfo.texture = s_renderTargetSceneDepth;
|
||||
s_state.ActiveRenderPass = SDL_BeginGPURenderPass(s_state.ActiveCommandBuffer, &s_state.ColorTargetInfo, 1,
|
||||
@ -160,6 +164,8 @@ namespace ia::iae
|
||||
DebugDraw::Render();
|
||||
const auto imDrawData = ImGui::GetDrawData();
|
||||
ImGui_ImplSDLGPU3_PrepareDrawData(imDrawData, s_state.ActiveCommandBuffer);
|
||||
s_state.ColorTargetInfo.load_op = SDL_GPU_LOADOP_CLEAR;
|
||||
s_state.ColorTargetInfo.clear_color = SDL_FColor{0.0f, 0.0f, 0.0f, 0.0f};
|
||||
s_state.ColorTargetInfo.texture = s_renderTargetDebugDrawColor;
|
||||
s_state.ActiveRenderPass =
|
||||
SDL_BeginGPURenderPass(s_state.ActiveCommandBuffer, &s_state.ColorTargetInfo, 1, nullptr);
|
||||
@ -174,6 +180,8 @@ namespace ia::iae
|
||||
if (!swapChainTexture)
|
||||
return;
|
||||
|
||||
s_state.ColorTargetInfo.clear_color = SDL_FColor{1.0f, 1.0f, 1.0f, 1.0f};
|
||||
s_state.ColorTargetInfo.load_op = SDL_GPU_LOADOP_CLEAR;
|
||||
s_state.ColorTargetInfo.texture = swapChainTexture;
|
||||
|
||||
s_state.ActiveRenderPass =
|
||||
@ -285,6 +293,11 @@ namespace ia::iae
|
||||
|
||||
namespace ia::iae
|
||||
{
|
||||
IVec2 Engine::GetDisplayExtent()
|
||||
{
|
||||
return IVec2(Renderer::s_screenWidth, Renderer::s_screenHeight);
|
||||
}
|
||||
|
||||
VOID Engine::SetActiveCamera(IN CameraComponent *cameraComponent)
|
||||
{
|
||||
Renderer::s_state.ActiveCamera = cameraComponent;
|
||||
|
||||
Reference in New Issue
Block a user