mirror of
https://github.com/tuxbox-fork-migrations/recycled-ni-neutrino.git
synced 2025-08-27 15:32:52 +02:00
src/driver/neutrinofonts.cpp add cache for dynSize
Origin commit data
------------------
Commit: 4ec5589c54
Author: Jacek Jendrzej <overx300@gmail.com>
Date: 2016-05-04 (Wed, 04 May 2016)
This commit is contained in:
@@ -102,7 +102,9 @@ CNeutrinoFonts::~CNeutrinoFonts()
|
|||||||
delete v_dyn_fonts[i].font;
|
delete v_dyn_fonts[i].font;
|
||||||
v_dyn_fonts.clear();
|
v_dyn_fonts.clear();
|
||||||
}
|
}
|
||||||
|
if (!vDynSize.empty()) {
|
||||||
|
vDynSize.clear();
|
||||||
|
}
|
||||||
deleteDynFontExtAll();
|
deleteDynFontExtAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -124,6 +126,9 @@ void CNeutrinoFonts::SetupDynamicFonts(bool initRenderClass/*=true*/)
|
|||||||
dynFontStyle[0] = g_dynFontRenderer->AddFont(fontDescr.filename.c_str());
|
dynFontStyle[0] = g_dynFontRenderer->AddFont(fontDescr.filename.c_str());
|
||||||
|
|
||||||
fontDescr.name = g_dynFontRenderer->getFamily(fontDescr.filename.c_str());
|
fontDescr.name = g_dynFontRenderer->getFamily(fontDescr.filename.c_str());
|
||||||
|
if (!vDynSize.empty()) {
|
||||||
|
vDynSize.clear();
|
||||||
|
}
|
||||||
dprintf(DEBUG_NORMAL, "[CNeutrinoFonts] [%s - %d] dynamic font family: %s\n", __func__, __LINE__, fontDescr.name.c_str());
|
dprintf(DEBUG_NORMAL, "[CNeutrinoFonts] [%s - %d] dynamic font family: %s\n", __func__, __LINE__, fontDescr.name.c_str());
|
||||||
dynFontStyle[1] = "Bold Regular";
|
dynFontStyle[1] = "Bold Regular";
|
||||||
|
|
||||||
@@ -161,6 +166,9 @@ void CNeutrinoFonts::SetupNeutrinoFonts(bool initRenderClass/*=true*/)
|
|||||||
old_fontDescr.name = fontDescr.name;
|
old_fontDescr.name = fontDescr.name;
|
||||||
fontDescr.name = "";
|
fontDescr.name = "";
|
||||||
fontDescr.name = g_fontRenderer->getFamily(fontDescr.filename.c_str());
|
fontDescr.name = g_fontRenderer->getFamily(fontDescr.filename.c_str());
|
||||||
|
if (!vDynSize.empty()) {
|
||||||
|
vDynSize.clear();
|
||||||
|
}
|
||||||
dprintf(DEBUG_NORMAL, "[CNeutrinoFonts] [%s - %d] standard font family: %s\n", __func__, __LINE__, fontDescr.name.c_str());
|
dprintf(DEBUG_NORMAL, "[CNeutrinoFonts] [%s - %d] standard font family: %s\n", __func__, __LINE__, fontDescr.name.c_str());
|
||||||
fontStyle[1] = "Bold Regular";
|
fontStyle[1] = "Bold Regular";
|
||||||
|
|
||||||
@@ -233,11 +241,22 @@ int CNeutrinoFonts::getFontHeight(Font* fnt)
|
|||||||
|
|
||||||
int CNeutrinoFonts::getDynFontSize(int dx, int dy, std::string text, int style)
|
int CNeutrinoFonts::getDynFontSize(int dx, int dy, std::string text, int style)
|
||||||
{
|
{
|
||||||
Font *dynFont = NULL;
|
int dynSize = dy/1.6;
|
||||||
int dynSize = 8;
|
|
||||||
bool dynFlag = false;
|
|
||||||
|
|
||||||
if (dx == 0) dx = 1280;
|
if (dx == 0) dx = 1280;
|
||||||
|
|
||||||
|
if (!vDynSize.empty()) {
|
||||||
|
for (size_t i = 0; i < vDynSize.size(); i++) {
|
||||||
|
if ((vDynSize[i].dy == dy) &&
|
||||||
|
(vDynSize[i].dx == dx) &&
|
||||||
|
(vDynSize[i].style == style) &&
|
||||||
|
(vDynSize[i].text == text)) {
|
||||||
|
dynSize = vDynSize[i].dynsize;
|
||||||
|
return dynSize;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Font *dynFont = NULL;
|
||||||
|
bool dynFlag = false;
|
||||||
while (1) {
|
while (1) {
|
||||||
if (dynFont)
|
if (dynFont)
|
||||||
delete dynFont;
|
delete dynFont;
|
||||||
@@ -264,9 +283,23 @@ int CNeutrinoFonts::getDynFontSize(int dx, int dy, std::string text, int style)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dynFont)
|
if (dynFont){
|
||||||
delete dynFont;
|
delete dynFont;
|
||||||
|
|
||||||
|
if (!vDynSize.empty() && vDynSize.size() > 99) {
|
||||||
|
vDynSize.clear();
|
||||||
|
}
|
||||||
|
if(dynSize){
|
||||||
|
dyn_size_t v;
|
||||||
|
v.dx = dx;
|
||||||
|
v.dy = dy;
|
||||||
|
v.dynsize = dynSize;
|
||||||
|
v.style = style;
|
||||||
|
v.text = text;
|
||||||
|
vDynSize.push_back(v);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return dynSize;
|
return dynSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -55,6 +55,16 @@ class CNeutrinoFonts
|
|||||||
private:
|
private:
|
||||||
std::string fontStyle[3];
|
std::string fontStyle[3];
|
||||||
std::string dynFontStyle[3];
|
std::string dynFontStyle[3];
|
||||||
|
typedef struct dyn_size_t
|
||||||
|
{
|
||||||
|
int dx;
|
||||||
|
int dy;
|
||||||
|
int dynsize;
|
||||||
|
int style;
|
||||||
|
std::string text;
|
||||||
|
} dyn_size_struct_t;
|
||||||
|
typedef std::vector<dyn_size_t> v_dyn_size_t;
|
||||||
|
v_dyn_size_t vDynSize;
|
||||||
|
|
||||||
typedef struct dyn_font_t
|
typedef struct dyn_font_t
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user