chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-users] cross-platform gui toolkit


From: Shawn Rutledge
Subject: Re: [Chicken-users] cross-platform gui toolkit
Date: Thu, 8 Feb 2007 14:49:46 -0700

On 2/8/07, Brandon J. Van Every <address@hidden> wrote:
There are at least 3 camps:

- put OpenGL windows on screen, no widgets.  For game developers who
don't want a bunch of extraneous stuff in their way.  Not much to
discuss about requirements here.  We've got 3 people working on it, and
we all know what we're doing well enough.  We welcome anyone who
actually wants to cut code.

Good.  I plan to use it then.  But is there a feature list, stuff that
you need to add?  It still seems to me that the current opengl egg +
glut egg does quite a bit already, but maybe not enough for text
rendering (which I have not investigated yet).  And you don't want to
change the existing opengl egg's API, right?  (So that code I write
now will still run on future ones?)

- minimalist GUI, minimal core set of the most useful widgets.  Intended
to be simple, portable, and sufficient for modest GUI apps.  Not
intended to be fully featured.  Not important to have native look and
feel.  Has many different GUI toolkits as backends.  This is Felix's
plan for conquering the universe.  I fear he won't actually secure the

That also is the base level of what I want to do.  I will try to
achieve a pretty advanced level of portability by having a
lowest-common-denominator 2D graphics API, which will render to OpenGL
and to my own frame-buffer 2D implementation, or possibly others (SDL?
sx?)  Then I will build widgets by drawing them with the 2D API.
Whenever OpenGL is the basis, you will be able to use the OpenGL API
too, and draw 3D stuff into the same windows.  (And maybe not on some
of the other basis platforms.)  As a bonus if you take a nominally 2D
GUI, but with some 3D-modeled elements, and apply textures and a
lighting model, it would look slick compared to any of the existing 2D
toolkits.  Now that Vista has arrived (and people have had Mac OS X
envy for years already), the existing ubiquitous grey widgets are
going to be perceived the same way TK is now, in a year or so.  I'm
not going to start out with slick appearance being the #1 goal, the
way a game developer would; but if we make sure it's possible, then
lots of 3D widget "themes" will emerge over time, and what started out
as a minimalist GUI gets legs and has a direction for growth (towards
maximalism), while at the same time it works for the R&D stuff.  And
my goal is to keep it backwards compatible and portable too (but only
with the simpler themes).  The actual applications should run on all
the platforms, or as many as possible (since some apps will absolutely
require OpenGL).  The real trick is that in going towards maximalism I
want to make sure the API for applications to use it remains terse and
easy and uniform.

support resources for more than 1 platform, in practice.  Multi-platform
will exist as proof-of-concept, but outside the de facto area of core
strength, the builds will suck and be forever broken.  I point to
Chicken itself as evidence, pre-CMake.  MinGW simply didn't get the
love.  MSVC had 2 different build methods and different path conventions
than the Unix builds.  It took 1 year to pave all that over.  People who
come along to do that much gratuitous refactoring are the exception
rather than the rule, i.e. I am insane.

Good!  Me too!   :-)  (laughs maniacally)

- maximalist GUI.  Maximal number of widgets, fully featured, can handle
any enterprise class problem you have in mind.  Native look and feel.
"Fear of committment" is silly here.  WxWidgets, GTK+, and Qt have been
dealing with the "heavy duty and portable" problem for the past decade.
If you want to be fully featured, you can't do better.  Pick 1 and wrap it.

This I don't want to develop (no time for it) but I might sometimes
have a use for it for quick 'n dirty stuff if it could be that easy to
use.

R&D is a non-issue for OpenGL windowing.  We're not going to do enough
to get ourselves into trouble.  I'm sure Thu will cook up some event
handling experiments, and at some point I'll try my own hand at it.

What kind of experiments?

For Felix's portaGUI, the R&D impulse will cause a lot of design
discussion.  Hope it sheds more light than heat.  I don't expect all
designers to last through the process.  The direction taken will not be
equally fascinating to all parties, and some will lose interest.

Yeah too much discussion does take too much time.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]