Commit graph

34 commits

Author SHA1 Message Date
Jérôme Gardou b0aa4f5a2c [WIN32K]
- 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
2010-05-14 20:19:46 +00:00
Jérôme Gardou 0a68d5e2e4 [WIN32K]
- 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
2010-05-08 16:41:41 +00:00
Jérôme Gardou 9e7867ddde revert unwanted changes
svn path=/branches/reactos-yarotows/; revision=47120
2010-05-07 23:36:49 +00:00
Jérôme Gardou a7eaab78db some leftover from last sync : GDIDBG macros expect handles, not index
svn path=/branches/reactos-yarotows/; revision=47119
2010-05-07 23:33:11 +00:00
Jérôme Gardou 88c9e7c6e8 Sync with trunk (r47116), hopefully without breaking anything.
svn path=/branches/reactos-yarotows/; revision=47117
2010-05-07 07:41:13 +00:00
Timo Kreuzer 634c608726 [WIN32K]
- 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
2010-04-21 12:21:53 +00:00
Jérôme Gardou 650b476440 [WIN32K]
- 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
2010-04-20 19:31:45 +00:00
Jérôme Gardou 75f07ae3b4 [WIN32K]
- Reinitialize EBRUSHOBJs instead of marking them as dirty when switching modes

svn path=/branches/reactos-yarotows/; revision=46960
2010-04-20 17:55:56 +00:00
Jérôme Gardou b1f448326a [WIN32K]
- update clipping, GraphicCaps, brush, pen, background and charset of the DC after a mode change

svn path=/branches/reactos-yarotows/; revision=46952
2010-04-19 22:51:40 +00:00
Jérôme Gardou e918eb7c29 [WIN32K]
- 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
2010-04-19 13:52:37 +00:00
Jérôme Gardou fa0a6275a9 [WIN32K]
- 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
2010-04-17 20:51:42 +00:00
Jérôme Gardou 663acbc064 [WIN32K]
- 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
2010-04-17 15:24:10 +00:00
Jérôme Gardou 0cdfd4399d [WIN32K]
- 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
2010-04-17 14:20:48 +00:00
Jérôme Gardou 6a8d2ef675 revert the DC list stuff, it's not worth it (tm). Things will be done differently
svn path=/branches/reactos-yarotows/; revision=46892
2010-04-16 09:49:05 +00:00
Jérôme Gardou a4e83efd83 [WIN32K]
- 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
2010-04-15 22:38:04 +00:00
Jérôme Gardou 2a6301401d [WIN32K]
- Maintain a list of DC attached to a PDEVOBJ
No functional change for now, stay tuned!

svn path=/branches/reactos-yarotows/; revision=46885
2010-04-15 19:07:07 +00:00
Jérôme Gardou c3731e5552 [WIN32K]
- get rid of ROS_DC::BitsPerPixel.
1 - It was a hack.
2 - Its use was inconsistent.

svn path=/branches/reactos-yarotows/; revision=46848
2010-04-12 18:44:36 +00:00
Jérôme Gardou c9353947a1 completely revert 46733
svn path=/branches/reactos-yarotows/; revision=46846
2010-04-11 21:32:53 +00:00
Jérôme Gardou 243eeb574a [WIN32K]
-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
2010-04-05 10:58:43 +00:00
Jérôme Gardou 6638a5b899 Sync with trunk (aka 'I want my virtualbox mouse integration too')
svn path=/branches/reactos-yarotows/; revision=46732
2010-04-05 09:59:21 +00:00
Jérôme Gardou 34a9bb0081 [WIN32K]
Unlock surface when deleting DC

svn path=/branches/reactos-yarotows/; revision=46698
2010-04-03 16:42:04 +00:00
Timo Kreuzer 705ea2a9c3 [WIN32K]
- EngAcquireSemaphoreShared: update dwEngAcquireCount
- DC_LockDc/DC_UnlockDc: Acquire PDEV lock only for direct DCs, in that case also update the pSurface pointer
- When copying DC states, copy the surface only for memory dcs
- after switching the mode, update system metrics and redraw the desktop window.
- Remove testdraw code.

svn path=/branches/reactos-yarotows/; revision=46658
2010-04-01 22:36:40 +00:00
Timo Kreuzer 49383c3d97 [win32k]
Use PREGION as type fo the DC regions instead of PVOID.

svn path=/branches/reactos-yarotows/; revision=46630
2010-03-31 22:43:02 +00:00
Jérôme Gardou 6495ee7167 [WIN32K]
DC_SetOwnerShip : return FALSE on failure

svn path=/branches/reactos-yarotows/; revision=46575
2010-03-29 21:53:24 +00:00
Jérôme Gardou c918b470ec [WIN32K]
Release ppdev when deleting DC

svn path=/branches/reactos-yarotows/; revision=46527
2010-03-28 21:45:43 +00:00
Jérôme Gardou fc0d9235a5 [WIN32K]
Each DC_lockDc call should be followed by a DC_UnlockDc, even on error path.

svn path=/branches/reactos-yarotows/; revision=46507
2010-03-27 23:58:09 +00:00
Jérôme Gardou 76085ba982 [WIN32K]
Lock PDC with pDevObj semaphore too.

svn path=/branches/reactos-yarotows/; revision=46470
2010-03-26 16:17:12 +00:00
Jérôme Gardou 33f63724b1 [WIN32K]
Get rid of hVisRgn in ROS_DC_INFO, use prgnVis in DC instead

svn path=/branches/reactos-yarotows/; revision=46372
2010-03-23 23:02:00 +00:00
Jérôme Gardou f5cb03fb7c [WIN32K]
revert r46354

svn path=/branches/reactos-yarotows/; revision=46356
2010-03-23 16:09:23 +00:00
Timo Kreuzer 84253d01e7 Fix a typo
svn path=/branches/reactos-yarotows/; revision=46355
2010-03-23 16:05:10 +00:00
Jérôme Gardou 6ca135323d [WIN32K]
Don't access garbage pointer.

svn path=/branches/reactos-yarotows/; revision=46354
2010-03-23 15:30:41 +00:00
Timo Kreuzer 299a3749d1 Move the DC_InitHack
svn path=/branches/reactos-yarotows/; revision=46249
2010-03-17 15:49:25 +00:00
Timo Kreuzer 74ef03da5c Commit the stuff. Lots of changes. I'll write a proper list of changes when it's done.
svn path=/branches/reactos-yarotows/; revision=45355
2010-01-30 21:12:42 +00:00
Timo Kreuzer 6afbc8f483 Hopefully create a branch and not destroy the svn repository.
svn path=/branches/reactos-yarotows/; revision=45219
2010-01-23 23:25:04 +00:00
Renamed from reactos/subsystems/win32/win32k/objects/dclife.c (Browse further)