git.cweiske.de
/
enigma2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
dont clear when not needed
[enigma2.git]
/
lib
/
gdi
/
font.h
diff --git
a/lib/gdi/font.h
b/lib/gdi/font.h
index c55b8f46dee102245d6abd45702648baa1dae561..2643fda20215e7099aebbaaeb02a9b5274507d21 100644
(file)
--- a/
lib/gdi/font.h
+++ b/
lib/gdi/font.h
@@
-1,14
+1,20
@@
#ifndef __FONT_H
#define __FONT_H
#ifndef __FONT_H
#define __FONT_H
+#ifndef SWIG
+
#include <ft2build.h>
#include FT_FREETYPE_H
#include FT_CACHE_H
#include FT_CACHE_IMAGE_H
#include FT_CACHE_SMALL_BITMAPS_H
#include <ft2build.h>
#include FT_FREETYPE_H
#include FT_CACHE_H
#include FT_CACHE_IMAGE_H
#include FT_CACHE_SMALL_BITMAPS_H
+#ifdef HAVE_FREETYPE2
+typedef FTC_ImageCache FTC_Image_Cache;
+typedef FTC_ImageTypeRec FTC_Image_Desc;
+typedef FTC_SBitCache FTC_SBit_Cache;
+#endif
#include <vector>
#include <vector>
-
#include <lib/gdi/fb.h>
#include <lib/gdi/esize.h>
#include <lib/gdi/epoint.h>
#include <lib/gdi/fb.h>
#include <lib/gdi/esize.h>
#include <lib/gdi/epoint.h>
@@
-16,14
+22,18
@@
#include <string>
#include <lib/base/object.h>
#include <string>
#include <lib/base/object.h>
+#include <set>
+
class FontRenderClass;
class Font;
class gDC;
class gFont;
class gRGB;
class FontRenderClass;
class Font;
class gDC;
class gFont;
class gRGB;
+#endif
class fontRenderClass
{
class fontRenderClass
{
+#ifndef SWIG
friend class Font;
friend class eTextPara;
fbClass *fb;
friend class Font;
friend class eTextPara;
fbClass *fb;
@@
-43,17
+53,24
@@
class fontRenderClass
FTC_FaceID getFaceID(const std::string &face);
FT_Error getGlyphBitmap(FTC_Image_Desc *font, FT_ULong glyph_index, FTC_SBit *sbit);
static fontRenderClass *instance;
FTC_FaceID getFaceID(const std::string &face);
FT_Error getGlyphBitmap(FTC_Image_Desc *font, FT_ULong glyph_index, FTC_SBit *sbit);
static fontRenderClass *instance;
+#else
+ fontRenderClass();
+ ~fontRenderClass();
+#endif
public:
float getLineHeight(const gFont& font);
public:
float getLineHeight(const gFont& font);
- std::string AddFont(const std::string &filename, const std::string &name, int scale);
static fontRenderClass *getInstance();
static fontRenderClass *getInstance();
- FT_Error FTC_Face_Requester(FTC_FaceID face_id,
- FT_Face* aface);
+#ifndef SWIG
+ std::string AddFont(const std::string &filename, const std::string &name, int scale);
+ FT_Error FTC_Face_Requester(FTC_FaceID face_id, FT_Face* aface);
int getFont(ePtr<Font> &font, const std::string &face, int size, int tabwidth=-1);
fontRenderClass();
~fontRenderClass();
int getFont(ePtr<Font> &font, const std::string &face, int size, int tabwidth=-1);
fontRenderClass();
~fontRenderClass();
+#endif
};
};
+#ifndef SWIG
+
#define RS_WRAP 1
#define RS_DOT 2
#define RS_DIRECT 4
#define RS_WRAP 1
#define RS_DOT 2
#define RS_DIRECT 4
@@
-62,6
+79,10
@@
public:
#define GS_ISSPACE 1
#define GS_ISFIRST 2
#define GS_USED 4
#define GS_ISSPACE 1
#define GS_ISFIRST 2
#define GS_USED 4
+#define GS_INVERT 8
+#define GS_SOFTHYPHEN 16
+#define GS_HYPHEN 32
+#define GS_CANBREAK (GS_ISSPACE|GS_SOFTHYPHEN|GS_HYPHEN)
struct pGlyph
{
struct pGlyph
{
@@
-79,13
+100,13
@@
class eLCD;
class eTextPara: public iObject
{
class eTextPara: public iObject
{
-DECLARE_REF(eTextPara);
-private:
- ePtr<Font> current_font, replacement_font;
+ DECLARE_REF(eTextPara);
+ ePtr<Font> current_font, replacement_font;
FT_Face current_face, replacement_face;
int use_kerning;
int previous;
static std::string replacement_facename;
FT_Face current_face, replacement_face;
int use_kerning;
int previous;
static std::string replacement_facename;
+ static std::set<int> forced_replaces;
eRect area;
ePoint cursor;
eRect area;
ePoint cursor;
@@
-108,9
+129,10
@@
public:
virtual ~eTextPara();
static void setReplacementFont(std::string font) { replacement_facename=font; }
virtual ~eTextPara();
static void setReplacementFont(std::string font) { replacement_facename=font; }
+ static void forceReplacementGlyph(int unicode) { forced_replaces.insert(unicode); }
void setFont(const gFont *font);
void setFont(const gFont *font);
- int renderString(const
std::string &
string, int flags=0);
+ int renderString(const
char *
string, int flags=0);
void clear();
void clear();
@@
-138,16
+160,33
@@
public:
const eRect& getGlyphBBox(int num) const
{
const eRect& getGlyphBBox(int num) const
{
-
assert
(num >= 0);
-
assert
(num < (int)glyphs.size());
+
ASSERT
(num >= 0);
+
ASSERT
(num < (int)glyphs.size());
return glyphs[num].bbox;
}
return glyphs[num].bbox;
}
+
+ void setGlyphFlag(int g, int f)
+ {
+ ASSERT(g >= 0);
+ ASSERT(g < (int)glyphs.size());
+ glyphs[g].flags |= f;
+ }
+
+ void clearGlyphFlag(int g, int f)
+ {
+ ASSERT(g >= 0);
+ ASSERT(g < (int)glyphs.size());
+ glyphs[g].flags |= f;
+ }
};
class Font: public iObject
{
};
class Font: public iObject
{
-DECLARE_REF(Font);
+
DECLARE_REF(Font);
public:
public:
+#ifdef HAVE_FREETYPE2
+ FTC_ScalerRec scaler;
+#endif
FTC_Image_Desc font;
fontRenderClass *renderer;
FT_Error getGlyphBitmap(FT_ULong glyph_index, FTC_SBit *sbit);
FTC_Image_Desc font;
fontRenderClass *renderer;
FT_Error getGlyphBitmap(FT_ULong glyph_index, FTC_SBit *sbit);
@@
-162,4
+201,6
@@
public:
extern fontRenderClass *font;
extern fontRenderClass *font;
+#endif // !SWIG
+
#endif
#endif