implement font deletion
This commit is contained in:
@@ -70,6 +70,7 @@ class PD_API Drawlist {
|
|||||||
/** Font Handling */
|
/** Font Handling */
|
||||||
void SetFont(Font* font) { pFont = font; }
|
void SetFont(Font* font) { pFont = font; }
|
||||||
void SetFontscale(float fontscale = 1.f) { pFontScale = fontscale; }
|
void SetFontscale(float fontscale = 1.f) { pFontScale = fontscale; }
|
||||||
|
const float& GetFontScale() const { return pFontScale; }
|
||||||
|
|
||||||
/** Data geters */
|
/** Data geters */
|
||||||
const Pool<Command>& Data() const { return pCommands; }
|
const Pool<Command>& Data() const { return pCommands; }
|
||||||
|
|||||||
@@ -64,6 +64,11 @@ class PD_API Font {
|
|||||||
void CmdTextEx(Drawlist& dl, const fvec2& pos, u32 color, float scale,
|
void CmdTextEx(Drawlist& dl, const fvec2& pos, u32 color, float scale,
|
||||||
const char* text, LiTextFlags flags = 0, const fvec2& box = 0);
|
const char* text, LiTextFlags flags = 0, const fvec2& box = 0);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Cleanup Font and unload Textures
|
||||||
|
*/
|
||||||
|
void Delete();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Garbage collection for TextMapSystem
|
* Garbage collection for TextMapSystem
|
||||||
*/
|
*/
|
||||||
@@ -80,7 +85,7 @@ class PD_API Font {
|
|||||||
|
|
||||||
/** Data Section */
|
/** Data Section */
|
||||||
int PixelHeight = 0;
|
int PixelHeight = 0;
|
||||||
int DefaultPixelHeight = 24;
|
int DefaultPixelHeight = 32;
|
||||||
std::vector<TextureID> Textures;
|
std::vector<TextureID> Textures;
|
||||||
/**
|
/**
|
||||||
* 32Bit Codepoint Dataholder reference map
|
* 32Bit Codepoint Dataholder reference map
|
||||||
|
|||||||
+1
-3
@@ -7,9 +7,7 @@ constexpr const char* pColorYellow = "\033[33m";
|
|||||||
constexpr const char* pColorRed = "\033[31m";
|
constexpr const char* pColorRed = "\033[31m";
|
||||||
static LogLevel pFilter = LogLevel::Info;
|
static LogLevel pFilter = LogLevel::Info;
|
||||||
|
|
||||||
PD_API void LogFilter(LogLevel lvl) {
|
PD_API void LogFilter(LogLevel lvl) { pFilter = lvl; }
|
||||||
pFilter = lvl;
|
|
||||||
}
|
|
||||||
|
|
||||||
PD_API void Log(const std::string& txt, LogLevel lvl) {
|
PD_API void Log(const std::string& txt, LogLevel lvl) {
|
||||||
if ((int)lvl < (int)pFilter) return;
|
if ((int)lvl < (int)pFilter) return;
|
||||||
|
|||||||
@@ -271,5 +271,15 @@ PD_API std::string Font::pShortText(const std::string& txt, float scale,
|
|||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PD_API void Font::Delete() {
|
||||||
|
for (auto& it : Textures) {
|
||||||
|
// Creating a tmp fake Li tex for deletion
|
||||||
|
PD::Gfx::DeleteTexture(PD::Li::Texture(it, 0));
|
||||||
|
}
|
||||||
|
pCurrentTex = 0;
|
||||||
|
PixelHeight = 0;
|
||||||
|
pTMS.clear();
|
||||||
|
CodeMap.clear();
|
||||||
|
}
|
||||||
} // namespace Li
|
} // namespace Li
|
||||||
} // namespace PD
|
} // namespace PD
|
||||||
@@ -29,6 +29,8 @@ class OsCtx {
|
|||||||
return fvec2(in.x * pViewPort.y, in.y * pViewPort.y);
|
return fvec2(in.x * pViewPort.y, in.y * pViewPort.y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const PD::ivec2& GetViewport() const { return pViewPort; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
PD::ivec2 pViewPort;
|
PD::ivec2 pViewPort;
|
||||||
const Driver pDriver;
|
const Driver pDriver;
|
||||||
|
|||||||
Reference in New Issue
Block a user