如何用SBCL安装CL-Opengl?

所以我只是想知道如何为SBCL安装opengl?我在64位
Windows 8笔记本电脑上.

我确实使用了quicklisp和quickload但是当我在一个程序中实际使用它时,我收到如下错误:

; compilation unit finished
;   Undefined functions:
;     DRAW-FRAME INIT-GL
;   caught 2 STYLE-WARNING conditions

这是我的代码:

(require 'cl-opengl)
(require 'cl-glu)
(require 'lispbuilder-sdl)

(defun main-loop ()
  (sdl:with-init ()
    (sdl:window 800 800
        :title-caption "OpenGL Test"
        :opengl t
        :opengl-attributes '((:sdl-gl-doublebuffer 1)
                             (:sdl-gl-depth-size 16)))
    (setf (sdl:frame-rate) 20)

    (init-gl)
    (draw-frame)
    (sdl:update-display)

    (sdl:with-events ()
      (:quit-event () t)
      (:video-expose-event ()
        (sdl:update-display))
      (:idle ()
        (draw-frame)
        (sdl:update-display)))))

最佳答案 我快速浏览了一下
the page that your code seems to have come from.

似乎编译器没有说谎,并且没有定义(init-gl)和(draw-frame).

据我所知,上一页的作者后来包含了一个(draw-frame)的定义,如下所示:

(defun draw-frame (rotx roty rotz)
(gl:matrix-mode :modelview)
(gl:push-matrix)
(gl:translate 0.5 0.5 0.5)
(gl:rotate rotx 1 0 0)
(gl:rotate roty 0 1 0)
(gl:rotate rotz 0 0 1)
(gl:translate -0.5 -0.5 -0.5)
(draw-figure +cube-vertices+ +cube-faces+)
(gl:pop-matrix))

然而,看起来(init-gl)后来被重命名为(start),它开始如下:

(defun start ()
(let ((rotx 0)
(roty 0)
(rotz 0))

作者将(init-gl)描述为设置“观察参数,光照,剔除,模型视图矩阵等”,这看起来正是他的功能(开始)完成的.

顺便提一下,cybevnm问了所有正确的问题,回答这些问题可能会让你得出类似的结论.

干杯!

点赞