https://git.reactos.org/?p=reactos.git;a=commitdiff;h=8a6312abda24d11d6c9ab…
commit 8a6312abda24d11d6c9abfe133013b32e4aef3e6
Author: Oleg Dubinskiy <oleg.dubinskij2013(a)yandex.ua>
AuthorDate: Mon Dec 20 20:27:13 2021 +0000
Commit: GitHub <noreply(a)github.com>
CommitDate: Mon Dec 20 21:27:13 2021 +0100
[WIN32SS][NTDDRAW] Improve DxEngGetDCState type 2 implementation (#4176)
- Use the REGION_Complexity() function to get the actual region complexity instead of just number of rectangles.
- Don't use prgnRao at all, because it is always uninitialized when passed to the function. So in condition between prgnRao and prgnVis, the 2nd one always succeeds.
- Update the comment accordingly.
- Additionally, add a DPRINT to the end of the function, which displays the returned value.
This allows to properly enable and use DirectDraw and Direct3D hardware acceleration with the following MS DirectX components: ddraw.dll, d3d8.dll, d3d9.dll and dxg.sys. As in VM, same on real hardware.
But note that now the bugcheck 0x50 (PAGE_FAULT_IN_NONPAGED_AREA) occurs when executing fullscreen DDraw apps, after switching display mode. It's unhidden by this fix.
Addendum to 855bf46.
CORE-17561
---
win32ss/reactx/ntddraw/dxeng.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/win32ss/reactx/ntddraw/dxeng.c b/win32ss/reactx/ntddraw/dxeng.c
index 24cb542643e..7004e58e480 100644
--- a/win32ss/reactx/ntddraw/dxeng.c
+++ b/win32ss/reactx/ntddraw/dxeng.c
@@ -464,8 +464,8 @@ DxEngGetDCState(HDC hDC,
retVal = (DWORD_PTR) pDC->fs & DC_FLAG_FULLSCREEN;
break;
case 2:
- /* Return the number of rectangles in the visible region. */
- retVal = (DWORD_PTR) pDC->prgnRao ? pDC->prgnRao->rdh.nCount : pDC->prgnVis->rdh.nCount;
+ /* Return the complexity of the visible region. */
+ retVal = (DWORD_PTR) REGION_Complexity(pDC->prgnVis);
break;
case 3:
{
@@ -481,6 +481,8 @@ DxEngGetDCState(HDC hDC,
DC_UnlockDc(pDC);
}
+ DPRINT1("Return value %08lx\n", retVal);
+
return retVal;
}
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=7d1b50394b90b94f5d08e…
commit 7d1b50394b90b94f5d08ecb2b248e421ae2a1c5d
Author: Doug Lyons <douglyons(a)douglyons.com>
AuthorDate: Sun Dec 19 09:03:22 2021 -0600
Commit: GitHub <noreply(a)github.com>
CommitDate: Sun Dec 19 16:03:22 2021 +0100
[WIN32SS] Do not remove message from the Msg Queue if it is not for us. (#4129)
CORE-8217
Patch from 'I_Kill_Bugs' contributor.
---
win32ss/user/ntuser/msgqueue.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/win32ss/user/ntuser/msgqueue.c b/win32ss/user/ntuser/msgqueue.c
index 354475a8aa8..c82245f6d2d 100644
--- a/win32ss/user/ntuser/msgqueue.c
+++ b/win32ss/user/ntuser/msgqueue.c
@@ -1524,7 +1524,7 @@ BOOL co_IntProcessMouseMessage(MSG* msg, BOOL* RemoveMessages, BOOL* NotForUs, L
{
// This is not for us and we should leave so the other thread can check for messages!!!
*NotForUs = TRUE;
- *RemoveMessages = TRUE;
+ *RemoveMessages = FALSE;
return FALSE;
}