Рабочий пример рисования графики с помощью функции SetDIBitsToDevice?
Посоветуйте простой пример рисования графики на C# без использования стандартных методов System.Drawing, а используя WinAPI. Возможно у кого-то завалялся (например, на GitHub'е) простенький проект с рисованием своими методами геометрических фигур в свой Bitmap-буфер и дальнейшая отрисовка на форме с помощью SetDIBitsToDevice?
Станислав Макаров: Цель в том, что имеется именно такое задание. Как раз изучить рисование с помощью WinAPI на C#. Причем не просто используя стандартные методы (например, System.Drawing.Graphics.DrawLine()), а реализуя рисование и заливку самостоятельно.
Exemption ясно, предположение оправдалось) (такое полуадекватное требование может быть только в задании). А что именно нужно использовать из WinAPI? Только SetDIBitsToDevice? или что-то еще? Самостоятельно реализовать рисование - значит реализовать алгоритм рисования линии и заливки, или использовать для этого возможности GDI?
Станислав Макаров: Да, алгоритмы рисования и заливки для базовых фигур (линия, прямоугольник, окружность) необходимо реализовать самостоятельно. Естественно можно основываться на уже известных алгоритмах. Т.е. нужна еще реализация буфера в памяти, который в результате передается в SetDIBitsToDevice и итоговая картинка рисуется на нужном контексте.
Exemption Если вам нужен только буфер в памяти, вы можете взять Bitmap, сделать LockBits и работать с массивом пикселей в unsafe-коде - сможете реализовать отрисовку любого двумерного примитива. После этого битмап можно поместить в контрол Image или нарисовать еще где-то. Если все таки вам нужно использовать что-то из WinAPI, напишите что конкретно, т.к. сейчас я необходимости в этом не вижу.