Наконец-то готов релиз. Тут четыре небольших примера:
Ссылка удалена. Актуальная версия тут
Что нового по сравнению с версией 2.0.
1. Добавился оператор OpBlend (интерполяция источника и приёмника).
2. Теперь использовать маску можно не только с любым оператором, но и с MulAddS2X, ClearBuffer, MoveBit, MoveByte, DrawDPBM, DrawEBM.
3. В DrawDPBM добавился точечный источник света.
4. Загрузка из файла средствами GDI+, соответственно поддержка .bmp, .jpg, .png и т. д. форматов.
5. Сохранение в .bmp, .jpg, .png с альфаканалом (кроме .jpg) и без него.
6. При загрузке можно задавать трансформации - масштабирование (с фильтрацией), поворот, отражение.
7. Появился поворот спрайта на произвольный угол, в том числе с АА.
8. ColorKey теперь задаётся не при загрузке, а через метод AddColorKey. "Add" потому, что таких ключей можно задавать сколько угодно, все указанные цвета станут прозрачными.
9. Новый метод MaskInterSector позволяет находить площадь пересечения масок. Удобно применять для коллизий, задавая в качестве маски альфаканал.
Пример с Bump очень понравился :-).
Скачал... Lerp порадовал...
Я позиционирую движок не только, и даже не столько для разработки игр, сколько для утилит. Поэтому сделал небольшой пример:
http://tuapse-mikle.narod.ru/SR2D/Paint.zip
Это не графический редактор, это - демонстрация технологий, применимых в графическом редакторе.
Mikle
Можно как то линии рисовать? Если например нужно будет нарисовать произвольный прямоугольник?
Этого нет, только спрайты. Но мысль хорошая, а то уже не знаю, что дальше делать с SR2D. Видимо пора добавлять векторные элементы.
Сделал пример анимации:
http://tuapse-mikle.narod.ru/SR2D/Anim.zip
Mikle
Мой любимый чибик :) Как я понял, у тебя двиг не может копировать произвольную область изображения в другую произвольную область? Это связано с какой-то технической особенностью?
Почему не может? OpPaint - это фактически копирование. Область на приёмнике можно задать с помощью SetLockRect.
Тема в архиве.