C++ 如何从原始数据c++;

C++ 如何从原始数据c++;,c++,linux,unix,x11,C++,Linux,Unix,X11,关于这个问题,我已经找了一段时间了。我正在制作一个跨平台程序,我已经了解了如何使用windows API加载动画光标,以及如何在运行时从原始位图数据创建光标。但是,对于X11,对于我的Unix/Linux版本的程序,我找不到很好的文档。我知道我需要使用本文档中的XRender扩展函数、XRenderCreateCursor和XRenderCreateAnimCursor,但我不知道如何使用这些函数,并且本文档现在显示了任何示例 另外,原始图像数据是ARGB格式的,如果可能的话,我希望通过这些游标

关于这个问题,我已经找了一段时间了。我正在制作一个跨平台程序,我已经了解了如何使用windows API加载动画光标,以及如何在运行时从原始位图数据创建光标。但是,对于X11,对于我的Unix/Linux版本的程序,我找不到很好的文档。我知道我需要使用本文档中的XRender扩展函数、XRenderCreateCursor和XRenderCreateAnimCursor,但我不知道如何使用这些函数,并且本文档现在显示了任何示例

另外,原始图像数据是ARGB格式的,如果可能的话,我希望通过这些游标支持Alpha通道

有人能告诉我如何使用X11和XRender(或XCursor)库创建静态和动画光标,以及可能如何使光标可以用于任何X11窗口

谢谢

附言


我正在为我的程序使用的Gui跨平台编辑一个开源库,我正在尝试将此功能添加到库中,但我不习惯使用X11编程。

说到X,没有什么是简单的

首先,回顾历史

创建动画光标的步骤如下所示

  • 首先,您需要使用
    CreatePicture
    为动画光标的每一帧创建一张
    PICTURE

  • 使用
    CreateCursor
    从每张
    图片创建
    光标
    CreateCursor
    返回一个
    CURSOR
    句柄

  • 然后,获取所有帧的所有
    光标的列表,然后使用
    CreateAnimCursor
    创建一个表示动画光标的
    光标

  • 这一切归结为为为每一帧创建一张
    图片。使用
    CreatePicture
    DRAWABLE
    PICTFORMAT
    创建
    PICTURE
    DRAWABLE
    将是具有光标帧的实际位掩码的
    PIXMAP
    ,并且
    PICTFORMAT
    指定PIXMAP中的哪些通道表示红色、颜色和绿色通道,并且必须是从
    QueryPictformat
    返回的枚举的
    PICTFORMAT
    之一


    有关更多信息,请参阅前面提到的X渲染扩展规范。

    我强烈建议使用类似的工具包。X11非常复杂,您需要几个月才能掌握更多。而且它正在变得过时(可能被韦兰取代)。