Index:
[thread]
[date]
[subject]
[author]
From: =?iso-8859-1?Q?Anders_Mod=E9n?= <anders.moden@mailbox.swipnet.se>
To : ggi-develop@eskimo.com
Date: Thu, 27 Aug 1998 20:14:11 +0200
RE: new design (Re: LibGGI2D, LibGGI3D and targets)
GREAT ! I Agree... Send me a note and I'll be with you !
> -----Original Message-----
> From: thomas@eskimo.com [mailto:thomas@eskimo.com]On Behalf Of Thomas
> Tanner
> Sent: den 27 augusti 1998 12:36
> To: ggi-develop@eskimo.com
> Subject: new design (Re: LibGGI2D, LibGGI3D and targets)
>
>
> Jon M. Taylor wrote:
>
> > > That would make LibGGI useless.
> > By itself, yes, except maybe for the input stuff. Again, I
> > thought that was the idea. I thought that LibGGI would handle
> the "glue"
> > code - the concept of a visual with context, the generic API extension
> > handling, the DirectBuffer stuff, and other such common, foundational
> > code. If this is *not* the case (which appears to be true), I
> would like
> > to advocate that it become so. Maybe not right now, but someday. See
> > below for more on why I think this is a good idea.
>
> Jon, you're absolutely right. You're having _exactly_ the same thoughts
> like me.
> I often enough argued for moving all 2D functionality out of libggi
> (even directbuffer), moving events completely to libgii,
> extensions having their own context rather than storing their data in
> visuals
> etc.
>
> That's why I've written a specification for a new GGI design.
> Here are some excerpts of the README file and specification,
> which outline some of the differences to the "official GGI design":
>
> Experimental GGI design
> -----------------------
>
> While the "official" GGI design has to take care of backward
> compatibility this alternative design is completely incompatible with
> the old one and emphasizes consistency, extensibility, flexibility,
> abstraction and modularization. It is an experiment of new ideas and
> might influence the further development of the official GGI libraries.
>
> If you have any comments or want to help me then please contact me.
>
> The lastest specification and snapshot can be obtained from
> http://home.pages.de/~tanner/ggidesign.html
>
> Overview/features:
> ------------------
>
> general:
>
> + full multithreading support
> + support for static linking systems like DOS
> + error codes
> + very flexible configuration files
> + and much more...
>
> config scheme (thanks to Steffen Seeger):
>
> + very portable
> + dependencies
> + "make" from every directory
> + easy to understand
>
> LibGGI:
>
> + very high abstraction
> + no drawing functions, only visual managment
> + real color management
> + independent extensions
>
> GGI/FB (framebuffer):
>
> + fallback API, but not a must
> + no acceleration
> + supports also alpha- and Z-buffer
> + direct access possible but not recommened
>
> GGI/2D:
>
> + accelerated 2D functions
>
> GGI/GL:
>
> + full OpenGL API
> + Mesa completely integrated in GGI
> + multiple contexts
>
> GGI/Screen and GGI/Printer:
>
> + visual specific interfaces
>
> GII (input):
>
> + independent from GGI
> + gii_input as event source
>
>
> No API except the basic GGI interface is guaranteed to be available on
> every visual.
> An application using GGI usually opens a visual, initializes it through a
> visual
> specific API and then selects a drawing API. Each drawing API has
> its own context so that several drawing APIs can be used at the
> same time.
> However, due to limitiations of today's hardware, the simultaneous use of
> more
> than one drawing API should be avoided.
>
> If there's no native driver for a drawing API then it tries to load some
> fallback-drivers, which emulate it on top of other drawing APIs,
> eg. GGI/GL on GGI/FB or GGI/2D.
>
> LIBGGI does not imply that the visual is 2D-ish.
> A visual is defined as:
> Any graphical object is abstracted by a ggi_visual. It can be a display,
> printer, bitmap,
> camera, movie, remote visual etc. i.e.
> everything that has optical characterics like color, shape,
> transparency,
> intensity (brightness), depht/structure, sharpness etc.
> A visual consists of an [in]finite number of elementary visuals (e.g
> pixels, lines).
>
> This way you can theoretically even draw on a real 3D object. You would
> only need to
> have a drawing API for real 3D visuals. GGI/2D, for example,
> could then be
> emulated on it.
>
> > > From a purely abstract view, what you said is the ideal
> implementation, but
> > > it is impractical.
> > I don't see why this is the case.
>
> Me, too. I'm just working on a implementation of it
> and I really don't have any problems with it.
>
> > > It's like microkernels -- they are supposed to be
> > > minimal, but you still have to start somewhere.
> > Right, and that is why a core LibGGI should remain. But the
> > current situation is like the WinNT microkernel, which M$
> shoved the video
> > drivers into unnaturally. Pull the video drivers back out of the NT
> > kernel and you still have a small, focused microkernel that doesn't make
> > assumptions about the nature of the device drivers.
>
> Exactly.
>
> > > Does this answer your question?
> > Yes. Thank you. Let me assure you that I am not advocating
> > ripping the guts out of LibGGI right now. I am not necessarily
> advocating
> > making *any* changes right now, aside from what stuff the LibGGI2D TO-DO
> > file suggests. But I would like people to think about what I have
> > written.
>
> --
> Thomas Tanner -----------------------------
> email: tanner@gmx.de tanner@ggi-project.org
> web: http://home.pages.de/~tanner
> cool: www.ggi-project.org www.gnustep.org
>
>
Index:
[thread]
[date]
[subject]
[author]