diff --git a/docs/.pages b/docs/.pages
index 92d9e67c..d0dda36d 100644
--- a/docs/.pages
+++ b/docs/.pages
@@ -6,7 +6,7 @@ nav:
- resources.md
- input.md
- exporting.md
- - dull.md
- ...
+ - Appendix A - dull: dull
- Appendix B - api: api
\ No newline at end of file
diff --git a/docs/api/actor.md b/docs/api/actor.md
index faf6ca7e..fdafbd98 100644
--- a/docs/api/actor.md
+++ b/docs/api/actor.md
@@ -1,13 +1,11 @@
# actor
-## actor
+### toString() function
-### toString
+### spawn(script, config, callback) function
-### spawn(script, config, callback)
+### clear() function
-### clear
+### kill() function
-### kill
-
-### delay(fn, seconds)
+### delay(fn, seconds) function
diff --git a/docs/api/console.md b/docs/api/console.md
index b39f919e..a1a65453 100644
--- a/docs/api/console.md
+++ b/docs/api/console.md
@@ -2,36 +2,36 @@
The console object provides various logging, debugging, and output methods.
-### print
+### print() function
-### spam(msg)
+### spam(msg) function
Output a spam-level message for very verbose logging.
-### debug(msg)
+### debug(msg) function
Output a debug-level message.
-### info(msg)
+### info(msg) function
Output info level message.
-### warn(msg)
+### warn(msg) function
Output warn level message.
-### log(msg)
+### log(msg) function
Output directly to in game console.
-### error(e)
+### error(e) function
Output error level message, and print stacktrace.
-### panic(e)
+### panic(e) function
Output a panic-level message and exit the program.
-### assert(op, str = `assertion failed [value '${op}']`)
+### assert(op, str = `assertion failed [value '${op}']`) function
If the condition is false, print an error and panic.
diff --git a/docs/api/modules/actor.md b/docs/api/modules/actor.md
index b05ba122..5f3d9b8b 100644
--- a/docs/api/modules/actor.md
+++ b/docs/api/modules/actor.md
@@ -6,7 +6,7 @@ as managing tag-based lookups. Objects are assumed to have a "objects" property,
pointing to children or sub-objects, forming a tree.
-### all_objects(fn, startobj)
+### all_objects(fn, startobj) function
Iterate over each object (and its sub-objects) in the hierarchy, calling fn for each one.
@@ -20,7 +20,7 @@ Iterate over each object (and its sub-objects) in the hierarchy, calling fn for
**Returns**: The first truthy value returned by fn, or undefined if none.
-### find_object(fn, startobj)
+### find_object(fn, startobj) function
Intended to find a matching object within the hierarchy.
@@ -34,7 +34,7 @@ Intended to find a matching object within the hierarchy.
**Returns**: Not yet implemented.
-### tag_add(tag, obj)
+### tag_add(tag, obj) function
Associate the given object with the specified tag. Creates a new tag set if it does not exist.
@@ -48,7 +48,7 @@ Associate the given object with the specified tag. Creates a new tag set if it d
**Returns**: None
-### tag_rm(tag, obj)
+### tag_rm(tag, obj) function
Remove the given object from the specified tag’s set, if it exists.
@@ -62,7 +62,7 @@ Remove the given object from the specified tag’s set, if it exists.
**Returns**: None
-### tag_clear_guid(obj)
+### tag_clear_guid(obj) function
Remove the object from all tag sets.
@@ -74,7 +74,7 @@ Remove the object from all tag sets.
**Returns**: None
-### objects_with_tag(tag)
+### objects_with_tag(tag) function
Retrieve all objects currently tagged with the specified tag.
diff --git a/docs/api/modules/cmd.md b/docs/api/modules/cmd.md
index 749dd8c0..46f5e07f 100644
--- a/docs/api/modules/cmd.md
+++ b/docs/api/modules/cmd.md
@@ -1,3 +1,7 @@
# cmd
-## cmd
+### length number
+
+### name string
+
+### prototype object
diff --git a/docs/api/modules/color.md b/docs/api/modules/color.md
index b0a84fac..d12a896f 100644
--- a/docs/api/modules/color.md
+++ b/docs/api/modules/color.md
@@ -1,3 +1,7 @@
# color
-## color
+### Color object
+
+### esc object
+
+### ColorMap object
diff --git a/docs/api/modules/doc.md b/docs/api/modules/doc.md
index bc7a3359..413e4549 100644
--- a/docs/api/modules/doc.md
+++ b/docs/api/modules/doc.md
@@ -1,7 +1,5 @@
# doc
-## doc
+### writeDocFile(obj, title) function
-### writeDocFile(obj, title)
-
-Return a markdown string for a given obj, with optional title.
+Return a markdown string for a given obj, with an optional title.
diff --git a/docs/api/modules/draw2d.md b/docs/api/modules/draw2d.md
index aa4fd624..d1e27197 100644
--- a/docs/api/modules/draw2d.md
+++ b/docs/api/modules/draw2d.md
@@ -5,7 +5,7 @@ A collection of 2D drawing functions that operate in screen space. Provides prim
for lines, rectangles, text, sprite drawing, etc.
-### point(pos, size, color)
+### point(pos, size, color) function
@@ -20,7 +20,7 @@ for lines, rectangles, text, sprite drawing, etc.
**Returns**: None
-### line(points, color, thickness, pipeline)
+### line(points, color, thickness, pipeline) function
@@ -37,7 +37,7 @@ for lines, rectangles, text, sprite drawing, etc.
**Returns**: None
-### cross(pos, size, color, thickness, pipe)
+### cross(pos, size, color, thickness, pipe) function
@@ -56,7 +56,7 @@ for lines, rectangles, text, sprite drawing, etc.
**Returns**: None
-### arrow(start, end, color, wingspan, wingangle, pipe)
+### arrow(start, end, color, wingspan, wingangle, pipe) function
@@ -77,7 +77,7 @@ for lines, rectangles, text, sprite drawing, etc.
**Returns**: None
-### rectangle(rect, color, pipeline)
+### rectangle(rect, color, pipeline) function
@@ -92,7 +92,7 @@ for lines, rectangles, text, sprite drawing, etc.
**Returns**: None
-### tile(image, rect, color, tile, pipeline)
+### tile(image, rect, color, tile, pipeline) function
:raises Error: If no image is provided.
@@ -112,7 +112,7 @@ for lines, rectangles, text, sprite drawing, etc.
**Returns**: None
-### slice9(image, rect, slice, color, info, pipeline)
+### slice9(image, rect, slice, color, info, pipeline) function
:raises Error: If no image is provided.
@@ -134,7 +134,7 @@ for lines, rectangles, text, sprite drawing, etc.
**Returns**: None
-### image(image, rect, rotation, color, pipeline)
+### image(image, rect, rotation, color, pipeline) function
:raises Error: If no image is provided.
@@ -154,7 +154,7 @@ for lines, rectangles, text, sprite drawing, etc.
**Returns**: A sprite object that was created for this draw call.
-### images(image, rects, config)
+### images(image, rects, config) function
:raises Error: If no image is provided.
@@ -170,7 +170,7 @@ for lines, rectangles, text, sprite drawing, etc.
**Returns**: An array of sprite objects created and queued for rendering.
-### sprites(sprites, sort, pipeline)
+### sprites(sprites, sort, pipeline) function
@@ -185,7 +185,7 @@ for lines, rectangles, text, sprite drawing, etc.
**Returns**: None
-### circle(pos, radius, color, inner_radius, pipeline)
+### circle(pos, radius, color, inner_radius, pipeline) function
@@ -204,7 +204,7 @@ for lines, rectangles, text, sprite drawing, etc.
**Returns**: None
-### text(text, rect, font, size, color, wrap, pipeline)
+### text(text, rect, font, size, color, wrap, pipeline) function
diff --git a/docs/api/modules/event.md b/docs/api/modules/event.md
index 4b8275c8..2b4a6e13 100644
--- a/docs/api/modules/event.md
+++ b/docs/api/modules/event.md
@@ -1,8 +1,6 @@
# event
-## event
-
-### push_event(event)
+### push_event(event) function
Push a custom user event into SDL's queue, passing a callback function.
@@ -14,7 +12,7 @@ Push a custom user event into SDL's queue, passing a callback function.
**Returns**: None
-### engine_input(callback)
+### engine_input(callback) function
Poll all system events (keyboard, mouse, etc.) and call the given function with each event object.
diff --git a/docs/api/modules/geometry.md b/docs/api/modules/geometry.md
index 754904a1..26f2fb2b 100644
--- a/docs/api/modules/geometry.md
+++ b/docs/api/modules/geometry.md
@@ -5,7 +5,7 @@ A collection of geometry-related functions for circles, spheres, boxes, polygons
and rectangle utilities. Some functionality is implemented in C and exposed here.
-### rect_intersection(a, b)
+### rect_intersection(a, b) function
Return the intersection of two rectangles. The result may be empty if no intersection.
@@ -19,7 +19,7 @@ Return the intersection of two rectangles. The result may be empty if no interse
**Returns**: A rectangle that is the intersection of the two. May have zero width/height if no overlap.
-### rect_intersects(a, b)
+### rect_intersects(a, b) function
@@ -32,7 +32,7 @@ Return the intersection of two rectangles. The result may be empty if no interse
**Returns**: A boolean indicating whether the two rectangles overlap.
-### rect_expand(a, b)
+### rect_expand(a, b) function
Merge or combine two rectangles, returning their bounding rectangle.
@@ -46,7 +46,7 @@ Merge or combine two rectangles, returning their bounding rectangle.
**Returns**: A new rectangle that covers the bounds of both input rectangles.
-### rect_inside(inner, outer)
+### rect_inside(inner, outer) function
@@ -59,7 +59,7 @@ Merge or combine two rectangles, returning their bounding rectangle.
**Returns**: True if 'inner' is completely inside 'outer', otherwise false.
-### rect_random(rect)
+### rect_random(rect) function
@@ -70,7 +70,7 @@ Merge or combine two rectangles, returning their bounding rectangle.
**Returns**: A random point within the rectangle (uniform distribution).
-### cwh2rect(center, wh)
+### cwh2rect(center, wh) function
Helper: convert a center point and width/height vector to a rect object.
@@ -84,7 +84,7 @@ Helper: convert a center point and width/height vector to a rect object.
**Returns**: A rectangle {x, y, w, h} with x,y set to center and w,h set to the given size.
-### rect_point_inside(rect, point)
+### rect_point_inside(rect, point) function
@@ -97,7 +97,7 @@ Helper: convert a center point and width/height vector to a rect object.
**Returns**: True if the point lies inside the rectangle, otherwise false.
-### rect_pos(rect)
+### rect_pos(rect) function
@@ -108,7 +108,7 @@ Helper: convert a center point and width/height vector to a rect object.
**Returns**: A 2D vector [x,y] giving the rectangle's position.
-### rect_move(rect, offset)
+### rect_move(rect, offset) function
@@ -121,7 +121,7 @@ Helper: convert a center point and width/height vector to a rect object.
**Returns**: A new rectangle with updated x,y offset.
-### box(w, h)
+### box(w, h) function
Construct a box centered at the origin with the given width and height. This overrides the box object above.
@@ -135,38 +135,15 @@ Construct a box centered at the origin with the given width and height. This ove
**Returns**: An array of four 2D points representing the corners of a rectangle centered at [0,0].
+### sphere object
+
Sphere-related geometry functions:
- volume(r): Return the volume of a sphere with radius r.
- random(r, theta, phi): Return a random point on or inside a sphere.
-#### volume(r)
-
-
-
-
-**r**: The sphere radius.
-
-
-**Returns**: The volume of the sphere, calculated as (4/3) * pi * r^3.
-
-
-#### random(r, theta, phi)
-
-
-Generate a random point inside a sphere of variable radius, distributing angles in the specified ranges.
-
-
-**r**: A single number (radius) or a 2-element array [minRadius, maxRadius].
-
-**theta**: A single number or 2-element array defining the range in turns for the theta angle, default [0,1].
-
-**phi**: A single number or 2-element array defining the range in turns for the phi angle, default [-0.5,0.5].
-
-
-**Returns**: A 3D point (x,y,z) randomly placed within a sphere.
-
+### circle object
Circle-related geometry functions:
@@ -174,45 +151,7 @@ Circle-related geometry functions:
- random(r, theta): Return a random 2D point on a circle; uses sphere.random internally and extracts x,z.
-#### area(r)
-
-
-
-
-**r**: Radius of the circle.
-
-
-**Returns**: The area, pi * r^2.
-
-
-#### random(r, theta)
-
-
-
-
-**r**: A radius or [minRadius, maxRadius].
-
-**theta**: Angle range in turns (single number or [min,max]).
-
-
-**Returns**: A 2D point (x,z) in the circle, using the sphere random generator and ignoring y.
-
-
-#### points(radius, n)
-
-
-Shortcut for geometry.arc(radius, 360, n).
-
-
-**radius**: The circle's radius.
-
-**n**: Number of points around the circle.
-
-
-**Returns**: An array of 2D points equally spaced around a full 360-degree circle.
-
-
-### ngon(radius, n)
+### ngon(radius, n) function
Generates a regular n-gon by calling geometry.arc with full 360 degrees.
@@ -226,7 +165,7 @@ Generates a regular n-gon by calling geometry.arc with full 360 degrees.
**Returns**: An array of 2D points forming a regular n-gon.
-### arc(radius, angle, n, start)
+### arc(radius, angle, n, start) function
Generate an arc (or partial circle) of n points, each angle spread equally over 'angle' degrees from 'start'.
@@ -244,7 +183,7 @@ Generate an arc (or partial circle) of n points, each angle spread equally over
**Returns**: An array of 2D points along the arc.
-### corners2points(ll, ur)
+### corners2points(ll, ur) function
Similar to box.points, but calculates differently.
@@ -258,7 +197,7 @@ Similar to box.points, but calculates differently.
**Returns**: A four-point array of corners [ll, lower-right, upper-right, upper-left].
-### sortpointsccw(points)
+### sortpointsccw(points) function
Sort an array of points in CCW order based on their angles from the centroid.
@@ -270,7 +209,7 @@ Sort an array of points in CCW order based on their angles from the centroid.
**Returns**: A new array of the same points, sorted counterclockwise around their centroid.
-### points2cm(points)
+### points2cm(points) function
diff --git a/docs/api/modules/graphics.md b/docs/api/modules/graphics.md
index 0b99ca6a..165270c5 100644
--- a/docs/api/modules/graphics.md
+++ b/docs/api/modules/graphics.md
@@ -6,7 +6,7 @@ Includes both JavaScript and C-implemented routines for creating geometry buffer
rectangle packing, etc.
-### make_sprite_mesh(sprites)
+### make_sprite_mesh(sprites) function
:param oldMesh (optional): An existing mesh object to reuse/resize if possible.
@@ -19,7 +19,7 @@ Given an array of sprites, build a single geometry mesh for rendering them.
**Returns**: A GPU mesh object with pos, uv, color, and indices buffers for all sprites.
-### make_sprite_queue(sprites, camera, pipeline, sort)
+### make_sprite_queue(sprites, camera, pipeline, sort) function
Given an array of sprites, optionally sort them, then build a queue of pipeline commands.
@@ -38,7 +38,7 @@ Each group with a shared image becomes one command.
**Returns**: An array of pipeline commands: geometry with mesh references, grouped by image.
-### make_text_buffer(text, rect, angle, color, wrap, font)
+### make_text_buffer(text, rect, angle, color, wrap, font) function
Generate a GPU buffer mesh of text quads for rendering with a font, etc.
@@ -60,7 +60,7 @@ Generate a GPU buffer mesh of text quads for rendering with a font, etc.
**Returns**: A geometry buffer mesh (pos, uv, color, indices) for rendering text.
-### rectpack(width, height, sizes)
+### rectpack(width, height, sizes) function
Perform a rectangle packing using the stbrp library. Return positions for each rect.
@@ -76,7 +76,7 @@ Perform a rectangle packing using the stbrp library. Return positions for each r
**Returns**: An array of [x,y] coordinates placing each rect, or null if they don't fit.
-### make_rtree
+### make_rtree() function
Create a new R-Tree for geometry queries.
@@ -85,7 +85,7 @@ Create a new R-Tree for geometry queries.
**Returns**: An R-Tree object for quickly querying many rectangles or sprite bounds.
-### make_texture(data)
+### make_texture(data) function
Convert raw image bytes into an SDL_Surface object.
@@ -97,7 +97,7 @@ Convert raw image bytes into an SDL_Surface object.
**Returns**: An SDL_Surface object representing the decoded image in RAM, for use with GPU or software rendering.
-### make_gif(data)
+### make_gif(data) function
Load a GIF, returning its frames. If it's a single-frame GIF, the result may have .surface only.
@@ -109,7 +109,7 @@ Load a GIF, returning its frames. If it's a single-frame GIF, the result may hav
**Returns**: An object with frames[], each frame having its own .surface. Some also have a .texture for GPU use.
-### make_aseprite(data)
+### make_aseprite(data) function
Load an Aseprite/ASE file from an array of bytes, returning frames or animations.
@@ -121,7 +121,7 @@ Load an Aseprite/ASE file from an array of bytes, returning frames or animations
**Returns**: An object containing frames or animations, each with .surface. May also have top-level .surface for a single-layer case.
-### cull_sprites(sprites, camera)
+### cull_sprites(sprites, camera) function
Filter an array of sprites to only those visible in the provided camera’s view.
@@ -135,7 +135,7 @@ Filter an array of sprites to only those visible in the provided camera’s view
**Returns**: A new array of sprites that are visible in the camera's view.
-### rects_to_sprites(rects, image)
+### rects_to_sprites(rects, image) function
Convert an array of rect coords into sprite objects referencing a single image.
@@ -149,7 +149,7 @@ Convert an array of rect coords into sprite objects referencing a single image.
**Returns**: An array of sprite objects referencing the 'image' and each rect for UV or position.
-### make_surface(dimensions)
+### make_surface(dimensions) function
Create a blank surface in RAM.
@@ -161,7 +161,7 @@ Create a blank surface in RAM.
**Returns**: A blank RGBA surface with the given dimensions, typically for software rendering or icons.
-### make_cursor(opts)
+### make_cursor(opts) function
@@ -172,7 +172,7 @@ Create a blank surface in RAM.
**Returns**: An SDL_Cursor object referencing the given surface for a custom mouse cursor.
-### make_font(data, size)
+### make_font(data, size) function
Load a font from TTF/OTF data at the given size.
@@ -186,7 +186,7 @@ Load a font from TTF/OTF data at the given size.
**Returns**: A font object with surface, texture, and glyph data, for text rendering with make_text_buffer.
-### make_sprite
+### make_sprite() function
Create a new sprite object, storing default properties.
@@ -195,7 +195,7 @@ Create a new sprite object, storing default properties.
**Returns**: A new sprite object, which typically has .rect, .color, .layer, .image, etc.
-### make_line_prim(points, thickness, startCap, endCap, color)
+### make_line_prim(points, thickness, startCap, endCap, color) function
Build a GPU mesh representing a thick polyline from an array of points, using parsl or a similar library under the hood.
@@ -215,7 +215,7 @@ Build a GPU mesh representing a thick polyline from an array of points, using pa
**Returns**: A geometry mesh object suitable for rendering the line via a pipeline command.
-### is_image(obj)
+### is_image(obj) function
@@ -226,7 +226,7 @@ Build a GPU mesh representing a thick polyline from an array of points, using pa
**Returns**: True if 'obj' has a .texture and a .rect property, indicating it's an image object.
-### texture(path)
+### texture(path) function
Load or retrieve a cached image, converting it into a GPU texture. If 'path' is already an object, it’s returned directly.
@@ -238,7 +238,7 @@ Load or retrieve a cached image, converting it into a GPU texture. If 'path' is
**Returns**: An image object with {surface, texture, frames?, etc.} depending on the format.
-### tex_hotreload(file)
+### tex_hotreload(file) function
Reload the image for the given file, updating the cached copy in memory and GPU.
@@ -250,7 +250,7 @@ Reload the image for the given file, updating the cached copy in memory and GPU.
**Returns**: None
-### get_font(path, size)
+### get_font(path, size) function
Load a font from file if not cached, or retrieve from cache if already loaded.
@@ -264,7 +264,7 @@ Load a font from file if not cached, or retrieve from cache if already loaded.
**Returns**: A font object with .surface and .texture for rendering text.
-### queue_sprite_mesh(queue)
+### queue_sprite_mesh(queue) function
Builds a single geometry mesh for all sprite-type commands in the queue, storing first_index/num_indices
diff --git a/docs/api/modules/imgui.md b/docs/api/modules/imgui.md
index 7dab89df..b00474ac 100644
--- a/docs/api/modules/imgui.md
+++ b/docs/api/modules/imgui.md
@@ -1,3 +1 @@
# imgui
-
-## imgui
diff --git a/docs/api/modules/input.md b/docs/api/modules/input.md
index b6947eac..5bc62d31 100644
--- a/docs/api/modules/input.md
+++ b/docs/api/modules/input.md
@@ -1,8 +1,6 @@
# input
-## input
-
-### mouse_show(show)
+### mouse_show(show) function
Show or hide the mouse cursor. Pass true to show, false to hide.
@@ -14,7 +12,7 @@ Show or hide the mouse cursor. Pass true to show, false to hide.
**Returns**: None
-### mouse_lock(lock)
+### mouse_lock(lock) function
Capture or release the mouse, confining it within the window if locked.
@@ -26,7 +24,7 @@ Capture or release the mouse, confining it within the window if locked.
**Returns**: None
-### cursor_set(cursor)
+### cursor_set(cursor) function
Set the given cursor (created by os.make_cursor) as the active mouse cursor.
@@ -38,7 +36,7 @@ Set the given cursor (created by os.make_cursor) as the active mouse cursor.
**Returns**: None
-### keyname(keycode)
+### keyname(keycode) function
Given a numeric keycode, return the corresponding key name (e.g., from SDL).
@@ -50,7 +48,7 @@ Given a numeric keycode, return the corresponding key name (e.g., from SDL).
**Returns**: A string with the key name.
-### keymod
+### keymod() function
Return an object describing the current modifier keys, e.g. {shift:true, ctrl:true}.
@@ -59,7 +57,7 @@ Return an object describing the current modifier keys, e.g. {shift:true, ctrl:tr
**Returns**: An object with boolean fields for each modifier key.
-### mousestate
+### mousestate() function
Return an object describing the current mouse state, including x,y coordinates
and booleans for pressed buttons (left, middle, right, x1, x2).
@@ -69,14 +67,22 @@ and booleans for pressed buttons (left, middle, right, x1, x2).
**Returns**: Object { x, y, left, middle, right, x1, x2 }
-### print_pawn_kbm(pawn)
+### mouse object
-### procdown
+### keyboard object
-### print_md_kbm(pawn)
+### print_pawn_kbm(pawn) function
-### has_bind(pawn, bind)
+### procdown() function
-### tabcomplete(val, list)
+### print_md_kbm(pawn) function
-### do_uncontrol(pawn)
+### has_bind(pawn, bind) function
+
+### action object
+
+### tabcomplete(val, list) function
+
+### do_uncontrol(pawn) function
+
+### player object
diff --git a/docs/api/modules/io.md b/docs/api/modules/io.md
index b2761e32..0b237e16 100644
--- a/docs/api/modules/io.md
+++ b/docs/api/modules/io.md
@@ -1,8 +1,6 @@
# io
-## io
-
-### rm(path)
+### rm(path) function
Remove the file or empty directory at the given path.
@@ -14,7 +12,7 @@ Remove the file or empty directory at the given path.
**Returns**: None
-### mkdir(path)
+### mkdir(path) function
Create a directory at the given path.
@@ -26,7 +24,7 @@ Create a directory at the given path.
**Returns**: None
-### stat(path)
+### stat(path) function
Return an object describing file metadata for the given path. The object includes
filesize, modtime, createtime, and accesstime. Throw an error if the path does not exist.
@@ -39,7 +37,7 @@ filesize, modtime, createtime, and accesstime. Throw an error if the path does n
**Returns**: An object with metadata (filesize, modtime, createtime, accesstime).
-### globfs(patterns)
+### globfs(patterns) function
Return an array of files that do not match any of the provided glob patterns. It
recursively enumerates the filesystem within PHYSFS. Each pattern is treated as an
@@ -53,7 +51,7 @@ recursively enumerates the filesystem within PHYSFS. Each pattern is treated as
**Returns**: An array of matching file paths.
-### match(pattern, string)
+### match(pattern, string) function
Return boolean indicating whether the given wildcard pattern matches the provided
string. Dots must match dots. Case is not ignored.
@@ -77,7 +75,7 @@ Patterns can incorporate:
**Returns**: True if matched, otherwise false.
-### exists(path)
+### exists(path) function
Return a boolean indicating whether the file or directory at the given path exists.
@@ -89,7 +87,7 @@ Return a boolean indicating whether the file or directory at the given path exis
**Returns**: True if the path exists, otherwise false.
-### mount(archiveOrDir, mountPoint)
+### mount(archiveOrDir, mountPoint) function
Mount a directory or archive at the specified mount point. An undefined mount
point mounts to '/'. Throw on error.
@@ -104,7 +102,7 @@ point mounts to '/'. Throw on error.
**Returns**: None
-### unmount(path)
+### unmount(path) function
Unmount a previously mounted directory or archive. Throw on error.
@@ -116,7 +114,7 @@ Unmount a previously mounted directory or archive. Throw on error.
**Returns**: None
-### slurp(path)
+### slurp(path) function
Read the entire file at the given path as a string. Throw on error.
@@ -128,7 +126,7 @@ Read the entire file at the given path as a string. Throw on error.
**Returns**: A string with the file’s contents.
-### slurpbytes(path)
+### slurpbytes(path) function
Read the entire file at the given path as a raw ArrayBuffer. Throw on error.
@@ -140,7 +138,7 @@ Read the entire file at the given path as a raw ArrayBuffer. Throw on error.
**Returns**: An ArrayBuffer containing the file’s raw bytes.
-### slurpwrite(data, path)
+### slurpwrite(data, path) function
Write data (string or ArrayBuffer) to the given file path. Overwrite if it exists.
Throw on error.
@@ -155,7 +153,7 @@ Throw on error.
**Returns**: None
-### writepath(path)
+### writepath(path) function
Set the write directory. Subsequent writes will go here by default. Throw on error.
@@ -167,7 +165,7 @@ Set the write directory. Subsequent writes will go here by default. Throw on err
**Returns**: None
-### basedir
+### basedir() function
Return the application's base directory (where the executable is located).
@@ -176,7 +174,7 @@ Return the application's base directory (where the executable is located).
**Returns**: A string with the base directory path.
-### userdir
+### userdir() function
Return the user's directory, often used for saving data.
@@ -185,7 +183,7 @@ Return the user's directory, often used for saving data.
**Returns**: A string with the user's directory path.
-### realdir(path)
+### realdir(path) function
Return the actual, real directory (on the host filesystem) that contains the given
file path. Return undefined if not found.
@@ -198,7 +196,7 @@ file path. Return undefined if not found.
**Returns**: A string with the real directory path, or undefined.
-### open(path)
+### open(path) function
Open a file for writing, returning a file object that can be used for further
operations. Throw on error.
@@ -211,7 +209,7 @@ operations. Throw on error.
**Returns**: A file object for subsequent write operations.
-### searchpath
+### searchpath() function
Return an array of all directories in the current paths.
@@ -220,7 +218,7 @@ Return an array of all directories in the current paths.
**Returns**: An array of directory paths in the search path.
-### enumerate(path, recurse)
+### enumerate(path, recurse) function
Return an array of files within the given directory, optionally recursing into
subdirectories.
@@ -235,6 +233,6 @@ subdirectories.
**Returns**: An array of file (and directory) paths found.
-### mount_core
+### mount_core() function
-### is_directory
+### is_directory() function
diff --git a/docs/api/modules/js.md b/docs/api/modules/js.md
index 66039d6f..af7b08f2 100644
--- a/docs/api/modules/js.md
+++ b/docs/api/modules/js.md
@@ -5,7 +5,7 @@ Provides functions for introspecting and configuring the QuickJS runtime engine.
Includes debug info, memory usage, GC controls, code evaluation, etc.
-### cycle_hook(callback)
+### cycle_hook(callback) function
or undefined to remove the callback.
@@ -21,7 +21,7 @@ is undefined, the hook is removed.
**Returns**: None
-### dump_shapes
+### dump_shapes() function
Use this for internal debugging of object shapes.
@@ -30,7 +30,7 @@ Use this for internal debugging of object shapes.
**Returns**: A debug string describing the internal shape hierarchy used by QuickJS.
-### dump_atoms
+### dump_atoms() function
known by QuickJS. Helpful for diagnosing memory usage or potential key collisions.
@@ -39,7 +39,7 @@ known by QuickJS. Helpful for diagnosing memory usage or potential key collision
**Returns**: A debug string listing all currently registered atoms (internal property keys/symbols)
-### dump_class
+### dump_class() function
Shows how many objects of each class exist, useful for advanced memory or performance profiling.
@@ -48,7 +48,7 @@ Shows how many objects of each class exist, useful for advanced memory or perfor
**Returns**: A debug string describing the distribution of JS object classes in the QuickJS runtime.
-### dump_objects
+### dump_objects() function
useful for debugging memory leaks or object lifetimes.
@@ -57,7 +57,7 @@ useful for debugging memory leaks or object lifetimes.
**Returns**: A debug string listing certain internal QuickJS objects and their references,
-### dump_type_overheads
+### dump_type_overheads() function
Displays memory usage breakdown for different internal object types.
@@ -66,7 +66,7 @@ Displays memory usage breakdown for different internal object types.
**Returns**: A debug string describing the overheads for various JS object types in QuickJS.
-### stack_info
+### stack_info() function
Internal debugging utility to examine call stack details.
@@ -75,7 +75,7 @@ Internal debugging utility to examine call stack details.
**Returns**: An object or string describing the runtime's current stack usage and capacity.
-### calc_mem(value)
+### calc_mem(value) function
@@ -88,7 +88,7 @@ Compute the approximate size of a single JS value in memory. This is a best-effo
**Returns**: Approximate memory usage (in bytes) of that single value.
-### mem
+### mem() function
including total allocated bytes, object counts, and more.
@@ -99,7 +99,7 @@ Retrieve an overview of the runtime’s memory usage.
**Returns**: An object containing a comprehensive snapshot of memory usage for the current QuickJS runtime,
-### mem_limit(bytes)
+### mem_limit(bytes) function
@@ -113,7 +113,7 @@ fail or throw errors.
**Returns**: None
-### gc_threshold(bytes)
+### gc_threshold(bytes) function
@@ -126,7 +126,7 @@ Set the threshold (in bytes) for QuickJS to perform an automatic GC pass when me
**Returns**: None
-### max_stacksize(bytes)
+### max_stacksize(bytes) function
@@ -139,7 +139,7 @@ Set the maximum stack size for QuickJS. If exceeded, the runtime may throw a sta
**Returns**: None
-### memstate
+### memstate() function
@@ -149,7 +149,7 @@ Gives a quick overview of the memory usage, including malloc size and other allo
**Returns**: A simpler memory usage object (malloc sizes, etc.) for the QuickJS runtime.
-### gc
+### gc() function
@@ -159,7 +159,7 @@ Force an immediate, full garbage collection pass, reclaiming unreachable memory.
**Returns**: None
-### eval(src, filename)
+### eval(src, filename) function
diff --git a/docs/api/modules/json.md b/docs/api/modules/json.md
index a825b701..572292b6 100644
--- a/docs/api/modules/json.md
+++ b/docs/api/modules/json.md
@@ -1,8 +1,6 @@
# json
-## json
-
-### encode(val,space,replacer,whitelist)
+### encode(val,space,replacer,whitelist) function
Produce a JSON text from a Javascript object. If a record value, at any level, contains a json() method, it will be called, and the value it returns (usually a simpler record) will be JSONified.
@@ -10,7 +8,7 @@ If the record does not have a json() method, and if whitelist is a record, then
If the space input is true, then line breaks and extra whitespace will be included in the text.
-### decode(text,reviver)
+### decode(text,reviver) function
The text text is parsed, and the resulting value (usually a record or an array) is returned.
diff --git a/docs/api/modules/loop.md b/docs/api/modules/loop.md
index 26c51f4f..cf3e6540 100644
--- a/docs/api/modules/loop.md
+++ b/docs/api/modules/loop.md
@@ -1,5 +1,3 @@
# loop
-## loop
-
-### step
+### step() function
diff --git a/docs/api/modules/math.md b/docs/api/modules/math.md
index e248d112..0574abc0 100644
--- a/docs/api/modules/math.md
+++ b/docs/api/modules/math.md
@@ -1,115 +1,115 @@
# math
-## math
-
-### dot
+### dot() function
Compute the dot product between two numeric arrays, returning a scalar. Extra elements are ignored.
-### project
+### project() function
Project one vector onto another, returning a new array of the same dimension.
-### rotate
+### rotate() function
Rotate a 2D point (or array of length 2) by the given angle (in turns) around an optional pivot.
-### midpoint
+### midpoint() function
Compute the midpoint of two arrays of numbers. Only the first two entries are used if 2D is intended.
-### reflect
+### reflect() function
Reflect a vector across a plane normal. Both arguments must be numeric arrays.
-### distance
+### distance() function
Compute the Euclidean distance between two numeric arrays of matching length.
-### direction
+### direction() function
Compute the normalized direction vector from the first array to the second.
-### angle
+### angle() function
Given a 2D vector, return its angle from the X-axis in radians or some chosen units.
-### norm
+### norm() function
Return a normalized copy of the given numeric array. For 2D/3D/4D or arbitrary length.
-### angle_between
+### angle_between() function
Compute the angle between two vectors (2D/3D/4D).
-### lerp
+### lerp() function
Linear interpolation between two numbers: lerp(a, b, t).
-### gcd
+### gcd() function
Compute the greatest common divisor of two integers.
-### lcm
+### lcm() function
Compute the least common multiple of two integers.
-### clamp
+### clamp() function
Clamp a number between low and high. clamp(value, low, high).
-### angledist
+### angledist() function
Compute the signed distance between two angles in 'turn' units, e.g. 0..1 range.
-### jitter
+### jitter() function
Apply a random +/- percentage noise to a number. Example: jitter(100, 0.05) -> ~95..105.
-### mean
+### mean() function
Compute the arithmetic mean of an array of numbers.
-### sum
+### sum() function
Sum all elements of an array of numbers.
-### sigma
+### sigma() function
Compute standard deviation of an array of numbers.
-### median
+### median() function
Compute the median of an array of numbers.
-### length
+### length() function
Return the length of a vector (i.e. sqrt of sum of squares).
-### from_to
+### from_to() function
Return an array of points from a start to an end, spaced out by a certain distance.
-### rand
+### rand() function
Return a random float in [0,1).
-### randi
+### randi() function
Return a random 32-bit integer.
-### srand
+### srand() function
Seed the random number generator with the given integer, or with current time if none.
-### deg2rad(deg)
+### TAU number
-### rad2deg(rad)
+### deg2rad(deg) function
-### turn2rad(x)
+### rad2deg(rad) function
-### rad2turn(x)
+### turn2rad(x) function
-### turn2deg(x)
+### rad2turn(x) function
-### deg2turn(x)
+### turn2deg(x) function
+
+### deg2turn(x) function
diff --git a/docs/api/modules/miniz.md b/docs/api/modules/miniz.md
index 31685e10..7a8ee0f8 100644
--- a/docs/api/modules/miniz.md
+++ b/docs/api/modules/miniz.md
@@ -1,3 +1,27 @@
# miniz
-## miniz
+### read(data) function
+
+Create a zip reader from the given ArrayBuffer containing an entire ZIP archive.
+Return undefined if the data is invalid.
+
+
+
+**data**: An ArrayBuffer with the entire ZIP file.
+
+
+**Returns**: A 'zip reader' object with methods for reading from the archive (mod, exists, slurp).
+
+
+### write(path) function
+
+Create a zip writer that writes to the specified file path. Overwrites the file if
+it already exists. Return undefined on error.
+
+
+
+**path**: The file path where the ZIP archive will be written.
+
+
+**Returns**: A 'zip writer' object with methods for adding files to the archive (add_file).
+
diff --git a/docs/api/modules/os.md b/docs/api/modules/os.md
index 06811325..5ad4494e 100644
--- a/docs/api/modules/os.md
+++ b/docs/api/modules/os.md
@@ -1,103 +1,101 @@
# os
-## os
-
-### make_transform
+### make_transform() function
Create a new transform object that can be used for 2D/3D positioning, scaling, and rotation.
-### clean_transforms
+### clean_transforms() function
Force an update on all transforms to remove dangling references or perform house-keeping.
-### platform
+### platform() function
Return a string with the underlying platform name, like 'Windows', 'Linux', or 'macOS'.
-### arch
+### arch() function
Return the CPU architecture string for this system (e.g. 'x64', 'arm64').
-### totalmem
+### totalmem() function
Return the total system RAM in bytes.
-### freemem
+### freemem() function
Return the amount of free system RAM in bytes, if known.
-### hostname
+### hostname() function
Return the system's hostname, or an empty string if not available.
-### version
+### version() function
Return the OS or kernel version string, if the platform provides it.
-### kill
+### kill() function
Send a signal (e.g., 'SIGINT', 'SIGTERM', etc.) to the current process.
-### exit
+### exit() function
Exit the application with the specified exit code.
-### now
+### now() function
Return current time (in seconds as a float) with high resolution.
-### openurl
+### openurl() function
Open the provided URL in the default web browser, if possible.
-### make_timer
+### make_timer() function
Create a new timer object that will call a specified function after a certain delay.
-### update_timers
+### update_timers() function
Advance all timers by the provided time delta (in seconds).
-### sleep
+### sleep() function
Block execution for the specified number of seconds.
-### battery_pct
+### battery_pct() function
Return the battery level (percentage) or negative if unknown.
-### battery_voltage
+### battery_voltage() function
Return the current battery voltage in volts, if available.
-### battery_seconds
+### battery_seconds() function
Return the estimated remaining battery time in seconds, or negative if unknown.
-### power_state
+### power_state() function
Return a string describing power status: 'on battery', 'charging', 'charged', etc.
-### on
+### on() function
Register a global callback for certain engine-wide or system-level events.
-### rt_info
+### rt_info() function
Return internal QuickJS runtime info, such as object counts.
-### rusage
+### rusage() function
Return resource usage stats for this process, if the platform supports it.
-### mallinfo
+### mallinfo() function
Return detailed memory allocation info (arena size, free blocks, etc.) on some platforms.
-### env
+### env() function
Fetch the value of a given environment variable, or undefined if it doesn't exist.
-### system
+### system() function
Execute a shell command using the system() call. Returns the command's exit code.
diff --git a/docs/api/modules/packer.md b/docs/api/modules/packer.md
index 77c49bf9..5db63459 100644
--- a/docs/api/modules/packer.md
+++ b/docs/api/modules/packer.md
@@ -1,8 +1,6 @@
# packer
-## packer
-
-### getAllFiles(dir)
+### getAllFiles(dir) function
Return a list of all files in the given directory that are not matched by .prosperonignore,
@@ -16,7 +14,7 @@ skipping directories.
**Returns**: An array of file paths found.
-### gatherStats(filePaths)
+### gatherStats(filePaths) function
Analyze a list of files and categorize them as modules, programs, images, or other.
@@ -29,7 +27,7 @@ Analyze a list of files and categorize them as modules, programs, images, or oth
**Returns**: An object { modules, programs, images, other, total } with counts.
-### pack(dir, outPath)
+### pack(dir, outPath) function
Create a ZIP archive of all files (skipping those matched by .prosperonignore) in the
diff --git a/docs/api/modules/render.md b/docs/api/modules/render.md
index abdc94ee..93e65537 100644
--- a/docs/api/modules/render.md
+++ b/docs/api/modules/render.md
@@ -1,25 +1,15 @@
# render
-## render
+### _main object
A handle for low-level GPU operations via SDL GPU. Freed on GC.
-An application window, created via prosperon.engine_start or SDL calls. Freed on GC.
+### device object
+### stencil_writer(...args) function
-#### present
-
-Perform the per-frame rendering and present the final swapchain image, including imgui pass if available.
-
-
-
-**Returns**: None
-
-
-### stencil_writer(...args)
-
-### fillmask(ref)
+### fillmask(ref) function
Draw a fullscreen shape using a 'screenfill' shader to populate the stencil buffer with a given reference.
@@ -31,7 +21,7 @@ Draw a fullscreen shape using a 'screenfill' shader to populate the stencil buff
**Returns**: None
-### mask(image, pos, scale, rotation, ref)
+### mask(image, pos, scale, rotation, ref) function
Draw an image to the stencil buffer, marking its area with a specified reference value.
@@ -51,7 +41,7 @@ Draw an image to the stencil buffer, marking its area with a specified reference
**Returns**: None
-### viewport(rect)
+### viewport(rect) function
Set the GPU viewport to the specified rectangle.
@@ -63,7 +53,7 @@ Set the GPU viewport to the specified rectangle.
**Returns**: None
-### scissor(rect)
+### scissor(rect) function
Set the GPU scissor region to the specified rectangle (alias of render.viewport).
@@ -75,7 +65,7 @@ Set the GPU scissor region to the specified rectangle (alias of render.viewport)
**Returns**: None
-### queue(cmd)
+### queue(cmd) function
Enqueue one or more draw commands. These commands are batched until render_camera is called.
@@ -87,7 +77,7 @@ Enqueue one or more draw commands. These commands are batched until render_camer
**Returns**: None
-### setup_draw
+### setup_draw() function
Switch the current queue to the primary scene render queue, then invoke 'prosperon.draw' if defined.
@@ -96,7 +86,7 @@ Switch the current queue to the primary scene render queue, then invoke 'prosper
**Returns**: None
-### setup_hud
+### setup_hud() function
Switch the current queue to the HUD render queue, then invoke 'prosperon.hud' if defined.
diff --git a/docs/api/modules/resources.md b/docs/api/modules/resources.md
index 2cb3ce69..a0af8811 100644
--- a/docs/api/modules/resources.md
+++ b/docs/api/modules/resources.md
@@ -1,18 +1,26 @@
# resources
-## resources
+### scripts object
-### canonical(file)
+### images object
-### find_image(...args)
+### sounds object
-### find_sound(...args)
+### fonts object
-### find_script(...args)
+### lib object
-### find_font(...args)
+### canonical(file) function
-### getAllFiles(dir)
+### find_image(...args) function
+
+### find_sound(...args) function
+
+### find_script(...args) function
+
+### find_font(...args) function
+
+### getAllFiles(dir) function
Return a list of recognized files in the given directory that are not matched by
@@ -27,7 +35,7 @@ images, sounds, fonts, and libs.
**Returns**: An array of recognized file paths.
-### gatherStats(filePaths)
+### gatherStats(filePaths) function
Analyze a list of recognized files and categorize them by scripts, images, sounds,
@@ -41,7 +49,7 @@ fonts, libs, or other. Return a stats object with these counts and the total.
**Returns**: { scripts, images, sounds, fonts, lib, other, total }
-### pack(dir, outPath)
+### pack(dir, outPath) function
Create a ZIP archive of all recognized files (skipping those matched by .prosperonignore)
diff --git a/docs/api/modules/sound.md b/docs/api/modules/sound.md
index 09344755..d7cd2afc 100644
--- a/docs/api/modules/sound.md
+++ b/docs/api/modules/sound.md
@@ -1,11 +1,11 @@
# sound
-## sound
+### undefined string
-### pcm(file)
+### pcm(file) function
-### play(file)
+### play(file) function
-### cry(file)
+### cry(file) function
-### music(file, fade = 0.5)
+### music(file, fade = 0.5) function
diff --git a/docs/api/modules/spline.md b/docs/api/modules/spline.md
index 9d3c069a..b070ddcb 100644
--- a/docs/api/modules/spline.md
+++ b/docs/api/modules/spline.md
@@ -1,11 +1,9 @@
# spline
-## spline
-
-### catmull
+### catmull() function
Perform Catmull-Rom spline sampling on an array of 2D points, returning an array of samples.
-### bezier
+### bezier() function
Perform a Bezier spline (or catmull) sampling on 2D points, returning an array of sampled points.
diff --git a/docs/api/modules/time.md b/docs/api/modules/time.md
index 650adb6c..158567a9 100644
--- a/docs/api/modules/time.md
+++ b/docs/api/modules/time.md
@@ -2,54 +2,102 @@
The main time object, handling date/time utilities in earth-seconds.
-### now
+### now() function
Return the current system time in seconds (implemented in C extension).
-### computer_dst
+### computer_dst() function
Return true if local system time is currently in DST (implemented in C extension).
-### computer_zone
+### computer_zone() function
Return local time zone offset from UTC in hours (implemented in C extension).
-### hour2minute
+### second number
+
+Number of seconds in a (real) second (always 1).
+
+### minute number
+
+Number of seconds in a minute (60).
+
+### hour number
+
+Number of seconds in an hour (3600).
+
+### day number
+
+Number of seconds in a day (86400).
+
+### week number
+
+Number of seconds in a week (604800).
+
+### weekdays object
+
+Names of the days of the week, Sunday through Saturday.
+
+### monthstr object
+
+Full names of the months of the year, January through December.
+
+### epoch number
+
+Base epoch year, from which day 0 is calculated (default 1970).
+
+### hour2minute() function
Return the ratio of hour to minute in seconds, e.g. 3600 / 60 => 60.
-### day2hour
+### day2hour() function
Return the ratio of day to hour in seconds, e.g. 86400 / 3600 => 24.
-### minute2second
+### minute2second() function
Return the ratio of minute to second in seconds, e.g. 60 / 1 => 60.
-### week2day
+### week2day() function
Return the ratio of week to day in seconds, e.g. 604800 / 86400 => 7.
-### isleap(year)
+### strparse object
+
+Mapping of format tokens (yyyy, mm, dd, etc.) to time fields (year, month, day...).
+
+### isleap(year) function
Return true if a given year is leap, based on whether it has 366 days.
-### yearsize(y)
+### yearsize(y) function
Given a year, return 365 or 366 depending on leap-year rules.
-### timecode(t, fps = 24)
+### timecode(t, fps = 24) function
Convert seconds into a "S:frames" timecode string, with optional FPS (default 24).
-### record(num, zone = this.computer_zone()
+### monthdays object
+
+An array of days in each month for a non-leap year.
+
+### zones object
+
+Table of recognized time zone abbreviations, with offsets (e.g., "-12" -> "IDLW").
+
+### record(num, zone = this.computer_zone() function
Convert a timestamp (in seconds) into a record with fields like day, month, year, etc.
-### number(rec)
+### number(rec) function
Convert a record back into a numeric timestamp (seconds).
-### text(num, fmt = this.fmt, zone)
+### fmt string
+
+Default format string for time.text(), containing tokens like 'yyyy', 'dd', 'hh', etc.
+
+### text(num, fmt = this.fmt, zone) function
Format a numeric or record time into a string using a format pattern, e.g. 'hh:nn:ss'.
diff --git a/docs/api/modules/tween.md b/docs/api/modules/tween.md
index 967dc0a3..f987a249 100644
--- a/docs/api/modules/tween.md
+++ b/docs/api/modules/tween.md
@@ -1,6 +1,6 @@
# tween
-## tween
+### Tween object
An object providing methods to create and control tweens with additional features
@@ -13,17 +13,7 @@ Methods:
- make: Alias of start.
-#### start(obj, target, tvals, options)
-
-
-Alias of Tween.start. See Tween.start for usage details.
-
-
-#### make(obj, target, tvals, options)
-
-
-Alias of Tween.start. See Tween.start for usage details.
-
+### Ease object
This object provides multiple easing functions that remap a 0..1 input to produce
@@ -44,15 +34,7 @@ Available functions:
All easing functions expect t in [0..1] and return a remapped value in [0..1].
-#### linear(t)
-
-#### in(t)
-
-#### out(t)
-
-#### inout(t)
-
-### tween(from, to, time, fn, cb)
+### tween(from, to, time, fn, cb) function
diff --git a/docs/api/modules/util.md b/docs/api/modules/util.md
index c0a363a6..7f6f951c 100644
--- a/docs/api/modules/util.md
+++ b/docs/api/modules/util.md
@@ -5,7 +5,7 @@ A collection of general-purpose utility functions for object manipulation, mergi
deep copying, safe property access, etc.
-### guid
+### guid() function
Return a random 32-character hexadecimal UUID-like string (not guaranteed RFC4122-compliant).
@@ -14,7 +14,7 @@ Return a random 32-character hexadecimal UUID-like string (not guaranteed RFC412
**Returns**: A random 32-character string (hex).
-### insertion_sort(arr, cmp)
+### insertion_sort(arr, cmp) function
In-place insertion sort of an array using cmp(a,b)->Number for ordering.
@@ -28,7 +28,7 @@ In-place insertion sort of an array using cmp(a,b)->Number for ordering.
**Returns**: The same array, sorted in-place.
-### deepfreeze(obj)
+### deepfreeze(obj) function
Recursively freeze an object and all of its nested objects so they cannot be modified.
@@ -40,7 +40,7 @@ Recursively freeze an object and all of its nested objects so they cannot be mod
**Returns**: None
-### dainty_assign(target, source)
+### dainty_assign(target, source) function
Copy non-function properties from source into matching keys of target without overwriting
@@ -55,7 +55,7 @@ keys that don't exist in target. Arrays are deep-copied, and objects are recursi
**Returns**: None
-### get(obj, path, defValue)
+### get(obj, path, defValue) function
Safely retrieve a nested property from obj at path (array or dot-string).
@@ -72,7 +72,7 @@ Returns defValue if the property is undefined.
**Returns**: The nested property or defValue.
-### isEmpty(o)
+### isEmpty(o) function
Return true if the object has no own properties, otherwise false.
@@ -84,7 +84,7 @@ Return true if the object has no own properties, otherwise false.
**Returns**: Boolean indicating if the object is empty.
-### dig(obj, path, def)
+### dig(obj, path, def) function
Ensure a nested path of objects exists inside obj; create objects if missing, and set
@@ -101,7 +101,7 @@ the final path component to def.
**Returns**: The assigned final value.
-### access(obj, name)
+### access(obj, name) function
Traverse obj by dot-separated path name, returning the final value or undefined
@@ -116,7 +116,7 @@ if any step is missing.
**Returns**: The value at that path, or undefined if missing.
-### mergekey(o1, o2, k)
+### mergekey(o1, o2, k) function
Helper for merge, updating key k from o2 into o1. Arrays are deep-copied and objects are
@@ -133,7 +133,7 @@ recursively merged.
**Returns**: None
-### merge(target, objs)
+### merge(target, objs) function
Merge all passed objects into target, copying or merging each key as needed.
@@ -148,7 +148,7 @@ Arrays are deep-copied, objects are recursively merged, etc.
**Returns**: The updated target object.
-### copy(proto, objs)
+### copy(proto, objs) function
Create a new object with proto as its prototype, then mix in additional objects’ properties.
@@ -162,7 +162,7 @@ Create a new object with proto as its prototype, then mix in additional objects
**Returns**: The newly created object.
-### obj_lerp(a, b, t)
+### obj_lerp(a, b, t) function
Linearly interpolate between two objects a and b by factor t, assuming each property
@@ -179,7 +179,7 @@ supports .lerp().
**Returns**: A new object with interpolated properties.
-### normalizeSpacing(spacing)
+### normalizeSpacing(spacing) function
Normalize any spacing input into a {l, r, t, b} object.
diff --git a/docs/api/modules/video.md b/docs/api/modules/video.md
index 58c228b0..92ac692c 100644
--- a/docs/api/modules/video.md
+++ b/docs/api/modules/video.md
@@ -1,7 +1,5 @@
# video
-## video
-
-### make_video
+### make_video() function
Decode a video file (MPEG, etc.) from an ArrayBuffer, returning a datastream object.
diff --git a/docs/api/prosperon.md b/docs/api/prosperon.md
index dc3b25a2..9cf244a3 100644
--- a/docs/api/prosperon.md
+++ b/docs/api/prosperon.md
@@ -1,51 +1,103 @@
# prosperon
-## prosperon
+### c_types object
-### engine_start
+### argv object
-### on(type, callback)
+### version string
-### dispatch(type, data)
+### revision string
-### appupdate(...args)
+### engine_start() function
-### update(...args)
+### DOC symbol
-### physupdate(...args)
+### on(type, callback) function
-### gui(...args)
+### dispatch(type, data) function
-### hud(...args)
+### PATH object
-### draw(...args)
+### appupdate(...args) function
-### imgui(...args)
+### update(...args) function
-### app(...args)
+### physupdate(...args) function
-### camera
+### gui(...args) function
-A hierarchical transform storing 3D or 2D position, rotation (as a quaternion),
-and scale. Can have a parent transform. Freed automatically on GC.
+### hud(...args) function
+### draw(...args) function
+
+### imgui(...args) function
+
+### app(...args) function
+
+### date string
+
+### camera object
+
+### debug boolean
+
+### semver object
+
+### title string
+
+### width number
+
+### height number
+
+### size object
+
+### icon object
+
+### high_dpi number
+
+### alpha number
+
+### fullscreen number
+
+### sample_count number
+
+### enable_clipboard boolean
+
+### enable_dragndrop boolean
+
+### max_dropped_files number
+
+### swap_interval number
+
+### name string
+
+### identifier string
+
+### creator string
+
+### copyright string
+
+### type string
+
+### url string
+
+### postvals object
+
+### hudcam object
+
+### appcam object
+
+### screencolor object
+
+### window object
An application window, created via prosperon.engine_start or SDL calls. Freed on GC.
+### font object
+
+### gpu object
+
A handle for low-level GPU operations via SDL GPU. Freed on GC.
-An application window, created via prosperon.engine_start or SDL calls. Freed on GC.
-
-
-#### present
-
-Perform the per-frame rendering and present the final swapchain image, including imgui pass if available.
-
-
-
-**Returns**: None
-
-
-### exit
+### exit() function
diff --git a/docs/api/types/PHYSFS_File.md b/docs/api/types/PHYSFS_File.md
index 3facc1b9..46803890 100644
--- a/docs/api/types/PHYSFS_File.md
+++ b/docs/api/types/PHYSFS_File.md
@@ -3,7 +3,7 @@
A file handle opened via PhysFS for writing or reading. Freed automatically when references go away.
-### close
+### close() function
Close this file handle. Throws on error.
@@ -12,7 +12,7 @@ Close this file handle. Throws on error.
**Returns**: None
-### write(data)
+### write(data) function
Write data (string or ArrayBuffer) to the file. Throws on error.
@@ -24,7 +24,7 @@ Write data (string or ArrayBuffer) to the file. Throws on error.
**Returns**: None
-### buffer(size)
+### buffer(size) function
Enable an internal write buffer of the given size on this file.
@@ -36,7 +36,7 @@ Enable an internal write buffer of the given size on this file.
**Returns**: None
-### tell
+### tell() function
Return the current position in the file.
@@ -45,7 +45,7 @@ Return the current position in the file.
**Returns**: A numeric offset.
-### eof
+### eof() function
Return whether the file pointer is at end-of-file.
diff --git a/docs/api/types/SDL_Camera.md b/docs/api/types/SDL_Camera.md
index 75b201f7..de33f0fd 100644
--- a/docs/api/types/SDL_Camera.md
+++ b/docs/api/types/SDL_Camera.md
@@ -3,7 +3,7 @@
A handle to a physical camera device. Freed when references drop or camera is closed.
-### frame
+### frame() function
Acquire the latest camera frame (as an SDL_Surface). Returns undefined if no
new frame is available yet. Throws on error.
@@ -13,7 +13,7 @@ new frame is available yet. Throws on error.
**Returns**: SDL_Surface or undefined.
-### release_frame(surface)
+### release_frame(surface) function
Release a frame surface previously acquired via camera.frame(). Must be
done for each acquired frame.
diff --git a/docs/api/types/SDL_GPUBuffer.md b/docs/api/types/SDL_GPUBuffer.md
index 17093b30..6c54bdf5 100644
--- a/docs/api/types/SDL_GPUBuffer.md
+++ b/docs/api/types/SDL_GPUBuffer.md
@@ -1,5 +1,3 @@
# SDL_GPUBuffer
-## SDL_GPUBuffer
-
-### name
+### name() function
diff --git a/docs/api/types/SDL_GPUCommandBuffer.md b/docs/api/types/SDL_GPUCommandBuffer.md
index 5eb56b10..cebb8fa2 100644
--- a/docs/api/types/SDL_GPUCommandBuffer.md
+++ b/docs/api/types/SDL_GPUCommandBuffer.md
@@ -3,7 +3,7 @@
A command buffer that accumulates rendering, copy, and compute operations. Freed after submission or GC.
-### render_pass(passDesc)
+### render_pass(passDesc) function
Begin a render pass with color/depth attachments. Provide an object with
'color_targets' and optional 'depth_stencil'. Returns an SDL_GPURenderPass handle.
@@ -16,7 +16,7 @@ Begin a render pass with color/depth attachments. Provide an object with
**Returns**: SDL_GPURenderPass
-### compute_pass(storageTextures, storageBuffers)
+### compute_pass(storageTextures, storageBuffers) function
Begin a compute pass reading/writing given arrays of textures and buffers.
@@ -30,7 +30,7 @@ Begin a compute pass reading/writing given arrays of textures and buffers.
**Returns**: SDL_GPUComputePass
-### swapchain_pass(clearColor)
+### swapchain_pass(clearColor) function
Begin a render pass that directly targets the swapchain (the window). Clears
with the specified color.
@@ -43,7 +43,7 @@ with the specified color.
**Returns**: SDL_GPURenderPass
-### acquire_swapchain
+### acquire_swapchain() function
Acquire the current swapchain texture from the window. Internal usage.
@@ -52,7 +52,7 @@ Acquire the current swapchain texture from the window. Internal usage.
**Returns**: SDL_GPUTexture handle
-### bind_vertex_buffer(slot, buffer)
+### bind_vertex_buffer(slot, buffer) function
Bind a GPU buffer as the vertex buffer at a given slot.
@@ -66,7 +66,7 @@ Bind a GPU buffer as the vertex buffer at a given slot.
**Returns**: None
-### bind_index_buffer(buffer, offset)
+### bind_index_buffer(buffer, offset) function
Bind a GPU buffer as the index buffer (16-bit or 32-bit).
@@ -80,7 +80,7 @@ Bind a GPU buffer as the index buffer (16-bit or 32-bit).
**Returns**: None
-### bind_fragment_sampler(slot, texture, sampler)
+### bind_fragment_sampler(slot, texture, sampler) function
Bind a texture+sampler pair to a particular fragment shader slot.
@@ -96,7 +96,7 @@ Bind a texture+sampler pair to a particular fragment shader slot.
**Returns**: None
-### push_vertex_uniform_data(slot, data)
+### push_vertex_uniform_data(slot, data) function
Push raw data to a vertex shader uniform block.
@@ -110,7 +110,7 @@ Push raw data to a vertex shader uniform block.
**Returns**: None
-### push_fragment_uniform_data(slot, data)
+### push_fragment_uniform_data(slot, data) function
Push raw data to a fragment shader uniform block.
@@ -124,7 +124,7 @@ Push raw data to a fragment shader uniform block.
**Returns**: None
-### push_compute_uniform_data(slot, data)
+### push_compute_uniform_data(slot, data) function
Push raw data to a compute shader uniform buffer.
@@ -138,7 +138,7 @@ Push raw data to a compute shader uniform buffer.
**Returns**: None
-### submit
+### submit() function
Submit this command buffer to the GPU and return a fence for synchronization.
@@ -147,7 +147,7 @@ Submit this command buffer to the GPU and return a fence for synchronization.
**Returns**: An SDL_GPUFence
-### cancel
+### cancel() function
Cancel (discard) this command buffer without submitting.
@@ -156,7 +156,7 @@ Cancel (discard) this command buffer without submitting.
**Returns**: None
-### camera(cameraTransform, uniformSlot)
+### camera(cameraTransform, uniformSlot) function
Write a camera transform (projection/view) to a uniform slot for 3D or 2D usage.
@@ -170,7 +170,7 @@ Write a camera transform (projection/view) to a uniform slot for 3D or 2D usage.
**Returns**: None
-### hud(sizeVec2, uniformSlot)
+### hud(sizeVec2, uniformSlot) function
Write an orthographic full-screen "HUD" matrix to a uniform slot. Typically used
for 2D overlays.
@@ -185,7 +185,7 @@ for 2D overlays.
**Returns**: None
-### push_debug_group(name)
+### push_debug_group(name) function
Push a named debug group marker onto the GPU command list (for debuggers/profilers).
@@ -197,7 +197,7 @@ Push a named debug group marker onto the GPU command list (for debuggers/profile
**Returns**: None
-### pop_debug_group
+### pop_debug_group() function
Pop the most recent debug group marker.
@@ -206,7 +206,7 @@ Pop the most recent debug group marker.
**Returns**: None
-### debug_label(label)
+### debug_label(label) function
Insert a one-off debug label at the current spot in the command list.
@@ -218,7 +218,7 @@ Insert a one-off debug label at the current spot in the command list.
**Returns**: None
-### blit(blitDesc)
+### blit(blitDesc) function
Blit one GPU texture to another with optional flip mode, filter, and clear operations.
diff --git a/docs/api/types/SDL_GPUComputePass.md b/docs/api/types/SDL_GPUComputePass.md
index 63997dc6..99ea7abf 100644
--- a/docs/api/types/SDL_GPUComputePass.md
+++ b/docs/api/types/SDL_GPUComputePass.md
@@ -3,7 +3,7 @@
A compute pass for dispatching compute pipelines. Freed after end() or GC.
-### dispatch(x, y, z)
+### dispatch(x, y, z) function
Dispatch the compute pipeline with the specified threadgroup counts.
@@ -19,7 +19,7 @@ Dispatch the compute pipeline with the specified threadgroup counts.
**Returns**: None
-### end
+### end() function
End this compute pass.
@@ -28,7 +28,7 @@ End this compute pass.
**Returns**: None
-### pipeline(computePipeline)
+### pipeline(computePipeline) function
Bind a compute pipeline in this pass.
@@ -40,7 +40,7 @@ Bind a compute pipeline in this pass.
**Returns**: None
-### samplers(arrayOfSamplerBindings, firstSlot)
+### samplers(arrayOfSamplerBindings, firstSlot) function
Bind a set of texture/sampler pairs for compute usage.
@@ -54,7 +54,7 @@ Bind a set of texture/sampler pairs for compute usage.
**Returns**: None
-### storage_buffers(arrayOfBuffers, firstSlot)
+### storage_buffers(arrayOfBuffers, firstSlot) function
Bind an array of storage buffers for the compute shader.
@@ -68,7 +68,7 @@ Bind an array of storage buffers for the compute shader.
**Returns**: None
-### storage_textures(arrayOfTextures, firstSlot)
+### storage_textures(arrayOfTextures, firstSlot) function
Bind an array of storage textures for the compute shader.
diff --git a/docs/api/types/SDL_GPUDevice.md b/docs/api/types/SDL_GPUDevice.md
index 3e8968c0..809e1f26 100644
--- a/docs/api/types/SDL_GPUDevice.md
+++ b/docs/api/types/SDL_GPUDevice.md
@@ -3,7 +3,7 @@
A handle for low-level GPU operations via SDL GPU. Freed on GC.
-### claim_window(window)
+### claim_window(window) function
Claim an existing SDL_Window so this GPU device can render to it.
@@ -15,7 +15,7 @@ Claim an existing SDL_Window so this GPU device can render to it.
**Returns**: None
-### make_pipeline(pipelineDesc)
+### make_pipeline(pipelineDesc) function
Create a new graphics pipeline from a descriptor object specifying shaders,
blend states, vertex format, etc.
@@ -28,7 +28,7 @@ blend states, vertex format, etc.
**Returns**: A SDL_GPUGraphicsPipeline handle.
-### compute_pipeline(desc)
+### compute_pipeline(desc) function
Create a compute pipeline from a descriptor (shader code, threadgroup sizes, etc.).
@@ -40,7 +40,7 @@ Create a compute pipeline from a descriptor (shader code, threadgroup sizes, etc
**Returns**: SDL_GPUComputePipeline handle.
-### set_swapchain(composition, presentMode)
+### set_swapchain(composition, presentMode) function
Specify how the swapchain (final rendered image) is composed, e.g. 'sdr', 'hdr',
and present mode like 'vsync' or 'immediate'.
@@ -55,7 +55,7 @@ and present mode like 'vsync' or 'immediate'.
**Returns**: None
-### sort_sprite(a, b)
+### sort_sprite(a, b) function
A comparator function used for sorting sprite objects by layer, y, and texture.
Usually used internally.
@@ -70,7 +70,7 @@ Usually used internally.
**Returns**: <0, 0, or >0 for sort ordering.
-### make_sampler(samplerDesc)
+### make_sampler(samplerDesc) function
Create a sampler object specifying filtering, wrapping, anisotropy, etc.
@@ -82,7 +82,7 @@ Create a sampler object specifying filtering, wrapping, anisotropy, etc.
**Returns**: SDL_GPUSampler handle.
-### load_texture(surface, compressionLevel)
+### load_texture(surface, compressionLevel) function
Upload an SDL_Surface into a GPU texture, optionally compressing with DXT. Freed automatically.
@@ -96,7 +96,7 @@ Upload an SDL_Surface into a GPU texture, optionally compressing with DXT. Freed
**Returns**: SDL_GPUTexture
-### texture(desc)
+### texture(desc) function
Create a GPU texture with the specified format usage.
@@ -108,7 +108,7 @@ Create a GPU texture with the specified format usage.
**Returns**: SDL_GPUTexture
-### make_quad
+### make_quad() function
Return a simple 2-triangle quad geometry covering [0,1]x[0,1].
Useful for post-processing passes.
@@ -118,7 +118,7 @@ Useful for post-processing passes.
**Returns**: A mesh {pos, uv, color, indices}.
-### driver
+### driver() function
Return the name of the underlying GPU driver in use (e.g. 'OpenGL').
@@ -127,7 +127,7 @@ Return the name of the underlying GPU driver in use (e.g. 'OpenGL').
**Returns**: A string with driver name.
-### make_shader(desc)
+### make_shader(desc) function
Compile raw shader code (vertex or fragment) in e.g. SPIR-V, MSL, or DXIL format.
@@ -139,7 +139,7 @@ Compile raw shader code (vertex or fragment) in e.g. SPIR-V, MSL, or DXIL format
**Returns**: SDL_GPUShader object
-### acquire_cmd_buffer
+### acquire_cmd_buffer() function
Obtain a new command buffer for recording GPU commands. Must be submitted or canceled.
@@ -148,7 +148,7 @@ Obtain a new command buffer for recording GPU commands. Must be submitted or can
**Returns**: SDL_GPUCommandBuffer handle
-### upload(cmdBuffer, buffers, transferBuffer)
+### upload(cmdBuffer, buffers, transferBuffer) function
Upload CPU data into a list of GPU buffers, optionally reusing or returning a
transfer buffer. Typically you provide (cmdBuf, arrayOfTypedArrays, [transferBuffer]).
@@ -165,7 +165,7 @@ transfer buffer. Typically you provide (cmdBuf, arrayOfTypedArrays, [transferBuf
**Returns**: The transfer buffer used or newly created.
-### wait_for_fences(fences, waitAll)
+### wait_for_fences(fences, waitAll) function
Wait on an array of GPU fence objects, optionally requiring all or any.
@@ -179,7 +179,7 @@ Wait on an array of GPU fence objects, optionally requiring all or any.
**Returns**: True if fences signaled, false on timeout or error.
-### query_fence(fence)
+### query_fence(fence) function
Check if the given fence has been signaled yet. Non-blocking.
@@ -191,7 +191,7 @@ Check if the given fence has been signaled yet. Non-blocking.
**Returns**: True if signaled, false if still pending
-### shader_format
+### shader_format() function
Return an array of supported GPU shader binary formats (like 'spv', 'dxbc', etc.).
@@ -200,7 +200,7 @@ Return an array of supported GPU shader binary formats (like 'spv', 'dxbc', etc.
**Returns**: Array of strings naming supported formats.
-### slice9(texture, dstRect, edges)
+### slice9(texture, dstRect, edges) function
Generate a 9-slice tiling geometry in one shot. For advanced usage with GPU pipeline.
@@ -216,7 +216,7 @@ Generate a 9-slice tiling geometry in one shot. For advanced usage with GPU pipe
**Returns**: A mesh object
-### tile(texture, srcRect, dstRect, tileInfo)
+### tile(texture, srcRect, dstRect, tileInfo) function
Generate geometry to tile a texture portion inside a dest rect.
Often used for repeating backgrounds.
diff --git a/docs/api/types/SDL_GPURenderPass.md b/docs/api/types/SDL_GPURenderPass.md
index 787c3be6..df258a7c 100644
--- a/docs/api/types/SDL_GPURenderPass.md
+++ b/docs/api/types/SDL_GPURenderPass.md
@@ -3,7 +3,7 @@
A single pass of drawing commands with color/depth attachments. Freed after end() or GC.
-### bind_pipeline(pipeline)
+### bind_pipeline(pipeline) function
Bind a previously created graphics pipeline (shaders, states, vertex layouts, etc.).
@@ -15,7 +15,7 @@ Bind a previously created graphics pipeline (shaders, states, vertex layouts, et
**Returns**: None
-### viewport(rect)
+### viewport(rect) function
Set the viewport for clipping or scaling draws, in pass-local coordinates.
@@ -27,7 +27,7 @@ Set the viewport for clipping or scaling draws, in pass-local coordinates.
**Returns**: None
-### scissor(rect)
+### scissor(rect) function
Set a scissor rectangle for discarding pixels outside it.
@@ -39,7 +39,7 @@ Set a scissor rectangle for discarding pixels outside it.
**Returns**: None
-### draw(primitiveType, baseVertex, firstVertex, vertexCount)
+### draw(primitiveType, baseVertex, firstVertex, vertexCount) function
Issue a non-indexed draw call.
@@ -57,7 +57,7 @@ Issue a non-indexed draw call.
**Returns**: None
-### draw_indexed(primitiveType, baseVertex, firstIndex, indexCount, instanceCount)
+### draw_indexed(primitiveType, baseVertex, firstIndex, indexCount, instanceCount) function
Issue an indexed draw call from the bound index buffer.
@@ -77,7 +77,7 @@ Issue an indexed draw call from the bound index buffer.
**Returns**: None
-### end
+### end() function
End this render pass, finalizing the draw operations.
@@ -86,7 +86,7 @@ End this render pass, finalizing the draw operations.
**Returns**: None
-### bind_index_buffer(buffer, elementSize16bit)
+### bind_index_buffer(buffer, elementSize16bit) function
Bind an index buffer inside this pass, possibly overriding the global one.
@@ -100,7 +100,7 @@ Bind an index buffer inside this pass, possibly overriding the global one.
**Returns**: None
-### bind_buffers(firstSlot, arrayOfBuffers)
+### bind_buffers(firstSlot, arrayOfBuffers) function
Bind multiple vertex buffers at consecutive slots.
@@ -114,7 +114,7 @@ Bind multiple vertex buffers at consecutive slots.
**Returns**: None
-### bind_samplers(vertexOrFragment, firstSlot, samplerBindings)
+### bind_samplers(vertexOrFragment, firstSlot, samplerBindings) function
Bind multiple texture/sampler pairs to either vertex or fragment slots.
@@ -130,7 +130,7 @@ Bind multiple texture/sampler pairs to either vertex or fragment slots.
**Returns**: None
-### bind_storage_buffers(firstSlot, buffers)
+### bind_storage_buffers(firstSlot, buffers) function
Bind one or more storage buffers for read/write in the pipeline.
@@ -144,7 +144,7 @@ Bind one or more storage buffers for read/write in the pipeline.
**Returns**: None
-### bind_storage_textures(firstSlot, textures)
+### bind_storage_textures(firstSlot, textures) function
Bind one or more storage textures for read/write in the pipeline.
diff --git a/docs/api/types/SDL_GPUTexture.md b/docs/api/types/SDL_GPUTexture.md
index 1fb0918a..fa1b2161 100644
--- a/docs/api/types/SDL_GPUTexture.md
+++ b/docs/api/types/SDL_GPUTexture.md
@@ -1,5 +1,3 @@
# SDL_GPUTexture
-## SDL_GPUTexture
-
-### name
+### name() function
diff --git a/docs/api/types/SDL_Renderer.md b/docs/api/types/SDL_Renderer.md
index 8b8aa38c..69041077 100644
--- a/docs/api/types/SDL_Renderer.md
+++ b/docs/api/types/SDL_Renderer.md
@@ -3,7 +3,7 @@
A 2D rendering context using the SDL renderer API. Freed automatically.
-### draw_color(color)
+### draw_color(color) function
Set the render draw color for subsequent primitive calls (rect, line, etc.).
@@ -15,7 +15,7 @@ Set the render draw color for subsequent primitive calls (rect, line, etc.).
**Returns**: None
-### present
+### present() function
Display whatever has been rendered (swap buffers). Must be called each frame.
@@ -24,7 +24,7 @@ Display whatever has been rendered (swap buffers). Must be called each frame.
**Returns**: None
-### clear
+### clear() function
Clear the current render target with the renderer's draw color.
@@ -33,7 +33,7 @@ Clear the current render target with the renderer's draw color.
**Returns**: None
-### rect(rectOrArray, color)
+### rect(rectOrArray, color) function
Draw one or more outlines of rectangles.
@@ -47,7 +47,7 @@ Draw one or more outlines of rectangles.
**Returns**: None
-### fillrect(rectOrArray, color)
+### fillrect(rectOrArray, color) function
Fill one or more rectangles with the renderer's current color or an optional override.
@@ -61,7 +61,7 @@ Fill one or more rectangles with the renderer's current color or an optional ove
**Returns**: None
-### line(points, color)
+### line(points, color) function
Draw a sequence of lines connecting points in an array.
@@ -75,7 +75,7 @@ Draw a sequence of lines connecting points in an array.
**Returns**: None
-### point(points, color)
+### point(points, color) function
Draw a list of points (pixels).
@@ -89,7 +89,7 @@ Draw a list of points (pixels).
**Returns**: None
-### load_texture(surface)
+### load_texture(surface) function
Create an SDL_Texture from a given SDL_Surface for use with this renderer.
@@ -101,7 +101,7 @@ Create an SDL_Texture from a given SDL_Surface for use with this renderer.
**Returns**: An SDL_Texture object.
-### texture(tex, dstRect, srcRect, color)
+### texture(tex, dstRect, srcRect, color) function
Draw a texture onto the render target.
@@ -119,7 +119,7 @@ Draw a texture onto the render target.
**Returns**: None
-### slice9(tex, dstRect, edges, srcRect)
+### slice9(tex, dstRect, edges, srcRect) function
Draw a texture with 9-slice scaling. The argument includes edges {l, r, t, b}
for the corners/borders that remain unscaled. The rest is tiled or stretched.
@@ -138,7 +138,7 @@ for the corners/borders that remain unscaled. The rest is tiled or stretched.
**Returns**: None
-### tile(tex, dstRect, srcRect, scale)
+### tile(tex, dstRect, srcRect, scale) function
Tile a texture repeatedly within the specified region. Optionally use a srcRect.
@@ -156,7 +156,7 @@ Tile a texture repeatedly within the specified region. Optionally use a srcRect.
**Returns**: None
-### get_image(rect)
+### get_image(rect) function
Read back the rendered pixels into a new SDL_Surface. If rect is undefined, capture entire output.
@@ -168,7 +168,7 @@ Read back the rendered pixels into a new SDL_Surface. If rect is undefined, capt
**Returns**: An SDL_Surface with the requested region's pixels.
-### fasttext(text, pos, color)
+### fasttext(text, pos, color) function
Draw debug text using an internal fast path. Typically used for quick debugging overlays.
@@ -184,7 +184,7 @@ Draw debug text using an internal fast path. Typically used for quick debugging
**Returns**: None
-### geometry(texture, meshObject)
+### geometry(texture, meshObject) function
Render custom geometry from a mesh object {pos, uv, color, indices, count} with an optional texture.
@@ -198,7 +198,7 @@ Render custom geometry from a mesh object {pos, uv, color, indices, count} with
**Returns**: None
-### scale(scaleVec2)
+### scale(scaleVec2) function
Set a scaling factor for all subsequent rendering on this renderer.
@@ -210,7 +210,7 @@ Set a scaling factor for all subsequent rendering on this renderer.
**Returns**: None
-### logical_size(size)
+### logical_size(size) function
Set a "logical" size that the renderer will scale to.
For example, (320, 240) can auto-scale up to the window resolution.
@@ -223,7 +223,7 @@ For example, (320, 240) can auto-scale up to the window resolution.
**Returns**: None
-### viewport(rect)
+### viewport(rect) function
Set the clipping viewport for rendering. Pass undefined to use the full render target.
@@ -235,7 +235,7 @@ Set the clipping viewport for rendering. Pass undefined to use the full render t
**Returns**: None
-### clip(rect)
+### clip(rect) function
Set or clear the clipping rectangle for drawing. Pass undefined to clear.
@@ -247,7 +247,7 @@ Set or clear the clipping rectangle for drawing. Pass undefined to clear.
**Returns**: None
-### vsync(flag)
+### vsync(flag) function
Enable or disable vertical sync. This may have no effect depending on the driver.
@@ -259,7 +259,7 @@ Enable or disable vertical sync. This may have no effect depending on the driver
**Returns**: None
-### coords(pos)
+### coords(pos) function
Convert window coordinates to this renderer's coordinate space.
@@ -271,7 +271,7 @@ Convert window coordinates to this renderer's coordinate space.
**Returns**: [x, y] in renderer coordinate space.
-### camera(cameraTransform, centered)
+### camera(cameraTransform, centered) function
Set up a basic 2D camera matrix from a given transform. If 'centered' is true,
the origin is the center of the viewport, else top-left.
@@ -286,7 +286,7 @@ the origin is the center of the viewport, else top-left.
**Returns**: None
-### get_viewport
+### get_viewport() function
Return the current viewport rect.
@@ -295,7 +295,7 @@ Return the current viewport rect.
**Returns**: {x, y, w, h}
-### screen2world(pos)
+### screen2world(pos) function
Convert a screen coordinate to world space based on the current camera transform.
@@ -307,7 +307,7 @@ Convert a screen coordinate to world space based on the current camera transform
**Returns**: [wx, wy] in world space
-### target(texture)
+### target(texture) function
Set or clear the current render target texture. Pass undefined to reset to the default/window.
@@ -319,7 +319,7 @@ Set or clear the current render target texture. Pass undefined to reset to the d
**Returns**: None
-### make_sprite_mesh(sprites)
+### make_sprite_mesh(sprites) function
Generate a mesh from an array of sprite objects, combining their positions, UVs,
and colors into a single geometry block.
diff --git a/docs/api/types/SDL_Surface.md b/docs/api/types/SDL_Surface.md
index 69ddb312..bb0662d8 100644
--- a/docs/api/types/SDL_Surface.md
+++ b/docs/api/types/SDL_Surface.md
@@ -4,7 +4,7 @@ A software (CPU) image in memory. Freed when references vanish. Typically conver
to SDL_Texture for drawing, or used as raw pixel data.
-### blit(dstRect, srcSurface, srcRect)
+### blit(dstRect, srcSurface, srcRect) function
Blit (copy) another surface onto this surface, scaling if needed.
@@ -20,7 +20,7 @@ Blit (copy) another surface onto this surface, scaling if needed.
**Returns**: None
-### scale(newSize)
+### scale(newSize) function
Return a new SDL_Surface scaled to [width, height] using linear filtering.
@@ -32,7 +32,7 @@ Return a new SDL_Surface scaled to [width, height] using linear filtering.
**Returns**: A new SDL_Surface with the scaled result.
-### fill(color)
+### fill(color) function
Fill the entire surface with a single color.
@@ -44,7 +44,7 @@ Fill the entire surface with a single color.
**Returns**: None
-### rect(rect, color)
+### rect(rect, color) function
Fill a sub-rectangle of the surface with a color.
@@ -58,7 +58,7 @@ Fill a sub-rectangle of the surface with a color.
**Returns**: None
-### dup
+### dup() function
Make a copy of this surface in RGBA format.
diff --git a/docs/api/types/SDL_Texture.md b/docs/api/types/SDL_Texture.md
index 6cdf949a..9b1c9289 100644
--- a/docs/api/types/SDL_Texture.md
+++ b/docs/api/types/SDL_Texture.md
@@ -3,7 +3,7 @@
A 2D GPU-accelerated texture for rendering with SDL_Renderer. Freed automatically.
-### mode(mode)
+### mode(mode) function
Set texture scale mode or filtering mode (nearest/linear).
diff --git a/docs/api/types/SDL_Thread.md b/docs/api/types/SDL_Thread.md
index fde026fd..f1cc239e 100644
--- a/docs/api/types/SDL_Thread.md
+++ b/docs/api/types/SDL_Thread.md
@@ -5,7 +5,7 @@ A handle to an SDL-created thread. Freed on GC after join.
Note: The engine generally doesn't expose custom usage for threads.
-### wait
+### wait() function
Block until this thread terminates.
diff --git a/docs/api/types/SDL_Window.md b/docs/api/types/SDL_Window.md
index 2abc513d..9a6d57d9 100644
--- a/docs/api/types/SDL_Window.md
+++ b/docs/api/types/SDL_Window.md
@@ -3,7 +3,7 @@
An application window, created via prosperon.engine_start or SDL calls. Freed on GC.
-### fullscreen
+### fullscreen() function
Toggle fullscreen mode for this window (SDL_WINDOW_FULLSCREEN).
@@ -12,7 +12,7 @@ Toggle fullscreen mode for this window (SDL_WINDOW_FULLSCREEN).
**Returns**: None
-### make_renderer(name)
+### make_renderer(name) function
Create an SDL_Renderer for 2D rendering tied to this window.
@@ -24,7 +24,7 @@ Create an SDL_Renderer for 2D rendering tied to this window.
**Returns**: An SDL_Renderer object.
-### make_gpu(debug, driverName)
+### make_gpu(debug, driverName) function
Create an SDL_GPUDevice for low-level GPU rendering on this window.
@@ -38,7 +38,7 @@ Create an SDL_GPUDevice for low-level GPU rendering on this window.
**Returns**: An SDL_GPUDevice.
-### keyboard_shown
+### keyboard_shown() function
Return whether the on-screen keyboard is visible (mobile/tablet).
@@ -47,7 +47,7 @@ Return whether the on-screen keyboard is visible (mobile/tablet).
**Returns**: True if shown, false otherwise.
-### theme
+### theme() function
Currently returns undefined. Placeholder for retrieving OS window theme info.
@@ -56,7 +56,7 @@ Currently returns undefined. Placeholder for retrieving OS window theme info.
**Returns**: undefined
-### safe_area
+### safe_area() function
Return a rect describing any OS-specific "safe" region for UI, e.g. on iPhone with a notch.
@@ -65,7 +65,7 @@ Return a rect describing any OS-specific "safe" region for UI, e.g. on iPhone wi
**Returns**: A rect object {x, y, w, h}.
-### bordered(flag)
+### bordered(flag) function
Enable or disable window borders.
@@ -77,7 +77,7 @@ Enable or disable window borders.
**Returns**: None
-### set_icon(surface)
+### set_icon(surface) function
Set the window's icon from an SDL_Surface.
@@ -89,7 +89,7 @@ Set the window's icon from an SDL_Surface.
**Returns**: None
-### title
+### title accessor
Get or set the window's title text in the title bar.
@@ -101,7 +101,7 @@ Get or set the window's title text in the title bar.
**Returns**: The current title if getting, or None if setting.
-### size
+### size accessor
Get or set the window's size as [width, height].
@@ -113,7 +113,7 @@ Get or set the window's size as [width, height].
**Returns**: The current [width, height] or None if setting.
-### mouse_grab(flag)
+### mouse_grab(flag) function
Grab or ungrab the mouse for this window (so the pointer won't leave).
diff --git a/docs/api/types/datastream.md b/docs/api/types/datastream.md
index ed96aeb3..89204b0a 100644
--- a/docs/api/types/datastream.md
+++ b/docs/api/types/datastream.md
@@ -3,7 +3,7 @@
A streaming media handle, typically for MPEG video. Freed automatically.
-### time
+### time() function
Return the current playback time in seconds.
@@ -12,7 +12,7 @@ Return the current playback time in seconds.
**Returns**: Current time as a float in seconds.
-### seek(seconds)
+### seek(seconds) function
Seek to the specified time (in seconds).
@@ -24,7 +24,7 @@ Seek to the specified time (in seconds).
**Returns**: None
-### advance(seconds)
+### advance(seconds) function
Advance by a certain number of seconds, decoding video as needed.
@@ -36,7 +36,7 @@ Advance by a certain number of seconds, decoding video as needed.
**Returns**: None
-### duration
+### duration() function
Return the total duration of the video stream, in seconds, if known.
@@ -45,7 +45,7 @@ Return the total duration of the video stream, in seconds, if known.
**Returns**: Float seconds duration, or 0 if unknown.
-### framerate
+### framerate() function
Return the framerate (FPS) of the stream if known.
@@ -54,7 +54,7 @@ Return the framerate (FPS) of the stream if known.
**Returns**: Float frames per second, or 0 if unknown.
-### callback
+### callback accessor
A function to call whenever a new frame is decoded. If not set, no callback is invoked.
diff --git a/docs/api/types/font.md b/docs/api/types/font.md
index 1dcd8d0f..8a7bf576 100644
--- a/docs/api/types/font.md
+++ b/docs/api/types/font.md
@@ -4,7 +4,7 @@ A bitmap or TTF-based font object storing glyph data.
Used for measuring/drawing text. Freed when GC sees no references.
-### linegap
+### linegap accessor
Get or set the font's additional line spacing above the built-in metrics.
@@ -16,7 +16,7 @@ Get or set the font's additional line spacing above the built-in metrics.
**Returns**: The current line gap (when getting), or None (when setting).
-### height
+### height accessor
(read only)
@@ -27,7 +27,7 @@ The baseline-to-baseline height in pixels.
**Returns**: The font's total height in px.
-### ascent
+### ascent accessor
(read only)
@@ -38,7 +38,7 @@ How far above the baseline the font extends.
**Returns**: A scalar float for ascent.
-### descent
+### descent accessor
(read only)
@@ -49,7 +49,7 @@ How far below baseline the font extends.
**Returns**: A scalar float for descent.
-### text_size(text, letterSpacing, wrap)
+### text_size(text, letterSpacing, wrap) function
Measure a piece of text's width/height when rendered with this font.
diff --git a/docs/api/types/rtree.md b/docs/api/types/rtree.md
index 63bb249b..d936737c 100644
--- a/docs/api/types/rtree.md
+++ b/docs/api/types/rtree.md
@@ -3,7 +3,7 @@
An R-tree for spatial lookups. Insert bounding boxes, query by bounding box, etc.
-### add(obj)
+### add(obj) function
Insert an object that has a 'rect' property {x, y, w, h} into the tree.
@@ -15,7 +15,7 @@ Insert an object that has a 'rect' property {x, y, w, h} into the tree.
**Returns**: None
-### delete(obj)
+### delete(obj) function
Remove an object from the tree. Must match the same rect as used when adding.
@@ -27,7 +27,7 @@ Remove an object from the tree. Must match the same rect as used when adding.
**Returns**: None
-### query(rect)
+### query(rect) function
Return an array of objects whose bounding boxes intersect the given rect.
@@ -39,7 +39,18 @@ Return an array of objects whose bounding boxes intersect the given rect.
**Returns**: Array of objects that overlap that region.
-### forEach(callback)
+### size accessor
+
+(read only)
+
+Indicates how many items are stored in the rtree.
+
+
+
+**Returns**: Integer count of items in the tree.
+
+
+### forEach(callback) function
Call a function for every item in the rtree.
@@ -51,7 +62,7 @@ Call a function for every item in the rtree.
**Returns**: None
-### has(obj)
+### has(obj) function
Return true if the specified object is in the tree, false otherwise.
@@ -63,7 +74,7 @@ Return true if the specified object is in the tree, false otherwise.
**Returns**: True if found, else false.
-### values
+### values() function
Return an array of all items currently in the rtree.
diff --git a/docs/api/types/sprite.md b/docs/api/types/sprite.md
index ad042ef9..27354d1a 100644
--- a/docs/api/types/sprite.md
+++ b/docs/api/types/sprite.md
@@ -5,7 +5,7 @@ UV coordinates, color, and layer, as well as an associated 'image' object. The s
can be drawn via GPU or SDL_Renderer. Freed when no JS references remain.
-### set_affine(transform)
+### set_affine(transform) function
Update this sprite's position and size from a transform's pos and scale.
@@ -17,7 +17,7 @@ Update this sprite's position and size from a transform's pos and scale.
**Returns**: None
-### set_rect(rect)
+### set_rect(rect) function
Set the sprite's rect (x, y, w, h) directly.
@@ -29,7 +29,7 @@ Set the sprite's rect (x, y, w, h) directly.
**Returns**: None
-### set_image(image)
+### set_image(image) function
Assign or replace the sprite's underlying image. Automatically updates UV if
the image has a 'rect' property.
@@ -42,7 +42,7 @@ the image has a 'rect' property.
**Returns**: None
-### layer
+### layer accessor
Get or set the sprite's z-layer integer. Sprites with higher layers typically
draw on top of lower layers.
@@ -55,7 +55,7 @@ draw on top of lower layers.
**Returns**: The current layer (when getting), or None (when setting).
-### color
+### color accessor
Get or set the sprite's color tint as [r, g, b, a].
diff --git a/docs/api/types/timer.md b/docs/api/types/timer.md
index 73209cac..6a39a91e 100644
--- a/docs/api/types/timer.md
+++ b/docs/api/types/timer.md
@@ -4,7 +4,7 @@ A scheduled callback or countdown. Freed automatically once no longer referenced
or once it completes.
-### remain
+### remain accessor
Get or set how many seconds remain before the timer triggers.
@@ -16,7 +16,7 @@ Get or set how many seconds remain before the timer triggers.
**Returns**: The current time left (when getting), or None (when setting).
-### fn
+### fn accessor
Get or set the function called when the timer expires.
diff --git a/docs/api/types/transform.md b/docs/api/types/transform.md
index 17e7c663..1f94fdf0 100644
--- a/docs/api/types/transform.md
+++ b/docs/api/types/transform.md
@@ -4,7 +4,7 @@ A hierarchical transform storing 3D or 2D position, rotation (as a quaternion),
and scale. Can have a parent transform. Freed automatically on GC.
-### pos
+### pos accessor
Get or set the transform's position as a 3D vector [x, y, z].
@@ -16,7 +16,7 @@ Get or set the transform's position as a 3D vector [x, y, z].
**Returns**: The current position vector (when getting), or None (when setting).
-### scale
+### scale accessor
Get or set the transform's scale as a 3D vector [x, y, z].
For 2D usage, z is often 1.
@@ -29,7 +29,7 @@ For 2D usage, z is often 1.
**Returns**: The current scale (when getting), or None (when setting).
-### rotation
+### rotation accessor
Get or set the transform's rotation as a quaternion [x, y, z, w].
Angles in degrees or radians must first be converted prior to making a quaternion.
@@ -42,7 +42,7 @@ Angles in degrees or radians must first be converted prior to making a quaternio
**Returns**: The current quaternion (when getting), or None (when setting).
-### parent
+### parent accessor
Get or set the transform's parent. If set, this transform becomes a child of
the parent (re-parenting). Must be another transform object or undefined.
@@ -55,7 +55,7 @@ the parent (re-parenting). Must be another transform object or undefined.
**Returns**: The current parent transform (when getting), or None (when setting).
-### change_hook
+### change_hook accessor
A user-supplied function that's called whenever the transform's local matrix changes.
If undefined, no hook is called.
@@ -68,7 +68,7 @@ If undefined, no hook is called.
**Returns**: The current function or undefined.
-### trs(pos, quat, scale)
+### trs(pos, quat, scale) function
Set the transform's position, rotation, and scale in one call.
@@ -84,7 +84,7 @@ Set the transform's position, rotation, and scale in one call.
**Returns**: None
-### phys2d(velocity, angularVel, dt)
+### phys2d(velocity, angularVel, dt) function
Apply simple 2D velocity and angular velocity to this transform.
@@ -100,7 +100,7 @@ Apply simple 2D velocity and angular velocity to this transform.
**Returns**: None
-### move(delta)
+### move(delta) function
Translate this transform by the specified vector.
@@ -112,7 +112,7 @@ Translate this transform by the specified vector.
**Returns**: None
-### rotate(axis, angle)
+### rotate(axis, angle) function
Rotate this transform by an axis+angle.
@@ -126,7 +126,7 @@ Rotate this transform by an axis+angle.
**Returns**: None
-### angle(axis)
+### angle(axis) function
Return the transform's rotation about a specified axis (x, y, or z).
For example, angle([1,0,0]) returns the roll about the X-axis.
@@ -139,7 +139,7 @@ For example, angle([1,0,0]) returns the roll about the X-axis.
**Returns**: The numeric angle in 'turns' or radians, depending on usage.
-### lookat(target)
+### lookat(target) function
Rotate this transform so it looks toward the given world position.
@@ -151,7 +151,7 @@ Rotate this transform so it looks toward the given world position.
**Returns**: None
-### direction(localDir)
+### direction(localDir) function
Rotate a vector by this transform's rotation, effectively "transforming"
a direction from local space to world space.
@@ -164,7 +164,7 @@ a direction from local space to world space.
**Returns**: [dx', dy', dz'] direction in world space.
-### unit
+### unit() function
Reset position, rotation, and scale to [0,0,0], identity rotation, and [1,1,1].
@@ -173,7 +173,7 @@ Reset position, rotation, and scale to [0,0,0], identity rotation, and [1,1,1].
**Returns**: None
-### rect(rect)
+### rect(rect) function
Set this transform's pos and scale from a 2D rect object {x, y, w, h}.
@@ -185,7 +185,7 @@ Set this transform's pos and scale from a 2D rect object {x, y, w, h}.
**Returns**: None
-### array
+### array() function
Return this transform's matrix as a 16-element float array in column-major order.
@@ -194,7 +194,7 @@ Return this transform's matrix as a 16-element float array in column-major order
**Returns**: An array of 16 floats.
-### torect
+### torect() function
Convert transform's 2D position/scale to a rect {x, y, w, h}.
Rotation is currently ignored.
@@ -204,7 +204,7 @@ Rotation is currently ignored.
**Returns**: A rect object {x, y, w, h}.
-### children
+### children() function
Return an array of child transforms belonging to this transform.
diff --git a/docs/api/use.md b/docs/api/use.md
index 3fb56a66..cf3ad058 100644
--- a/docs/api/use.md
+++ b/docs/api/use.md
@@ -1,3 +1,7 @@
# use
-## use
+### length number
+
+### name string
+
+### prototype object
diff --git a/docs/crab.png b/docs/crab.png
new file mode 100644
index 00000000..3d7701e2
Binary files /dev/null and b/docs/crab.png differ
diff --git a/docs/dull/ArrayBuffer.md b/docs/dull/ArrayBuffer.md
new file mode 100644
index 00000000..b2f69e5e
--- /dev/null
+++ b/docs/dull/ArrayBuffer.md
@@ -0,0 +1,7 @@
+# ArrayBuffer
+
+### byteLength accessor
+
+(read only)
+
+### slice() function
diff --git a/docs/dull/Function.md b/docs/dull/Function.md
new file mode 100644
index 00000000..6632088f
--- /dev/null
+++ b/docs/dull/Function.md
@@ -0,0 +1,27 @@
+# Function
+
+### length number
+
+### name string
+
+### caller accessor
+
+### arguments accessor
+
+### call() function
+
+### apply() function
+
+### bind() function
+
+### toString() function
+
+### fileName accessor
+
+(read only)
+
+### lineNumber accessor
+
+(read only)
+
+### hashify() function
diff --git a/docs/dull/Map.md b/docs/dull/Map.md
new file mode 100644
index 00000000..0c95588f
--- /dev/null
+++ b/docs/dull/Map.md
@@ -0,0 +1,120 @@
+# Map
+
+A Map object holds key-value pairs, where any value (both objects and primitive values) may be used as either a key or a value. Insertion order is remembered, which allows iteration in that order.
+
+### set(key, value) function
+
+Add or update an entry in the Map with the specified key and value.
+
+
+
+**key**: The key of the element to add or update.
+
+**value**: The value associated with the key.
+
+
+**Returns**: The Map object (for chaining).
+
+
+### get(key) function
+
+Return the value associated with the specified key, or undefined if no
+such key exists.
+
+
+
+**key**: The key of the element to retrieve.
+
+
+**Returns**: The value associated with the key, or undefined if not found.
+
+
+### has(key) function
+
+Return a boolean indicating whether the Map contains an element with the
+specified key.
+
+
+
+**key**: The key to test for presence in the Map.
+
+
+**Returns**: True if the key is found, otherwise false.
+
+
+### delete(key) function
+
+Remove the specified key and its associated value from the Map, if it exists.
+
+
+
+**key**: The key to remove.
+
+
+**Returns**: True if an element was removed, otherwise false.
+
+
+### clear() function
+
+Remove all entries from the Map, leaving it empty.
+
+
+
+**Returns**: None
+
+
+### size accessor
+
+(read only)
+
+A read-only property returning the number of key-value pairs in the Map.
+
+
+
+**Returns**: The number of entries in the Map.
+
+
+### forEach(callbackFn, thisArg) function
+
+Execute a provided callback function once per each key-value pair in the Map,
+in insertion order.
+
+
+
+**callbackFn**: A function(value, key, map) to execute on each entry.
+
+**thisArg**: Optional. A value to use as 'this' when executing callbackFn.
+
+
+**Returns**: None
+
+
+### values() function
+
+Return a new Iterator object that contains the values for each element
+in the Map, in insertion order.
+
+
+
+**Returns**: An iterator of the Map's values.
+
+
+### keys() function
+
+Return a new Iterator object that contains the keys for each element in
+the Map, in insertion order.
+
+
+
+**Returns**: An iterator of the Map's keys.
+
+
+### entries() function
+
+Return a new Iterator object that contains the [key, value] pairs for
+each element in the Map, in insertion order.
+
+
+
+**Returns**: An iterator of [key, value] pairs.
+
diff --git a/docs/dull/Object.md b/docs/dull/Object.md
new file mode 100644
index 00000000..b85511c6
--- /dev/null
+++ b/docs/dull/Object.md
@@ -0,0 +1,87 @@
+# Object
+
+### toString() function
+
+Return a string representing this object. By default, it returns a string of the form '[object ]', where is the object's class.
+
+
+
+**Returns**: A string that describes the object.
+
+
+### toLocaleString() function
+
+Return a localized string representation of this object, calling toString() by default or a locale-specific override if defined.
+
+
+
+**Returns**: A locale-sensitive string representation of the object.
+
+
+### valueOf() function
+
+Return the primitive value of this object if one exists. Typically, an object returns itself, while a wrapped type (e.g. Number, String) may return the underlying primitive value.
+
+
+
+**Returns**: The primitive value of the object, or the object itself.
+
+
+### hasOwnProperty(prop) function
+
+Return a boolean indicating whether the object has a property with the specified name (key) as its own direct property, as opposed to inheriting it. It does not check the prototype chain.
+
+
+
+**prop**: The name or Symbol of the property to test.
+
+
+**Returns**: True if the property is found directly on the object, otherwise false.
+
+
+### isPrototypeOf(obj) function
+
+Return true if the object appears anywhere in the prototype chain of the specified object, otherwise false.
+
+
+
+**obj**: The object whose prototype chain will be checked.
+
+
+**Returns**: True if this object is in 'obj's prototype chain, otherwise false.
+
+
+### propertyIsEnumerable(prop) function
+
+Return a boolean indicating whether the specified property is enumerable, i.e., whether it shows up in a for...in loop or Object.keys() on the object.
+
+
+
+**prop**: The name or Symbol of the property to test.
+
+
+**Returns**: True if the property is found and enumerable, otherwise false.
+
+
+### __proto__ accessor
+
+### __defineGetter__() function
+
+### __defineSetter__() function
+
+### __lookupGetter__() function
+
+### __lookupSetter__() function
+
+### mixin(obj) function
+
+Mix properties from 'obj' into the current object. If 'obj' is a string,
+it first calls 'use(obj)' to retrieve the object.
+
+
+
+**obj**: The object (or string reference to an object) to mix in.
+
+
+**Returns**: None
+
diff --git a/docs/dull/Set.md b/docs/dull/Set.md
new file mode 100644
index 00000000..ae5e3168
--- /dev/null
+++ b/docs/dull/Set.md
@@ -0,0 +1,104 @@
+# Set
+
+A Set object lets you store unique values of any type, whether primitive values or object references. It remembers insertion order for iteration.
+
+### add(value) function
+
+Add a new element with the given value to the Set, if it’s not already present.
+
+
+
+**value**: The value to add.
+
+
+**Returns**: The Set object (for chaining).
+
+
+### has(value) function
+
+Return a boolean indicating whether the Set contains the specified value.
+
+
+
+**value**: The value to check for presence in the Set.
+
+
+**Returns**: True if the value is found, otherwise false.
+
+
+### delete(value) function
+
+Remove the specified value from the Set if it exists.
+
+
+
+**value**: The value to remove.
+
+
+**Returns**: True if the value was present and removed, otherwise false.
+
+
+### clear() function
+
+Remove all elements from the Set, leaving it empty.
+
+
+
+**Returns**: None
+
+
+### size accessor
+
+(read only)
+
+A read-only property returning the number of elements in the Set.
+
+
+
+**Returns**: The number of unique values in the Set.
+
+
+### forEach(callbackFn, thisArg) function
+
+Execute a provided callback function once for each value in the Set,
+in insertion order.
+
+
+
+**callbackFn**: A function(value, valueAgain, set) to execute on each element.
+
+**thisArg**: Optional. A value to use as 'this' when executing callbackFn.
+
+
+**Returns**: None
+
+
+### values() function
+
+Alias for values() in a Set. Return a new Iterator object containing all
+the values (as keys) in the Set, in insertion order.
+
+
+
+**Returns**: An iterator of the Set's values.
+
+
+### keys() function
+
+Alias for values() in a Set. Return a new Iterator object containing all
+the values (as keys) in the Set, in insertion order.
+
+
+
+**Returns**: An iterator of the Set's values.
+
+
+### entries() function
+
+Return a new Iterator object containing [value, value] pairs for each value
+in the Set, in insertion order. This maintains API consistency with Map objects.
+
+
+
+**Returns**: An iterator of [value, value] pairs.
+
diff --git a/docs/dull/String.md b/docs/dull/String.md
new file mode 100644
index 00000000..f444dc6a
--- /dev/null
+++ b/docs/dull/String.md
@@ -0,0 +1,793 @@
+# String
+
+### length number
+
+### at(index) function
+
+Return the character (or surrogate pair) at the specified index, with support
+for negative indices (counting from the end). If the index is out of range,
+returns undefined.
+
+
+
+**index**: The position of the character to return (can be negative).
+
+
+**Returns**: A string of length 1 representing the character, or undefined if out of range.
+
+
+### charCodeAt(index) function
+
+Return a number indicating the UTF-16 code unit value at the given index.
+If the index is out of range, returns NaN.
+
+
+
+**index**: An integer between 0 and string length - 1.
+
+
+**Returns**: An integer in the range [0, 65535] or NaN if out of range.
+
+
+### charAt(index) function
+
+Return a string consisting of the single UTF-16 code unit at the given index.
+If the index is out of range, returns an empty string.
+
+
+
+**index**: The zero-based index of the desired character.
+
+
+**Returns**: The single-character string at the specified index, or '' if out of range.
+
+
+### concat(stringN) function
+
+Concatenate the provided string arguments to the current string and return a
+new string.
+
+
+
+**stringN**: One or more strings to concatenate.
+
+
+**Returns**: A new string formed by joining the caller with the provided arguments.
+
+
+### codePointAt(position) function
+
+Return a non-negative integer that is the Unicode code point value at the
+given position. Supports code points above 0xFFFF. Returns undefined if index
+is out of range.
+
+
+
+**position**: The index in the string (can be surrogate pairs).
+
+
+**Returns**: The code point value, or undefined if out of range.
+
+
+### isWellFormed() function
+
+Return a boolean indicating whether the string is valid Unicode.
+If it contains unpaired surrogate code points, return false.
+
+
+
+**Returns**: True if the string is well-formed UTF-16, otherwise false.
+
+
+### toWellFormed() function
+
+Return a new string in which any unpaired surrogate code points have been
+replaced by the Unicode replacement character U+FFFD.
+
+
+
+**Returns**: A well-formed UTF-16 version of the string.
+
+
+### indexOf(searchValue, fromIndex) function
+
+Return the zero-based index of the first occurrence of 'searchValue' in the
+string, starting at 'fromIndex'. If not found, return -1.
+
+
+
+**searchValue**: The substring to search for.
+
+**fromIndex**: The index at which to begin searching (default 0).
+
+
+**Returns**: The index of the first match, or -1 if not found.
+
+
+### lastIndexOf(searchValue, fromIndex) function
+
+Return the zero-based index of the last occurrence of 'searchValue' in the
+string, searching backwards from 'fromIndex'. If not found, return -1.
+
+
+
+**searchValue**: The substring to search for.
+
+**fromIndex**: The index at which to begin the backward search (defaults to string length - 1).
+
+
+**Returns**: The index of the last match, or -1 if not found.
+
+
+### includes(searchString, position) function
+
+Return a boolean indicating whether 'searchString' appears within this string.
+An optional position can be provided to start searching.
+
+
+
+**searchString**: The substring to search for.
+
+**position**: The position from which to begin searching (default 0).
+
+
+**Returns**: True if the substring is found, otherwise false.
+
+
+### endsWith(searchString, length) function
+
+Return a boolean indicating whether the string ends with 'searchString'.
+An optional 'length' can be provided to treat the string as if it were only
+that long.
+
+
+
+**searchString**: The substring to search for at the end.
+
+**length**: An optional length to truncate the string before testing.
+
+
+**Returns**: True if the string ends with 'searchString', otherwise false.
+
+
+### startsWith(searchString, position) function
+
+Return a boolean indicating whether the string begins with 'searchString'.
+An optional position can be provided to start checking at that index.
+
+
+
+**searchString**: The substring to search for at the start.
+
+**position**: The index in the string to start searching (default 0).
+
+
+**Returns**: True if the string starts with 'searchString', otherwise false.
+
+
+### match(regexp) function
+
+Use a regular expression to match the string. If 'regexp' is not a RegExp, it
+is converted to one. Return an array of matches or null if none found.
+
+
+
+**regexp**: The pattern to match (RegExp or string).
+
+
+**Returns**: An array of matches or null.
+
+
+### matchAll(regexp) function
+
+Return an iterator of all RegExp match objects found within the string.
+If 'regexp' is not a global or sticky RegExp, a TypeError is thrown.
+
+
+
+**regexp**: The global/sticky RegExp to match over this string.
+
+
+**Returns**: An iterator of match arrays.
+
+
+### search(regexp) function
+
+Use a regular expression to search for a match within the string. Return the
+index of the first match, or -1 if no match is found.
+
+
+
+**regexp**: A RegExp or string. If a string, it is converted to RegExp.
+
+
+**Returns**: The index of the first match, or -1 if not found.
+
+
+### split(separator, limit) function
+
+Split the string into an array of substrings using 'separator' (RegExp or
+string). An optional 'limit' can be provided to limit the number of splits.
+
+
+
+**separator**: A string or RegExp used to divide the string.
+
+**limit**: Maximum number of splits to include in the result array.
+
+
+**Returns**: An array of the split substrings.
+
+
+### substring(start, end) function
+
+Return the substring between 'start' and 'end'. Indices outside the range
+are clamped. If 'end' < 'start', they swap.
+
+
+
+**start**: The starting index (0-based).
+
+**end**: The ending index (exclusive).
+
+
+**Returns**: The extracted substring.
+
+
+### substr(start, length) function
+
+Return the substring from 'start' for 'length' characters. Negative 'start'
+counts from the end. This method is deprecated but still supported in many
+engines.
+
+
+
+**start**: The starting index.
+
+**length**: The number of characters to extract.
+
+
+**Returns**: The extracted substring.
+
+
+### slice(start, end) function
+
+Extract a section of the string from 'start' up to (but not including) 'end',
+and return it as a new string. Supports negative indices.
+
+
+
+**start**: The starting index. Negative values count from the end.
+
+**end**: The ending index (exclusive). Negative values count from the end.
+
+
+**Returns**: The extracted slice.
+
+
+### repeat(count) function
+
+Construct and return a new string which contains the specified number of copies
+of the calling string, concatenated together.
+
+
+
+**count**: The number of times to repeat the string (must be >= 0).
+
+
+**Returns**: A new repeated string.
+
+
+### replace(searchValue, replaceValue) function
+
+Return a new string where the first match (or all matches if 'searchValue'
+is a global RegExp) of 'searchValue' is replaced by 'replaceValue'.
+If 'searchValue' is a string, only the first occurrence is replaced.
+
+
+
+**searchValue**: A string or RegExp to match.
+
+**replaceValue**: The replacement string or function.
+
+
+**Returns**: A new string with the matched substring(s) replaced.
+
+
+### replaceAll(searchValue, replaceValue) function
+
+Return a new string where all (non-overlapping) occurrences of 'searchValue'
+are replaced by 'replaceValue'. If 'searchValue' is a string, each exact match
+is replaced.
+
+
+
+**searchValue**: A string or RegExp with the 'g' flag.
+
+**replaceValue**: The replacement string or function.
+
+
+**Returns**: A new string with all matches replaced.
+
+
+### padEnd(maxLength, padString) function
+
+Pad the string from the end with the given 'padString' so its length reaches
+'maxLength'. The result is a new string.
+
+
+
+**maxLength**: The desired length of the resulting string.
+
+**padString**: The string to pad with (default ' ').
+
+
+**Returns**: A new string padded at the end.
+
+
+### padStart(maxLength, padString) function
+
+Pad the string from the start with the given 'padString' so its length reaches
+'maxLength'. The result is a new string.
+
+
+
+**maxLength**: The desired length of the resulting string.
+
+**padString**: The string to pad with (default ' ').
+
+
+**Returns**: A new string padded at the start.
+
+
+### trim() function
+
+Return a new string with whitespace trimmed from the start and end of this
+string.
+
+
+
+**Returns**: The trimmed string.
+
+
+### trimEnd() function
+
+Alias for trimEnd(). Remove trailing whitespace from the string.
+
+
+
+**Returns**: The string without trailing whitespace.
+
+
+### trimRight() function
+
+Alias for trimEnd(). Remove trailing whitespace from the string.
+
+
+
+**Returns**: The string without trailing whitespace.
+
+
+### trimStart() function
+
+Alias for trimStart(). Remove leading whitespace from the string.
+
+
+
+**Returns**: The string without leading whitespace.
+
+
+### trimLeft() function
+
+Alias for trimStart(). Remove leading whitespace from the string.
+
+
+
+**Returns**: The string without leading whitespace.
+
+
+### toString() function
+
+Return a string representing the specified object (itself). Usually called
+implicitly. Overrides Object.prototype.toString.
+
+
+
+**Returns**: The string itself.
+
+
+### valueOf() function
+
+Return the primitive string value of this String object.
+
+
+
+**Returns**: The primitive string value.
+
+
+### __quote() function
+
+(Non-standard) Return a quoted representation of the string, typically for
+debug or serialization. Implementation details may vary.
+
+
+
+**Returns**: A quoted version of the string.
+
+
+### localeCompare(compareString) function
+
+Return a number indicating whether this string is less than, equal to, or
+greater than 'compareString' in sort order, according to the current locale.
+
+
+
+**compareString**: The string to compare against.
+
+
+**Returns**: A negative number if less, 0 if the same, or a positive number if greater.
+
+
+### toLowerCase() function
+
+Return a new string with all alphabetic characters converted to lowercase.
+
+
+
+**Returns**: The lowercase version of this string.
+
+
+### toUpperCase() function
+
+Return a new string with all alphabetic characters converted to uppercase.
+
+
+
+**Returns**: The uppercase version of this string.
+
+
+### toLocaleLowerCase() function
+
+Return a locale-aware lowercase version of this string, using the host's
+current locale or the specified locale if supported.
+
+
+
+**Returns**: The locale-sensitive lowercase string.
+
+
+### toLocaleUpperCase() function
+
+Return a locale-aware uppercase version of this string, using the host's
+current locale or the specified locale if supported.
+
+
+
+**Returns**: The locale-sensitive uppercase string.
+
+
+### anchor(name) function
+
+Return a string representing an HTML element with a 'name' attribute
+set to the current string.
+
+
+
+**name**: The name attribute for the anchor.
+
+
+**Returns**: An HTML ... string.
+
+
+### big() function
+
+Return a string representing an HTML element containing the current
+string.
+
+
+
+**Returns**: An HTML ... string.
+
+
+### blink() function
+
+Return a string representing an HTML