Bridge managed render funcs to command buffers
This commit is contained in:
@@ -373,17 +373,12 @@ namespace XCEngine.Rendering
|
||||
break;
|
||||
case RenderGraphRasterPassExecutionKind
|
||||
.ManagedRenderFunc:
|
||||
// Managed command buffers are not bridged into native
|
||||
// graph execution yet, so the render func is invoked
|
||||
// during recording while native records the declared IO.
|
||||
m_renderFunc(
|
||||
new RenderGraphRasterContext(
|
||||
new CommandBuffer(m_passName)));
|
||||
configuredExecution =
|
||||
InternalCalls
|
||||
.Rendering_ScriptableRenderContext_SetRasterPassManagedRenderFuncExecution(
|
||||
m_context.nativeHandle,
|
||||
nativePassHandle);
|
||||
nativePassHandle,
|
||||
m_renderFunc);
|
||||
break;
|
||||
default:
|
||||
configuredExecution = false;
|
||||
@@ -501,5 +496,24 @@ namespace XCEngine.Rendering
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
internal static bool InvokeManagedRenderFunc(
|
||||
Action<RenderGraphRasterContext> renderFunc,
|
||||
string passName,
|
||||
ulong commandBufferHandle)
|
||||
{
|
||||
if (renderFunc == null ||
|
||||
commandBufferHandle == 0ul)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
renderFunc(
|
||||
new RenderGraphRasterContext(
|
||||
new CommandBuffer(
|
||||
passName,
|
||||
commandBufferHandle)));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user