refactor(srp): move renderer request helpers out of core

This commit is contained in:
2026-04-19 05:34:43 +08:00
parent 9da85e9ad8
commit fe7e6dddf3
11 changed files with 240 additions and 24 deletions

View File

@@ -1133,6 +1133,88 @@ TEST_F(
EXPECT_FALSE(request.directionalShadow.IsValid());
}
TEST_F(
MonoScriptRuntimeTest,
ScriptableRenderContextPublicApiSurfaceKeepsRendererHelpersOutOfCore) {
Scene* runtimeScene =
CreateScene("ScriptableRenderContextApiSurfaceScene");
GameObject* selectionObject =
runtimeScene->CreateGameObject(
"ScriptableRenderContextApiSurfaceSelection");
ScriptComponent* selectionScript =
AddScript(
selectionObject,
"Gameplay",
"ScriptableRenderContextApiSurfaceProbe");
ASSERT_NE(selectionScript, nullptr);
engine->OnRuntimeStart(runtimeScene);
engine->OnUpdate(0.016f);
bool hasPublicContextRecordScene = false;
bool hasPublicContextRecordOpaqueScenePhase = false;
bool hasPublicContextRecordBeforeOpaqueInjection = false;
bool hasPublicContextRecordShaderVectorFullscreenPass = false;
bool hasPublicRendererRecordOpaqueScenePhase = false;
bool hasPublicRendererRecordShaderVectorFullscreenPass = false;
bool hasPublicCameraRequestContextHasDirectionalShadow = false;
bool hasPublicCameraRequestContextClearDirectionalShadow = false;
bool hasPublicRendererCameraRequestContextHasDirectionalShadow = false;
bool hasPublicRendererCameraRequestContextClearDirectionalShadow = false;
EXPECT_TRUE(runtime->TryGetFieldValue(
selectionScript,
"HasPublicContextRecordScene",
hasPublicContextRecordScene));
EXPECT_TRUE(runtime->TryGetFieldValue(
selectionScript,
"HasPublicContextRecordOpaqueScenePhase",
hasPublicContextRecordOpaqueScenePhase));
EXPECT_TRUE(runtime->TryGetFieldValue(
selectionScript,
"HasPublicContextRecordBeforeOpaqueInjection",
hasPublicContextRecordBeforeOpaqueInjection));
EXPECT_TRUE(runtime->TryGetFieldValue(
selectionScript,
"HasPublicContextRecordShaderVectorFullscreenPass",
hasPublicContextRecordShaderVectorFullscreenPass));
EXPECT_TRUE(runtime->TryGetFieldValue(
selectionScript,
"HasPublicRendererRecordOpaqueScenePhase",
hasPublicRendererRecordOpaqueScenePhase));
EXPECT_TRUE(runtime->TryGetFieldValue(
selectionScript,
"HasPublicRendererRecordShaderVectorFullscreenPass",
hasPublicRendererRecordShaderVectorFullscreenPass));
EXPECT_TRUE(runtime->TryGetFieldValue(
selectionScript,
"HasPublicCameraRequestContextHasDirectionalShadow",
hasPublicCameraRequestContextHasDirectionalShadow));
EXPECT_TRUE(runtime->TryGetFieldValue(
selectionScript,
"HasPublicCameraRequestContextClearDirectionalShadow",
hasPublicCameraRequestContextClearDirectionalShadow));
EXPECT_TRUE(runtime->TryGetFieldValue(
selectionScript,
"HasPublicRendererCameraRequestContextHasDirectionalShadow",
hasPublicRendererCameraRequestContextHasDirectionalShadow));
EXPECT_TRUE(runtime->TryGetFieldValue(
selectionScript,
"HasPublicRendererCameraRequestContextClearDirectionalShadow",
hasPublicRendererCameraRequestContextClearDirectionalShadow));
EXPECT_TRUE(hasPublicContextRecordScene);
EXPECT_FALSE(hasPublicContextRecordOpaqueScenePhase);
EXPECT_FALSE(hasPublicContextRecordBeforeOpaqueInjection);
EXPECT_FALSE(hasPublicContextRecordShaderVectorFullscreenPass);
EXPECT_TRUE(hasPublicRendererRecordOpaqueScenePhase);
EXPECT_TRUE(hasPublicRendererRecordShaderVectorFullscreenPass);
EXPECT_FALSE(hasPublicCameraRequestContextHasDirectionalShadow);
EXPECT_FALSE(hasPublicCameraRequestContextClearDirectionalShadow);
EXPECT_TRUE(hasPublicRendererCameraRequestContextHasDirectionalShadow);
EXPECT_TRUE(hasPublicRendererCameraRequestContextClearDirectionalShadow);
}
TEST_F(
MonoScriptRuntimeTest,
ManagedRenderContextExposesCameraDataThroughRenderingData) {