Bjørn Nordbø wrote:
[I tried to subscribe to the mailing list in order to post the following,
but for some reason the confirmation mail never reaches me.]
Try emailing admin@common-lisp.net. Support is excellent.
...is about to happen, but I do not want to give it away. Hint: I got
into this because I decided the Cello web page needs an animated GIF,
not screen shots.
I guess that means the page won't be ready in the foerseeable future? :-)
Smart guess. :) But I really do hope to do it today. Draft of some
random text is attached. Hope you can read RTF. If not I will send it as
plain text. Maybe you can help me refine it...what can I leave out, what
more would you liek to know?
In that case, I'll stop lurking waiting for the page and rather ask some
questions here...
- What *is* Cello about, really? Is it a GUI, a GUI toolkit, a 3D took-
kit or all of the above? Text will do as an answer, I suppose.
All of the above? It is not like some GUIs where you get a fixed
framework you have to learn and live with, although it will offer as
much out-of-the-box productivity as those. Cello is just way more
flexible. Once people see the source for my widgets they will get the
idea and probably invent their own (in typical Lisp fashion).
- I only have access to SBCL/CMUCL on Linux or Lispworks on Solaris; are
there any hope of getting something to work with a moderate amount of
work?
Absolutely. It already runs on ACL/win32, LW/win32, and ACL/Linux. You
need recent patches to CMUCL/SBCL to handle callbacks from C into Lisp.
See if you can get on the mailing list (which I will CC on this message)
where a few folks are puttering around with cmucl/sbcl. (Not much news
lately, tho, so it might be your turn at the plate.)
I had some vague idea about making some funky 3D GUI using Glut and Common
Lisp a few months ago, but it faded before any code was written. This is
why I'm interested in the Cello project..
Well it's working like a charm so far. Just gotta do more widgets and
then it is up to others to do more ports. I will eventually do an LW/OSX
port if no one else does. Right now I am stalled because I am having fun
creating a killer new capability for Cello. I guess I am easily
distracted. :)
kt
--
http://tilton-technology.com
Why Lisp?
http://alu.cliki.net/RtL%20Highlight%20Film
Your Project Here!
http://alu.cliki.net/Industry%20Application
{\rtf1\ansi \deff0 \adeflang1033 {\fonttbl {\f0\fswiss Helvetica;}
{\f1\froman Times;}{\f2\fmodern MS LineDraw;}{\f3\fdecor Symbol;}}
{\colortbl;\red0\green0\blue0;\red0\green0\blue127;\red0\green127\blue0;\red0\green127\blue127;\red127\green0\blue0;\red127\green0\blue127;\red127\green127\blue0;\red127\green127\blue127;\red192\green192\blue192;\red0\green0\blue255;\red0\green255\blue0;\red0\green255\blue255;\red255\green0\blue0;\red255\green0\blue255;\red255\green255\blue0;\red255\green255\blue255;}\linex0 \sbknone
\margl1440 \margr1440 \margt1440 \margb1440 \plain {\stylesheet {\snext0 Normal;}
{\s2 \ql \tx720 \tx720 \li720 \fi-720 \sbasedon0 \snext2 1Level;}
{\s3 \ql \li720 \sbasedon0 \snext3 1LevelContinued;}
{\s4 \ql \tx188 \tx188 \li188 \fi-532 \sbasedon0 \snext4 2Level;}
{\s5 \ql \li188 \sbasedon0 \snext5 2LevelContinued;}
{\s6 \ql \tx532 \tx532 \li532 \fi-720 \sbasedon0 \snext6 3Level;}
{\s7 \ql \li532 \sbasedon0 \snext7 3LevelContinued;}
{\s8 \ql \tx1440 \tx1440 \li1440 \fi-908 \sbasedon0 \snext8 4Level;}
{\s9 \ql \li1440 \sbasedon0 \snext9 4LevelContinued;}
{\s10 \ql \tx2520 \tx2520 \li2520 \fi-1080 \sbasedon0 \snext10 5Level;}
{\s11 \ql \li2520 \sbasedon0 \snext11 5LevelContinued;}
{\s12 \ql \tx3772 \tx3772 \li3772 \fi-1252 \sbasedon0 \snext12 6Level;}
{\s13 \ql \li3772 \sbasedon0 \snext13 6LevelContinued;}
{\s14 \qc \sbasedon0 \snext14 Author;}
{\s15 \ql \sbasedon0 \snext15 CellBody;}
{\s16 \qc \sbasedon0 \snext16 CellHeading;}
{\s17 \ql \tx1080 \tx850 \li850 \fi-230 \ri360 \sbasedon0 \snext17 Footnote;}
{\s18 \ql \li850 \fi-230 \ri360 \sbasedon0 \snext18 TableFootnote;}
{\s19 \qc \sbasedon0 \snext19 TableTitle;}
{\s20 \qc \sbasedon0 \snext20 Title;}
{\cs21 \sbasedon0 \snext21 Emphasis;}
{\cs22 \sbasedon0 \snext22 EquationVariables;}
}\fs24 \f0 \fs24 \f1 \fs36 \f0 \cf1 \b \lang1024 \b \linex0 \linemod0 \sbknone \pgnrestart \pgnstart1 \pgnstarts1 \pard \s20 \qc Cello, a Common Lisp GUI\lang1024 \plain \fs36 \cf1 \lang1024
\par \fs24 \f1 \cf1 \lang1024 \pard \s14 \qc \sb240 Kenneth Tilton\lang1024
\par \fs32 \f0 \cf1 \b \lang1024 \b \pard \s2 \li720 \fi-720 \tx720 \sb280 \sa120 1.0\tab \lang1024 Mission Statement\lang1024 \plain \fs32 \cf1 \lang1024
\par \fs24 \f1 \cf1 \lang1024 \pard \s3 \li720 \ri360 \tx720 To answer Noob FAQ #2, '93Where'92s the GUI?'94.\ftnbj \aenddoc \fet2 {\super \chftn {\footnote {\fs24 \super \chftn }\fs24 \pard \s17 \li590 \fi-590 \ri360 \tx360 \tx590 \tab \fs20 \f1 \cf1 \lang1024 Noob FAQ #1 being, '93what'92s going on with this code? (let ((x '91(a b c))) (delete '91a x).....\lang1024
\par }}\fs24 \f1 \lang1024
\par \fs24 \f1 \cf1 \lang1024 \pard \s3 \li720 \tx720 \sb80 More grandly, to be the CLOS of Common Lisp GUIs. Common Lisp did not do objects \lang1024 when it was created, but when objects came up CLOS did them better than anyone else. \lang1024 Cello intends to outdo the GUIs available in other languages by a similar margin.\lang1024
\par \fs24 \f1 \cf1 \lang1024 \pard \s3 \li720 \tx720 \sb80 Certain things must be true if such a lofty goal is to be reached:\lang1024
\par \fs24 \f1 \cf1 \lang1024 \pard \s3 \li720 \tx720 \sb80 - it must be portable to Mac OS X, *nix, and other widely-installed OSes, and work from \lang1024 any serious implementation of Common Lisp.\lang1024
\par \fs24 \f1 \cf1 \lang1024 \pard \s3 \li720 \tx720 \sb80 - it must be Common Lisp '93all the way down'94, not a wrapper for a framework written in \lang1024 C/C++.\lang1024
\par \fs24 \f1 \cf1 \lang1024 \pard \s3 \li720 \tx720 \sb80 - it must have a full suite of standard GUI widgets, easily assembled into working applica-\lang1024 tions by novice users.\lang1024
\par \fs24 \f1 \cf1 \lang1024 \pard \s3 \li720 \tx720 \sb80 - it must be open source, with liberal licensing to achieve standard status.\lang1024
\par \fs24 \f1 \cf1 \lang1024 \pard \s3 \li720 \tx720 \sb80 - the graphics capabilities must include anti-aliased rendering of arbitrary installed fonts.\lang1024
\par \fs32 \f0 \cf1 \b \lang1024 \b \pard \s2 \li720 \fi-720 \tx720 \sb280 \sa120 2.0\tab \lang1024 In Brief\lang1024 \plain \fs32 \cf1 \lang1024
\par \fs24 \f1 \cf1 \lang1024 \pard \s3 \li720 \tx720 An emerging open-source, industrial-strength, fast, powerful, easy-to-use, portable GUI \lang1024 for Common Lisp, by Common Lisp, and of Common Lisp. \lang1024
\par \fs24 \f1 \cf1 \lang1024 \pard \s3 \li720 \tx720 \sb80 - MIT-licensed\lang1024
\par \fs24 \f1 \cf1 \lang1024 \pard \s3 \li720 \tx720 \sb80 - anti-aliased text using any installed font\lang1024
\par \fs24 \f1 \cf1 \lang1024 \pard \s3 \li720 \tx720 \sb80 - 2d- or 3d-graphics, vector or bitmapped, and straightforward display of a wide variety of \lang1024 image formats such as GIF, JPEG, and AVI.\lang1024
\par \fs24 \f1 \cf1 \lang1024 \pard \s3 \li720 \tx720 \sb80 - hardware-accelerated.\lang1024
\par \fs24 \f1 \cf1 \lang1024 \pard \s3 \li720 \tx720 \sb80 - planned: hardcopy via PDF, sound via SuperCollider.\lang1024
\par \fs24 \f1 \cf1 \lang1024 \pard \s3 \li720 \tx720 \sb80 Those are the fundamental capabilities. Stepping back to a wide-angle shot:\lang1024
\par \fs24 \f1 \cf1 \lang1024 \pard \s3 \li720 \tx720 \sb80 - component architecture allowing selective adoption of Cello sub-systems.\lang1024
\par \fs24 \f1 \cf1 \lang1024 \pard \s3 \li720 \tx720 \sb80 - Cells Inside, making GUI development an order of magnitude easier, faster, and more \lang1024 fun. Cells support a declarative paradigm for...\lang1024
\par \fs24 \f1 \cf1 \lang1024 \pard \s3 \li720 \tx720 \sb80 - Cello, a complete application framework with a full suite of standard GUI widgets, \lang1024 implemented fully in Common Lisp/CLOS. Combining Cells with efficient, powerful \lang1024 graphics capabilities, Cello permits easy construction of efficient, bug-free interfaces pro-\lang1024 viding users with more facile control of your application.\lang1024
\par \fs24 \f1 \cf1 \lang1024 \pard \s3 \li720 \tx720 \sb80 - For OpenGL developers, Cello serves as what is known as a scene graph manager, pro-\lang1024 viding a higher-level framework for the development of games and other applications \lang1024 using OpenGL primitives to model 3D worlds.\lang1024
\par \fs32 \f0 \cf1 \b \lang1024 \b \pard \s2 \li720 \fi-720 \tx720 \sb280 \sa120 3.0\tab \lang1024 Components\lang1024 \plain \fs32 \cf1 \lang1024
\par \fs24 \f1 \cf1 \lang1024 \pard \s3 \li720 \tx720 Cello has been neatly structured so developers can grab isolated chunks without buying \lang1024 into the whole enchilada. Here are the standalone components to be found in a Cello dis-\lang1024 tro.\lang1024
\par \fs24 \f1 \cf1 \lang1024 \pard \s4 \li1252 \fi-532 \tx720 \tx1252 \sb80 3.1\tab \lang1024 cl-opengl:: OpenGL Bindings, including GLUT\lang1024
\par \fs24 \f1 \cf1 \lang1024 \pard \s4 \li1252 \fi-532 \tx720 \tx1252 \sb80 3.2\tab \lang1024 cl-ftgl:: glue and bindings for FTGL, a C++ implementation of FreeType fonts for \lang1024 OpenGL.\lang1024
\par \fs24 \f1 \cf1 \lang1024 \pard \s4 \li1252 \fi-532 \tx720 \tx1252 \sb80 3.3\tab \lang1024 cl-magick:: bindings for ImageMagick, a library of pixmap, vector, and image-file \lang1024 graphics routines.\lang1024
\par \fs24 \f1 \cf1 \lang1024 \pard \s4 \li1252 \fi-532 \tx720 \tx1252 \sb80 3.4\tab \lang1024 cellocore:: an application framework requiring only Cells (http:/common-lisp.net/ \lang1024 projects/Cells) and cl-opengl\lang1024
\par \fs32 \f0 \cf1 \b \lang1024 \b \pard \s2 \li720 \fi-720 \tx720 \sb280 \sa120 4.0\tab \lang1024 The Foundation\lang1024 \plain \fs32 \cf1 \lang1024
\par \fs24 \f1 \cf1 \lang1024 \pard \s3 \li720 \tx720 Cello achieves its universal portability and graphical power through a number of kick-ass \lang1024 external libraries, all open source, all with liberal licensing such as Cello'92s MIT-style \lang1024 license:\lang1024
\par \fs24 \f1 \cf1 \lang1024 \pard \s4 \li1252 \fi-532 \tx720 \tx1252 \sb80 4.1\tab \lang1024 OpenGL/MesaGL: Yes, Virginia, if you are using OpenGL the GPU will be handling \lang1024 a large fraction of your application'92s CPU load. And, no, you will not believe the \lang1024 graphical power at your fingertips.\lang1024
\par \fs24 \f1 \cf1 \lang1024 \pard \s4 \li1252 \fi-532 \tx720 \tx1252 \sb80 4.2\tab \lang1024 FreeGlut: windows and callbacks for mouse, key, and display events. This bad boy is \lang1024 under heavy development since getting picked up by RedHat after learning the orig-\lang1024 inal Glut has an unfriendly license. And Freeglut is binary compatible with the stan-\lang1024 dard Glut, so developers can work under Freeglut but ship on another Glut, such as \lang1024 Apple'92s Quartz-based glut. \lang1024
\par \fs24 \f1 \cf1 \lang1024 \pard \s4 \li1252 \fi-532 \tx720 \tx1252 \sb80 4.3\tab \lang1024 FreeType: TrueType set free.\lang1024
\par \fs24 \f1 \cf1 \lang1024 \pard \s4 \li1252 \fi-532 \tx720 \tx1252 \sb80 4.4\tab \lang1024 FTGL: use any TrueType/FreeType font on the system, in any mode: bitmap, pix-\lang1024 map, texture, outline, polygon or extruded polygon.\lang1024
\par \fs24 \f1 \cf1 \lang1024 \pard \s4 \li1252 \fi-532 \tx720 \tx1252 \sb80 4.5\tab \lang1024 ImageMagick: adopted originally for portable access to over 80 image formats such \lang1024 as JPEG, GIF, BMP, AVI et al, this library also offers an insane suite of bitmapped \lang1024 and vector graphics functions. Knock yourself out.\lang1024
\par \fs24 \f1 \cf1 \lang1024 \pard \s4 \li1252 \fi-532 \tx720 \tx1252 \sb80 4.6\tab \lang1024 SuperCollider (SC3): our interface from Cello is vaporware, but it will be worth the \lang1024 wait. SC3 can play standard audio file formats, and it can be programmed to synthe-\lang1024 size sound in real-time. '93(beep) on steroids'94 does not do SC3 justice.\lang1024
\par \fs24 \f1 \cf1 \lang1024 \pard \s4 \li1252 \fi-532 \tx720 \tx1252 \sb80 4.7\tab \lang1024 UFFI: Kevin Rosenbeg'92s meta-contribution to the growth of Common Lisp, opening \lang1024 the door to C and C++ libraries everywhere.\lang1024
\par }