Align SRP boundaries and editor windowing

This commit is contained in:
2026-04-26 17:14:32 +08:00
parent a8256b05cd
commit b8599a8aff
38 changed files with 696 additions and 650 deletions

View File

@@ -904,12 +904,6 @@ namespace XCEngine
string shaderPassName,
ref Rendering.RenderStateBlock renderStateBlock);
[MethodImpl(MethodImplOptions.InternalCall)]
internal static extern bool
Rendering_ScriptableRenderContext_RecordSceneInjectionPoint(
ulong nativeHandle,
int injectionPoint);
[MethodImpl(MethodImplOptions.InternalCall)]
internal static extern int
Rendering_CameraRenderRequestContext_GetRenderedBaseCameraCount(

View File

@@ -53,7 +53,7 @@ namespace XCEngine.Rendering
value);
}
public bool hasDirectionalShadow =>
internal bool hasDirectionalShadow =>
InternalCalls
.Rendering_CameraRenderRequestContext_GetHasDirectionalShadow(
m_nativeHandle);
@@ -78,7 +78,7 @@ namespace XCEngine.Rendering
}
}
public void ClearDirectionalShadow()
internal void ClearDirectionalShadow()
{
InternalCalls
.Rendering_CameraRenderRequestContext_ClearDirectionalShadow(

View File

@@ -2,7 +2,7 @@ using XCEngine;
namespace XCEngine.Rendering
{
// SRP v1 managed recording surface. Scene recording still delegates to the
// SRP v1 managed recording surface. Scene draws still delegate to the
// native SceneDrawBackend, and raster-pass recording is limited to the
// fullscreen PostProcess / FinalOutput stages.
public sealed class ScriptableRenderContext
@@ -41,23 +41,14 @@ namespace XCEngine.Rendering
.Rendering_ScriptableRenderContext_GetDepthTargetHandle(
m_nativeHandle));
// Records the default native scene sequence for MainScene or explicit
// scene-pass-request stages. This does not replace the native scene
// extraction / culling / draw backend.
public bool RecordScene()
internal bool RecordScene()
{
return RecordBeforeOpaqueInjection() &&
DrawOpaqueRenderers() &&
RecordAfterOpaqueInjection() &&
RecordBeforeSkyboxInjection() &&
return DrawOpaqueRenderers() &&
DrawSkybox() &&
RecordAfterSkyboxInjection() &&
RecordBeforeTransparentInjection() &&
DrawTransparentRenderers() &&
RecordAfterTransparentInjection();
DrawTransparentRenderers();
}
public bool RecordScenePhase(
internal bool RecordScenePhase(
SceneRenderPhase scenePhase)
{
return InternalCalls
@@ -66,15 +57,6 @@ namespace XCEngine.Rendering
(int)scenePhase);
}
public bool RecordSceneInjectionPoint(
SceneRenderInjectionPoint injectionPoint)
{
return InternalCalls
.Rendering_ScriptableRenderContext_RecordSceneInjectionPoint(
m_nativeHandle,
(int)injectionPoint);
}
public bool DrawRenderers(
SceneRenderPhase scenePhase,
RendererListType rendererListType)
@@ -126,66 +108,12 @@ namespace XCEngine.Rendering
ref renderStateBlock);
}
public bool RecordOpaqueScenePhase()
{
return RecordScenePhase(
SceneRenderPhase.Opaque);
}
public bool RecordSkyboxScenePhase()
{
return RecordScenePhase(
SceneRenderPhase.Skybox);
}
public bool DrawSkybox()
{
return RecordScenePhase(
SceneRenderPhase.Skybox);
}
public bool RecordTransparentScenePhase()
{
return RecordScenePhase(
SceneRenderPhase.Transparent);
}
public bool RecordBeforeOpaqueInjection()
{
return RecordSceneInjectionPoint(
SceneRenderInjectionPoint.BeforeOpaque);
}
public bool RecordAfterOpaqueInjection()
{
return RecordSceneInjectionPoint(
SceneRenderInjectionPoint.AfterOpaque);
}
public bool RecordBeforeSkyboxInjection()
{
return RecordSceneInjectionPoint(
SceneRenderInjectionPoint.BeforeSkybox);
}
public bool RecordAfterSkyboxInjection()
{
return RecordSceneInjectionPoint(
SceneRenderInjectionPoint.AfterSkybox);
}
public bool RecordBeforeTransparentInjection()
{
return RecordSceneInjectionPoint(
SceneRenderInjectionPoint.BeforeTransparent);
}
public bool RecordAfterTransparentInjection()
{
return RecordSceneInjectionPoint(
SceneRenderInjectionPoint.AfterTransparent);
}
public bool DrawOpaqueRenderers()
{
return DrawRenderers(