我有一个VB6应用程序(请不要笑),它通过BitBlt和标准VB6绘图功能进行大量绘图。我遇到了性能问题(是的,我做了像绘图到内存这样的常规技巧)。所以,我决定调查其他绘图方式,并且已经发布了OpenGL。OpenGL相当于GDI的HatchBrush或PatternBrush?
我一直在做一些尝试,看起来很简单,做大部分我想要的;该应用程序大多只使用非常简单的绘图 - 相对较大的纯色等2D矩形 - 但我无法找到与HatchBrush或PatternBrush类似的对象。更具体地说,我希望能够指定一个小的单色像素图案,选择一种颜色,并且每当我画一个多边形(或其他)时,而不是实心的,让它自动平铺该图案,而不是翻译或旋转或倾斜或拉伸,图案的“开”位以指定颜色显示,并且图案的“关”位留下显示在我正在绘制的区域下绘制的任何图案。
显然我可以自己做所有的计算。也就是说,我可以计算所有的线条或像素,或者实际需要绘制的任何东西,然后将它们绘制成线条或像素等等,而不是绘制成多边形。但有没有更简单的方法?就像在GDI中,你只是说“用这个画笔绘制这个多边形”?我猜测“纹理”可能能够完成我想要的功能,但对我来说并不清楚(我对此完全陌生,而且我发现的文档并不是完全明显的);但是,我并不清楚这一点。基于多边形的顶点,纹理可能会倾斜或平移或拉伸模式?而我想要的图案平铺。
有没有办法做到这一点,或类似的东西,除了蛮力计算的像素/线/任何需要绘制?
在此先感谢您的帮助。
非常感谢! – 2010-06-06 16:17:57
刚试过 - 这正是我想要的。再次感谢! – 2010-06-06 16:37:11