Replace Listenable system by signals
Former-commit-id: 16fb0b3e703ca4b41ceb97fab938cebb05f677d4
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
#define NAZARA_ABSTRACTATLAS_HPP
|
||||
|
||||
#include <Nazara/Prerequesites.hpp>
|
||||
#include <Nazara/Core/Listenable.hpp>
|
||||
#include <Nazara/Core/Signal.hpp>
|
||||
#include <Nazara/Core/SparsePtr.hpp>
|
||||
#include <Nazara/Math/Rect.hpp>
|
||||
#include <Nazara/Utility/Enums.hpp>
|
||||
@@ -17,7 +17,7 @@
|
||||
class NzAbstractImage;
|
||||
class NzImage;
|
||||
|
||||
class NAZARA_API NzAbstractAtlas : public NzListenable<NzAbstractAtlas>
|
||||
class NAZARA_API NzAbstractAtlas
|
||||
{
|
||||
public:
|
||||
NzAbstractAtlas() = default;
|
||||
@@ -30,16 +30,9 @@ class NAZARA_API NzAbstractAtlas : public NzListenable<NzAbstractAtlas>
|
||||
virtual nzUInt32 GetStorage() const = 0;
|
||||
virtual bool Insert(const NzImage& image, NzRectui* rect, bool* flipped, unsigned int* layerIndex) = 0;
|
||||
|
||||
class NAZARA_API Listener
|
||||
{
|
||||
public:
|
||||
Listener() = default;
|
||||
virtual ~Listener();
|
||||
|
||||
virtual bool OnAtlasCleared(const NzAbstractAtlas* atlas, void* userdata);
|
||||
virtual bool OnAtlasLayerChange(const NzAbstractAtlas* atlas, NzAbstractImage* oldLayer, NzAbstractImage* newLayer, void* userdata);
|
||||
virtual void OnAtlasReleased(const NzAbstractAtlas* atlas, void* userdata);
|
||||
};
|
||||
NazaraSignal(OnAtlasCleared, const NzAbstractAtlas*); //< Args: me
|
||||
NazaraSignal(OnAtlasLayerChange, const NzAbstractAtlas*, NzAbstractImage*, NzAbstractImage*); //< Args: me, oldLayer, newLayer
|
||||
NazaraSignal(OnAtlasRelease, const NzAbstractAtlas*); //< Args: me
|
||||
};
|
||||
|
||||
#endif // NAZARA_ABSTRACTATLAS_HPP
|
||||
|
||||
@@ -37,7 +37,7 @@ using NzFontListener = NzObjectListenerWrapper<NzFont>;
|
||||
using NzFontLoader = NzResourceLoader<NzFont, NzFontParams>;
|
||||
using NzFontRef = NzObjectRef<NzFont>;
|
||||
|
||||
class NAZARA_API NzFont : public NzRefCounted, public NzResource, NzAbstractAtlas::Listener, NzNonCopyable
|
||||
class NAZARA_API NzFont : public NzRefCounted, public NzResource, NzNonCopyable
|
||||
{
|
||||
friend NzFontLibrary;
|
||||
friend NzFontLoader;
|
||||
@@ -128,14 +128,18 @@ class NAZARA_API NzFont : public NzRefCounted, public NzResource, NzAbstractAtla
|
||||
using GlyphMap = std::unordered_map<char32_t, Glyph>;
|
||||
|
||||
nzUInt64 ComputeKey(unsigned int characterSize, nzUInt32 style) const;
|
||||
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 OnAtlasCleared(const NzAbstractAtlas* atlas);
|
||||
void OnAtlasLayerChange(const NzAbstractAtlas* atlas, NzAbstractImage* oldLayer, NzAbstractImage* newLayer);
|
||||
void OnAtlasRelease(const NzAbstractAtlas* atlas);
|
||||
const Glyph& PrecacheGlyph(GlyphMap& glyphMap, unsigned int characterSize, nzUInt32 style, char32_t character) const;
|
||||
|
||||
static bool Initialize();
|
||||
static void Uninitialize();
|
||||
|
||||
NazaraSlot(NzAbstractAtlas, OnAtlasCleared, m_atlasClearedSlot);
|
||||
NazaraSlot(NzAbstractAtlas, OnAtlasLayerChange, m_atlasLayerChangeSlot);
|
||||
NazaraSlot(NzAbstractAtlas, OnAtlasRelease, m_atlasReleaseSlot);
|
||||
|
||||
std::shared_ptr<NzAbstractAtlas> m_atlas;
|
||||
std::unique_ptr<NzFontData> m_data;
|
||||
mutable std::unordered_map<nzUInt64, std::unordered_map<nzUInt64, int>> m_kerningCache;
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
#define NAZARA_NODE_HPP
|
||||
|
||||
#include <Nazara/Prerequesites.hpp>
|
||||
#include <Nazara/Core/Listenable.hpp>
|
||||
#include <Nazara/Core/Signal.hpp>
|
||||
#include <Nazara/Math/Matrix4.hpp>
|
||||
#include <Nazara/Math/Quaternion.hpp>
|
||||
#include <Nazara/Math/Vector3.hpp>
|
||||
@@ -16,7 +16,7 @@
|
||||
#include <unordered_map>
|
||||
#include <vector>
|
||||
|
||||
class NAZARA_API NzNode : public NzListenable<NzNode>
|
||||
class NAZARA_API NzNode
|
||||
{
|
||||
public:
|
||||
NzNode();
|
||||
@@ -90,16 +90,10 @@ class NAZARA_API NzNode : public NzListenable<NzNode>
|
||||
|
||||
NzNode& operator=(const NzNode& node);
|
||||
|
||||
class NAZARA_API Listener
|
||||
{
|
||||
public:
|
||||
Listener() = default;
|
||||
virtual ~Listener();
|
||||
|
||||
virtual bool OnNodeInvalidated(const NzNode* node, void* userdata);
|
||||
virtual bool OnNodeParented(const NzNode* node, const NzNode* parent, void* userdata);
|
||||
virtual void OnNodeReleased(const NzNode* node, void* userdata);
|
||||
};
|
||||
// Signals
|
||||
NazaraSignal(OnNodeInvalidation, const NzNode*); //< Args: me
|
||||
NazaraSignal(OnNodeNewParent, const NzNode*, const NzNode*); //< Args: me
|
||||
NazaraSignal(OnNodeRelease, const NzNode*); //< Args: me
|
||||
|
||||
protected:
|
||||
void AddChild(NzNode* node) const;
|
||||
@@ -126,7 +120,6 @@ class NAZARA_API NzNode : public NzListenable<NzNode>
|
||||
bool m_inheritRotation;
|
||||
bool m_inheritScale;
|
||||
mutable bool m_transformMatrixUpdated;
|
||||
|
||||
};
|
||||
|
||||
#endif // NAZARA_NODE_HPP
|
||||
|
||||
Reference in New Issue
Block a user