Bindings for Fenster, providing a set of functions for displaying a window and setting the color of individual pixels inside.
Clone the repository recursively (git clone --recurse-submodules
)
and run make
to build the shared library. The Makefile should work
on Linux and macOS.
High-level API:
F _display width‿height
creates a window of the given dimensions and displays its left operand.F
should be a function returning a color as an RGB triplet in the (0,1) range, and taking a list of two elementsx‿y
, wherex
andy
are the pixel coordinates.
Low-level API:
OpenWindow w‿h‿t
opens a window of widthw
and heighth
, with titlet
. Returns a window handle.CloseWindow w
closes a window given its handlew
.F _render w
runs the functionF
at each coordinate of the windoww
and set the corresponding pixel color.F
is a function with the same arguments as for_display
.
See example.bqn.
f←•Import"fenster.bqn"
size←500
Rainbow←{𝕊x‿y:
x‿y↩x‿y÷size
h←(x+y)÷2
f.HSVtoRGB⟨360×h,1,1⟩
}
Rainbow f._display size‿size