Modify the mesh class to use a foreign array for the vertex and index streams to pass to opengl, but the memory is not yet properly managed. Add a function to render each node in the scene graph when it finds a mesh component.
82 lines
3 KiB
Common Lisp
82 lines
3 KiB
Common Lisp
#|
|
|
This file is a part of stoe project.
|
|
Copyright (c) 2014 Renaud Casenave-Péré (renaud@casenave-pere.fr)
|
|
|#
|
|
|
|
#|
|
|
SaintOEngine - A 3d engine in common-lisp
|
|
|
|
Author: Renaud Casenave-Péré (renaud@casenave-pere.fr)
|
|
|#
|
|
|
|
(in-package :cl-user)
|
|
(defpackage stoe-asd
|
|
(:use :cl :asdf))
|
|
(in-package :stoe-asd)
|
|
|
|
(defsystem stoe
|
|
:version "0.1"
|
|
:author "Renaud Casenave-Péré"
|
|
:license "GPL3"
|
|
:depends-on (:swank
|
|
:alexandria
|
|
:glop
|
|
:cl-opengl)
|
|
:components ((:module "src"
|
|
:components
|
|
((:file "utils")
|
|
(:module "maths"
|
|
:components
|
|
((:file "maths")
|
|
(:file "vector")
|
|
(:file "float2")
|
|
(:file "float3")
|
|
(:file "float4")
|
|
(:file "matrix")
|
|
(:file "float22")
|
|
(:file "float33")
|
|
(:file "float44")
|
|
(:file "quaternion")
|
|
(:file "geometry")))
|
|
(:file "thread"
|
|
:depends-on ("utils"))
|
|
(:file "containers")
|
|
(:file "modules"
|
|
:depends-on ("utils"))
|
|
(:file "debug"
|
|
:depends-on ("modules" "thread"))
|
|
(:file "jobs"
|
|
:depends-on ("thread" "containers" "utils"))
|
|
(:file "file"
|
|
:depends-on ("jobs"))
|
|
(:module "game"
|
|
:components
|
|
((:file "game-object")
|
|
(:file "game")))
|
|
(:module "render"
|
|
:components
|
|
((:file "gl-utils")
|
|
(:module "shader"
|
|
:components
|
|
((:file "glsl-compiler")
|
|
(:file "shader")))
|
|
(:file "mesh")
|
|
(:file "render")
|
|
(:file "shaders"))
|
|
:depends-on ("modules" "utils"))
|
|
(:file "stoe"
|
|
:depends-on ("utils" "modules")))))
|
|
:description "SaintOEngine - A 3d engine in common-lisp"
|
|
:long-description
|
|
#.(with-open-file (stream (merge-pathnames
|
|
#p"README.md"
|
|
(or *load-pathname* *compile-file-pathname*))
|
|
:if-does-not-exist nil
|
|
:direction :input)
|
|
(when stream
|
|
(let ((seq (make-array (file-length stream)
|
|
:element-type 'character
|
|
:fill-pointer t)))
|
|
(setf (fill-pointer seq) (read-sequence seq stream))
|
|
seq)))
|
|
:in-order-to ((test-op (load-op stoe-test))))
|