Graphics: Fix issue when unregistering viewer then adding it again before resources are cleaned
This commit is contained in:
@@ -16,6 +16,7 @@
|
||||
#include <NazaraUtils/FixedVector.hpp>
|
||||
#include <NazaraUtils/SparsePtr.hpp>
|
||||
#include <unordered_map>
|
||||
#include <vector>
|
||||
|
||||
namespace Nz
|
||||
{
|
||||
@@ -79,6 +80,7 @@ namespace Nz
|
||||
};
|
||||
|
||||
std::size_t m_cascadeCount;
|
||||
std::vector<std::unique_ptr<PerViewerData>> m_destructionQueue;
|
||||
std::unordered_map<const AbstractViewer*, std::unique_ptr<PerViewerData>> m_viewerData;
|
||||
ElementRendererRegistry& m_elementRegistry;
|
||||
FramePipeline& m_pipeline;
|
||||
|
||||
@@ -142,12 +142,13 @@ namespace Nz
|
||||
|
||||
std::size_t finalColorAttachment;
|
||||
std::vector<std::unique_ptr<FramePipelinePass>> passes;
|
||||
FrameData frame;
|
||||
PipelineViewer* viewer;
|
||||
Int32 renderOrder = 0;
|
||||
RenderQueueRegistry forwardRegistry;
|
||||
RenderQueue<RenderElement*> forwardRenderQueue;
|
||||
ShaderBindingPtr blitShaderBinding;
|
||||
FrameData frame;
|
||||
UInt32 renderMask;
|
||||
bool pendingDestruction = false;
|
||||
|
||||
NazaraSlot(TransferInterface, OnTransferRequired, onTransferRequired);
|
||||
@@ -167,6 +168,7 @@ namespace Nz
|
||||
robin_hood::unordered_set<TransferInterface*> m_transferSet;
|
||||
BakedFrameGraph m_bakedFrameGraph;
|
||||
Bitset<UInt64> m_activeLights;
|
||||
Bitset<UInt64> m_removedLightInstances;
|
||||
Bitset<UInt64> m_removedSkeletonInstances;
|
||||
Bitset<UInt64> m_removedViewerInstances;
|
||||
Bitset<UInt64> m_removedWorldInstances;
|
||||
|
||||
Reference in New Issue
Block a user