4 RRLL: Canvas
Racket Rogue-Like Library: Drawing (A)RGB Canvas
(require rrll/canvas) | package: rrll-canvas |
This module re-provides all bindings from rrll/canvas/core, rrll/canvas/pixels, rrll/canvas/drawing, rrll/canvas/transform, rrll/canvas/bitmap and rrll/canvas/overlay.
4.1 Core Canvas
(require rrll/canvas/core) | package: rrll-canvas |
Provides the raw canvas struct and its constructors.
struct
(struct canvas (width height data offset stride))
width : fixnum? height : fixnum? data : fxvector? offset : fixnum? stride : fixnum?
procedure
c : canvas? x : fixnum? y : fixnum? w : fixnum? h : fixnum?
4.2 Direct Pixel Access
(require rrll/canvas/pixels) | package: rrll-canvas |
This module contains procedures for direct pixel access of the canvas. It is not intended for general use.
procedure
can : canvas? x : fixnum? y : fixnum? color : fixnum?
procedure
can : canvas? x : fixnum? y : fixnum? color : fixnum?
4.3 Canvas Drawing
(require rrll/canvas/drawing) | package: rrll-canvas |
procedure
dst : canvas? x : fixnum? y : fixnum? color : fixnum? = #xff000000
procedure
dst : canvas? x : fixnum? y : fixnum? color : fixnum? = #xff000000
procedure
dst : canvas? x : fixnum? y : fixnum? w : fixnum? h : fixnum? color : fixnum? = #xff000000
procedure
dst : canvas? x : fixnum? y : fixnum? w : fixnum? h : fixnum? color : fixnum? = #xff000000
procedure
dst : canvas? x : fixnum? y : fixnum? w : fixnum? color : fixnum? = #xff000000
procedure
dst : canvas? x : fixnum? y : fixnum? w : fixnum? color : fixnum? = #xff000000
procedure
dst : canvas? x : fixnum? y : fixnum? h : fixnum? color : fixnum? = #xff000000
procedure
dst : canvas? x : fixnum? y : fixnum? h : fixnum? color : fixnum? = #xff000000
procedure
dst : canvas? x0 : fixnum? y0 : fixnum? x1 : fixnum? y1 : fixnum? color : fixnum? = #xff000000
procedure
dst : canvas? x0 : fixnum? y0 : fixnum? x1 : fixnum? y1 : fixnum? color : fixnum? = #xff000000
procedure
dst : canvas? xc : fixnum? yc : fixnum? radius : fixnum? color : fixnum? = #xff000000
procedure
dst : canvas? xc : fixnum? yc : fixnum? radius : fixnum? color : fixnum? = #xff000000
procedure
dst : canvas? xc : fixnum? yc : fixnum? radius : fixnum? color : fixnum? = #xff000000
procedure
dst : canvas? xc : fixnum? yc : fixnum? radius : fixnum? color : fixnum? = #xff000000
procedure
dst : canvas? x1 : fixnum? y1 : fixnum? x2 : fixnum? y2 : fixnum? x3 : fixnum? y3 : fixnum? color : fixnum? = #xff000000
procedure
dst : canvas? x1 : fixnum? y1 : fixnum? x2 : fixnum? y2 : fixnum? x3 : fixnum? y3 : fixnum? color : fixnum? = #xff000000
procedure
dst : canvas? x : fixnum? y : fixnum? color : fixnum? = 4278190080 wrap? : boolean? = #f
procedure
dst : canvas? x : fixnum? y : fixnum? color : fixnum? = 4278190080 wrap? : boolean? = #f
4.4 Transformations
(require rrll/canvas/transform) | package: rrll-canvas |
Full-canvas transformations.
procedure
dst : canvas? src : canvas? sw : boolean? = #t sh : boolean? = #t
4.5 Bitmap Saving and Loading
(require rrll/canvas/bitmap) | package: rrll-canvas |
Procedures for canvas saving into JPEG or PNG images and loading from any file type supported by racket/draw.
4.6 Mipmapping
(require rrll/mipmap/core) | package: rrll-canvas |
Special canvas extension to allow anisotropic sampling for high-quality downscaling and texturing.
struct
(struct mipmap canvas ( log2width log2height w-offsets h-offsets mmwidth:fl mmheight:fl row-shift)) log2width : fixnum? log2height : fixnum? w-offsets : fxvector? h-offsets : fxvector? mmwidth:fl : flonum? mmheight:fl : flonum? row-shift : fixnum?
4.6.1 Mipmap Construction
(require rrll/mipmap/build) | package: rrll-canvas |
4.7 Advanced Sampling
(require rrll/canvas/sampling) | package: rrll-canvas |
This module contains methods for direct bilinear sampling of canvas? structs - useful mainly for upscaling.
4.8 Advanced Mipmap Sampling
(require rrll/mipmap/sampling) | package: rrll-canvas |
This moduel contains methods for trilinear/quadrilinear anisotropic sampling of mipmap? canvas extensions.
procedure
(mipmap-sample-quad/a tw th u00 v00 u01 v01 u10 v10 u11 v11) →
fixnum? fixnum? fixnum? fixnum? tw : flonum? th : flonum? u00 : flonum? v00 : flonum? u01 : flonum? v01 : flonum? u10 : flonum? v10 : flonum? u11 : flonum? v11 : flonum?
4.9 Canvas Overlays
(require rrll/canvas/overlay) | package: rrll-canvas |
procedure
dst : canvas? src : canvas? dx : fixnum? = 0 dy : fixnum? = 0 sx : fixnum? = 0 sy : fixnum? = 0 sw : (or/c fixnum? #f) = #f sh : (or/c fixnum? #f) = #f
procedure
dst : canvas? src : canvas? dx : fixnum? = 0 dy : fixnum? = 0 sx : fixnum? = 0 sy : fixnum? = 0 sw : (or/c fixnum? #f) = #f sh : (or/c fixnum? #f) = #f
procedure
alpha : fixnum? dst : canvas? src : canvas? dx : fixnum? = 0 dy : fixnum? = 0 sx : fixnum? = 0 sy : fixnum? = 0 sw : (or/c fixnum? #f) = #f sh : (or/c fixnum? #f) = #f
procedure
alpha : fixnum? dst : canvas? src : canvas? dx : fixnum? = 0 dy : fixnum? = 0 sx : fixnum? = 0 sy : fixnum? = 0 sw : (or/c fixnum? #f) = #f sh : (or/c fixnum? #f) = #f
procedure
dst : canvas? src : canvas? x : fixnum? y : fixnum? w : fixnum? h : fixnum? sx : fixnum? = 0 sy : fixnum? = 0 sw : (or/c fixnum? #f) = #f sh : (or/c fixnum? #f) = #f
procedure
dst : canvas? src : canvas? x : fixnum? y : fixnum? w : fixnum? h : fixnum? sx : fixnum? = 0 sy : fixnum? = 0 sw : (or/c fixnum? #f) = #f sh : (or/c fixnum? #f) = #f
procedure
(scale-canvas/b alpha dst src x y w h [sx sy sw sh]) → void?
alpha : fixnum? dst : canvas? src : canvas? x : fixnum? y : fixnum? w : fixnum? h : fixnum? sx : fixnum? = 0 sy : fixnum? = 0 sw : (or/c fixnum? #f) = #f sh : (or/c fixnum? #f) = #f
procedure
(scale-canvas/a/b alpha dst src x y w h [sx sy sw sh]) → void?
alpha : fixnum? dst : canvas? src : canvas? x : fixnum? y : fixnum? w : fixnum? h : fixnum? sx : fixnum? = 0 sy : fixnum? = 0 sw : (or/c fixnum? #f) = #f sh : (or/c fixnum? #f) = #f
4.10 Mipmap Overlays
(require rrll/mipmap/overlay) | package: rrll-canvas |
procedure
dst : canvas? src : mipmap? dx : fixnum? dy : fixnum? dw : fixnum? dh : fixnum?
procedure
dst : canvas? src : mipmap? dx : fixnum? dy : fixnum? dw : fixnum? dh : fixnum?
procedure
alpha : fixnum? dst : canvas? src : mipmap? dx : fixnum? dy : fixnum? dw : fixnum? dh : fixnum?
procedure
alpha : fixnum? dst : canvas? src : mipmap? dx : fixnum? dy : fixnum? dw : fixnum? dh : fixnum?
4.11 Canvas Syntax Definers
(require rrll/canvas/syntax) | package: rrll-canvas |
This module provides utility syntaxes for defining multiple variants of procedures that work with canvas?.
The procedure body must do the actual drawing using the following procedure provided as local binding:
The source of the pixel color to be painted may be a constant color or color sampled from some resource like canvas? or mipmap?.
With the #:b keyword argument more functions are created: Plain RGB variant with explicit alpha value name/b and ARGB blending variant with explicit alpha value on top name/a/b.
Also, within the body the linear and bilinear identifiers are bound to either rgb-linear and rgb-bilinear or argb-linear and argb-bilinear as needed by particular drawing variant.
Within the body the linear and bilinear identifiers are bound to either rgb-linear and rgb-bilinear or argb-linear and argb-bilinear as needed by particular sampling variant.
Note: This is an internal syntax form.
4.12 Querying Canvas Properties
(require rrll/canvas/query) | package: rrll-canvas |
This module can infer canvas properties based on its contents.