feat(srp): add camera-driven universal renderer selection
This commit is contained in:
@@ -389,6 +389,11 @@ namespace XCEngine
|
||||
internal static extern int Rendering_ScriptableRenderContext_GetStage(
|
||||
ulong nativeHandle);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall)]
|
||||
internal static extern int
|
||||
Rendering_ScriptableRenderContext_GetRendererIndex(
|
||||
ulong nativeHandle);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall)]
|
||||
internal static extern int
|
||||
Rendering_ScriptableRenderContext_GetSourceColorTextureHandle(
|
||||
@@ -473,6 +478,11 @@ namespace XCEngine
|
||||
ulong nativeHandle,
|
||||
ulong rasterPassHandle);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall)]
|
||||
internal static extern int
|
||||
Rendering_ScriptableRenderPipelinePlanningContext_GetRendererIndex(
|
||||
ulong nativeHandle);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall)]
|
||||
internal static extern bool
|
||||
Rendering_ScriptableRenderPipelinePlanningContext_IsStageRequested(
|
||||
@@ -802,6 +812,22 @@ namespace XCEngine
|
||||
Rendering_CameraRenderRequestContext_GetRenderedRequestCount(
|
||||
ulong nativeHandle);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall)]
|
||||
internal static extern ulong
|
||||
Rendering_CameraRenderRequestContext_GetCameraGameObjectUUID(
|
||||
ulong nativeHandle);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall)]
|
||||
internal static extern int
|
||||
Rendering_CameraRenderRequestContext_GetRendererIndex(
|
||||
ulong nativeHandle);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall)]
|
||||
internal static extern void
|
||||
Rendering_CameraRenderRequestContext_SetRendererIndex(
|
||||
ulong nativeHandle,
|
||||
int rendererIndex);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall)]
|
||||
internal static extern bool
|
||||
Rendering_CameraRenderRequestContext_GetHasDirectionalShadow(
|
||||
|
||||
@@ -21,6 +21,38 @@ namespace XCEngine.Rendering
|
||||
.Rendering_CameraRenderRequestContext_GetRenderedRequestCount(
|
||||
m_nativeHandle);
|
||||
|
||||
public Camera camera
|
||||
{
|
||||
get
|
||||
{
|
||||
ulong cameraGameObjectUUID =
|
||||
InternalCalls
|
||||
.Rendering_CameraRenderRequestContext_GetCameraGameObjectUUID(
|
||||
m_nativeHandle);
|
||||
if (cameraGameObjectUUID == 0)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
GameObject gameObject =
|
||||
new GameObject(cameraGameObjectUUID);
|
||||
return gameObject.GetComponent<Camera>();
|
||||
}
|
||||
}
|
||||
|
||||
public int rendererIndex
|
||||
{
|
||||
get =>
|
||||
InternalCalls
|
||||
.Rendering_CameraRenderRequestContext_GetRendererIndex(
|
||||
m_nativeHandle);
|
||||
set =>
|
||||
InternalCalls
|
||||
.Rendering_CameraRenderRequestContext_SetRendererIndex(
|
||||
m_nativeHandle,
|
||||
value);
|
||||
}
|
||||
|
||||
internal ulong nativeHandle =>
|
||||
m_nativeHandle;
|
||||
}
|
||||
|
||||
@@ -15,6 +15,11 @@ namespace XCEngine.Rendering
|
||||
(CameraFrameStage)InternalCalls.Rendering_ScriptableRenderContext_GetStage(
|
||||
m_nativeHandle);
|
||||
|
||||
public int rendererIndex =>
|
||||
InternalCalls
|
||||
.Rendering_ScriptableRenderContext_GetRendererIndex(
|
||||
m_nativeHandle);
|
||||
|
||||
public RenderGraphTextureHandle sourceColorTexture =>
|
||||
RenderGraphTextureHandle.FromNativeIndex(
|
||||
InternalCalls
|
||||
|
||||
@@ -12,6 +12,11 @@ namespace XCEngine.Rendering
|
||||
m_nativeHandle = nativeHandle;
|
||||
}
|
||||
|
||||
public int rendererIndex =>
|
||||
InternalCalls
|
||||
.Rendering_ScriptableRenderPipelinePlanningContext_GetRendererIndex(
|
||||
m_nativeHandle);
|
||||
|
||||
public bool IsStageRequested(
|
||||
CameraFrameStage stage)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user