XLoadQuerryFont在使用XListFonts找到的字体上失败

时间:2019-07-17 14:56:11

标签: c fonts x11

我正在尝试将OTF字体加载到sflock中。 sflock使用XLoadQueryFont()加载字体,但是由于某种原因,我尝试加载的字体不起作用。

我编写了一个小型测试程序,该程序仅尝试加载字体然后退出。程序如下所示。它可以成功为我的机器上的任何TTF字体(到目前为止我尝试过)加载字体,但是我尝试过的OTF根本不起作用。 OTF字体由XListFonts()显示,因此X可以找到它们,但无法加载它们。有没有办法将OTF字体加载到X11中,还是必须使用pango或类似工具?

#include <X11/Xlib.h>
#include <stdio.h>

int main(int argc, char* argv[])
{
    if (argc != 2) {
        fprintf(stderr,"Missing argument.\n");
        return 1;
    }

    Display *dsp = XOpenDisplay(0);

    XFontStruct *font = XLoadQueryFont(dsp, argv[1]);
    if (font == NULL) {
        printf("font not found.\n");
    } else {
        printf("font found.\n");
        XFreeFont(dsp, font);
    }

    XCloseDisplay(dsp);

    return 0;
}

0 个答案:

没有答案