- clean up some debugging code
- set NULL owner when setting BASEFLAG_READY_TO_DIE, so that the handle can be freed.
svn path=/branches/reactos-yarotows/; revision=47217
- clean up some unused code
- use GDIOBJ_IncrementShareCount on Timo suggestion
- use ppdev semaphore as sort criterion in DC_vPrepareDCsForBlit, spotted by Timo
- Get ownership before freeing the object in GDIOBJ_ShareUnlockObjByPtr, as whoever set it ready to die had the right to
svn path=/branches/reactos-yarotows/; revision=47205
- IntGdiCreateBitmap : assign a default palette to the bitmap created
- Use IntCreateBitmap where we already have a bitmap to assign
- delete all mono bitmaps related hacks in xlateobj implementation, as now all bitmaps should have a palette
Fixes last immediately visible glitches when switching modes
svn path=/branches/reactos-yarotows/; revision=47203
- remove a comment which is not true anymore
[USER32]
- Create a bitmap which is compatible with the bitmap'we are copying in CreateSmallIcon
Icons are back in taskbar
svn path=/branches/reactos-yarotows/; revision=47143
- Set NULL owner to copied bitmap when creating indirect icons
- Rewrite UserDrawIconEx, inspired from wine code
- fix palette creation for 16 bits DIB
- Always assign a palette to bitmap created with BITMAP_CopyBitmap and IntCreateCompatibeBitmap.
[USER32]
- Use DIB section when creating icons
- Use something called "header"
Now mode switching is almost glitchless.
svn path=/branches/reactos-yarotows/; revision=47140
- attach devinfo->hpalDefault to the pdevobj after enabling it
- attach this palette to surfaces attached to this pdevobj through EngModifySurface
- use this palette in several place
Partially fixes icon drawing after mode switch
svn path=/branches/reactos-yarotows/; revision=47137
- Allow NtGdiDeleteObjectApp to delete a permanent DC, as windows does it.
This is not exactly what windows does, but no one should use a DeletedDC'ed DC anyway.
Fixes "No! You Naughty Application" debug spam and some wine tests
svn path=/branches/reactos-yarotows/; revision=47131
- Call DC_vPrepareDCsForBlit in IntRectangle with device coordinates instead of in NtGdiRectangle with logical coordinates. Fixes updating mouse pointer.
- Update TODO.txt
svn path=/branches/reactos-yarotows/; revision=46986
- Use the attached surface bits depth when creating a compatible DC
[USER32]
- use a display DC for loading images
svn path=/branches/reactos-yarotows/; revision=46981
- Remove an ASSERT in DC_Cleanup
- Improve code in PDEVOBJ_vSwitchPdev (code shamelessly stolen from Jerome's earlier commit)
- Fix up GDIINFO in PDEVOBJ_bEnablePDEV instead of EngpCreatePDEV
- Update TODO.txt
svn path=/branches/reactos-yarotows/; revision=46975
- revert unwanted change from r46964
- Use MouseSafetyOnDrawStart/End in GreExtTextOutW when we already hold the blit lock
svn path=/branches/reactos-yarotows/; revision=46969
- Revert r46960 : the correct way to go is to mark brushes as dirty and update them where needed
- Do so in GreExtTextOutW, NtGdiBitBlt, NtGdiStrecthBltMask and IntPatBlt
- Add a small hack to GreEstTextOutW so we hold the Blit lock when needed without too much pain.
svn path=/branches/reactos-yarotows/; revision=46964
- Update direct DCs surface before blit if needed
- call directly ppdev in MouseSafetyOnDraw{Start,End}
- use directly the PDEVOBJ surface in mouse operations
- Add some mouse-related sanity checks
svn path=/branches/reactos-yarotows/; revision=46937
- Do not create a PDEVOBJ for nothing at startup
- Create the surface for real in IntCreatePrimarySurface
svn path=/branches/reactos-yarotows/; revision=46930
- Use DC_vPrepareForBlit, DC_vFinishBlit in GreTextOutputW
- So we can get rid of MouseSafetyOnDraw{Start,End} in IntEngMaskBlt
svn path=/branches/reactos-yarotows/; revision=46911
- apply policy into DC_vPrepareDCsForBlit as in GDIOBJ_LockMultipleObjects before Physicus sees this :-D
- GDIOBJ_LockObj : return NULL when handle is NULL : more speed, less debug output
svn path=/branches/reactos-yarotows/; revision=46909
- Now we welcome GreStretchBltMask into the fabulous world of GDIOBJ_LockMultipleObjects, DC_vPrepareDCsForBlit and DC_vFinishBlit
- With the assorted MouseSafetyOnDraw{Start,End} removal
svn path=/branches/reactos-yarotows/; revision=46908
- For now, limit DC_UnlockDc to a simple GDIOBJ_LockObj
- More GDIOBJ_LockMultipleObj, DC_vPrepareDCsForBlit and DC_vFinishBlit fun
svn path=/branches/reactos-yarotows/; revision=46906
-Use GDIOBJ_LockMultipleObjs, DC_vPrepareDCsForBlit and DC_vFinishBlit in NtGdiTransparentBlt
-Get rid of MouseSafetyOnDraw{End,Start} in IntEngTransparentBlt
svn path=/branches/reactos-yarotows/; revision=46905
- Introduce DC_vPrepareDCsForBlit and DC_vFinishBlit and use them in NtGdiAlphaBlend
- Get rid of now unnecessary call for MouseSafetyOnDraw{Start,End} in IntEngAlphaBlend
- Yet Another Rewrite of GDIOBJ_LockMultipleObjs :-/ and use it in NtGdiAlphaBlend
svn path=/branches/reactos-yarotows/; revision=46902
- There is currently no need to lock more than three objects at a time, this permits code simplification/speed
- Keep the handles order in GDIOBJ_LockMultipleObjs
Still unused...
svn path=/branches/reactos-yarotows/; revision=46899
- Introduce deadlocks killer GDIOBJ_LockMultipleObjs, unused for now
- Make the PDEVOBJ DCs list a sorted list
Didicated to Physicus
svn path=/branches/reactos-yarotows/; revision=46891
-Make direct DC release shared lock on surface each time they're unlocked.
-Now they don't hold it unless they're locked themselves.
-Do not create the device surface when switching modes, this is inconsistent with the PDEVOBJ creation, which does not.
*No more "you are freeing a surface which is still hold" debug message when switching modes*
svn path=/branches/reactos-yarotows/; revision=46733