我正在寻找一个函数,它可以做与GDI的Xlib的StretchBlt相同的事情。我在XLib头中找不到任何这样的函数,所以我开始认为我必须了解StretchBlt是如何工作的,以便自己在XLib中实现它。我很感谢你的帮助。
发布于 2011-02-28 11:27:50
在Xlib或X协议中没有这样的功能。一些方法可以做到这一点:
自己的例程
最好的方法很大程度上取决于项目的细节。一般来说,按照现代标准,Xlib的绘图原语几乎一文不值,因此您确实应该使用一些更高层的库。Cairo可能是默认的选择,它被广泛使用在开源软件中。
为Xlib自己用一种通用而正确的方式进行编码是相当困难的……问题是你必须处理你的用户可能拥有的任何视觉和色彩映射。如果你知道你的用户将使用的确切的硬件和软件,这可能是一件小事,否则这可能是一件令人头疼的事情。在16位、24位和32位深度以及不同的字节顺序等等之间需要进行大量的转换。GTK+和Cairo都有转换代码,所以如果您可以使用它们,您可以编写一个固定格式的拉伸例程,比如ARGB32,而不必处理所有其他的。
发布于 2011-03-07 05:57:38
这种功能是由XRender扩展http://cgit.freedesktop.org/xorg/proto/renderproto/plain/renderproto.txt提供的
https://stackoverflow.com/questions/5136893
复制相似问题