From 4677ab9637f485551ea449912e7b4b4f1e5e7c7f Mon Sep 17 00:00:00 2001 From: njohnson Date: Sun, 7 Sep 2025 23:15:54 -0400 Subject: [PATCH] Updated xfont --- libs/xassets/xfont.cpp | 41 ++++++++++++++++++++++++++++++++++------- libs/xassets/xfont.h | 6 +++--- 2 files changed, 37 insertions(+), 10 deletions(-) diff --git a/libs/xassets/xfont.cpp b/libs/xassets/xfont.cpp index b10d113..e506733 100644 --- a/libs/xassets/xfont.cpp +++ b/libs/xassets/xfont.cpp @@ -2,11 +2,11 @@ XFont::XFont() : XAsset() - , mFontName("") + , mFontName() , mPixelHeight(0) , mGlyphCount(0) - , mMaterial(new XMaterial()) - , mGlowMaterial(new XMaterial()) + , mMaterial() + , mGlowMaterial() , mGlyphs() { SetType(ASSET_TYPE_FONT); @@ -20,15 +20,42 @@ XFont::~XFont() void XFont::Clear() { - mFontName = ""; + mFontName.Clear(); mPixelHeight = 0; mGlyphCount = 0; - delete mMaterial; - delete mGlowMaterial; + mMaterial.Clear(); + mGlowMaterial.Clear(); mGlyphs.clear(); } void XFont::ParseData(QDataStream *aStream) { - + if (GetPtr() == -1) + { + mFontName.ParsePtr(aStream, false); + + qint32 glyphsPtr; + *aStream + >> mPixelHeight + >> mGlyphCount; + + mMaterial.ParsePtr(aStream, false); + mGlowMaterial.ParsePtr(aStream, false); + + *aStream >> glyphsPtr; + + mFontName.ParseData(aStream); + mMaterial.ParseData(aStream); + mGlowMaterial.ParseData(aStream); + + if (glyphsPtr == -1) + { + for (int i = 0; i < mGlyphCount; i++) + { + XGlyph newGlyph; + newGlyph.ParseData(aStream); + mGlyphs.append(newGlyph); + } + } + } } diff --git a/libs/xassets/xfont.h b/libs/xassets/xfont.h index b1bb90f..e4ed61b 100644 --- a/libs/xassets/xfont.h +++ b/libs/xassets/xfont.h @@ -15,11 +15,11 @@ public: void ParseData(QDataStream *aStream) override; private: - QString mFontName; + XString mFontName; int mPixelHeight; int mGlyphCount; - XMaterial *mMaterial; - XMaterial *mGlowMaterial; + XMaterial mMaterial; + XMaterial mGlowMaterial; QVector mGlyphs; };