Pixmap Utilities

Under extra/common/pixmap16_utils.fs there is optional code for supporting additional pixmap operations, particularly line and circle-drawing.

pixmap16-utils

The pixmap16-utils module contains the following words:

draw-pixel-line

( color x0 y0 x1 y1 dst-pixmap – )

This draws a pixel line on dst-pixmap from (x0, *y0) to (x1, y1) using the color value as used by pixmap16::draw-pixel-const.

draw-rect-line

( color width height x0 y0 x1 y1 dst-pixmap – )

This draws a line with a rectangular pen of width and height on dst-pixmap from (x0, y0) to (x1, y1) with the pen centered on the line using the color value as used by pixmap16::draw-rect-const. Note that the drawing operation op-xor is not recommended because it will most likely give undesirable results.

draw-bitmap-line

( color mask-x mask-y width height x0 y0 x1 y1 mask-bitmap dst-pixmap – )

This draws a line with a rectangle from (mask-x, mask-y) to (mask-x + width, mask-y + height) in mask-bitmap as a pen on dst-pixmap from (x0, y0) to (x1, y1) with the pen centered on the line, where only bits in mask-bitmap which are set to one are colored with color.

draw-pixmap-line

( src-x src-y width height x0 y0 x1 y1 src-pixmap dst-pixmap – )

This draws a line with the rectangle from (src-x, src-y) to (src-x + width, src-y + height) in src-pixmap as a pen on dst-pixmap from (x0, y0) to (x1, y1) with the pen centered on the line.

draw-mask-line

( color mask-x mask-y src-x src-y width height x0 y0 x1 y1 mask-bitmap src-pixmap dst-pixmap – )

This draws a line with a rectangle from (src-x, src-y) to (src-x + width, src-y + height) in src-pixmap as a pen and (mask-x, mask-y) to (mask-x + width, mask-y + height) in mask-bitmap as a mask for said pen on dst-pixmap from (x0, y0) to (x1, y1) with the pen centered on the line, where only bits in mask-bitmap which are set to one have the corresponding pixels copied from src-pixmap to dst-pixmap.

draw-pixel-circle

( color x y radius dst-pixmap – )

This draws an unfilled pixel circle on dst-pixmap centered at (x, y) with radius using the color value as used by pixmap16::draw-pixel-const.

draw-rect-circle

( color width height x y radius dst-pixmap – )

This draws an unfilled circle with a rectangular pen of width and height on dst-pixmap centered at (x, y) with radius with the pen centered on the edge of the circle using the color value as used by pixmap16::draw-rect-const.

draw-bitmap-circle

( color mask-x mask-y width height x y radius mask-bitmap dst-pixmap – )

This draws an unfilled circle with the rectangle from (mask-x, mask-y) to (mask-x + width, mask-y + height) in mask-bitmap as a pen on dst-pixmap centered at (x, y) with radius with the pen centered on the edge of the circle, where only bits in mask-bitmap which are set to one are colored with color.

draw-pixmap-circle

( src-x src-y width height x y radius src-pixmap dst-pixmap – )

This draws an unfilled circle with the rectangle from (src-x, src-y) to (src-x + width, src-y + height) in src-pixmap as a pen on dst-pixmap centered at (x, y) with radius with the pen centered on the edge of the circle.

draw-mask-circle

( mask-x mask-y src-x src-y width height x y radius mask-bitmap src-pixmap dst-pixmap – )

This draws an unfilled circle with a rectangle from (src-x, src-y) to (src-x + width, src-y + height) in src-pixmap as a pen and (mask-x, mask-y) to (mask-x + width, mask-y + height) in mask-bitmap as a mask for said pen on dst-pixmap centered at (x, y) with radius with the pen centered on the edge of the circle.

draw-filled-circle

( color x y radius dst-pixmap – )

This draws a filled pixel circle on dst-pixmap centered at (x, y) with radius using the color value as used by pixmap16::draw-pixel-const.