Subversion Repositories Kolibri OS

Rev

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

Rev Author Line No. Line
3068 serge 1
 
2
#include 
3
#include 
4
#include 
5
#include 
6
//#include "font_droid.h"
3248 Serge 7
#include 
3068 serge 8
#include FT_FREETYPE_H
9
#include 
3248 Serge 10
3068 serge 11
 
3248 Serge 12
3068 serge 13
 
14
{
15
  int  l;
3248 Serge 16
  int  t;
17
  int  r;
18
  int  b;
19
}rect_t;
20
3068 serge 21
 
3248 Serge 22
3068 serge 23
 
3248 Serge 24
25
 
3068 serge 26
{
27
    uint8_t *dst;
28
    uint8_t *src, *tmpsrc;
29
30
 
31
    int i, j;
32
33
 
34
    src = bitmap->buffer;
35
36
 
37
    {
38
        tmpdst = (uint32_t*)dst;
39
        tmpsrc = src;
40
41
 
42
        src+= bitmap->pitch;
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
 
3248 Serge 71
{
3068 serge 72
    FT_UInt glyph_index;
73
    FT_Bool use_kerning = 0;
74
    FT_UInt previous;
75
    int x, y, w;
3248 Serge 76
    char ch;
3068 serge 77
    int err = 0;
78
79
 
80
    previous = 0;
81
82
 
3248 Serge 83
    y = rc->b;
84
3068 serge 85
 
3248 Serge 86
87
 
3068 serge 88
    {
89
        glyph_index = FT_Get_Char_Index( face, ansi2utf32(ch) );
3248 Serge 90
3068 serge 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
 
3248 Serge 99
            break;
100
101
 
3068 serge 102
        if ( err )
103
            continue;
104
105
 
106
        if ( err )
107
            continue;
108
109
 
110
                        y - face->glyph->bitmap_top, color);
111
112
 
113
        previous = glyph_index;
114
    };
115
116
 
117
};
118
119
 
3248 Serge 120
 
3068 serge 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
 
3248 Serge 135
3068 serge 136
 
3248 Serge 137
    if ( err == FT_Err_Unknown_File_Format )
3068 serge 138
    {
139
        printf("font format is unsupported\n");
140
        goto done;
141
142
 
143
    else if ( err )
144
    {
145
        printf("font file could not be read or broken\n");
146
        goto done;
147
148
 
149
150
 
3248 Serge 151
//    err = FT_Set_Pixel_Sizes( face, 0, 100 );
3068 serge 152
153
 
154
155
 
156
};
157
158
 
159
160
 
3248 Serge 161
 
162
{
163
    if(ch < 0x80)
164
        return ch;
165
166
 
167
        return 0x410-0x80 + ch;
168
169
 
170
        return 0;
171
172
 
173
        return 0x440-0xE0 + ch;
174
175
 
176
        return 0x401;
177
    else if(ch==0xF1)
178
        return 0x451;
179
    else return 0;
180
}
181
>
182
 
183