Added ResourceListenerWrapper

This class wraps the call to
Resource::AddResourceListener/RemoveResourceListener using RAII and help
a lot with some of the dependencies.
Thanks to this, the render queues now handle their resources listening
properly.

Former-commit-id: 7f215ffa4ccadcc4f44f777656970e92ce01087a
This commit is contained in:
Lynix
2015-01-18 23:59:01 +01:00
parent a6183fae69
commit 8f9ea9db17
33 changed files with 602 additions and 411 deletions

View File

@@ -9,6 +9,7 @@
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Core/Resource.hpp>
#include <Nazara/Core/ResourceListenerWrapper.hpp>
#include <Nazara/Core/ResourceRef.hpp>
#include <Nazara/Renderer/ContextParameters.hpp>
#include <memory>
@@ -16,7 +17,9 @@
class NzContext;
using NzContextConstListener = NzResourceListenerWrapper<const NzContext>;
using NzContextConstRef = NzResourceRef<const NzContext>;
using NzContextListener = NzResourceListenerWrapper<NzContext>;
using NzContextRef = NzResourceRef<NzContext>;
class NzContextImpl;

View File

@@ -10,12 +10,15 @@
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Core/NonCopyable.hpp>
#include <Nazara/Core/Resource.hpp>
#include <Nazara/Core/ResourceListenerWrapper.hpp>
#include <Nazara/Core/ResourceRef.hpp>
#include <Nazara/Utility/Enums.hpp>
class NzRenderBuffer;
using NzRenderBufferConstListener = NzResourceListenerWrapper<const NzRenderBuffer>;
using NzRenderBufferConstRef = NzResourceRef<const NzRenderBuffer>;
using NzRenderBufferListener = NzResourceListenerWrapper<NzRenderBuffer>;
using NzRenderBufferRef = NzResourceRef<NzRenderBuffer>;
class NAZARA_API NzRenderBuffer : public NzResource, NzNonCopyable

View File

@@ -12,6 +12,7 @@
#include <Nazara/Core/Color.hpp>
#include <Nazara/Core/NonCopyable.hpp>
#include <Nazara/Core/Resource.hpp>
#include <Nazara/Core/ResourceListenerWrapper.hpp>
#include <Nazara/Core/ResourceRef.hpp>
#include <Nazara/Core/String.hpp>
#include <Nazara/Math/Matrix4.hpp>
@@ -23,7 +24,9 @@
class NzShader;
class NzShaderStage;
using NzShaderConstListener = NzResourceListenerWrapper<const NzShader>;
using NzShaderConstRef = NzResourceRef<const NzShader>;
using NzShaderListener = NzResourceListenerWrapper<NzShader>;
using NzShaderRef = NzResourceRef<NzShader>;
class NAZARA_API NzShader : public NzResource, NzNonCopyable

View File

@@ -10,6 +10,7 @@
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Core/NonCopyable.hpp>
#include <Nazara/Core/Resource.hpp>
#include <Nazara/Core/ResourceListenerWrapper.hpp>
#include <Nazara/Core/ResourceRef.hpp>
#include <Nazara/Renderer/Enums.hpp>
#include <Nazara/Utility/AbstractImage.hpp>
@@ -18,7 +19,9 @@
class NzTexture;
using NzTextureConstListener = NzResourceListenerWrapper<const NzTexture>;
using NzTextureConstRef = NzResourceRef<const NzTexture>;
using NzTextureListener = NzResourceListenerWrapper<NzTexture>;
using NzTextureRef = NzResourceRef<NzTexture>;
struct NzTextureImpl;

View File

@@ -10,13 +10,16 @@
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Core/ParameterList.hpp>
#include <Nazara/Core/Resource.hpp>
#include <Nazara/Core/ResourceListenerWrapper.hpp>
#include <Nazara/Core/ResourceRef.hpp>
#include <Nazara/Renderer/UberShaderInstance.hpp>
#include <unordered_map>
class NzUberShader;
using NzUberShaderConstListener = NzResourceListenerWrapper<const NzUberShader>;
using NzUberShaderConstRef = NzResourceRef<const NzUberShader>;
using NzUberShaderListener = NzResourceListenerWrapper<NzUberShader>;
using NzUberShaderRef = NzResourceRef<NzUberShader>;
class NAZARA_API NzUberShader : public NzResource