DIB Engine
Roderick Colenbrander
thunderbird2k at gmx.net
Fri Nov 14 03:43:48 CST 2008
> В сообщении от Thursday 13 November 2008 13:22:07 Massimo Del
> Fedele
> написал(а):
> > Sergey Novosyolov ha scritto:
> > > I've already started working on it about 3 months ago and released
> some
> > > functions inside DIB Engine. But now we're thinking about release DIB
> > > inside GDI32 as Detlef Riekenberg proposed:
> > >
> > > On 9/29/08, Sergey Novosyolov <chi at etersoft.ru> wrote:
> > >>> The first thing, i like to see is a Design in the correct way:
> > >>> Inside gdi32 while using Eng* and friends.
> > >>> (Needed by Printer drivers, and any Display driver including mirror
> /
> > >>> remote display drivers)
> > >>
> > >> why can't we release DIB-Engine as own driver? GDI32 functions are
> main
> > >> and GDI32 calls driver functions in dependence of which type of DC we
> > >> have (printer DC, Xwindow HDC or DIB DC)
> > >>
> > >> Any Driver can call the Graphic Rendering Engine (GRE)
> > >> to do parts (or all) of the rendering (and native driver do that):
> > >> 1: DDB (Driver managed: using any driver specific format)
> > >>
> > > > (The Driver should do Everything. When the driver call the GRE,
> > > > the DDB is converted to a DIB, GDI renders into the DIB and then
> > > > the DIB is converted back to a DDB)
> > > >
> > > > => like our winex11.drv and wineps.drv
> > >>
> > >> 2: DDB (GDI managed: using DIB format)
> > >> (The driver render, what the driver want to render with hw-support
> > >> and can call the GRE for all the other rendering without
> converting)
> > >> => Needed for native printer drivers / mirror drivers or
> > >> OpenGL accelerated rendering (stefan did some experiments)
> > >>
> > >> 3: DIB
> > >> (GDI renders everything)
> > >> => The current Code is using a X11-DDB (Driver Managed) with
> > >> converting
> > >> issues.
> > >
> > > So the conception of new strusture of DIB ENgine inside GDI is needed
> >
> > The question is if we should support native drivers or not, other than
> > winex11 or wineps. For winex11, we're using native rendering functions,
> > for wineps we're just translating GRE calls to ps code directly, no need
> > to convert forth and back. Other stuff would be raw printing, for
> > example, using native drivers.... but are they really needed ?
> >
> > AFAIK the bottleneck now is the double conversion of DIB-X11 DDB-DIB, in
> > order to be able to use X11 rendering functions, so the point 3.
> > I don't understand your point 1; why convert DDB to DIB ? Driver should
> > render directly into DDB. GDI calls can be directed to native ones.
> >
> > I see it this way (but I could be wrong) :
> >
> > 1) Application uses a DIB format, rendering should be done by DIB
> > driver, conversion is needed only to display it. This is what by now is
> > done with 2 conversions between DIB-X11-DIB formats.
> >
> As i see if we operate with Display DC we no need to convert and GDI32
> calls
> X11DRV functions directly.
>
> If we operate with memoryDC GDI calls DIB functions and then uses BitBlt
> if
> needed to reflect memoryDC operations on teh display
>
> > 2) Application uses accelerated opengl, for example; it must (afaik) use
> > native format and functions to render it. No need to convert anything.
> >
>
> what do you mean "native format"? is it connected with GDI calls?
>
> > 3) Printer drivers. For ps, they're rendered translating GDI calls into
> > postscript code, for other format the driver should do the rendering.
> > Again, no conversion needed.
> >
> I agree
>
> > So, I don't understand why to have DIB engine INSIDE GDI. Function
> > pointers could handle the correct driver calls depending on DIB (or DDB)
> > format.
> >
> DIB is Device Independent Bitmap so DIB functions would be include those
> functions which implemented the same independ of device
> > Max
>
>
More information about the wine-devel
mailing list