Convert README to markdown
This commit is contained in:
parent
9c95b1a5ab
commit
6a5d511845
2 changed files with 49 additions and 46 deletions
49
README.md
Normal file
49
README.md
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
# Minimal graphical applications in BQN
|
||||||
|
|
||||||
|
Bindings for [Fenster](https://github.com/zserge/fenster), providing a
|
||||||
|
set of functions for displaying a window and setting the color of
|
||||||
|
individual pixels inside.
|
||||||
|
|
||||||
|
## Setup
|
||||||
|
|
||||||
|
Clone the repository recursively (`git clone --recurse-submodules`)
|
||||||
|
and run `make` to build the shared library. The Makefile should work
|
||||||
|
on Linux and macOS.
|
||||||
|
|
||||||
|
## API
|
||||||
|
|
||||||
|
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
|
||||||
|
elements `x‿y`, where `x` and `y` are the pixel coordinates.
|
||||||
|
|
||||||
|
Low-level API:
|
||||||
|
|
||||||
|
- `OpenWindow w‿h‿t` opens a window of width `w` and height `h`, with
|
||||||
|
title `t`. Returns a window handle.
|
||||||
|
- `CloseWindow w` closes a window given its handle `w`.
|
||||||
|
- `F _render w` runs the function `F` at each coordinate of the window
|
||||||
|
`w` and set the corresponding pixel color. `F` is a function with
|
||||||
|
the same arguments as for `_display`.
|
||||||
|
|
||||||
|
## Example
|
||||||
|
|
||||||
|
See [example.bqn](./example.bqn).
|
||||||
|
|
||||||
|
```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
|
||||||
|
```
|
||||||
|
|
||||||
|

|
46
README.org
46
README.org
|
@ -1,46 +0,0 @@
|
||||||
* Minimal graphical applications in BQN
|
|
||||||
|
|
||||||
Bindings for [[https://github.com/zserge/fenster][Fenster]], providing a set of functions for displaying a
|
|
||||||
window and setting the color of individual pixels inside.
|
|
||||||
|
|
||||||
** Setup
|
|
||||||
|
|
||||||
Clone the repository recursively (~git clone --recurse-submodules~)
|
|
||||||
and run ~make~ to build the shared library. The Makefile should work
|
|
||||||
on Linux and macOS.
|
|
||||||
|
|
||||||
** API
|
|
||||||
|
|
||||||
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
|
|
||||||
elements ~x‿y~, where ~x~ and ~y~ are the pixel coordinates.
|
|
||||||
|
|
||||||
Low-level API:
|
|
||||||
- ~OpenWindow w‿h‿t~ opens a window of width ~w~ and height ~h~, with
|
|
||||||
title ~t~. Returns a window handle.
|
|
||||||
- ~CloseWindow w~ closes a window given its handle ~w~.
|
|
||||||
- ~F _render w~ runs the function ~F~ at each coordinate of the window
|
|
||||||
~w~ and set the corresponding pixel color. ~F~ is a function with
|
|
||||||
the same arguments as for ~_display~.
|
|
||||||
|
|
||||||
** Example
|
|
||||||
|
|
||||||
See [[./example.bqn][example.bqn]].
|
|
||||||
|
|
||||||
#+begin_src 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
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
[[./example.png]]
|
|
Loading…
Add table
Add a link
Reference in a new issue