GameApi 28
Library used by GameApi Builder tool
Loading...
Searching...
No Matches
FreeType2.hh
Go to the documentation of this file.
1
2#include "Graph.hh"
3#include <string>
4#include <vector>
5
6struct GlyphData;
8{
9public:
10 FontInterfaceImpl(GameApi::Env &e, void *priv_, std::string ttf_filename, std::string homepage, int sx, int sy);
11 void Collect(CollectVisitor &vis) { }
12 void HeavyPrepare() { }
13 virtual int Left(long idx, bool is_outline=false) const;
14 virtual int Top(long idx, bool is_outline=false) const;
15 virtual int SizeX(long idx, bool is_outline=false) const;
16 virtual int SizeY(long idx, bool is_outline=false) const;
17 virtual unsigned int Map(long idx, int x, int y, bool is_outline=false) const;
18 virtual int AdvanceX(long idx, bool is_outline=false) const;
19 virtual int Ascender(long idx, bool is_outline=false) const;
20 virtual int Descender(long idx, bool is_outline=false) const;
21 virtual int Height(long idx, bool is_outline=false) const;
22 void gen_glyph_data(long idx, bool is_outline=false);
23 struct Bezier2d {
25 };
26 virtual std::vector<Bezier2d> outlines(char idx) const;
27 virtual std::vector<Bezier2d> make_monotonic(std::vector<Bezier2d> vec);
28 std::vector<Bezier2d> gen_outline_data(long idx);
30 {
31 float ymin;
32 float ymax;
33 int curve;
34 };
36 {
37 int curr;
38 };
39 struct ResPair
40 {
41 double x;
43 };
44
45 virtual std::vector<OutlineEvent> convert_to_events(std::vector<Bezier2d> vec);
47 void ScanLineStep(std::vector<int> &active, const std::vector<OutlineEvent> &events, float y, ScanLineContext &ctx, long idx) const;
48 std::vector<ResPair> ScanLineXCoord(const std::vector<int> &active, const std::vector<OutlineEvent> &events, const std::vector<Bezier2d> &bezi, float y, long idx) const;
49 int IsPixelInside(const std::vector<ResPair> &vec, float x, long idx) const;
50private:
51 GameApi::Env &e;
52 std::string ttf_filename;
53 std::string homepage;
54 int sx,sy;
55 mutable std::map<long, GlyphData*> glyph_data;
56 void *priv_;
57 void *priv;
58 int state;
59 long old_idx;
60 mutable pthread_mutex_t mutex;
61 mutable pthread_mutex_t outline_mutex;
62 std::string key;
63 mutable std::map<long, GlyphData*> *data2=0;
64};
Definition GraphI.hh:622
std::vector< ResPair > ScanLineXCoord(const std::vector< int > &active, const std::vector< OutlineEvent > &events, const std::vector< Bezier2d > &bezi, float y, long idx) const
Definition FreeType2.cc:258
virtual int Descender(long idx, bool is_outline=false) const
Definition FreeType2.cc:364
virtual int Height(long idx, bool is_outline=false) const
Definition FreeType2.cc:372
void Collect(CollectVisitor &vis)
Definition FreeType2.hh:11
ScanLineContext ScanLineContextCreate() const
Definition FreeType2.cc:219
FontInterfaceImpl(GameApi::Env &e, void *priv_, std::string ttf_filename, std::string homepage, int sx, int sy)
Definition FreeType2.cc:38
virtual unsigned int Map(long idx, int x, int y, bool is_outline=false) const
Definition FreeType2.cc:418
virtual int AdvanceX(long idx, bool is_outline=false) const
Definition FreeType2.cc:411
std::vector< Bezier2d > gen_outline_data(long idx)
Definition FreeType2.cc:525
virtual std::vector< Bezier2d > outlines(char idx) const
Definition FreeType2.cc:46
void gen_glyph_data(long idx, bool is_outline=false)
Definition FreeType2.cc:628
virtual int Ascender(long idx, bool is_outline=false) const
Definition FreeType2.cc:356
virtual int SizeX(long idx, bool is_outline=false) const
Definition FreeType2.cc:397
virtual std::vector< OutlineEvent > convert_to_events(std::vector< Bezier2d > vec)
Definition FreeType2.cc:198
void HeavyPrepare()
Definition FreeType2.hh:12
virtual int Top(long idx, bool is_outline=false) const
Definition FreeType2.cc:390
virtual std::vector< Bezier2d > make_monotonic(std::vector< Bezier2d > vec)
Definition FreeType2.cc:156
void ScanLineStep(std::vector< int > &active, const std::vector< OutlineEvent > &events, float y, ScanLineContext &ctx, long idx) const
Definition FreeType2.cc:226
virtual int Left(long idx, bool is_outline=false) const
Definition FreeType2.cc:381
int IsPixelInside(const std::vector< ResPair > &vec, float x, long idx) const
Definition FreeType2.cc:333
virtual int SizeY(long idx, bool is_outline=false) const
Definition FreeType2.cc:404
Definition GraphI.hh:2278
Definition GameApi.hh:362
Definition FreeType2.hh:23
Point2d p1
Definition FreeType2.hh:24
Point2d p2
Definition FreeType2.hh:24
Point2d p3
Definition FreeType2.hh:24
Definition FreeType2.hh:30
float ymin
Definition FreeType2.hh:31
int curve
Definition FreeType2.hh:33
float ymax
Definition FreeType2.hh:32
Definition FreeType2.hh:40
double x
Definition FreeType2.hh:41
int winding
Definition FreeType2.hh:42
Definition FreeType2.hh:36
int curr
Definition FreeType2.hh:37
Definition FreeType2.cc:16
Definition VectorTools.hh:910