Align RenderGraph imported texture ownership
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#include "Rendering/Internal/ShaderVariantUtils.h"
|
||||
#include "Rendering/Pipelines/Internal/BuiltinForwardSceneSetup.h"
|
||||
|
||||
#include <XCEngine/Debug/Logger.h>
|
||||
#include <XCEngine/Rendering/Builtin/BuiltinPassLayoutUtils.h>
|
||||
@@ -12,6 +13,7 @@
|
||||
#include <XCEngine/Rendering/Passes/BuiltinShadowCasterPass.h>
|
||||
#include <array>
|
||||
#include <functional>
|
||||
#include <memory>
|
||||
#include <unordered_map>
|
||||
#define private public
|
||||
#include <XCEngine/Rendering/Pipelines/BuiltinForwardPipeline.h>
|
||||
@@ -102,6 +104,35 @@ void AppendDefaultBuiltinPassResources(ShaderPass& pass) {
|
||||
}
|
||||
}
|
||||
|
||||
class TestResourceViewBackingTexture final : public XCEngine::RHI::RHITexture {
|
||||
public:
|
||||
explicit TestResourceViewBackingTexture(
|
||||
XCEngine::RHI::Format format,
|
||||
XCEngine::RHI::TextureType textureType = XCEngine::RHI::TextureType::Texture2D)
|
||||
: m_format(format)
|
||||
, m_textureType(textureType) {
|
||||
}
|
||||
|
||||
uint32_t GetWidth() const override { return 1u; }
|
||||
uint32_t GetHeight() const override { return 1u; }
|
||||
uint32_t GetDepth() const override { return 1u; }
|
||||
uint32_t GetMipLevels() const override { return 1u; }
|
||||
XCEngine::RHI::Format GetFormat() const override { return m_format; }
|
||||
XCEngine::RHI::TextureType GetTextureType() const override { return m_textureType; }
|
||||
XCEngine::RHI::ResourceStates GetState() const override { return m_state; }
|
||||
void SetState(XCEngine::RHI::ResourceStates state) override { m_state = state; }
|
||||
void* GetNativeHandle() override { return nullptr; }
|
||||
const std::string& GetName() const override { return m_name; }
|
||||
void SetName(const std::string& name) override { m_name = name; }
|
||||
void Shutdown() override {}
|
||||
|
||||
private:
|
||||
XCEngine::RHI::Format m_format = XCEngine::RHI::Format::Unknown;
|
||||
XCEngine::RHI::TextureType m_textureType = XCEngine::RHI::TextureType::Texture2D;
|
||||
XCEngine::RHI::ResourceStates m_state = XCEngine::RHI::ResourceStates::Common;
|
||||
std::string m_name;
|
||||
};
|
||||
|
||||
class TestResourceView final : public XCEngine::RHI::RHIResourceView {
|
||||
public:
|
||||
TestResourceView(
|
||||
@@ -136,10 +167,16 @@ public:
|
||||
return m_format;
|
||||
}
|
||||
|
||||
XCEngine::RHI::RHITexture* GetTextureResource() const override {
|
||||
return m_texture.get();
|
||||
}
|
||||
|
||||
private:
|
||||
XCEngine::RHI::ResourceViewType m_viewType;
|
||||
XCEngine::RHI::ResourceViewDimension m_dimension;
|
||||
XCEngine::RHI::Format m_format;
|
||||
std::unique_ptr<TestResourceViewBackingTexture> m_texture =
|
||||
std::make_unique<TestResourceViewBackingTexture>(m_format);
|
||||
};
|
||||
|
||||
class MockForwardPipelineLayout final : public XCEngine::RHI::RHIPipelineLayout {
|
||||
@@ -1188,6 +1225,8 @@ TEST(SceneRenderFeaturePass_Test, ReadsSourceColorTextureAndCopiesSourceSurfaceT
|
||||
|
||||
TEST(BuiltinForwardPipeline_Test, RegistersBuiltinDefaultForwardSceneFeatures) {
|
||||
BuiltinForwardPipeline pipeline;
|
||||
XCEngine::Rendering::Pipelines::Internal::ConfigureBuiltinForwardSceneDrawBackend(
|
||||
pipeline);
|
||||
|
||||
ASSERT_EQ(pipeline.GetForwardSceneFeaturePassCount(), 2u);
|
||||
ASSERT_NE(pipeline.GetForwardSceneFeaturePass(0u), nullptr);
|
||||
@@ -1414,6 +1453,8 @@ TEST(BuiltinForwardPipeline_Test, RegistersAdditionalForwardSceneFeaturePasses)
|
||||
|
||||
TEST(BuiltinForwardPipeline_Test, RecordsActiveFeatureInjectionPassesIntoMainSceneGraph) {
|
||||
BuiltinForwardPipeline pipeline;
|
||||
XCEngine::Rendering::Pipelines::Internal::ConfigureBuiltinForwardSceneDrawBackend(
|
||||
pipeline);
|
||||
|
||||
RenderGraph graph = {};
|
||||
RenderGraphBuilder graphBuilder(graph);
|
||||
|
||||
Reference in New Issue
Block a user