Subversion Repositories Kolibri OS

Rev

Rev 5021 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
4438 Serge 1
 
2
#include 
3
#include 
4
#include 
5
//#include 
5021 Serge 6
//#include "font_droid.h"
4438 Serge 7
#include 
8
#include FT_FREETYPE_H
9
#include 
10
11
 
12
13
 
14
{
15
  int  l;
16
  int  t;
17
  int  r;
18
  int  b;
19
}rect_t;
20
21
 
22
23
 
24
25
 
5372 serge 26
{
4438 Serge 27
    uint8_t *dst;
28
    uint8_t *src, *tmpsrc;
29
30
 
31
    int i, j;
32
33
 
5372 serge 34
    src = bitmap->buffer;
4438 Serge 35
36
 
37
    {
38
        tmpdst = (uint32_t*)dst;
39
        tmpsrc = src;
40
41
 
5372 serge 42
        src+= bitmap->pitch;
4438 Serge 43
44
 
45
        {
46
            int a = *tmpsrc++;
47
            int sr, sg, sb;
48
            int dr, dg, db;
49
50
 
51
52
 
53
            dg = (*tmpdst >> 8) & 0xFF;
54
            dr = (*tmpdst >> 16) &0xFF;
55
56
 
57
            sg = (col >> 8) & 0xFF;
58
            sr = (col >> 16) &0xFF;
59
60
 
61
            dg = (a*sg + dg*(256-a))/256;
62
            dr = (a*sr + dr*(256-a))/256;
63
64
 
65
        };
66
    }
67
};
68
69
 
70
 
5372 serge 71
{
4438 Serge 72
    FT_UInt glyph_index;
73
    FT_Bool use_kerning = 0;
74
    FT_UInt previous;
75
    int x, y, w;
76
    char ch;
77
    int err = 0;
78
79
 
80
    previous = 0;
81
82
 
83
    y = rc->b;
84
85
 
86
87
 
88
    {
89
        glyph_index = FT_Get_Char_Index( face, ansi2utf32(ch) );
90
91
 
92
        {
93
            FT_Vector delta;
94
            FT_Get_Kerning( face, previous, glyph_index, FT_KERNING_DEFAULT, &delta );
95
            x += delta.x ;
96
        }
97
98
 
99
            break;
100
101
 
102
        if ( err )
103
            continue;
104
105
 
106
        if ( err )
107
            continue;
108
109
 
5372 serge 110
                       y - face->glyph->bitmap_top, color);
111
4438 Serge 112
 
113
        previous = glyph_index;
114
    };
115
116
 
117
};
118
119
 
120
 
121
{
122
    int err;
123
124
 
125
    FT_Face face = NULL;
126
127
 
128
    if ( err )
129
    {
130
        printf("an error occurred during FreeType initialization\n");
131
        goto done;
132
    }
133
134
 
135
136
 
137
    printf("err %d\n", err);
5021 Serge 138
    if ( err == FT_Err_Unknown_File_Format )
4438 Serge 139
    {
140
        printf("font format is unsupported\n");
141
        goto done;
142
143
 
144
    else if ( err )
145
    {
146
        printf("font file could not be read or broken\n");
147
        goto done;
148
149
 
150
151
 
152
//    err = FT_Set_Pixel_Sizes( face, 0, 100 );
153
154
 
155
156
 
157
};
158
159
 
160
 
161
{
162
    if(ch < 0x80)
163
        return ch;
164
165
 
166
        return 0x410-0x80 + ch;
167
168
 
169
        return 0;
170
171
 
172
        return 0x440-0xE0 + ch;
173
174
 
175
        return 0x401;
176
    else if(ch==0xF1)
177
        return 0x451;
178
    else return 0;
179
}
180
>
181
 
182