On Thu, 28 Dec 2000, Nicolas Souchu wrote:
> On Thu, Dec 28, 2000 at 12:21:09AM +0100, Christoph Egger wrote:
> >
> > On Wed, 27 Dec 2000, Johannes Zellner wrote:
> >
> > > Hello again,
> > >
> > > xmi sometimes SEGFAULTS in
> > >
> > > libxmi/display/X/mode.inc:56
> > >
> > > folks! This is /very/ bad coding style IMHO!
> > > XXMI_PRIV() is a threefold preprocessor macro, two times
> > > casting to another struct and yet using another global
> > > variable _xmiID.
> > >
> > > If you code like this, you will get bugs for /ever/,
> > > I'll promise that!
> > >
> > > How would you expect me to debug crap like this ?
> >
> > Not at all. We do a complete rewrite in this case. Unfortunetly,
> > there is noone, who has time for that... :(
>
> Is it specific to the X display?
>
> And how many times should it be rewritten? Is it like the Linux IP
> stack, firewalling, VM or parport drivers?
I don't know. The bug Johannes found is already well-known since
I have written the X/Xlib-target. It causes a crash, when
ggiSetMode() is called _after_ xmiAttach().
This bug is easy to fix, but a rewrite is more trivial.
LibXMI in the current state is a result of some QuickHacks.
A Rewrite have to remove all the crap, which is in the code.
Jon: IMHO we should discuss the new design of libxmi.
AFAIR the goals are:
- Removing the miPaintedSet-stuff from everywhere (including the API)
- optimize the polygon-drawer for speed and extensibility
- add flat- and gouraud-shading
- rewrite the blending to make hw-acceleration possible
- add alpha-buffer for transluency
- add stencil-buffer
- add support for 2d-primitives like circles, ellipses, etc.
(but no sprite-support! This belongs to the libblit-extension)
We should also discuss, if adding a z-buffer makes sense, because a
z-buffer is a 3d-feature but libxmi is a 2d-lib.
We should also discuss, if we should use libgcp to handle the
blending stuff. Using libgcp allows to use different colorspaces like
RGBA, YUV, CMYK and HSV.
I announced libgcp on this list on Sunday, 24. Dec.
Christoph Egger
E-Mail: [EMAIL PROTECTED]