Timo Kreuzer aede9079c6 [win32k] Implement brush realization part 1 / 2
- Fix BRUSHOBJ_pvGetRbrush, it's supposed to provide a realization, when there is none. For this reason call ENRUSHOBJ_bRealizeBrush, that will call Eng/DrvRealizeBrush to create a realisation. The old implementation never did this and I wonder how 3rd party display drivers were expected to work correctly without this.
- Implement EBRUSHOBJ_pvGetEngBrush working similar to BRUSHOBJ_pvGetRbrush, but providing the engbrush as GDI's realization. It's currently implemented as a handle to a translated pattern and not used anywhere yet.
- Rename EBRUSHOBJ_vUnrealizeBrus to EBRUSHOBJ_vCleanup. This function now needs to be called to free the resources for a BRUSHOBJECT that GDI or a driver might have allocated. This is done in DC_Cleanup before deleting the DC and in EBRUSHOBJ_vUpdate before newly initializing it.
- Get rid of the EBRUSHOBJ's XlateObject, instead for now create new XLATEOBJ's whenever needed. Don't worry these will be gone, as soon as we make use of the engbrush.
- Pass a pointer to the DC to EBRUSHOBJ_vInit, as this allows us to save stuff like the back and fore color.
- Fix a bitmap leak: CallDibStretchBlt returned before releasing the reference to the pattern surface.
- Some FASTCALL -> NTAPI changes
- tested with VBE, VMWare-Tools and VBox driver
- I hope I didn't forget anything

svn path=/trunk/; revision=41855
2009-07-10 23:44:05 +00:00
2009-07-08 20:28:33 +00:00
S
Description
A free Windows-compatible Operating System
528 MiB
Languages
C 86.9%
C++ 10.7%
Python 0.7%
Assembly 0.5%
CMake 0.5%
Other 0.4%