我正在创建C代码,必须在几个图形窗口中以多种颜色绘制线条和符号。咨询www我了解到我需要使用色彩图,但是我不能让它们起作用。 我找到的大多数代码都是关于创建和填充新的色彩映射,但是我只需要一些颜色(黄色,红色,洋红色......),所以我认为默认的地图就足够了。 如何阅读默认色彩映射屏幕中的可用颜色 - > default_colormap? 有人能指出我创建一个窗口及其图形上下文的基本示例,然后绘制(比如说)一个绿色圆圈或蓝色方块吗?
答案 0 :(得分:0)
以下代码是从我正在处理的项目中提取的几行代码,其中我绘制了许多颜色。它对我有用 - 我不是故意说这是最好的,甚至是一种非常好的方式,但我只是一个爱好者,试图自我教育,并且从我的稀疏例子中脱颖而出发现,这就是我拼凑在一起的东西。
check this manpage for: xcb_change_gc(etc.,);
我实际上保存了一个简单的rgb值数组,存储的是uint32_ts,我用它绘制。由于我只是为了自己的满意而编程,所以我不知道这是否非常便携。此外,还需要进行一些实验来发现颜色的编码。我确信这与硬件有关。我认为彩色地图的优势在于它们是便携式的,如果你没有真彩色,彩色地图将帮助你用正确的颜色绘制。我个人不需要知道。我只是想用像素或填充矩形来绘制一些数学。
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);