標高+1m

Don't be rational.

WSL2でsketchを使う手順

Windows11のWSL2でsketchを動かすまでの手順をメモ

Sketch is a Common Lisp environment for the creation of electronic art, visual design, game prototyping, game making, computer graphics, exploration of human-computer interaction and more. It is inspired by Processing Language and shares some of the API.

github.com

Power Shell on Windows 11

wsl --update #もしくは wsl --install
wsl --set-default-version 2
#wsl -l -oで選択できるディストリビューションを表示
wsl --install -d Ubuntu-22.04
wls -l -v #VERSIONが2になっていることを確認

Ubuntu

sudo apt update
sudo apt upgrade

#WSLgの動作チェック
sudo apt install x11-apps
xeyes &

#SBCLとQuickLispのインストール
sudo apt install curl sbcl
# Quicklispをインストール: 参照 [https://www.quicklisp.org/beta/]

#Sketchの依存ライブラリのインストール
#quickloadしてみて、エラーが出るたびに順に解決して行っても良い
sudo apt install libgl1 libsdl2-2.0-0 libsdl2-image-2.0-0 libffi-dev build-essential libsdl2-ttf-2.0-0 mesa-utils
glxgears #Open GLの動作確認

sbcl --load "quicklisp/setup.lisp"

SBCL

(ql:quickload :sketch)
(ql:quickload :sketch-examples)
(in-package :sketch-examples)
(make-instance 'hello-world)

おそらくここで、Could not create GL contextとか言われる。

(kit.sdl2:init)
(make-instance 'hello-world)

これでOperation not supported.とか言われたら、

~/quicklisp/dists/quicklisp/software/sketch-(version)-git/src/environment.lispを編集

(defun initialize-gl (w)
  (with-slots ((env %env) width height) w
    ;;(sdl2:gl-set-swap-interval 1)  ;;この行をコメントアウト
    (setf (kit.sdl2:idle-render w) t)
    (gl:viewport 0 0 width height)
    (gl:enable :blend :line-smooth :polygon-smooth)
    ... ))

リトライ

(kit.sdl2:init)
(make-instance 'hello-world)

これでうまくいくんじゃないかな?