Fixes
This commit is contained in:
@ -37,7 +37,6 @@ namespace ia::iae
|
||||
SDL_GPUDevice *Renderer::s_gpuDevice{};
|
||||
|
||||
SDL_GPUTexture *Renderer::s_renderTargetSceneColor{};
|
||||
SDL_GPUTexture *Renderer::s_renderTargetSceneDepth{};
|
||||
SDL_GPUTexture *Renderer::s_renderTargetDebugDrawColor{};
|
||||
|
||||
Pipeline *Renderer::s_geometryPipeline{};
|
||||
@ -45,6 +44,8 @@ namespace ia::iae
|
||||
|
||||
Renderer::Geometry *Renderer::s_quadGeometry{};
|
||||
|
||||
Vector<Renderer::DrawCommand> Renderer::s_drawCommands;
|
||||
|
||||
VOID Renderer::Initialize()
|
||||
{
|
||||
if (!(s_gpuDevice = SDL_CreateGPUDevice(SDL_GPU_SHADERFORMAT_SPIRV, Engine::IsDebugMode(), nullptr)))
|
||||
@ -97,14 +98,6 @@ namespace ia::iae
|
||||
s_state.ColorTargetInfo.load_op = SDL_GPU_LOADOP_CLEAR;
|
||||
s_state.ColorTargetInfo.store_op = SDL_GPU_STOREOP_STORE;
|
||||
|
||||
s_state.DepthStencilTargetInfo.cycle = true;
|
||||
s_state.DepthStencilTargetInfo.clear_depth = 0;
|
||||
s_state.DepthStencilTargetInfo.clear_stencil = 0;
|
||||
s_state.DepthStencilTargetInfo.load_op = SDL_GPU_LOADOP_CLEAR;
|
||||
s_state.DepthStencilTargetInfo.store_op = SDL_GPU_STOREOP_STORE;
|
||||
s_state.DepthStencilTargetInfo.stencil_load_op = SDL_GPU_LOADOP_CLEAR;
|
||||
s_state.DepthStencilTargetInfo.stencil_store_op = SDL_GPU_STOREOP_STORE;
|
||||
|
||||
s_quadGeometry = CreateGeometry(
|
||||
{
|
||||
{glm::vec3{0, 1, 0}, glm::vec2{0, 1}, glm::vec4{1.0f, 1.0f, 1.0f, 1.0f}},
|
||||
@ -126,7 +119,6 @@ namespace ia::iae
|
||||
delete s_geometryPipeline;
|
||||
delete s_postprocessPipeline;
|
||||
|
||||
GPUResourceManager::DestroyTexture(s_renderTargetSceneDepth);
|
||||
GPUResourceManager::DestroyTexture(s_renderTargetSceneColor);
|
||||
GPUResourceManager::DestroyTexture(s_renderTargetDebugDrawColor);
|
||||
|
||||
@ -144,9 +136,8 @@ namespace ia::iae
|
||||
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,
|
||||
&s_state.DepthStencilTargetInfo);
|
||||
nullptr);
|
||||
|
||||
SDL_BindGPUGraphicsPipeline(s_state.ActiveRenderPass, s_geometryPipeline->GetHandle());
|
||||
SDL_PushGPUVertexUniformData(
|
||||
@ -200,16 +191,11 @@ namespace ia::iae
|
||||
s_screenWidth = newWidth;
|
||||
s_screenHeight = newHeight;
|
||||
|
||||
if (s_renderTargetSceneDepth)
|
||||
GPUResourceManager::DestroyTexture(s_renderTargetSceneDepth);
|
||||
if (s_renderTargetSceneColor)
|
||||
GPUResourceManager::DestroyTexture(s_renderTargetSceneColor);
|
||||
if (s_renderTargetDebugDrawColor)
|
||||
GPUResourceManager::DestroyTexture(s_renderTargetDebugDrawColor);
|
||||
|
||||
s_renderTargetSceneDepth =
|
||||
GPUResourceManager::CreateTexture(SDL_GPU_TEXTUREUSAGE_DEPTH_STENCIL_TARGET, s_screenWidth, s_screenHeight,
|
||||
nullptr, SDL_GPU_TEXTUREFORMAT_D16_UNORM);
|
||||
s_renderTargetSceneColor = GPUResourceManager::CreateTexture(
|
||||
SDL_GPU_TEXTUREUSAGE_COLOR_TARGET | SDL_GPU_TEXTUREUSAGE_SAMPLER, s_screenWidth, s_screenHeight, nullptr,
|
||||
SDL_GetGPUSwapchainTextureFormat(s_gpuDevice, g_windowHandle));
|
||||
|
||||
@ -52,11 +52,16 @@ namespace ia::iae
|
||||
SDL_GPURenderPass* ActiveRenderPass{};
|
||||
SDL_GPUCommandBuffer* ActiveCommandBuffer{};
|
||||
SDL_GPUColorTargetInfo ColorTargetInfo{};
|
||||
SDL_GPUDepthStencilTargetInfo DepthStencilTargetInfo{};
|
||||
|
||||
class CameraComponent *ActiveCamera{};
|
||||
};
|
||||
|
||||
struct DrawCommand
|
||||
{
|
||||
State DrawState{};
|
||||
Geometry* GeometryHandle{};
|
||||
};
|
||||
|
||||
public:
|
||||
STATIC VOID Initialize();
|
||||
STATIC VOID Terminate();
|
||||
@ -87,11 +92,11 @@ namespace ia::iae
|
||||
STATIC INT32 s_screenHeight;
|
||||
STATIC SDL_GPUDevice *s_gpuDevice;
|
||||
STATIC SDL_GPUTexture *s_renderTargetSceneColor;
|
||||
STATIC SDL_GPUTexture *s_renderTargetSceneDepth;
|
||||
STATIC SDL_GPUTexture *s_renderTargetDebugDrawColor;
|
||||
STATIC Pipeline* s_geometryPipeline;
|
||||
STATIC Pipeline* s_postprocessPipeline;
|
||||
STATIC Geometry* s_quadGeometry;
|
||||
STATIC Vector<DrawCommand> s_drawCommands;
|
||||
|
||||
friend class Engine;
|
||||
};
|
||||
|
||||
@ -1 +1,7 @@
|
||||
cmake -G Ninja -S . -B ./build-android -DCMAKE_TOOLCHAIN_FILE="%NDK_PATH%\build\cmake\android.toolchain.cmake" -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-35 -DCMAKE_BUILD_TYPE=Debug
|
||||
setlocal
|
||||
SET PATH=%PATH%;./Tools
|
||||
|
||||
cmake -G Ninja -S . -B ./build-android-x64 -DCMAKE_TOOLCHAIN_FILE="Android/android-ndk-r27d/build/cmake/android.toolchain.cmake" -DANDROID_ABI=x86_64 -DANDROID_PLATFORM=android-35 -DCMAKE_BUILD_TYPE=Debug
|
||||
cmake -G Ninja -S . -B ./build-android-armv8 -DCMAKE_TOOLCHAIN_FILE="Android/android-ndk-r27d/build/cmake/android.toolchain.cmake" -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-35 -DCMAKE_BUILD_TYPE=Debug
|
||||
cmake --build ./build-android-x64
|
||||
cmake --build ./build-android-armv8
|
||||
|
||||
2
Vendor/IACore
vendored
2
Vendor/IACore
vendored
Submodule Vendor/IACore updated: 07638ea7b3...ee37b0a02b
Reference in New Issue
Block a user