[前言:我已经为此寻找了一条直接道路,已有多年了。]
我从远程设备获得原始光栅(1024x600,RGB / 565)。我想在一个简单的X11窗口中显示它。因为它代表屏幕刮擦,它需要快速/接近实时(30 fps min)。我找到了将每个像素插入Pixmap / Bitmap的方法,但必须有办法将整个栅格blob传递给Pixmap / Bitmap。有人可以帮忙吗?我只需要一条直接路径:
data [] - > Pixmap - >绘制到窗口。
uint8_t buffer[1024*600*2];
int byte_cnt = recv(client_sd, buffer, sizeof(buffer), MSG_WAITALL);
???; //--convert to Pixmap/Bitmap
???; //--paint in window
我无法从源发送位图,因为我将运行一个简单的RLE(行程编码器)来加快数据速率。
谢谢,
苏,他们(限制/奴隶)
您可以使用XPutImage在一个请求中将整个2d光栅图像发送到drawable(Pixmap或Window)。你必须在发送之前在客户端解码rle(也可能从rgb 565转换为格式x服务器支持)
如果客户端和服务器在同一台物理机器上(e.i共享相同内存),您可以使用MIT-SHM扩展加速 - 请参阅qazxsw poi