This is a non-announcement announcement of the upload to the
common-lisp.net cello project ftp area of version 2 of Portacello, the
not-ready-for-prime-time code horror others are welcome to port to their
platform of choice (with my copious email support). Frank Goenninger has
ported to Linux+AllegroCL, but we have not merged efforts yet; clearly
anyone looking at Linux would benefit from his starting point.
here is some of what I sent to the cello-devel mailing list:
/// begin quotation
After seeing the demos working again on both ACL and LW on win32 I
quickly just made a zip before I could be tempted to fuss with it even more.
The cello ftp site now contains portacello2.zip and pc2dll.zip. I could
not work out real quickly how to do the PGP signing cl.net wants, but
sometime tomorrow look for those to be replaced by signed versions.
First, a quick note: there is a "build.lisp" at the top level directory.
It is garbage.
As for the rest, still lots of hard-coded file paths and font names.
Look for "with-styles" and/or "gui-style-ftgl" for fonts, "dvx" (my new
development root) for paths.
The code has been carved up into components. Let's walk through
"cello-demo-build.lisp", the full build, to see the whole picture:
> ;; -*- mode: Lisp; Syntax: Common-Lisp; Package: cl-user; -*-
>
> (in-package :cl-user)
>
>
> ;; ----------------------------------------
> ;; ALERT:: Adjust all paths as necessary
> ;; ----------------------------------------
>
> #-asdf
> (load "/dvx/asdf.lisp")
not included
>
>
> #+build
>
> (let ((d-force nil))
> (load "/dvx/build-sys-kt.lisp")
> (build-sys d-force "c" "dvx" "uffi")
not included
>
> (build-sys d-force "c" "dvx" "ffi-extender")
> (build-sys d-force "c" "dvx" "cl-opengl")
The latter starts a pattern for components:
directory is dvx\cl-opengl.
that contains cl-opengl-build.lisp
and cl-opengl.asd
the source defines the package cl-opengl
the test function is: (cl-opengl::lesson-14)
oops. well, i wanted to give nehe credit. anyway, the pattern is
followed pretty tightly. The goal is also to make each module as
standalone as possible. So cl-opengl is just Lisp+OpenGL (via the glut
and the bindings rolled with my ffi-extender package.
aside: ffi-extender is a fun way to quickly get a bunch of bindings, but
it should probably be used instead as a utility to convert C headers
into vanilla UFFI source. future project.
> (load "/dvx/cl-ftgl/cl-ftgl.lisp")
This repeats the cl-opengl demo but with nice Ftgl fonts
> (build-sys nil "c" "dvx" "cl-magick")
background is pixel-drawn, escher cube (a bug, but a cool one) is a texture.
> (build-sys nil "c" "dvx" "cells")
> (build-sys nil "c" "dvx" "cellocore")
Widgets on nothing but OpenGl and the glut, hence crummy type.
>
> (build-sys t "c" "dvx" "cello")
cellocore + FTGL + ImageMagick
> (build-sys t "c" "dvx" "cello" "demo"))
>
> #+run
> (cello::cello-demo)
the lighting panel is great fun. turn up the alpha on the colors of the
shape to get brighter color, turn it down to watch it fade out.
interesting bug: too far left of the line width slider and the line
starts getting thicker. tip: the torus is the most fun. another lighting
tip. bring up diffusion and lower ambience for shading. Oh yeah: turn
down the rotations or the spinning will make you dizzy.
definitely play with the number of rings etc in the torus and sphere.
more as i think of it. but as the name suggests, still not ready for
development. I plan to take a week now and just do new widgets and
menus. Just noticed an "overlay" cabability that might be great (fast)
for menus.
/// end quotation
after a great response from my gamer bartender (and other patrons) to
the lighting panel, I have now been sucked into playing with opengl
materials, but any day now I have to stop goofing around (or worrying
about CL having a portable GUI) and get to work on a nice little
commercial niche app. Enticing, psychedelic screenshots will continue,
however, especially as groovy new widgets are released.
btw, the bartender was very impressed when, after he protested that the
simpler glut-provided cubes did not respond to the size widget (those
functions draw a unit shape), I successfully added x-y-z scaling while
saying things like "does anybody see the control key?"
Fun note: when the beertender,s gamer buddy asked what language I wrote
it in, he started talking about the huge Lisp system donated to NYC by
someone back in the sixties. He opened by saying "Lisp. Car, cdr, caddr"
pronouncing them all correctly. Almost dropped my pint.
:)
kt
--
http://tilton-technology.com
Why Lisp? http://alu.cliki.net/RtL%20Highlight%20Film
Your Project Here! http://alu.cliki.net/Industry%20Application