fix(rendering): refresh managed pipelines on srp environment changes
This commit is contained in:
@@ -23,6 +23,11 @@ size_t& GetManagedRenderPipelineBridgeGenerationStorage() {
|
||||
return s_generation;
|
||||
}
|
||||
|
||||
size_t& GetManagedRenderPipelineEnvironmentGenerationStorage() {
|
||||
static size_t s_generation = 1u;
|
||||
return s_generation;
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
ManagedScriptableRenderPipelineAsset::ManagedScriptableRenderPipelineAsset(
|
||||
@@ -109,11 +114,13 @@ void SetManagedRenderPipelineBridge(
|
||||
std::shared_ptr<const ManagedRenderPipelineBridge> bridge) {
|
||||
GetManagedRenderPipelineBridgeStorage() = std::move(bridge);
|
||||
++GetManagedRenderPipelineBridgeGenerationStorage();
|
||||
++GetManagedRenderPipelineEnvironmentGenerationStorage();
|
||||
}
|
||||
|
||||
void ClearManagedRenderPipelineBridge() {
|
||||
GetManagedRenderPipelineBridgeStorage().reset();
|
||||
++GetManagedRenderPipelineBridgeGenerationStorage();
|
||||
++GetManagedRenderPipelineEnvironmentGenerationStorage();
|
||||
}
|
||||
|
||||
std::shared_ptr<const ManagedRenderPipelineBridge>
|
||||
@@ -121,13 +128,19 @@ GetManagedRenderPipelineBridge() {
|
||||
return GetManagedRenderPipelineBridgeStorage();
|
||||
}
|
||||
|
||||
size_t GetManagedRenderPipelineEnvironmentGeneration() {
|
||||
return GetManagedRenderPipelineEnvironmentGenerationStorage();
|
||||
}
|
||||
|
||||
void SetManagedRenderPipelineAssetDescriptor(
|
||||
const ManagedRenderPipelineAssetDescriptor& descriptor) {
|
||||
GetManagedRenderPipelineAssetDescriptorStorage() = descriptor;
|
||||
++GetManagedRenderPipelineEnvironmentGenerationStorage();
|
||||
}
|
||||
|
||||
void ClearManagedRenderPipelineAssetDescriptor() {
|
||||
GetManagedRenderPipelineAssetDescriptorStorage() = {};
|
||||
++GetManagedRenderPipelineEnvironmentGenerationStorage();
|
||||
}
|
||||
|
||||
ManagedRenderPipelineAssetDescriptor GetManagedRenderPipelineAssetDescriptor() {
|
||||
|
||||
Reference in New Issue
Block a user