Colors xcb库:如何绘制颜色

Colors xcb库:如何绘制颜色,colors,xcb,Colors,Xcb,我正在创建C代码,它必须在几个图形窗口中以多种颜色绘制线条和符号。通过查阅www,我了解到我需要使用彩色地图,但是我无法让它们工作。 我发现的大多数代码都是关于创建和填充一个新的颜色映射的,但是我只需要一些颜色(黄色、红色、洋红等等),所以我认为默认的映射就足够了。 如何读取默认颜色映射屏幕->默认颜色映射中可用的颜色? 有人能给我举一个创建窗口及其图形上下文的基本示例,然后在其中绘制(比如)绿色圆圈或蓝色正方形吗?下面的代码是从我正在处理的一个项目中提取的几行代码,在这个项目中,我使用了很多颜

我正在创建C代码,它必须在几个图形窗口中以多种颜色绘制线条和符号。通过查阅www,我了解到我需要使用彩色地图,但是我无法让它们工作。 我发现的大多数代码都是关于创建和填充一个新的颜色映射的,但是我只需要一些颜色(黄色、红色、洋红等等),所以我认为默认的映射就足够了。 如何读取默认颜色映射屏幕->默认颜色映射中可用的颜色?
有人能给我举一个创建窗口及其图形上下文的基本示例,然后在其中绘制(比如)绿色圆圈或蓝色正方形吗?

下面的代码是从我正在处理的一个项目中提取的几行代码,在这个项目中,我使用了很多颜色进行绘制。这对我来说很管用——我不是说这是最好的,甚至不是一个很好的方法,但我只是一个业余爱好者,试图自学,从我发现的稀少的例子中,这是我拼凑出来的

我实际上保留了一个简单的rgb值数组,存储的是uint32,我用它来绘制。因为我只是为了满足自己的需求而编写程序,所以我不知道这是否非常方便。此外,还进行了一些实验来发现颜色的编码。我相信这取决于硬件。我认为彩色地图的优势在于,它们是可移植的,如果您没有truecolor,彩色地图将帮助您使用正确的颜色进行绘制。我个人不需要知道。我只是喜欢用像素或填充矩形来探索数学

uint32_t    rgb = 0xFFFFFFFF; // white on my system

uint32_t    mask = XCB_GC_FOREGROUND,
            foreground_value = rgb;

xcb_gcontext_t gc;

gc = xcb_generate_id(connection);
xcb_create_gc (connection, gc, drawing_buffer_pixmap, mask, &foreground_value);

// below, the color of the gc is changed rather than making a new one

xcb_change_gc(connection, *gc, mask, &foreground_value);