git.cweiske.de
/
enigma2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
don't crash when PNGs are too large.
[enigma2.git]
/
lib
/
gdi
/
font.cpp
diff --git
a/lib/gdi/font.cpp
b/lib/gdi/font.cpp
index 77c8de94e373682106f487257cc6d59ae61829f7..3948ea98b244272b2def8551a911469fc79b68ae 100644
(file)
--- a/
lib/gdi/font.cpp
+++ b/
lib/gdi/font.cpp
@@
-235,6
+235,13
@@
int fontRenderClass::getFont(ePtr<Font> &font, const std::string &face, int size
return 0;
}
return 0;
}
+void addFont(const char *filename, const char *alias, int scale_factor, int is_replacement)
+{
+ fontRenderClass::getInstance()->AddFont(filename, alias, scale_factor);
+ if (is_replacement)
+ eTextPara::setReplacementFont(alias);
+}
+
DEFINE_REF(Font);
Font::Font(fontRenderClass *render, FTC_FaceID faceid, int isize, int tw): tabwidth(tw)
DEFINE_REF(Font);
Font::Font(fontRenderClass *render, FTC_FaceID faceid, int isize, int tw): tabwidth(tw)
@@
-482,28
+489,28
@@
int eTextPara::renderString(const char *string, int rflags)
{
unicode&=0x1F;
unicode<<=6;
{
unicode&=0x1F;
unicode<<=6;
- if (p)
+ if (
*
p)
unicode|=(*p++)&0x3F;
} else if ((unicode & 0xF0)==0xE0) // three bytes
{
unicode&=0x0F;
unicode<<=6;
unicode|=(*p++)&0x3F;
} else if ((unicode & 0xF0)==0xE0) // three bytes
{
unicode&=0x0F;
unicode<<=6;
- if (p)
+ if (
*
p)
unicode|=(*p++)&0x3F;
unicode<<=6;
unicode|=(*p++)&0x3F;
unicode<<=6;
- if (p)
+ if (
*
p)
unicode|=(*p++)&0x3F;
} else if ((unicode & 0xF8)==0xF0) // four bytes
{
unicode&=0x07;
unicode<<=6;
unicode|=(*p++)&0x3F;
} else if ((unicode & 0xF8)==0xF0) // four bytes
{
unicode&=0x07;
unicode<<=6;
- if (p)
+ if (
*
p)
unicode|=(*p++)&0x3F;
unicode<<=6;
unicode|=(*p++)&0x3F;
unicode<<=6;
- if (p)
+ if (
*
p)
unicode|=(*p++)&0x3F;
unicode<<=6;
unicode|=(*p++)&0x3F;
unicode<<=6;
- if (p)
+ if (
*
p)
unicode|=(*p++)&0x3F;
}
}
unicode|=(*p++)&0x3F;
}
}