Updated xfont

This commit is contained in:
njohnson 2025-09-07 23:15:54 -04:00
parent b77e6e8077
commit 4677ab9637
2 changed files with 37 additions and 10 deletions

View File

@ -2,11 +2,11 @@
XFont::XFont() XFont::XFont()
: XAsset() : XAsset()
, mFontName("") , mFontName()
, mPixelHeight(0) , mPixelHeight(0)
, mGlyphCount(0) , mGlyphCount(0)
, mMaterial(new XMaterial()) , mMaterial()
, mGlowMaterial(new XMaterial()) , mGlowMaterial()
, mGlyphs() , mGlyphs()
{ {
SetType(ASSET_TYPE_FONT); SetType(ASSET_TYPE_FONT);
@ -20,15 +20,42 @@ XFont::~XFont()
void XFont::Clear() void XFont::Clear()
{ {
mFontName = ""; mFontName.Clear();
mPixelHeight = 0; mPixelHeight = 0;
mGlyphCount = 0; mGlyphCount = 0;
delete mMaterial; mMaterial.Clear();
delete mGlowMaterial; mGlowMaterial.Clear();
mGlyphs.clear(); mGlyphs.clear();
} }
void XFont::ParseData(QDataStream *aStream) 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);
}
}
}
} }

View File

@ -15,11 +15,11 @@ public:
void ParseData(QDataStream *aStream) override; void ParseData(QDataStream *aStream) override;
private: private:
QString mFontName; XString mFontName;
int mPixelHeight; int mPixelHeight;
int mGlyphCount; int mGlyphCount;
XMaterial *mMaterial; XMaterial mMaterial;
XMaterial *mGlowMaterial; XMaterial mGlowMaterial;
QVector<XGlyph> mGlyphs; QVector<XGlyph> mGlyphs;
}; };