У меня есть приложение VB6 (пожалуйста, не смейтесь), которое много рисует через BitBlt и стандартные функции рисования VB6.Я сталкиваюсь с проблемами производительности (да, я делаю обычные трюки, такие как рисование в память).Итак, я решил исследовать другие способы рисования и наткнулся на OpenGL.
Я проводил некоторые эксперименты, и кажется, что делать большую часть того, что я хочу, довольно просто;в основном приложение использует только очень простое рисование - относительно большие 2D-прямоугольники сплошных цветов и т. д. - но я не смог найти эквивалента чему-то вроде HatchBrush или PatternBrush.
Точнее, яхотите иметь возможность указать небольшой монохромный пиксельный рисунок, выбрать цвет, и всякий раз, когда я рисую многоугольник (или что-то еще), вместо того, чтобы он был сплошным, он автоматически покрывался мозаикой с этим рисунком, не переводился, не поворачивался, не перегибался и не растягивался,с битами «вкл.» шаблона, отображаемыми в указанном цвете, и битами «выкл.» в шаблоне слева, отображающими все, что было нарисовано в области, на которой я сейчас рисую.
Очевидно, я могвсе расчеты делаю сам.То есть вместо рисования в виде многоугольника, который каким-то образом будет автоматически вычленен для меня, я мог бы рассчитать все линии или пиксели или все, что нужно на самом деле рисовать, а затем нарисовать их в виде линий или пикселей или что-то еще.Но есть ли более простой способ?Как в GDI, где вы просто говорите «нарисовать этот многоугольник, используя эту кисть»?
Я предполагаю, что «текстуры» могли бы выполнить то, что я хочу, но мне это не ясно (я полностьюплохо знакомый с этим и документация, которую я нашел, не совсем очевидна);Кажется, что текстуры могут искажать или переводить или растягивать рисунок, основываясь на вершинах многоугольника?Принимая во внимание, что я хочу, чтобы рисунок был мозаичным.
Есть ли способ сделать это или что-то в этом роде, кроме вычисления грубой силы точно пикселей / линий / чего бы это ни было нужно нарисовать?
Заранее спасибо за любую помощь.