xcb_xfixes_get_cursor_image_and_name_reply всегда возвращает null - PullRequest
0 голосов
/ 07 мая 2020

слишком мало документов о xcb. Я попытался подождать, xcb_flu sh et c.

let cookie = xcb_xfixes_get_cursor_image_and_name_unchecked(conn);
                    loop {
let ptr = xcb_xfixes_get_cursor_image_and_name_reply(conn, cookie, std::ptr::null_mut());

Мне нужно напрямую использовать XFixesGetCursorImage, xcb кажется ошибочным.

1 Ответ

0 голосов
/ 08 мая 2020

Вам необходимо объявить серверу X11 вашу поддерживаемую версию расширения XFixes, прежде чем вы сможете его использовать. libxfixes автоматически выполняет этот запрос QueryVersion за вас, но libxcb не выполняет никаких действий c за вашей спиной.

Сервер X11 требует, чтобы вы могли использовать только запросы, соответствующие той версии, которую вы объявили, что поддерживаете:

static int
ProcXFixesDispatch(ClientPtr client)
{
    REQUEST(xXFixesReq);
    XFixesClientPtr pXFixesClient = GetXFixesClient(client);

    if (pXFixesClient->major_version >= ARRAY_SIZE(version_requests))
        return BadRequest;
    if (stuff->xfixesReqType > version_requests[pXFixesClient->major_version])
        return BadRequest;
    return (*ProcXFixesVector[stuff->xfixesReqType]) (client);
}

(скопировано из https://sources.debian.org/src/xorg-server/2: 1.20.8-2 / xfixes / xfixes.c /? Hl = 135 # L144 )

...