(Font) Added notification on atlas layer change
Fixed irrelevant error message when a font destroy an atlas Former-commit-id: ddbd04e9172f2d35a8e0cf8a37fe48724aeb5c64
This commit is contained in:
parent
77347c8582
commit
48ecb058f0
|
|
@ -80,6 +80,7 @@ class NAZARA_API NzFont : public NzResource, NzAbstractAtlas::Listener, NzNonCop
|
|||
enum ModicationCode
|
||||
{
|
||||
ModificationCode_AtlasChanged,
|
||||
ModificationCode_AtlasLayerChanged,
|
||||
ModificationCode_GlyphCacheCleared,
|
||||
ModificationCode_KerningCacheCleared,
|
||||
ModificationCode_SizeInfoCacheCleared
|
||||
|
|
@ -110,6 +111,7 @@ class NAZARA_API NzFont : public NzResource, NzAbstractAtlas::Listener, NzNonCop
|
|||
|
||||
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;
|
||||
const Glyph& PrecacheGlyph(GlyphMap& glyphMap, unsigned int characterSize, nzUInt32 style, char32_t character) const;
|
||||
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ m_minimumSizeStep(1)
|
|||
NzFont::~NzFont()
|
||||
{
|
||||
Destroy();
|
||||
SetAtlas(nullptr); // On libère l'atlas par la même occasion
|
||||
}
|
||||
|
||||
void NzFont::ClearGlyphCache()
|
||||
|
|
@ -355,6 +356,28 @@ bool NzFont::OnAtlasCleared(const NzAbstractAtlas* atlas, void* userdata)
|
|||
return true;
|
||||
}
|
||||
|
||||
bool NzFont::OnAtlasLayerChange(const NzAbstractAtlas* atlas, NzAbstractImage* oldLayer, NzAbstractImage* newLayer, void* userdata)
|
||||
{
|
||||
NazaraUnused(atlas);
|
||||
NazaraUnused(oldLayer);
|
||||
NazaraUnused(newLayer);
|
||||
NazaraUnused(userdata);
|
||||
|
||||
#ifdef NAZARA_DEBUG
|
||||
// Est-ce qu'il s'agit bien de notre atlas ?
|
||||
if (m_atlas.get() != atlas)
|
||||
{
|
||||
NazaraInternalError("Notified by a non-listening-to resource");
|
||||
return false; // On ne veut plus être notifié par cette ressource, évidemment
|
||||
}
|
||||
#endif
|
||||
|
||||
// Pour faciliter le travail des ressources qui nous écoutent
|
||||
NotifyModified(ModificationCode_AtlasLayerChanged);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void NzFont::OnAtlasReleased(const NzAbstractAtlas* atlas, void* userdata)
|
||||
{
|
||||
NazaraUnused(atlas);
|
||||
|
|
|
|||
Loading…
Reference in New Issue