由SDL 2创建的关闭窗口(使用Cl-SDL2)后,请无反应



我正在尝试使用cl-sdl2创建一个窗口。

我的代码工作 - 它创建一个窗口2秒,然后关闭:

(defun main ()
  (sdl2:with-init (:everything)
                  (sdl2:with-window (win :title "cl-sdl2 sample" :flags '(:shown :fullscreen))
                                    (let ((surf (sdl2:get-window-surface win)))
                                      (sdl2:fill-rect surf nil (sdl2:map-rgb (sdl2:surface-format surf) #xff #xff #xff))
                                      (sdl2:update-window win)
                                      (sdl2:delay 2000)))))
(main)

但是,窗口关闭后,depl(CCL)被卡住了。我不能再评估表情。为什么要这样做,我如何回到功能齐全的替补?

就目前而言,我必须每次运行样品进行测试时都会继续产生新的CCL REPP流程,这很快就变得乏味了。

我在Macos Sierra上。

这似乎是Cl-sdl2的已知问题,如下所示:https://github.com/lispgames/cl-sdl2/issues/89

当前提出的解决方法是将主螺纹的带螺纹从主线程中移开,然后通过单独的终端上的Swank/Slime连接到该线程,然后在主线程上运行SDL程序。一个示例如下所示。

(bt:make-thread (lambda () (swank:create-server :port 4005 :dont-close t)))
(sdl2:make-this-thread-main (lambda () (sdl2.kit:start)))

最新更新