Subversion Repositories Kolibri OS

Rev

Rev 5231 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5231 Rev 5252
Line 69... Line 69...
69
    }
69
    }
70
}
70
}
Line 71... Line 71...
71
 
71
 
72
void canvas_draw_text(rect* r, char* txt, __u32 len, __u32 color)
72
void canvas_draw_text(rect* r, char* txt, __u32 len, __u32 color)
73
{
-
 
74
    __u16 x = r->x + (r->width - len * FONT_WIDTH - len) / 2 - canvas.area.x;
-
 
75
    __u16 y = r->y + (r->height - FONT_HEIGHT) / 2 - canvas.area.y;
-
 
76
 
73
{
77
    __u32 w;
74
    __u32 w;
78
    __u32 h;
75
    __u32 h;
Line 79... Line 76...
79
    char* mem;
76
    char* mem;
Line 92... Line 89...
92
                          "c"(color | (8 << 24)),
89
                          "c"(color | (8 << 24)),
93
                          "d"((__u32)txt),
90
                          "d"((__u32)txt),
94
                          "S"(len),
91
                          "S"(len),
95
                          "D"((__u32)(mem)));
92
                          "D"((__u32)(mem)));
Line -... Line 93...
-
 
93
 
-
 
94
    __u16 x = r->x + (r->width - (len * FONT_WIDTH + len) * 2) / 2 - canvas.area.x;
-
 
95
    __u16 y = r->y + (r->height - FONT_HEIGHT * 2) / 2 - canvas.area.y;
96
 
96
 
97
    int row = 0;
97
    int row = 0;
98
    int column = 0;
98
    int column = 0;
99
    __u32* __mem = (__u32*)(mem + 8);
99
    __u32* __mem = (__u32*)(mem + 8);
100
    for (row = 0; row < h; row++)
100
    for (row = 0; row < h; row++)
101
    {
101
    {
102
        for (column = 0; column < w; column++)
102
        for (column = 0; column < w; column++)
103
        {
103
        {
104
            __u32 c = __mem[column + row * w];
104
            __u32 c = __mem[column + row * w];
105
            if (c & 0xFF000000)
105
            if (c & 0xFF000000)
106
            {
106
            {
-
 
107
                canvas.image[canvas_index(row * 2 + y,column * 2 + x)] = *((rgb*)&c);
-
 
108
                canvas.image[canvas_index(row * 2 + y,column * 2 + 1 + x)] = *((rgb*)&c);
-
 
109
 
-
 
110
                canvas.image[canvas_index(row * 2 + 1 + y,column * 2 + x)] = *((rgb*)&c);
107
                canvas.image[canvas_index(row + y,column + x)] = *((rgb*)&c);
111
                canvas.image[canvas_index(row * 2 + 1 + y,column * 2 + 1 + x)] = *((rgb*)&c);
108
            }
112
            }
109
        }
113
        }
Line 110... Line 114...
110
    }
114
    }