Comment on page

renderer

Functions for drawing visuals. Usually won't work outside the `paint` event.

Functions:

renderer.circle

renderer.circle(x: number, y: number, r: number, g: number, b: number, a: number, radius: number, start_degrees: number, percentage: number)
Argument
Type
Description
x
number (screen coordinate)
Screen coordinate
y
number (screen coordinate)
Screen coordinate
r
number
Red (0-255)
g
number
Green (0-255)
b
number
Blue (0-255)
a
number
Alpha (0-255)
radius
number
Radius of the circle in pixels.
start_degrees
number (0 - 360)
0 is the right side, 90 is the bottom, 180 is the left, 270 is the top.
percentage
number (0 - 1)
Must be within [0.0-1.0]. 1.0 is a full circle, 0.5 is a half circle, etc.
This can only be called from the paint callback.

renderer.circle_outline

renderer.circle_outline(x: number, y: number, r: number, g: number, b: number, a: number, radius: number, start_degrees: number, percentage: number, thickness: number)
Argument
Type
Description
x
number (screen coordinate)
Screen coordinate
y
number (screen coordinate)
Screen coordinate
r
number
Red (0-255)
g
number
Green (0-255)
b
number
Blue (0-255)
a
number
Alpha (0-255)
radius
number
Radius of the circle in pixels.
start_degrees
number (0 - 360)
0 is the right side, 90 is the bottom, 180 is the left, 270 is the top.
percentage
number (0 - 1)
Must be within [0.0-1.0]. 1.0 is a full circle, 0.5 is a half circle, etc.
thickness
number (px)
Thickness of the outline in pixels.
This can only be called from the paint callback.

renderer.gradient

renderer.gradient(x: number, y: number, w: number, h: number, r1: number, g1: number, b1: number, a1: number, r2: number, g2: number, b2: number, a2: number, ltr: boolean)
Argument
Type
Description
x
number (screen coordinate)
Screen coordinate
y
number (screen coordinate)
Screen coordinate
w
number (px)
Width in pixels
h
number (px)
Height in pixels
r1
number
Red (0-255)
g1
number
Green (0-255)
b1
number
Blue (0-255)
a1
number
Alpha (0-255)
r2
number
Red (0-255)
g2
number
Green (0-255)
b2
number
Blue (0-255)
a2
number
Alpha (0-255)
ltr
boolean
Left to right. Pass true for horizontal gradient, or false for vertical.
This can only be called from the paint callback.

renderer.indicator

renderer.indicator(r: number, g: number, b: number, a: number, ...): number
Argument
Type
Description
r
number
Red (0-255)
g
number
Green (0-255)
b
number
Blue (0-255)
a
number
Alpha (0-255)
...
The text that will be drawn
Returns the Y screen coordinate (vertical offset) of the drawn text, or nil on failure. This can only be called from the paint callback.

renderer.line

renderer.line(xa: number, ya: number, xb: number, yb: number, r: number, g: number, b: number, a: number)
Argument
Type
Description
xa
number (screen coordinate)
Screen coordinate of point A
ya
number (screen coordinate)
Screen coordinate of point A
xb
number (screen coordinate)
Screen coordinate of point B
yb
number (screen coordinate)
Screen coordinate of point B
r
number
Red (0-255)
g
number
Green (0-255)
b
number
Blue (0-255)
a
number
Alpha (0-255)
This can only be called from the paint callback.

renderer.load_jpg

renderer.load_jpg(contents: string, width: number, height: number): number (texture id)
Argument
Type
Description
contents
string
Raw JPG file contents
width
number (px)
Image width
height
number (px)
Image height
Loads a texture from raw JPG contents (with file header). Returns a texture ID that can be used with renderer.texture, or nil on failure

renderer.load_png

renderer.load_png(contents: string, width: number, height: number): number (texture id)
Argument
Type
Description
contents
string
Raw PNG file contents
width
number (px)
Image width
height
number (px)
Image height
Loads a texture from raw png contents (with file header). Returns a texture ID that can be used with renderer.texture, or nil on failure

renderer.load_rgba

renderer.load_rgba(contents: string, width: number, height: number): number (texture id)
Argument
Type
Description
contents
string
RGBA buffer (hex encoded - red = "\xFF\x00\x00\xFF")
width
number (px)
Width
height
number (px)
Height
Loads a texture from a RGBA buffer. Returns a texture ID that can be used with renderer.texture, or nil on failure

renderer.load_svg

renderer.load_svg(contents: string, width: number, height: number): number (texture id)
Argument
Type
Description
contents
string
SVG file contents
width
number (px)
Width
height
number (px)
Height
Returns a texture ID that can be used with renderer.texture, or nil on failure

renderer.measure_text

renderer.measure_text(flags: string, ...): number, number
Argument
Type
Description
flags
string (text flags)
"+" for large text, "-" for small text, or nil for normal sized text.
...
Text that will be measured
Returns width, height. This can only be called from the paint callback.

renderer.rectangle

renderer.rectangle(x: number, y: number, w: number, h: number, r: number, g: number, b: number, a: number)
Argument
Type
Description
x
number (screen coordinate)
Screen coordinate
y
number (screen coordinate)
Screen coordinate
w
number (px)
Width in pixels
h
number (px)
Height in pixels
r
number
Red (0-255)
g
number
Green (0-255)
b
number
Blue (0-255)
a
number
Alpha (0-255)
This can only be called from the paint callback.

renderer.text

renderer.text(x: number, y: number, r: number, g: number, b: number, a: number, flags: string, max_width: number, ...)
Argument
Type
Description
x
number (screen coordinate)
Screen coordinate
y
number (screen coordinate)
Screen coordinate
r
number
Red (0-255)
g
number
Green (0-255)
b
number
Blue (0-255)
a
number
Alpha (0-255)
flags
string (text flags)
"+" for large text, "-" for small text, "c" for centered text, "r" for right-aligned text, "b" for bold text, "d" for high DPI support. "c" can be combined with other flags. nil can be specified for normal sized uncentered text.
max_width
number
Text will be clipped if it exceeds this width in pixels. Use 0 for no limit.
...
Text that will be drawn
This can only be called from the paint callback.

renderer.texture

renderer.texture(id: number, x: number, y: number, w: number, h: number, r: number, g: number, b: number, a: number[, mode: string])
Argument
Type
Description
id
number (texture id)
Texture ID
x
number (screen coordinate)
X screen coordinate
y
number (screen coordinate)
Y screen coordinate
w
number (px)
Width
h
number (px)
Height
r
number
Red (0-255)
g
number
Green (0-255)
b
number
Blue (0-255)
a
number
Alpha (0-255)
mode
string
String: "f" for fill, "r" for repeat, otherwise automatic
Draws a texture from the texture id created from load_rgba, load_png, load_jpg or load_svg

renderer.triangle

renderer.triangle(x0: number, y0: number, x1: number, y1: number, x2: number, y2: number, r: number, g: number, b: number, a: number)
Argument
Type
Description
x0
number (screen coordinate)
Screen coordinate X for point A
y0
number (screen coordinate)
Screen coordinate Y for point A
x1
number (screen coordinate)
Screen coordinate X for point B
y1
number (screen coordinate)
Screen coordinate Y for point B
x2
number (screen coordinate)
Screen coordinate X for point C
y2
number (screen coordinate)
Screen coordinate Y for point C
r
number
Red (0-255)
g
number
Green (0-255)
b
number
Blue (0-255)
a
number
Alpha (0-255)
This can only be called from the paint callback.

renderer.world_to_screen

renderer.world_to_screen(x: number, y: number, z: number): number, number, number
Argument
Type
Description
x
number (world coordinate)
Position in world space
y
number (world coordinate)
Position in world space
z
number (world coordinate)
Position in world space
Returns two screen coordinates (x, y), or nil if the world position is not visible on your screen. This can only be called from the paint callback.
Last modified 2yr ago