I am porting the Morphic GUI tool kit, Or more specifically the subset that is implemented in morphic.js: http://www.chirp.scratchr.org/blog/?p=34.
I am a little overwhelmed by the options for rendering the GUI to screen. The JS implementation uses html5 canvas elements where Canvases, Images, and Contexts are rolled into or are part of the same object.
In am a relative novice in graphics programming, so it's hard for me to differentiate among the merits of the various bindings available to common lisp to do this. However, using the html canvas code as guide, I am gravitating towards some sort of high level canvas that writes to a lower level back end (vecto -> lispbuilder-sdl, cl-cairo).
Does anyone have guidance on the best way to approach this? Should I consider "raw" SDL surfaces, perhaps with SDL_ttf for font rendering? Is OpenGL a reasonable option for what is essentially a 2d environment?
Matt
On 5/16/2011 9:55 AM, Matthew Swank wrote:
I am porting the Morphic GUI tool kit, Or more specifically the subset that is implemented in morphic.js: http://www.chirp.scratchr.org/blog/?p=34.
I am a little overwhelmed by the options for rendering the GUI to screen. The JS implementation uses html5 canvas elements where Canvases, Images, and Contexts are rolled into or are part of the same object.
In am a relative novice in graphics programming, so it's hard for me to differentiate among the merits of the various bindings available to common lisp to do this. However, using the html canvas code as guide, I am gravitating towards some sort of high level canvas that writes to a lower level back end (vecto -> lispbuilder-sdl, cl-cairo).
Does anyone have guidance on the best way to approach this? Should I consider "raw" SDL surfaces, perhaps with SDL_ttf for font rendering? Is OpenGL a reasonable option for what is essentially a 2d environment?
Yes on the OpenGL. I used that (with FTGL for nice fonts) to execute my Cello GUI. Whether or not you want to do 3-D OpenGL is still fast, portable, powerful, and pretty.
hth, kt
ps. To avoid being overhelmed, just concentrate on "Hello world"
k
On May 16, 2011, at 7:55 AM, Matthew Swank wrote:
I am porting the Morphic GUI tool kit, Or more specifically the subset that is implemented in morphic.js: http://www.chirp.scratchr.org/blog/?p=34.
I am a little overwhelmed by the options for rendering the GUI to screen. The JS implementation uses html5 canvas elements where Canvases, Images, and Contexts are rolled into or are part of the same object.
In am a relative novice in graphics programming, so it's hard for me to differentiate among the merits of the various bindings available to common lisp to do this. However, using the html canvas code as guide, I am gravitating towards some sort of high level canvas that writes to a lower level back end (vecto -> lispbuilder-sdl, cl-cairo).
Does anyone have guidance on the best way to approach this? Should I consider "raw" SDL surfaces, perhaps with SDL_ttf for font rendering? Is OpenGL a reasonable option for what is essentially a 2d environment?
Matt
Not completely sure I understand what you need. The XMLisp approach (http://code.google.com/p/xmlisp/) is to create GUIs as DOM-like structures of 2D (Cocoa controls) and 3D (OpenGL views). The controls are platform native (OS X, Windows). Control actions are written in Lisp in a way to make it quite simple to mix 2D and 3D content.
Alex
Prof. Alexander Repenning
University of Colorado Computer Science Department Boulder, CO 80309-430
vCard: http://www.cs.colorado.edu/~ralex/AlexanderRepenning.vcf
On 05/16/2011 09:01 AM, Ken Tilton wrote:
Yes on the OpenGL. I used that (with FTGL for nice fonts) to execute my Cello GUI.
On 05/18/2011 10:58 AM, Alexander Repenning wrote:
Not completely sure I understand what you need ... Control actions [in XMLisp] are written in Lisp in a way to make it quite simple to mix 2D and 3D content.
Well, this is a mostly a learning exercise. GUI's seem frustratingly complex. One contributing factor is that most modern toolkits effectively use a low level implementation language to embed a higher level UI language. There are various additional high level tools to simplify this process, but my eyes tend to glaze over at the amount of glue needed to make UI programming palatable to novices like me.
When I wanted to learn about programming, I implemented programming languages, so I am trying my hand at a toy version of the most direct, interactive and intuitive GUI I've found: Morphic.
I need just enough graphics programming to associate images with Morphs, and composite them onto their parents, a process that finally bottoms out on the WorldMorph.
Matt
On Mon, May 16, 2011 at 8:55 AM, Matthew Swank akopa.gmane.poster@gmail.com wrote:
I am porting the Morphic GUI tool kit, Or more specifically the subset that is implemented in morphic.js: http://www.chirp.scratchr.org/blog/?p=34.
I am a little overwhelmed by the options for rendering the GUI to screen.
..
Does anyone have guidance on the best way to approach this?
For future reference, Woolly http://nklein.com/software/woolly/ explores this issues on a small enough scale to be quite educational.
Matt