From d8e193d0bc65a175778469a1badbe31db4425000 Mon Sep 17 00:00:00 2001 From: William Robinson Date: Sun, 27 Jan 2008 11:14:17 +0000 Subject: [PATCH] ECL: Debug messages. Library loaders. --- examples/simple.lisp | 14 ++++++++++---- lib/glfw.lisp | 15 +++++++++++++-- lib/glu.lisp | 6 +++++- lib/opengl.lisp | 5 +++++ 4 files changed, 33 insertions(+), 7 deletions(-) diff --git a/examples/simple.lisp b/examples/simple.lisp index b5ec9b1..ccf5d1d 100644 --- a/examples/simple.lisp +++ b/examples/simple.lisp @@ -1,7 +1,13 @@ -(require '#:asdf) -(asdf:oos 'asdf:load-op '#:cl-glfw) -(asdf:oos 'asdf:load-op '#:cl-glfw-opengl) -(asdf:oos 'asdf:load-op '#:cl-glfw-glu) +(eval-when (:compile-toplevel) + (require '#:asdf) + (pushnew #P"~/software/lisp/cffi_0.9.2/" asdf:*central-registry*) + (pushnew (merge-pathnames #P"../") asdf:*central-registry*) + (asdf:oos 'asdf:load-op '#:cl-glfw) + (asdf:oos 'asdf:load-op '#:cl-glfw-opengl) + (asdf:oos 'asdf:load-op '#:cl-glfw-glu)) +(eval-when (:load-toplevel :execute) + (load "cffi.fas") + (load "cl-glfw.fas")) (glfw:do-window ("A Simple Example") ((gl:with-setup-projection diff --git a/lib/glfw.lisp b/lib/glfw.lisp index 88d473c..1206971 100644 --- a/lib/glfw.lisp +++ b/lib/glfw.lisp @@ -1,3 +1,4 @@ +(eval-when (:load-toplevel) (format t "Before package~%")) (defpackage glfw (:use #:cl #:cffi) (:shadow #:sleep #:+red-bits+ #:+green-bits+ #:+blue-bits+ @@ -19,9 +20,11 @@ |# (in-package #:glfw) +(eval-when (:load-toplevel) (format t "In package~%")) ;; copy the boolean from OpenGL (defctype boolean :uint8) +(eval-when (:load-toplevel) (format t "After type~%")) (defconstant +false+ #x0) (defconstant +true+ #x1) @@ -32,6 +35,7 @@ (defmethod cffi:expand-from-foreign (value (type (eql 'boolean))) `(not (= ,value +false+)))) +(eval-when (:load-toplevel) (format t "After expanders~%")) (defmacro defcfun+doc ((c-name lisp-name) return-type (&body args) docstring) @@ -61,16 +65,20 @@ (list ,@(mapcar #'(lambda (arg) `(mem-ref ,(first arg) ',(second arg))) out-args))))))) +(eval-when (:load-toplevel) (format t "After macros~%")) ;; ECL's DFFI seems to have issues if you don't put the full path in #+(and unix ecl) -(setf cffi:*foreign-library-directories* - (list "/usr/local/lib/" "/usr/lib/")) +(eval-when (:compile-toplevel :load-toplevel :execute) + (setf cffi:*foreign-library-directories* + (list "/usr/local/lib/" "/usr/lib/"))) +(eval-when (:load-toplevel) (format t "After cffi directories~%")) (cffi:load-foreign-library '(:or #+darwin (:framework "GLFW") (:default "glfw") (:default "libglfw"))) +(eval-when (:load-toplevel) (format t "After load glfw~%")) ;; Key and button state/action definitions (defconstant +release+ 0) @@ -240,6 +248,8 @@ ;; Time spans longer than this (seconds) are considered to be infinity (defconstant +infinity+ 100000d0) +(eval-when (:load-toplevel) (format t "After constants~%")) + (defcfun+doc ("glfwInit" init) boolean () "Return values If the function succeeds, t is returned. @@ -1549,3 +1559,4 @@ When GLFW_SYSTEM_KEYS is disabled, pressing standard system key combinations wil effect, since those key combinations are blocked by GLFW. This mode can be useful in situations when the GLFW program must not be interrupted (normally for games in fullscreen mode). ") +(eval-when (:load-toplevel) (format t "After all functions~%")) diff --git a/lib/glu.lisp b/lib/glu.lisp index 98e4898..be44b0a 100644 --- a/lib/glu.lisp +++ b/lib/glu.lisp @@ -4,7 +4,11 @@ (:export +ext-object-space-tess+ +ext-nurbs-tessellator+ +false+ +true+ +version-1-1+ +version-1-2+ +version-1-3+ +version+ +extensions+ +invalid-enum+ +invalid-value+ +out-of-memory+ +incompatible-gl-version+ +invalid-operation+ +outline-polygon+ +outline-patch+ +nurbs-error+ +error+ +nurbs-begin+ +nurbs-begin-ext+ +nurbs-vertex+ +nurbs-vertex-ext+ +nurbs-normal+ +nurbs-normal-ext+ +nurbs-color+ +nurbs-color-ext+ +nurbs-texture-coord+ +nurbs-tex-coord-ext+ +nurbs-end+ +nurbs-end-ext+ +nurbs-begin-data+ +nurbs-begin-data-ext+ +nurbs-vertex-data+ +nurbs-vertex-data-ext+ +nurbs-normal-data+ +nurbs-normal-data-ext+ +nurbs-color-data+ +nurbs-color-data-ext+ +nurbs-texture-coord-data+ +nurbs-tex-coord-data-ext+ +nurbs-end-data+ +nurbs-end-data-ext+ +nurbs-error-1+ +nurbs-error-2+ +nurbs-error-3+ +nurbs-error-4+ +nurbs-error-5+ +nurbs-error-6+ +nurbs-error-7+ +nurbs-error-8+ +nurbs-error-9+ +nurbs-error-10+ +nurbs-error-11+ +nurbs-error-12+ +nurbs-error-13+ +nurbs-error-14+ +nurbs-error-15+ +nurbs-error-16+ +nurbs-error-17+ +nurbs-error-18+ +nurbs-error-19+ +nurbs-error-20+ +nurbs-error-21+ +nurbs-error-22+ +nurbs-error-23+ +nurbs-error-24+ +nurbs-error-25+ +nurbs-error-26+ +nurbs-error-27+ +nurbs-error-28+ +nurbs-error-29+ +nurbs-error-30+ +nurbs-error-31+ +nurbs-error-32+ +nurbs-error-33+ +nurbs-error-34+ +nurbs-error-35+ +nurbs-error-36+ +nurbs-error-37+ +auto-load-matrix+ +culling+ +sampling-tolerance+ +display-mode+ +parametric-tolerance+ +sampling-method+ +u-step+ +v-step+ +nurbs-mode+ +nurbs-mode-ext+ +nurbs-tessellator+ +nurbs-tessellator-ext+ +nurbs-renderer+ +nurbs-renderer-ext+ +object-parametric-error+ +object-parametric-error-ext+ +object-path-length+ +object-path-length-ext+ +path-length+ +parametric-error+ +domain-distance+ +map-1-trim-2+ +map-1-trim-3+ +point+ +line+ +fill+ +silhouette+ +smooth+ +flat+ +none+ +outside+ +inside+ +tess-begin+ +begin+ +tess-vertex+ +vertex+ +tess-end+ +end+ +tess-error+ +tess-edge-flag+ +edge-flag+ +tess-combine+ +tess-begin-data+ +tess-vertex-data+ +tess-end-data+ +tess-error-data+ +tess-edge-flag-data+ +tess-combine-data+ +cw+ +ccw+ +interior+ +exterior+ +unknown+ +tess-winding-rule+ +tess-boundary-only+ +tess-tolerance+ +tess-error-1+ +tess-error-2+ +tess-error-3+ +tess-error-4+ +tess-error-5+ +tess-error-6+ +tess-error-7+ +tess-error-8+ +tess-missing-begin-polygon+ +tess-missing-begin-contour+ +tess-missing-end-polygon+ +tess-missing-end-contour+ +tess-coord-too-large+ +tess-need-combine-callback+ +tess-winding-odd+ +tess-winding-nonzero+ +tess-winding-positive+ +tess-winding-negative+ +tess-winding-abs-geq-two+ +tess-max-coord+ begin-curve begin-polygon begin-surface begin-trim build-1d-mipmap-levels build-1d-mipmaps build-2d-mipmap-levels build-2d-mipmaps build-3d-mipmap-levels build-3d-mipmaps check-extension cylinder delete-nurbs-renderer delete-quadric delete-tess disk end-curve end-polygon end-surface end-trim error-string get-nurbs-property get-string get-tess-property load-sampling-matrices look-at new-nurbs-renderer new-quadric new-tess next-contour nurbs-callback nurbs-callback-data nurbs-callback-dataext nurbs-curve nurbs-property nurbs-surface ortho-2d partial-disk perspective pick-matrix project pwl-curve quadric-callback quadric-draw-style quadric-normals quadric-orientation quadric-texture scale-image sphere tess-begin-contour tess-begin-polygon tess-callback tess-end-contour tess-end-polygon tess-normal tess-property tess-vertex un-project un-project-4)) (in-package #:glu) - +;; ECL's DFFI seems to have issues if you don't put the full path in +#+(and unix ecl) +(eval-when (:compile-toplevel :load-toplevel :execute) + (setf cffi:*foreign-library-directories* + (list "/usr/local/lib/" "/usr/lib/"))) (ignore-errors (load-foreign-library '(:or "glu32.dll" (:default "libGLU") diff --git a/lib/opengl.lisp b/lib/opengl.lisp index 71c30c3..dbabb30 100644 --- a/lib/opengl.lisp +++ b/lib/opengl.lisp @@ -4529,6 +4529,11 @@ blend-color-ext )) (in-package #:opengl) +;; ECL's DFFI seems to have issues if you don't put the full path in +#+(and unix ecl) +(eval-when (:compile-toplevel :load-toplevel :execute) + (setf cffi:*foreign-library-directories* + (list "/usr/local/lib/" "/usr/lib/"))) (cffi:load-foreign-library '(:or (:framework "OpenGL") "opengl32.dll" (:default "libGL") -- 2.11.4.GIT