[GUI] RFC: CGA-Example 1.2 stuff

Glynn Clements glynn.clements@virgin.net
Tue, 6 May 2003 07:51:34 +0100


Axel Simon wrote:

> > > Our aim is that an application written just with the CGA should work with 
> > > all backends.
> > 
> > I would aim slightly lower: it should be possible to write
> > applications which work on all backends; I don't think that we need to
> > go so far as to support the converse: that it's impossible to write an
> > application which doesn't work on all backends.
> 
> Ok, I think we mean the same thing here. With CGA I meant the standarized 
> parts, additional backend features not included.

So did I. Even without using any backend-specific extensions, it is
likely to be possible to write code which doesn't work correctly on
all backends.

The only ways to avoid that are:

1. Limit the functionality which the CGA provides to that which works
identically on all platforms. Unfortunately, that would be too minimal
to be of any real use.

2. Specify everything down to the most minute detail. Implementing a
backend which entirely meets such a specification would be more work
than anyone is likely to be willing to perform. It would also
eliminate the possibility of native look-and-feel.

Any realistic CGA specification will end up leaving some aspects as
either implementation-dependent or undefined.

We have to define enough to make the CGA usable. We don't have to
define everything, and I don't think that we should even try. Some
things *should* be platform-specific, and some of those differences
should be visible to applications which care to enquire about them.

-- 
Glynn Clements <glynn.clements@virgin.net>