feat(rendering): add shader-vector fullscreen SRP seam

Generalize the native fullscreen pass and descriptor plumbing so managed SRP can request shader-driven fullscreen stages without being locked to the ColorScale path.

Keep ColorScale as a convenience descriptor mapped to the builtin color-scale shader, and add native fullscreen factory coverage for the new shader-vector path.
This commit is contained in:
2026-04-18 16:08:01 +08:00
parent 2b6d62a127
commit 5fd474d08d
14 changed files with 286 additions and 70 deletions

View File

@@ -11,7 +11,7 @@
#include <XCEngine/Core/Math/Vector2.h>
#include <XCEngine/Core/Math/Vector3.h>
#include <XCEngine/Rendering/Execution/CameraRenderer.h>
#include <XCEngine/Rendering/Passes/BuiltinColorScalePostProcessPass.h>
#include <XCEngine/Rendering/Passes/BuiltinVectorFullscreenPass.h>
#include <XCEngine/Rendering/RenderContext.h>
#include <XCEngine/Rendering/RenderSurface.h>
#include <XCEngine/Resources/BuiltinResources.h>
@@ -165,9 +165,9 @@ void PostProcessSceneTest::SetUp() {
mMesh = CreateQuadMesh();
mTexture = CreateCheckerTexture();
mMaterial = CreateQuadMaterial(mTexture);
mPostProcessPasses.AddPass(std::make_unique<Passes::BuiltinColorScalePostProcessPass>(
mPostProcessPasses.AddPass(std::make_unique<Passes::BuiltinVectorFullscreenPass>(
Vector4(1.0f, 0.75f, 0.75f, 1.0f)));
mPostProcessPasses.AddPass(std::make_unique<Passes::BuiltinColorScalePostProcessPass>(
mPostProcessPasses.AddPass(std::make_unique<Passes::BuiltinVectorFullscreenPass>(
Vector4(0.55f, 0.95f, 1.0f, 1.0f)));
BuildScene();