@ -428,41 +428,19 @@ extern "C" void UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API DestroyPssrContext(ui
UNITY_LOG ( s_Log , " Destroyed PSSR context " ) ;
}
// Plugin function to handle a specific rendering event
static void UNITY_INTERFACE_API OnRenderEventAndData ( int eventID , void * data )
{
if ( ! s_mfsrInitialized )
return ;
if ( s_RendererType = = kUnityGfxRendererPS5 & & s_GraphicsPS5 = = nullptr )
return ;
if ( s_RendererType = = kUnityGfxRendererPS5NGGC & & s_GraphicsAgcPS5 = = nullptr )
return ;
// User rendering code
switch ( eventID )
extern " C " void UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API DispatchPssr ( const pssr_dispatch_params_t * params )
{
case 0 : // Create PSSR context
{
auto * params = ( pssr_init_params_t * ) data ;
CreatePssrContext ( params , nullptr ) ;
break ;
}
case 1 : // Execute PSSR
{
auto * params = ( pssr_dispatch_params_t * ) data ;
if ( params - > contextIndex < 0 | | params - > contextIndex > = MaxNumContexts )
{
std : : stringstream msg ;
msg < < " Invalid PSSR context index: " < < params - > contextIndex ;
UNITY_LOG_ERROR ( s_Log , msg . str ( ) . c_str ( ) ) ;
break ;
return ;
}
PssrContext & context = s_contexts [ params - > contextIndex ] ;
if ( context . mfsrContext = = nullptr )
break ;
return ;
// How we obtain a command buffer to dispatch to depends on which graphics API we're using in Unity
sce : : Agc : : DrawCommandBuffer * cmd = nullptr ;
@ -513,6 +491,33 @@ static void UNITY_INTERFACE_API OnRenderEventAndData(int eventID, void* data)
{
s_GraphicsAgcPS5 - > SubmitGraphics ( cmd - > getSubmitPointer ( ) , cmd - > getSubmitSize ( ) ) ;
}
}
// Plugin function to handle a specific rendering event
static void UNITY_INTERFACE_API OnRenderEventAndData ( int eventID , void * data )
{
if ( ! s_mfsrInitialized )
return ;
if ( s_RendererType = = kUnityGfxRendererPS5 & & s_GraphicsPS5 = = nullptr )
return ;
if ( s_RendererType = = kUnityGfxRendererPS5NGGC & & s_GraphicsAgcPS5 = = nullptr )
return ;
// User rendering code
switch ( eventID )
{
case 0 : // Create PSSR context
{
auto * params = ( pssr_init_params_t * ) data ;
CreatePssrContext ( params , nullptr ) ;
break ;
}
case 1 : // Execute PSSR
{
auto * params = ( pssr_dispatch_params_t * ) data ;
DispatchPssr ( params ) ;
break ;
}
case 2 : // Destroy PSSR context