|
|
@ -288,6 +288,8 @@ static bool IsInitialized() |
|
|
return true; |
|
|
return true; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
extern "C" void UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API PSSR_DestroyContext(uint32_t contextIndex); |
|
|
|
|
|
|
|
|
extern "C" int32_t UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API PSSR_CreateContext(const pssr_init_params_t* params, Core::Texture** outputColorTexture) |
|
|
extern "C" int32_t UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API PSSR_CreateContext(const pssr_init_params_t* params, Core::Texture** outputColorTexture) |
|
|
{ |
|
|
{ |
|
|
if (!IsInitialized()) |
|
|
if (!IsInitialized()) |
|
|
@ -305,6 +307,11 @@ extern "C" int32_t UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API PSSR_CreateContext |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
PssrContext& context = s_contexts[params->contextIndex]; |
|
|
PssrContext& context = s_contexts[params->contextIndex]; |
|
|
|
|
|
if (context.mfsrContext != nullptr) |
|
|
|
|
|
{ |
|
|
|
|
|
// If for some reason this context wasn't properly destroyed previously, make sure we do that now
|
|
|
|
|
|
PSSR_DestroyContext(params->contextIndex); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
MfsrContextInitParameters initParams = {}; |
|
|
MfsrContextInitParameters initParams = {}; |
|
|
initParams.init(); |
|
|
initParams.init(); |
|
|
@ -592,8 +599,8 @@ static void UNITY_INTERFACE_API OnRenderEventAndData(int eventID, void* data) |
|
|
} |
|
|
} |
|
|
case 2: // Destroy PSSR context
|
|
|
case 2: // Destroy PSSR context
|
|
|
{ |
|
|
{ |
|
|
auto* params = (pssr_destroy_params_t*)data; |
|
|
|
|
|
PSSR_DestroyContext(params->contextIndex); |
|
|
|
|
|
|
|
|
uint32_t contextIndex = (uint32_t)(intptr_t)data; |
|
|
|
|
|
PSSR_DestroyContext(contextIndex); |
|
|
break; |
|
|
break; |
|
|
} |
|
|
} |
|
|
case 3: // Request PSSR capture
|
|
|
case 3: // Request PSSR capture
|
|
|
|