summaryrefslogtreecommitdiff
path: root/static/v10/man9/types.9
diff options
context:
space:
mode:
authorJacob McDonnell <jacob@jacobmcdonnell.com>2026-04-25 21:07:28 -0400
committerJacob McDonnell <jacob@jacobmcdonnell.com>2026-04-25 21:07:28 -0400
commit711594636704defae873be1a355a292505585afd (patch)
tree59ee13f863830d8beba6cfd02bbe813dd486c26f /static/v10/man9/types.9
parent3258a063c1f189d7b019e40e525b46bef9b9a7b1 (diff)
docs: Added UNIX V10 Manuals
Diffstat (limited to 'static/v10/man9/types.9')
-rw-r--r--static/v10/man9/types.9147
1 files changed, 147 insertions, 0 deletions
diff --git a/static/v10/man9/types.9 b/static/v10/man9/types.9
new file mode 100644
index 00000000..9313c0ae
--- /dev/null
+++ b/static/v10/man9/types.9
@@ -0,0 +1,147 @@
+.TH TYPES 9.5
+.CT 2 graphics
+.SH NAME
+Word, Point, Rectangle, Bitmap, Texture, Pt, Rect, Rpt, display, Drect, Jrect \- graphics data types
+.SH SYNOPSIS
+.B #include <jerq.h>
+.PP
+.B typedef int Word;
+.br
+.B typedef struct Point Point;
+.br
+.B typedef struct Rectangle Rectangle;
+.br
+.B typedef struct Bitmap Bitmap;
+.br
+.B typedef struct Texture Texture;
+.PP
+.B extern Bitmap display;
+.br
+.B extern Rectangle Drect, Jrect;
+.PP
+.B Point Pt(x, y)
+.B int x, y;
+.PP
+.B Rectangle Rect(x0, y0, x1, y1)
+.B int x0, y0, x1, y1;
+.PP
+.B Rectangle Rpt()
+.B Point p0, p1;
+.SH DESCRIPTION
+A
+.B Word
+is a 32-bit integer, and is the unit of storage used in the graphics software.
+.PP
+A
+.B Point
+is a location in a Bitmap
+(see below),
+such as the display, and is defined as:
+.IP
+.EX
+typedef struct Point {
+ short x;
+ short y;
+} Point;
+.EE
+.PP
+The coordinate system has
+.I x
+increasing to the right and
+.I y
+increasing down.
+All objects and operators in the graphics world live in the same coordinate space\(emthat of the display bitmap.
+.PP
+A
+.B Rectangle
+is a rectangular area in a Bitmap.
+.EX
+.IP
+typedef struct Rectangle {
+ Point origin; /* upper left */
+ Point corner; /* lower right */
+} Rectangle;
+.EE
+.PP
+By definition,
+.B origin.x <= corner.x
+and
+.BR "origin.y <= corner.y" .
+By convention, the right (maximum
+.IR x )
+and bottom (maximum
+.IR y )
+edges are
+excluded from the represented rectangle, so abutting rectangles have no
+points in common.
+Thus,
+.B corner
+contains the coordinates of the first point beyond the rectangle.
+The image on the display is contained in the Rectangle
+.BR "{0, 0, XMAX, YMAX}" ,
+where
+.BR XMAX =800
+and
+.BR YMAX =1024.
+.PP
+A
+.B Bitmap
+holds a rectangular image, stored in contiguous memory starting at
+.IR base .
+.EX
+.IP
+typedef struct Bitmap {
+ Word *base; /* pointer to start of data */
+ unsigned width; /* width in Words of total data area */
+ Rectangle rect; /* rectangle in data area, screen coords */
+} Bitmap;
+.EE
+.PP
+Each
+.B width
+Words of memory form a scan-line of the image, and
+.B rect
+defines the coordinate system inside the
+.BR Bitmap :
+.B rect.origin
+is the location in the Bitmap
+of the upper-leftmost point in the image.
+The coordinate system is arranged so
+.I x
+positions equal to 0 mod 32
+are in the leftmost bit of a Word.
+.PP
+A
+.B Texture
+is a 16\(mu16 dot bit pattern.
+.IP
+.EX
+typedef struct {
+ Word bits[16];
+} Texture;
+.EE
+.PP
+Textures
+are aligned to absolute display positions,
+so adjacent areas colored with the same Texture
+mesh smoothly.
+.PP
+The functions
+.IR Pt ,
+.I Rect
+and
+.I Rpt
+construct geometrical data types from their components.
+Since they are implemented as macros, they only work
+in function argument lists.
+.PP
+The global
+.I display
+is a Bitmap
+describing the display area of the process.
+.I Drect
+is a Rectangle defining, in screen coordinates,
+the display area available to the program (inside the layer's border).
+.I Jrect
+is the Rectangle
+.BR "{0, 0, XMAX, YMAX}" .