diff options
| author | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 21:07:28 -0400 |
|---|---|---|
| committer | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 21:07:28 -0400 |
| commit | 711594636704defae873be1a355a292505585afd (patch) | |
| tree | 59ee13f863830d8beba6cfd02bbe813dd486c26f /static/v10/man9/types.9 | |
| parent | 3258a063c1f189d7b019e40e525b46bef9b9a7b1 (diff) | |
docs: Added UNIX V10 Manuals
Diffstat (limited to 'static/v10/man9/types.9')
| -rw-r--r-- | static/v10/man9/types.9 | 147 |
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}" . |
