Compare commits
No commits in common. "c0f8635b0be5b206310b3fd32ae796141ad7f159" and "62c821e87b5509530576d75d2aa3ff35e82e7f94" have entirely different histories.
c0f8635b0b
...
62c821e87b
6 changed files with 14 additions and 75 deletions
|
|
@ -1,22 +0,0 @@
|
||||||
FROM debian:trixie
|
|
||||||
RUN apt update
|
|
||||||
RUN apt upgrade
|
|
||||||
|
|
||||||
ENV DISPLAY=:0
|
|
||||||
|
|
||||||
# Install chicken
|
|
||||||
RUN apt install -y build-essential git
|
|
||||||
RUN apt install -y chicken-bin
|
|
||||||
|
|
||||||
# Install chicken tools
|
|
||||||
RUN chicken-install beaker csm
|
|
||||||
|
|
||||||
# Install raylib
|
|
||||||
RUN apt install -y libasound2-dev libx11-dev libxrandr-dev libxi-dev libgl1-mesa-dev libglu1-mesa-dev libxcursor-dev libxinerama-dev libwayland-dev libxkbcommon-dev
|
|
||||||
RUN git clone --depth 1 https://github.com/raysan5/raylib.git raylib && \
|
|
||||||
cd raylib/src/ && \
|
|
||||||
make PLATFORM=PLATFORM_DESKTOP && \
|
|
||||||
make install
|
|
||||||
|
|
||||||
# Install egg dependencies
|
|
||||||
RUN chicken-install -from-list deps.lock
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
{
|
|
||||||
"name": "Imugi Dev Container",
|
|
||||||
"build": {
|
|
||||||
"dockerfile": "Dockerfile"
|
|
||||||
},
|
|
||||||
"runArgs": [
|
|
||||||
"--net", "host",
|
|
||||||
"-e", "DISPLAY=:0",
|
|
||||||
"-e", "XAUTHORITY=/tmp/.Xauthority",
|
|
||||||
"-v", "${localEnv:HOME}/.Xauthority:/tmp/.Xauthority"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
||||||
#+title: Collaboration
|
|
||||||
|
|
||||||
Imugi can be easily built without any local chicken scheme installation by using the devcontainer spec included in this repository.
|
|
||||||
|
|
||||||
* Using the Devcontainers CLI
|
|
||||||
First, run ~npm install -g @devcontainers/cli~ to install the devcontainers CLI tool.
|
|
||||||
|
|
||||||
This requires a working Docker installation, the steps to which can be found [[https://docs.docker.com/engine/install/][here]]. Also assign your user to the ~docker~ group to avoid having to use ~sudo~ with docker and devcontainer commands.
|
|
||||||
|
|
||||||
Once both of the above are installed, the devcontainer can be started with ~devcontainer up --workspace-folder .~ in the repository root. This will build a Debian Trixie container including all Chicken dependencies, and also build Raylib as a static library. We prefer to build with static linking in order to make distribution less annoying.
|
|
||||||
|
|
||||||
Once the devcontainer is running, enter it with ~devcontainer exec --workspace-folder . bash~. This will put you at the repository root.
|
|
||||||
|
|
||||||
* Dependencies
|
|
||||||
The ~deps.lock~ file contains the versions of eggs used in this repository. They can be installed with ~chicken-install -from-list deps.lock~.
|
|
||||||
|
|
||||||
* Collaborating with Emacs
|
|
||||||
The ~.dir-locals.el~ file automatically sets the Geiser Scheme implementation to Chicken, for any Scheme source file in this directory.
|
|
||||||
|
|
||||||
* Running Tests & Samples
|
|
||||||
From the ~build~ directory, run ~csm -program <module> ..~ to build a particular module, the ~./<module>~ to run it.
|
|
||||||
|
|
||||||
Any module defined in the ~samples~ or ~test~ directory can be run like this, either to show an example game or to run tests for a particular engine module.
|
|
||||||
|
|
||||||
If you are running the devcontainer on an X11 Linux host, running the compiled module should forward the window to your hosts X11 display. YMMV for Wayland and non-Linux hosts.
|
|
||||||
|
|
||||||
13
README.org
13
README.org
|
|
@ -184,3 +184,16 @@ Functions for evaluating the render queues. ~evaluate-render-queue~ evaluates a
|
||||||
(create-window process: (next-frame) close-predicate: (window-should-close?))
|
(create-window process: (next-frame) close-predicate: (window-should-close?))
|
||||||
#+end_src
|
#+end_src
|
||||||
~create-window~ creates a window using the window parameters described above, sets the target frames per second, then enters a loop which runs the ~process:~ function (~next-frame~ by default) on each frame, unless ~close-predicate:~ (Raylib's ~window-should-close~ function by default) returns true, in which case the window is closed.
|
~create-window~ creates a window using the window parameters described above, sets the target frames per second, then enters a loop which runs the ~process:~ function (~next-frame~ by default) on each frame, unless ~close-predicate:~ (Raylib's ~window-should-close~ function by default) returns true, in which case the window is closed.
|
||||||
|
|
||||||
|
* Dependencies
|
||||||
|
The following Chicken dependencies are required:
|
||||||
|
- raylib
|
||||||
|
- SRFI-99
|
||||||
|
- SRFI-113
|
||||||
|
- SRFI-69
|
||||||
|
- csm
|
||||||
|
- SRFI-78
|
||||||
|
|
||||||
|
* Running
|
||||||
|
From the ~build~ directory, run ~csm -program test.engine .. && ./test.engine~ to run engine tests.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
-static -L /usr/local/lib/libraylib.a -L -lX11 -L -lXrandr -L -lXi -L -lXcursor -L -lXinerama -L -lXext -L -lGL -L -lm -L -lpthread -L -ldl -L -lrt
|
-static -L /usr/local/lib64/libraylib.a
|
||||||
14
deps.lock
14
deps.lock
|
|
@ -1,14 +0,0 @@
|
||||||
("raylib" "1.2.0")
|
|
||||||
("srfi-1" "0.5.1")
|
|
||||||
("r7rs" "1.0.12")
|
|
||||||
("srfi-69" "0.4.3")
|
|
||||||
("matchable" "1.2")
|
|
||||||
("srfi-113" "2.0.0")
|
|
||||||
("foreigners" "1.5")
|
|
||||||
("srfi-99" "1.4.5")
|
|
||||||
("srfi-14" "0.2.1")
|
|
||||||
("miscmacros" "1.0")
|
|
||||||
("srfi-78" "0.5")
|
|
||||||
("srfi-42" "1.76")
|
|
||||||
("srfi-128" "0.11")
|
|
||||||
("srfi-13" "0.3.4")
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue