Replace Listenable system by signals
Former-commit-id: 16fb0b3e703ca4b41ceb97fab938cebb05f677d4
This commit is contained in:
@@ -16,11 +16,11 @@
|
||||
#include <Nazara/Renderer/RenderTarget.hpp>
|
||||
#include <Nazara/Utility/Node.hpp>
|
||||
|
||||
class NAZARA_API NzCamera : public NzAbstractViewer, public NzNode, NzRenderTarget::Listener
|
||||
class NAZARA_API NzCamera : public NzAbstractViewer, public NzNode
|
||||
{
|
||||
public:
|
||||
NzCamera();
|
||||
~NzCamera();
|
||||
~NzCamera() = default;
|
||||
|
||||
void EnsureFrustumUpdate() const;
|
||||
void EnsureProjectionMatrixUpdate() const;
|
||||
@@ -55,14 +55,17 @@ class NAZARA_API NzCamera : public NzAbstractViewer, public NzNode, NzRenderTarg
|
||||
void ApplyView() const override;
|
||||
void InvalidateNode() override;
|
||||
|
||||
void OnRenderTargetReleased(const NzRenderTarget* renderTarget, void* userdata) override;
|
||||
bool OnRenderTargetSizeChange(const NzRenderTarget* renderTarget, void* userdata) override;
|
||||
void OnRenderTargetRelease(const NzRenderTarget* renderTarget);
|
||||
void OnRenderTargetSizeChange(const NzRenderTarget* renderTarget);
|
||||
|
||||
void UpdateFrustum() const;
|
||||
void UpdateProjectionMatrix() const;
|
||||
void UpdateViewMatrix() const;
|
||||
void UpdateViewport() const;
|
||||
|
||||
NazaraSlot(NzRenderTarget, OnRenderTargetRelease, m_targetReleaseSlot);
|
||||
NazaraSlot(NzRenderTarget, OnRenderTargetSizeChange, m_targetResizeSlot);
|
||||
|
||||
mutable NzFrustumf m_frustum;
|
||||
mutable NzMatrix4f m_projectionMatrix;
|
||||
mutable NzMatrix4f m_viewMatrix;
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
class NAZARA_API NzDeferredRenderTechnique : public NzAbstractRenderTechnique, public NzRenderTarget::Listener
|
||||
class NAZARA_API NzDeferredRenderTechnique : public NzAbstractRenderTechnique
|
||||
{
|
||||
friend class NzGraphics;
|
||||
|
||||
|
||||
@@ -16,12 +16,12 @@
|
||||
#include <memory>
|
||||
#include <set>
|
||||
|
||||
class NAZARA_API NzTextSprite : public NzSceneNode, NzAbstractAtlas::Listener
|
||||
class NAZARA_API NzTextSprite : public NzSceneNode
|
||||
{
|
||||
public:
|
||||
NzTextSprite();
|
||||
NzTextSprite(const NzTextSprite& sprite);
|
||||
~NzTextSprite();
|
||||
~NzTextSprite() = default;
|
||||
|
||||
void AddToRenderQueue(NzAbstractRenderQueue* renderQueue) const override;
|
||||
|
||||
@@ -46,12 +46,10 @@ class NAZARA_API NzTextSprite : public NzSceneNode, NzAbstractAtlas::Listener
|
||||
NzTextSprite& operator=(const NzTextSprite& text);
|
||||
|
||||
private:
|
||||
void ClearAtlases();
|
||||
void InvalidateNode() override;
|
||||
void MakeBoundingVolume() const override;
|
||||
bool OnAtlasCleared(const NzAbstractAtlas* atlas, void* userdata) override;
|
||||
bool OnAtlasLayerChange(const NzAbstractAtlas* atlas, NzAbstractImage* oldLayer, NzAbstractImage* newLayer, void* userdata) override;
|
||||
void OnAtlasReleased(const NzAbstractAtlas* atlas, void* userdata) override;
|
||||
void OnAtlasInvalidated(const NzAbstractAtlas* atlas);
|
||||
void OnAtlasLayerChange(const NzAbstractAtlas* atlas, NzAbstractImage* oldLayer, NzAbstractImage* newLayer);
|
||||
void Register() override;
|
||||
void Unregister() override;
|
||||
void UpdateVertices() const;
|
||||
@@ -62,7 +60,14 @@ class NAZARA_API NzTextSprite : public NzSceneNode, NzAbstractAtlas::Listener
|
||||
unsigned int count;
|
||||
};
|
||||
|
||||
std::set<const NzAbstractAtlas*> m_atlases;
|
||||
struct AtlasSlots
|
||||
{
|
||||
NazaraSlot(NzAbstractAtlas, OnAtlasCleared, clearSlot);
|
||||
NazaraSlot(NzAbstractAtlas, OnAtlasLayerChange, layerChangeSlot);
|
||||
NazaraSlot(NzAbstractAtlas, OnAtlasRelease, releaseSlot);
|
||||
};
|
||||
|
||||
std::unordered_map<const NzAbstractAtlas*, AtlasSlots> m_atlases;
|
||||
mutable std::unordered_map<NzTexture*, RenderIndices> m_renderInfos;
|
||||
mutable std::vector<NzVertexStruct_XY_Color> m_localVertices;
|
||||
mutable std::vector<NzVertexStruct_XYZ_Color_UV> m_vertices;
|
||||
|
||||
@@ -16,12 +16,12 @@
|
||||
#include <Nazara/Renderer/RenderTarget.hpp>
|
||||
#include <Nazara/Utility/Node.hpp>
|
||||
|
||||
class NAZARA_API NzView : public NzAbstractViewer, public NzNode, NzRenderTarget::Listener
|
||||
class NAZARA_API NzView : public NzAbstractViewer, public NzNode
|
||||
{
|
||||
public:
|
||||
NzView();
|
||||
NzView(const NzVector2f& size);
|
||||
~NzView();
|
||||
~NzView() = default;
|
||||
|
||||
void EnsureFrustumUpdate() const;
|
||||
void EnsureProjectionMatrixUpdate() const;
|
||||
@@ -62,8 +62,8 @@ class NAZARA_API NzView : public NzAbstractViewer, public NzNode, NzRenderTarget
|
||||
void ApplyView() const override;
|
||||
void InvalidateNode() override;
|
||||
|
||||
void OnRenderTargetReleased(const NzRenderTarget* renderTarget, void* userdata) override;
|
||||
bool OnRenderTargetSizeChange(const NzRenderTarget* renderTarget, void* userdata) override;
|
||||
void OnRenderTargetRelease(const NzRenderTarget* renderTarget);
|
||||
void OnRenderTargetSizeChange(const NzRenderTarget* renderTarget);
|
||||
|
||||
void UpdateFrustum() const;
|
||||
void UpdateInvViewProjMatrix() const;
|
||||
@@ -72,6 +72,9 @@ class NAZARA_API NzView : public NzAbstractViewer, public NzNode, NzRenderTarget
|
||||
void UpdateViewProjMatrix() const;
|
||||
void UpdateViewport() const;
|
||||
|
||||
NazaraSlot(NzRenderTarget, OnRenderTargetRelease, m_targetReleaseSlot);
|
||||
NazaraSlot(NzRenderTarget, OnRenderTargetSizeChange, m_targetResizeSlot);
|
||||
|
||||
mutable NzFrustumf m_frustum;
|
||||
mutable NzMatrix4f m_invViewProjMatrix;
|
||||
mutable NzMatrix4f m_projectionMatrix;
|
||||
|
||||
Reference in New Issue
Block a user