по просьбе трудящихся добавил возможность рисования на картинках нескольких основных примитивов:
// установить цвет пера для рисования на картинках (можно полупрозрачный)
procedure imgsetcolor(color: integer);
// получить цвет пера для рисования на картинках
function imggetcolor: integer;
// установить непрозрачность пера для рисования на картинках (0/1)
procedure solid(value: integer);
// получить состояние непрозрачности пера для рисования на картинках (0/1)
function getsolid: integer;
// линия на картинке
function imgline(img: image; x1, y1, x2, y2: integer): image;
// прямоугольник на картинке
function imgrect(img: image; x, y, w, h: integer): image;
// закрашенный прямоугольник на картинке
function imgfillrect(img: image; x, y, w, h: integer): image;
// эллипс на картинке
function imgellipse(img: image; x, y, w, h: integer): image;
// залитый эллипс на картинке
function imgfillellipse(img: image; x, y, w, h: integer): image;
// заливка на картинке
function imgfill(img: image; x, y: integer): image;
// сектор на картинке
function imgarc(img: image; x, y, w, h, a1, a2: integer): image;
// кривая на картинке (все опорные точки лежат на кривой)
function imgbow(img: image; x1, y1, x2, y2, x3, y3: integer): image;
// кривая на картинке (2-я опорная точка не лежит на кривой)
function imgbezier(img: image; x1, y1, x2, y2, x3, y3: integer): image;
и немного поправил заливку экрана:
// быстрая заливка экрана цветом col
procedure cls(col: integer);
// заливка экрана полупрозрачным цветом col
procedure clsa(col: integer);
// заливка экрана
procedure scrfill(x, y);
функции, как мог оптимизировал, но не обещаю скоростей на топорах.
хотя на картинках в основном рисует по самым шустрым алгоритмам брезенхама, битмапы то и дело конвертируются в картинки и наоборот.
треугольнички пока победить не смог, кривовато рисуются, надо править ..(