LINUX.ORG.RU

[Xlib+Xft] рендеринг в pixmap


0

0

никак не могу разобраться как отрендерить Xft-текст в картинку. следующая функция с сообщением «X Error of failed request: BadMatch (invalid parameter attributes)» падает на XftDrawStringUtf8(...)

void create_pixmaps(XVisualInfo *xvi, XWindowAttributes *x_win_attr)
{
    int n = 0;
    char buf[5];
    XftDraw *draw;
    GC gc; 
    XftFont *font;
    XftColor xft_color_black;

    font = XftFontOpenName(display, DefaultScreen(display), "LiberationMono-24");
    XftColorAllocName(display, xvi->visual, x_win_attr->colormap, "black", &xft_color_black);
    for (int i = 0; i < NR_ITEMS; i++) {
        empty_item[i] = XCreatePixmap(display, window, 70, 70, 1); 
        gc = XCreateGC(display, empty_item[i], 0, 0); 
        XSetForeground(display, gc, WhitePixel(display, DefaultScreen(display)));
        XFillRectangle(display, empty_item[i], gc, 0, 0, 70, 70);
        XSetForeground(display, gc, BlackPixel(display, DefaultScreen(display)));
        XDrawArc(display, empty_item[i],  gc, 35, 35, 70, 70, 90 * 64, 180 * 64);
        draw = XftDrawCreate(display, empty_item[i], xvi->visual, x_win_attr->colormap);
        sprintf(buf, "%d", i); 
        XftDrawStringUtf8(draw, &xft_color_black, font, 10, 5, (XftChar8 *)buf, 1); 
    }   
}

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.