Floodfill не будет работать для того, что вы хотите ... Если вы не выполните одно из следующих действий:
Вариант 1: используйте заливку в другой части памяти, а затем перетащите фигуру с помощью маски в место, где вы хотите, поскольку вы сказали, что хотите избежать прозрачности, эта опция как бы перечеркнута ... (хотя я все еще рекомендую это, действительно, не трудно сделать, если это проверяет, скопирован ли этот пиксель или нет)
Вариант 2. Используйте только базовые фигуры, которые можно легко заполнить без использования заливки, заполнив их горизонтальными линиями с начальной и конечной точкой, находящимися между двумя конечными пикселями каждой линии фигуры. Это было бы для квадратов, кругов ...
Вариант 3: То же, что и в варианте 2, но допускаются произвольные треугольники.
Вариант 4: То же, что и 3, но позволяет читать список точек и составлять объект из нескольких прямоугольников, чтобы вы могли создать любую произвольную форму (даже выпуклую). Это было бы очень трудно реализовать правильно (особенно выпуклые формы).