Index:
[thread]
[date]
[subject]
[author]
From: BERNARD Sebastien <sebastien.bernard@cegetel.fr>
To : 'ggi-develop@eskimo.com' <ggi-develop@eskimo.com>
Date: Tue, 18 May 1999 10:20:37 +0200
RE: Some though about raster operation.
> -----Message d'origine-----
> De: Andreas Beck [SMTP:becka@rz.uni-duesseldorf.de]
> Date: lundi 17 mai 1999 21:51
> À: ggi-develop@eskimo.com
> Objet: Re: Some though about raster operation.
>
> > > No, LibGGI2D is an extension and the reason for extensions is to allow
>
> > > acceleration of stuff that is beyond the libGGI core. The core was
> > > kept very basic on purpose, so it could be implemented on the widest
> > > array of display systems and extensions would have something generic
> to
> > > build on.
> > BS] What is the purpose of the libGGI core ?
>
> To be the smallest subset that makes implementing higher primitives
> possible
> at a somewhat decent speed when there is no specialized implementation
> available.
>
> We drew the line at DrawLine, which is the most complex function in the
> core
> LibGGI.
>
> > Why then 2 blit function are in the core ?
>
> ? You are talking about Copybox and CrossBlit ?
[BERNARD Sebastien] Yes, indeed !
> They serve completely different purposes. Copybox is intra-visual, and
> sometimes needed for implementing higher primitives like
> glyph/texture-caching.
[BERNARD Sebastien] I repeat that you need logical planes
operations too to be complete. They are basic foundation for sprite
manipulation an so on. Moreover I think that all accelerated 2d engines are
doing these operations (the blitter of the Atari ST was doing it 10 years
-already- ago).
> CrossBlit allows to transfer data between visuals which is included
> to make working with multi-visual setups feasible.
>
> > I don't understand the underlying logic.
> > Could someone explain me which operation goes where and why ?
>
> Everything which isn't in LibGGI yet and does not _have_ to be there
> for some reason (like when it deals with mode/target negotiation or
> similar)
> should not go there.
>
> Many many apps do not even need the stuff that already is in the core
> LibGGI. The LibGGI core is kind of the lowest common denominator of
> common drawing libs.
>
> It is totally painless to implement any addition as an extension, so
> we should group every additional set of capabilities that belongs together
> into an extension.
>
> > What I find odd, is that some subroutine are obviously generic (like
> > the one we are talking about) but are considered as specific.
>
> They are specifically optimized, though the optimization level is
> pretty low. There still is a generic fallback in generic-stubs.
[BERNARD Sebastien] Of course, there are. I find the generic stub
is really generic, it copies the image pixel by pixel ! Then, why is there 4
implementation of the puthline in the generic stubs ?
[BERNARD Sebastien] Seb (Scatching his head).
Index:
[thread]
[date]
[subject]
[author]