我有一个 VB6 应用程序(请不要笑),它通过 BitBlt 和标准的 VB6 绘图功能进行大量绘图。我遇到了性能问题(是的,我会做一些常规技巧,比如绘制到内存中)。所以,我决定研究其他的绘图方式,并接触了 OpenGL。
我一直在做一些实验,做我想做的大部分事情似乎很简单;该应用程序大多只使用非常简单的绘图——相对较大的纯色二维矩形等——但我无法找到与 HatchBrush 或 PatternBrush 类似的东西。
更具体地说,我希望能够指定一个小的单色像素图案,选择一种颜色,并且每当我绘制一个多边形(或其他任何东西)时,而不是它是实心的,让它自动平铺该图案,而不是平移或旋转或倾斜或拉伸,图案的“on”位以指定的颜色显示,而图案的“off”位则显示在我现在正在绘制的区域下绘制的任何内容。
显然我可以自己做所有的计算。也就是说,我可以计算所有线或像素或实际需要绘制的任何内容,而不是绘制为会自动平铺的多边形,然后将它们绘制为线或像素或其他任何内容。但是有没有更简单的方法?就像在 GDI 中一样,您只是说“使用这个画笔绘制这个多边形”?
我猜“纹理”可能能够完成我想要的,但我不清楚(我对此完全陌生,我发现的文档并不完全明显);根据多边形的顶点,似乎纹理可能会倾斜、平移或拉伸图案?而我想要平铺的图案。
除了精确计算像素/线条/需要绘制的任何内容之外,有没有办法做到这一点或类似的方法?
提前感谢您的帮助。