About Alloy-Simple
This project presents a simple, common rendering library on top of Alloy. The idea is to provide a protocol for rendering that isn't too difficult to provide for a backend, and extensive enough to display most interfaces. It does not implement a renderer in itself, only provides an intermediary protocol for the user to rely on.
Implementing the simple protocol in your backend is the easiest way to get rendering of an Alloy interface going, as you can then already rely on the visualisation behaviour for the various components implemented in other projects, such as Presentations.
Protocol
The Simple protocol is split into four sub protocols:
Transforms
The transforms protocol presents a way to perform local, affine coordinate transformations during rendering. Specifically, the following functions are defined:
call-with-pushed-transforms
/with-pushed-transforms
Allows dynamically bounding transformations. Any transformation occurring within the body of this call will be when the control flow exits.clip
Clip the region to the extent, causing anything that should be rendered outside of this region to not be rendered. This can be used to implement thealloy:call-with-constrained-visibility
function from Core. The extent specified is local to the current transforms. Clipping withinanothercall-with-pushed-transforms
extent will cause the actual clipping region to become the union of this and the clipping region of the outer extent. Clipping multiple times within the same transforms is implementation dependent.translate
Shift the coordinate system to place the origin at the specified point.scale
Scale the coordinate system to stretch the axes by the specified size.rotate
Rotate the coordinate system by the specified angle around the Z axis.z-index
(place)
Access the index on which the shapes should be drawn. Shapes that are drawn while a higher z-index is active should be drawn in front of shapes that are drawn with a lower z-index, regardless of the order in which they are drawn. For shapes on the same z-index, it is unspecified whether later shapes will overlap earlier ones or not.
Shapes
In order to render various constructs, Simple offers a bunch of shape
objects, which must be created using a corresponding shape function. Once constructed, the shape can be drawn any number of times using alloy:render
. The transforms are only applied when the shape is rendered, not when it is constructed. This allows you to re-use the same shape and draw it in various configurations.
All shapes take some geometric primitives from Core as positioning arguments. These primitives may contain relative units. The backend may choose to turn these units into absolute ones at the time of construction of the shape. If the unit relation changes, the user must call reinitialize-instance
on the affected shapes. When reinitialize-instance
is called, the backend must update the internal coordinates of the shape based on the units that were initially used when the shape was constructed. The user may also pass any of the initial arguments used at shape construction as initargs to reinitialize-instance
to update them without creating a new shape instance.
The implementation may return an instance that is not a subclass of shape
or the default provided classes for each shape for one of the shape functions. However, the above reinitialize-instance
and alloy:render
restrictions apply regardless. If an implementation chooses to do this, it must be aware, and potentially provide mitigation for, extension protocols that depend on the class hierarchy not working as expected with the custom instance.
Where applicable, the line-width argument will cause the shape to be rendered as an outline, instead of a filled shape. In such a case it must be an alloy:unit
designating the width of the lines.
Where applicable, the pattern argument will change the pattern with which the shape is filled. The pattern may be a colored:color
, or an object as returned by request-gradient
. If the shape is drawn as an outline, the pattern is only applied to the lines, not to any area the lines might enclose.
The user does not have to call alloy:register
on an object returned by a shape function, the object must already be registered if necessary.
The following shape functions are available, though the implementation may offer more:
line-strip
Generates a sequence of connected line segments. The points argument must be a list or vector ofalloy:point
s.curve
Generates a sequence of Bezier curves. The points argument must be a list or vector ofalloy:point
s. Each curve segment consists of four points, the first and last of which are the endpoints, and the second and third being the respective control points. Each successive curve requires only three additional points, as the endpoint of the previous curve is used as the start point of the current.rectangle
Generates an axis-aligned rectangle from an alloy geometry object.ellipse
Generates an axis-aligned ellipse from an alloy geometry object.. The bounds specifies the outer bounding box of the ellipse, meaning the ellipse touches the centres of the rectangle spanned by the extent.polygon
Generates a closed polygon. The points argument must be a list or vector ofalloy:point
s.icon
Generates an icon displaying the specified image. The image must be an object returned byrequest-image
on the same renderer. The bounds argument specifies the maximal bounding box which the rendered image may not exceed, and which is used for alignment of the image. The halign and valign designate the horizontal and vertical alignment within the bounding box. May be either:left
,:middle
,:right
,:bottom
,:top
. The size argument specifies the size of the image as rendered within the bounds, and defaults to the pixel size of the image.text
Generates a text rendering of the given string and styling. The bounds argument specifies the maximal bounding box which the rendered text may not exceed, and which is used for alignment. The direction argument must be a keyword designating the text direction, and may be either:right
for left-to-right,:left
for right-to-left,:down
for top-to-bottom right-to-left. The halign and valign arguments specify text is aligned within the bounding box and must be either:start
,:middle
, or:end
for horizontal alignment, and:top
,:middle
, or:bottom
for vertical alignment. The argument must be analloy:unit
designating the height of one text line, otherwise known as anem
. The font must be an object returned byrequest-font
on the same renderer.cursor
Generates a text cursor for the given position within the text. The text argument must be an object returned bytext
on the same renderer. The primary feature of this is that the cursor shape will have the correct positioning within the text to be rendered, accounting for layouting and other factors.selection
Generates a text selection for the given region within the text. The text argument must be an object returned bytext
on the same renderer. The primary feature of this is that the selection shape will be correct, accounting for layouting and other factors.
Shared Resources
Some parts of rendering might require heavy and slow resource allocation in the renderer. To alleviate this problem, the Simple protocol requires you to explicitly allocate certain resources as needed:
request-image
This will load the specified image into the renderer and prepare it for rendering. Returned is an object that can be used for theicon
shape. The data argument may be any data type as specified by the implementation. Any implementation must support octet vectors with RGBA pixel data. In that case, the user must supply the size argument as well, however. For requests that are sufficiently similar, the same object may be returned.request-font
This will load the requested font into the renderer and analyse it for text rendering. Returned is an object that can be used for the font argument of thetext
shape. The family argument may be a string denoting the font family to load, with the additional arguments constraining the font features more explicitly, or it may be the symbol:default
for which the implementation must return a default font. The implementation may extend the allowed data types for the family as well. For requests that are sufficiently similar, the same object may be returned.request-gradient
This will generate a gradient suitable for use with any shape's pattern argument. The type argument may be one of the following:linear
radial
angle
diamond
An implementation may provide additional gradient types.
The start and stop arguments must be points designating the bounds of the gradient. The gradient will fill all of the shape it is used with, but the start and stop bounds designate the area within which the gradient stops apply. Stops must be a list of cons, each of which has a(single-float 0 1)
in its car and acolored:color
in its cdr.
The user does not have to call alloy:register
on an object returned by a resource function, the object must already be registered if necessary. The implementation may choose to load the resource immediately, or defer the loading process. However, the resource must be loaded no later than when it is first effectively used during the rendering of a shape object.
Render Behaviour
Simple also specifies the following two functions that influence the rendering behaviour:
clear
Cause the specified screen region to be cleared to whatever the renderer considers to be the "empty" colour.composite-mode
Change how newly drawn shapes are blended onto previously drawn shapes, especially ones that lie below it. The following modes are specified, though a renderer may add others::source-over
:destination-over
:source-in
:source-out
:destination-in
:destination-out
:destination-atop
:add
:multiply
:difference
:invert
Default Implementations
Simple provides standard implementations for all of the shapes – without the actual rendering thereof, of course – as well as a standard implementation of the transforms protocol, using a 3x3 transforms matrix for the coordinate system representation.
If using a transformation matrix is convenient for your backend, all you need to do is inherit from transformed-renderer
. From there on out you can access the current transform matrix with transform-matrix
. You will still need to implement clipping, however.
System Information
Definition Index
-
ORG.SHIRAKUMO.ALLOY.RENDERERS.SIMPLE
No documentation provided.-
EXTERNAL CLASS ANGLE-GRADIENT
No documentation provided. -
EXTERNAL CLASS CANVAS
No documentation provided. -
EXTERNAL CLASS CANVAS-STYLE
No documentation provided. -
EXTERNAL CLASS CURSOR
No documentation provided. -
EXTERNAL CLASS CURVE
No documentation provided. -
EXTERNAL CLASS DIAMOND-GRADIENT
No documentation provided. -
EXTERNAL CLASS ELLIPSE
No documentation provided. -
EXTERNAL CLASS FILLED-ELLIPSE
No documentation provided. -
EXTERNAL CLASS FILLED-RECTANGLE
No documentation provided. -
EXTERNAL CLASS FILLED-SHAPE
No documentation provided. -
EXTERNAL CLASS FONT
No documentation provided. -
EXTERNAL CLASS GRADIENT
No documentation provided. -
EXTERNAL CLASS ICON
No documentation provided. -
EXTERNAL CLASS IMAGE
No documentation provided. -
EXTERNAL CLASS IMAGE-PATTERN
No documentation provided. -
EXTERNAL CLASS LINE-STRIP
No documentation provided. -
EXTERNAL CLASS LINEAR-GRADIENT
No documentation provided. -
EXTERNAL CLASS OUTLINED-ELLIPSE
No documentation provided. -
EXTERNAL CLASS OUTLINED-RECTANGLE
No documentation provided. -
EXTERNAL CLASS OUTLINED-SHAPE
No documentation provided. -
EXTERNAL CLASS PATTERNED-SHAPE
No documentation provided. -
EXTERNAL CLASS POLYGON
No documentation provided. -
EXTERNAL CLASS RADIAL-GRADIENT
No documentation provided. -
EXTERNAL CLASS RECTANGLE
No documentation provided. -
EXTERNAL CLASS RENDERER
No documentation provided. -
EXTERNAL CLASS SELECTION
No documentation provided. -
EXTERNAL CLASS SHAPE
No documentation provided. -
EXTERNAL CLASS TEXT
No documentation provided. -
EXTERNAL CLASS TRANSFORMED-RENDERER
No documentation provided. -
EXTERNAL FUNCTION FLATTEN-MARKUP
- MARKUP
No documentation provided. -
EXTERNAL FUNCTION MAT*
- R
- A
- B
No documentation provided. -
EXTERNAL FUNCTION MATRIX
- &REST
- VALUES
No documentation provided. -
EXTERNAL FUNCTION MATRIX-IDENTITY
No documentation provided. -
EXTERNAL FUNCTION RESOLVE-ALIGNMENT
- EXTENT
- HALIGN
- VALIGN
- SIZE
No documentation provided. -
EXTERNAL FUNCTION RESOLVE-SCALE
- EXTENT
- SIZE
- KIND
No documentation provided. -
EXTERNAL FUNCTION SCALE-BY
- RENDERER
- PXW
- PXH
No documentation provided. -
EXTERNAL FUNCTION SORT-MARKUP
- MARKUP
No documentation provided. -
EXTERNAL FUNCTION TRANSLATE-BY
- RENDERER
- PXX
- PXY
No documentation provided. -
EXTERNAL GENERIC-FUNCTION ADD-MATRIX
- RENDERER
- NEW
No documentation provided. -
EXTERNAL GENERIC-FUNCTION BOUNDS
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF BOUNDS)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION CALL-WITH-PUSHED-TRANSFORMS
- FUNCTION
- RENDERER
- &KEY
- CLEAR
No documentation provided. -
EXTERNAL GENERIC-FUNCTION CAP-STYLE
- OBJECT
The style of the line end caps. May be one of: NIL --- The backend's default is used. :NONE --- The line ends are truncated. :ROUND --- The line ends are rounded. :SQUARE --- The line ends are squares. :SPIKE --- The line ends in triangles. Backends may offer more styles. If a backend does not support a style, it must treat it as NIL.
-
EXTERNAL GENERIC-FUNCTION (SETF CAP-STYLE)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION CHANNELS
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION CLEAR
- RENDERER
- BOUNDS
No documentation provided. -
EXTERNAL GENERIC-FUNCTION CLIP
- RENDERER
- EXTENT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION COMPLETE-SHAPE
- CANVAS
No documentation provided. -
EXTERNAL GENERIC-FUNCTION COMPOSITE-MODE
- RENDERER
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF COMPOSITE-MODE)
- MODE
- RENDERER
No documentation provided. -
EXTERNAL GENERIC-FUNCTION CORNER-RADII
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF CORNER-RADII)
- VALUE
- RECTANGLE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION CORNER-RADIUS
- POSITION
- RECTANGLE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF CORNER-RADIUS)
- VALUE
- POSITION
- RECTANGLE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION CURSOR
- RENDERER
- TEXT
- POSITION
- &KEY
- PATTERN
- &ALLOW-OTHER-KEYS
No documentation provided. -
EXTERNAL GENERIC-FUNCTION CURVE
- RENDERER
- POINTS
- &KEY
- PATTERN
- LINE-WIDTH
- LINE-STYLE
- JOIN-STYLE
- CAP-STYLE
- &ALLOW-OTHER-KEYS
No documentation provided. -
EXTERNAL GENERIC-FUNCTION DATA
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION DIRECTION
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF DIRECTION)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION DRAW-CURVE
- CANVAS
- X1
- Y1
- WX1
- WY1
- X2
- Y2
- WX2
- WY2
No documentation provided. -
EXTERNAL GENERIC-FUNCTION DRAW-ELLIPSE
- CANVAS
- X
- Y
- W
- H
- &OPTIONAL
- START-ANGLE
- END-ANGLE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION DRAW-IMAGE
- CANVAS
- X
- Y
- IMAGE
- &OPTIONAL
- W
- H
No documentation provided. -
EXTERNAL GENERIC-FUNCTION DRAW-RECTANGLE
- CANVAS
- X
- Y
- W
- H
- &OPTIONAL
- CORNER-RADII
No documentation provided. -
EXTERNAL GENERIC-FUNCTION DRAW-SHAPE
- CANVAS
- SHAPE
- &REST
- INITARGS
No documentation provided. -
EXTERNAL GENERIC-FUNCTION DRAW-TEXT
- CANVAS
- X
- Y
- STRING
- &OPTIONAL
- SIZE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION ELLIPSE
- RENDERER
- BOUNDS
- &KEY
- PATTERN
- START-ANGLE
- END-ANGLE
- LINE-WIDTH
- LINE-STYLE
- JOIN-STYLE
- CAP-STYLE
- &ALLOW-OTHER-KEYS
No documentation provided. -
EXTERNAL GENERIC-FUNCTION END
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF END)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION END-ANGLE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF END-ANGLE)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION FAMILY
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF FAMILY)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION FILL-ELLIPSE
- CANVAS
- X
- Y
- W
- H
- &OPTIONAL
- START-ANGLE
- END-ANGLE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION FILL-RECTANGLE
- CANVAS
- X
- Y
- W
- H
- &OPTIONAL
- CORNER-RADII
No documentation provided. -
EXTERNAL GENERIC-FUNCTION FONT
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF FONT)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION HALIGN
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF HALIGN)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION ICON
- RENDERER
- BOUNDS
- IMAGE
- &KEY
- SIZE
- HALIGN
- VALIGN
- &ALLOW-OTHER-KEYS
No documentation provided. -
EXTERNAL GENERIC-FUNCTION IDENTITY-MATRIX
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF IDENTITY-MATRIX)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION IMAGE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF IMAGE)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION IMAGE-PATTERN
- RENDERER
- IMAGE
- &KEY
- SCALING
- OFFSET
- MODE
- &ALLOW-OTHER-KEYS
Turn an image into a pattern. IMAGE must be an object returned by REQUEST-IMAGE of the same renderer. SCALING should be an ALLOY:SIZE that is used to scale the image's dimensions as a pattern. OFFSET should be an ALLOY:POINT that is used to offset the image pattern relative to the global coordinate system. MODE defines how the pattern is applied. Should be one of: :REPEAT --- Repeats the image across the bounding box. :STRETCH --- Scales the image to fill the bounding box. :FILL --- Scales the image uniformly to fill the bounding box. :CLAMP --- Clamps the pattern's colours at the borders MODE defaults to :REPEAT.
-
EXTERNAL GENERIC-FUNCTION JOIN-STYLE
- OBJECT
The style of the joins between the outwards-facing sides of line segments. May be one of: NIL --- The backend's default is used. :NONE --- The line segments are bare and not joined. :BEVEL --- The sides are linearly connected. :ROUND --- The sides are joined via a circle. :MITER --- The sides are extended until they meet. Backends may offer more styles. If a backend does not support a style, it must treat it as NIL.
-
EXTERNAL GENERIC-FUNCTION (SETF JOIN-STYLE)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION LINE-STRIP
- RENDERER
- POINTS
- &KEY
- PATTERN
- LINE-WIDTH
- LINE-STYLE
- JOIN-STYLE
- CAP-STYLE
- &ALLOW-OTHER-KEYS
No documentation provided. -
EXTERNAL GENERIC-FUNCTION LINE-STYLE
- OBJECT
The style of the line being drawn. May be one of: NIL --- The backend's default is used. :SOLID --- The line is solid throughout. :DASHED --- The line is composed out of segments with gaps. :DOTTED --- The line is composed out of square or round dots. Backends may offer more styles. If a backend does not support a style, it must treat it as NIL.
-
EXTERNAL GENERIC-FUNCTION (SETF LINE-STYLE)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION LINE-WIDTH
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF LINE-WIDTH)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION MARKUP
- OBJECT
Accesses the markup style of text. Should be a sequence of the following format: MARKUP ::= ELEMENT* ELEMENT ::= (start stop STYLE*) start --- The starting (inclusive) index stop --- The ending (exclusive) index STYLE ::= SIMPLE-STYLE | COMPLEX-STYLE SIMPLE-STYLE ::= :ITALIC --- The font is switched to an italic variant, or a slant is applied to each character | :BOLD --- The font is switched to a bold variant, or extra thickness is applied to each character | :STRIKE --- A strikethrough line is applied across the region | :UNDERLINE --- An underline is applied along the region | :FIXED --- The font is switched to a monospace variant, or each character in the region is set to a fixed width COMPLEX-STYLE ::= (:COLOR color) --- The colour of the characters in the region is changed to the specified one | (:SIZE size) --- The font size of the characters in the region is changed to the specified one | (:OUTLINE size color) --- An outline is applied to each character in the region, where the outline has a thickness of the given size, and the specified color | (:BOLD weight) --- The font is switched to a bold variant of the specified weight, or extra thickness is applied to each character to achieve the required thickness Where each element designates one or more styles to apply to a region of the text. Special restrictions apply: - Every STOP must be greater than the START. The behaviour is unspecified if this constraint is violated - The regions of any two elements must not partially overlap: ((0 10) (3 5)) is valid, and ((0 5) (5 10)) is also valid, but ((0 5) (3 10)) is invalid The behaviour is unspecified if this constraint is violated - If two elements overlap fully and use the same style type, but with different parameters, the parameters of the style closest to the character is applied A backend may provide additional style types, or only partially support one of the standardised style types.
-
EXTERNAL GENERIC-FUNCTION (SETF MARKUP)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION MODE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION MOVE-TO
- CANVAS
- X
- Y
No documentation provided. -
EXTERNAL GENERIC-FUNCTION OFFSET
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION PATTERN
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF PATTERN)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION POINTS
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF POINTS)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION POLYGON
- RENDERER
- POINTS
- &KEY
- PATTERN
- &ALLOW-OTHER-KEYS
No documentation provided. -
EXTERNAL GENERIC-FUNCTION POP-MATRIX
- CANVAS
No documentation provided. -
EXTERNAL GENERIC-FUNCTION PUSH-MATRIX
- CANVAS
No documentation provided. -
EXTERNAL GENERIC-FUNCTION RECTANGLE
- RENDERER
- BOUNDS
- &KEY
- PATTERN
- CORNER-RADII
- LINE-WIDTH
- LINE-STYLE
- JOIN-STYLE
- CAP-STYLE
- &ALLOW-OTHER-KEYS
No documentation provided. -
EXTERNAL GENERIC-FUNCTION RENDERER
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF RENDERER)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION REQUEST-FONT
- RENDERER
- FAMILY
- &KEY
- SLANT
- SPACING
- WEIGHT
- STRETCH
- &ALLOW-OTHER-KEYS
Finds a font close to the requested specification. This may consult fonts on the current operating system or some other database. The exact behaviour depends on the backend.
-
EXTERNAL GENERIC-FUNCTION REQUEST-GRADIENT
- RENDERER
- TYPE
- START
- STOP
- STOPS
- &KEY
- &ALLOW-OTHER-KEYS
Load a gradient pattern. TYPE may be one of: :LINEAR --- A linear gradient along START-STOP :RADIAL --- A radial gradient centred at START with STOP as radius :ANGLE --- An angle gradient centred at START with STOP as radius :DIAMOND --- A diamond gradient centred at START with STOP as radius START and STOP should be ALLOY:POINTs that designate the bounding locations of the gradient pattern. STOPS should be a vector of conses, where each cons has two elements: STOP --- A single-float in [0,1] designating the stop at which to apply the associated colour. COLOR --- A COLORED:COLOR for the stop.
-
EXTERNAL GENERIC-FUNCTION REQUEST-IMAGE
- RENDERER
- DATA
- &KEY
- SIZE
- CHANNELS
- &ALLOW-OTHER-KEYS
Load an image from file or a pixel buffer. DATA may be a pathname or an UNSIGNED-BYTE 8 vector. Whether a specific file type is supported depends on the backend, however. When passing raw pixel data, you must also pass SIZE and CHANNELS, to designate the dimensions and channel count of the pixel data.
-
EXTERNAL GENERIC-FUNCTION ROTATE
- RENDERER
- PHI
No documentation provided. -
EXTERNAL GENERIC-FUNCTION SCALE
- RENDERER
- SIZE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION SCALING
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION SELECTION
- RENDERER
- TEXT
- START
- END
- &KEY
- PATTERN
- &ALLOW-OTHER-KEYS
No documentation provided. -
EXTERNAL GENERIC-FUNCTION SHIFT
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF SHIFT)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION SIZE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF SIZE)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION SIZING
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF SIZING)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION SLANT
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION SPACING
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION START
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF START)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION START-ANGLE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF START-ANGLE)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION START-LINE
- CANVAS
- &OPTIONAL
- X
- Y
No documentation provided. -
EXTERNAL GENERIC-FUNCTION START-POLYGON
- CANVAS
- &OPTIONAL
- X
- Y
No documentation provided. -
EXTERNAL GENERIC-FUNCTION STOP
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION STOPS
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION STRETCH
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION STYLE
- CANVAS
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF STYLE)
- VALUE
- CANVAS
No documentation provided. -
EXTERNAL GENERIC-FUNCTION TEXT
- RENDERER
- BOUNDS
- STRING
- &KEY
- PATTERN
- FONT
- SIZE
- HALIGN
- VALIGN
- DIRECTION
- WRAP
- MARKUP
- &ALLOW-OTHER-KEYS
No documentation provided. -
EXTERNAL GENERIC-FUNCTION TEXT-OBJECT
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF TEXT-OBJECT)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION TRANSFORM-MATRIX
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF TRANSFORM-MATRIX)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION TRANSLATE
- RENDERER
- POINT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION VALIGN
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF VALIGN)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION WEIGHT
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION WRAP
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF WRAP)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION Z-INDEX
- RENDERER
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF Z-INDEX)
- Z-INDEX
- RENDERER
No documentation provided. -
EXTERNAL MACRO WITH-PUSHED-TRANSFORMS
- RENDERER
- &REST
- ARGS
- &BODY
- BODY
No documentation provided.
-