mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 10:04:49 +00:00
- Fixed BitBlts with ROP != SRCCOPY.
- Added skeleton for NtUserCallHwndOpt. svn path=/trunk/; revision=6750
This commit is contained in:
parent
ec4c966d0b
commit
aadb87f5d7
7 changed files with 37 additions and 30 deletions
|
@ -121,11 +121,13 @@ NtUserCallHwndLock(
|
||||||
HWND hWnd,
|
HWND hWnd,
|
||||||
DWORD Unknown1);
|
DWORD Unknown1);
|
||||||
|
|
||||||
DWORD
|
#define HWNDOPT_ROUTINE_SETPROGMANWINDOW 0x4A
|
||||||
|
#define HWNDOPT_ROUTINE_SETTASKMANWINDOW 0x4B
|
||||||
|
HWND
|
||||||
STDCALL
|
STDCALL
|
||||||
NtUserCallHwndOpt(
|
NtUserCallHwndOpt(
|
||||||
DWORD Unknown0,
|
HWND Param,
|
||||||
DWORD Unknown1);
|
DWORD Routine);
|
||||||
|
|
||||||
DWORD
|
DWORD
|
||||||
STDCALL
|
STDCALL
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
* along with this program; if not, write to the Free Software
|
* along with this program; if not, write to the Free Software
|
||||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
*/
|
*/
|
||||||
/* $Id: dib16bpp.c,v 1.9 2003/10/06 16:25:53 gvg Exp $ */
|
/* $Id: dib16bpp.c,v 1.10 2003/11/22 11:01:28 navaraf Exp $ */
|
||||||
#undef WIN32_LEAN_AND_MEAN
|
#undef WIN32_LEAN_AND_MEAN
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
@ -278,12 +278,12 @@ DIB_16BPP_BitBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
||||||
PBRUSHOBJ Brush, PPOINTL BrushOrigin,
|
PBRUSHOBJ Brush, PPOINTL BrushOrigin,
|
||||||
XLATEOBJ *ColorTranslation, ULONG Rop4)
|
XLATEOBJ *ColorTranslation, ULONG Rop4)
|
||||||
{
|
{
|
||||||
LONG i, j, k, sx, sy;
|
LONG i, j, sx, sy;
|
||||||
ULONG Dest, Source, Pattern;
|
ULONG Dest, Source, Pattern;
|
||||||
PULONG DestBits;
|
PULONG DestBits;
|
||||||
BOOL UsesSource = ((Rop4 & 0xCC0000) >> 2) != (Rop4 & 0x330000);
|
BOOL UsesSource = ((Rop4 & 0xCC0000) >> 2) != (Rop4 & 0x330000);
|
||||||
BOOL UsesPattern = ((Rop4 & 0xF00000) >> 4) != (Rop4 & 0x0F0000);
|
BOOL UsesPattern = ((Rop4 & 0xF00000) >> 4) != (Rop4 & 0x0F0000);
|
||||||
LONG RoundedRight = DestRect->right - (DestRect->right & 0x1);
|
LONG RoundedRight = DestRect->right - ((DestRect->right - DestRect->left) & 0x1);
|
||||||
|
|
||||||
if (Rop4 == SRCCOPY)
|
if (Rop4 == SRCCOPY)
|
||||||
{
|
{
|
||||||
|
@ -302,11 +302,8 @@ DIB_16BPP_BitBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
||||||
Dest = *DestBits;
|
Dest = *DestBits;
|
||||||
if (UsesSource)
|
if (UsesSource)
|
||||||
{
|
{
|
||||||
Source = 0;
|
Source = DIB_GetSource(SourceSurf, SourceGDI, sx + (i - DestRect->left), sy, ColorTranslation);
|
||||||
for (k = 0; k < 2; k++)
|
Source |= DIB_GetSource(SourceSurf, SourceGDI, sx + (i - DestRect->left) + 1, sy, ColorTranslation) << 16;
|
||||||
{
|
|
||||||
Source |= (DIB_GetSource(SourceSurf, SourceGDI, sx + (i - DestRect->left) + k, sy, ColorTranslation) << (k * 16));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (UsesPattern)
|
if (UsesPattern)
|
||||||
{
|
{
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
* along with this program; if not, write to the Free Software
|
* along with this program; if not, write to the Free Software
|
||||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
*/
|
*/
|
||||||
/* $Id: dib1bpp.c,v 1.12 2003/10/29 22:45:45 gvg Exp $ */
|
/* $Id: dib1bpp.c,v 1.13 2003/11/22 11:01:28 navaraf Exp $ */
|
||||||
|
|
||||||
#undef WIN32_LEAN_AND_MEAN
|
#undef WIN32_LEAN_AND_MEAN
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
|
@ -273,7 +273,7 @@ DIB_1BPP_BitBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
||||||
PULONG DestBits;
|
PULONG DestBits;
|
||||||
BOOL UsesSource = ((Rop4 & 0xCC0000) >> 2) != (Rop4 & 0x330000);
|
BOOL UsesSource = ((Rop4 & 0xCC0000) >> 2) != (Rop4 & 0x330000);
|
||||||
BOOL UsesPattern = ((Rop4 & 0xF00000) >> 4) != (Rop4 & 0x0F0000);
|
BOOL UsesPattern = ((Rop4 & 0xF00000) >> 4) != (Rop4 & 0x0F0000);
|
||||||
LONG RoundedRight = DestRect->right - (DestRect->right & 0x7);
|
LONG RoundedRight = DestRect->right - ((DestRect->right - DestRect->left) & 0x7);
|
||||||
|
|
||||||
if (Rop4 == SRCCOPY)
|
if (Rop4 == SRCCOPY)
|
||||||
{
|
{
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
* along with this program; if not, write to the Free Software
|
* along with this program; if not, write to the Free Software
|
||||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
*/
|
*/
|
||||||
/* $Id: dib4bpp.c,v 1.20 2003/10/06 21:04:24 gvg Exp $ */
|
/* $Id: dib4bpp.c,v 1.21 2003/11/22 11:01:28 navaraf Exp $ */
|
||||||
#undef WIN32_LEAN_AND_MEAN
|
#undef WIN32_LEAN_AND_MEAN
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
@ -244,7 +244,7 @@ DIB_4BPP_BitBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
||||||
PULONG DestBits;
|
PULONG DestBits;
|
||||||
BOOL UsesSource = ((Rop4 & 0xCC0000) >> 2) != (Rop4 & 0x330000);
|
BOOL UsesSource = ((Rop4 & 0xCC0000) >> 2) != (Rop4 & 0x330000);
|
||||||
BOOL UsesPattern = ((Rop4 & 0xF00000) >> 4) != (Rop4 & 0x0F0000);
|
BOOL UsesPattern = ((Rop4 & 0xF00000) >> 4) != (Rop4 & 0x0F0000);
|
||||||
LONG RoundedRight = DestRect->right - (DestRect->right & 0x7);
|
LONG RoundedRight = DestRect->right - ((DestRect->right - DestRect->left) & 0x7);
|
||||||
static const ULONG ExpandSolidColor[16] =
|
static const ULONG ExpandSolidColor[16] =
|
||||||
{
|
{
|
||||||
0x00000000 /* 0 */,
|
0x00000000 /* 0 */,
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
* along with this program; if not, write to the Free Software
|
* along with this program; if not, write to the Free Software
|
||||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
*/
|
*/
|
||||||
/* $Id: dib8bpp.c,v 1.7 2003/10/06 16:25:53 gvg Exp $ */
|
/* $Id: dib8bpp.c,v 1.8 2003/11/22 11:01:28 navaraf Exp $ */
|
||||||
#undef WIN32_LEAN_AND_MEAN
|
#undef WIN32_LEAN_AND_MEAN
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
@ -279,7 +279,7 @@ DIB_8BPP_BitBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
||||||
PULONG DestBits;
|
PULONG DestBits;
|
||||||
BOOL UsesSource = ((Rop4 & 0xCC0000) >> 2) != (Rop4 & 0x330000);
|
BOOL UsesSource = ((Rop4 & 0xCC0000) >> 2) != (Rop4 & 0x330000);
|
||||||
BOOL UsesPattern = ((Rop4 & 0xF00000) >> 4) != (Rop4 & 0x0F0000);
|
BOOL UsesPattern = ((Rop4 & 0xF00000) >> 4) != (Rop4 & 0x0F0000);
|
||||||
LONG RoundedRight = DestRect->right - (DestRect->right & 0x3);
|
LONG RoundedRight = DestRect->right - ((DestRect->right - DestRect->left) & 0x3);
|
||||||
|
|
||||||
if (Rop4 == SRCCOPY)
|
if (Rop4 == SRCCOPY)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $Id: misc.c,v 1.26 2003/11/19 13:19:40 weiden Exp $
|
/* $Id: misc.c,v 1.27 2003/11/22 11:01:28 navaraf Exp $
|
||||||
*
|
*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
* PROJECT: ReactOS kernel
|
* PROJECT: ReactOS kernel
|
||||||
|
@ -275,6 +275,25 @@ NtUserCallTwoParam(
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HWND
|
||||||
|
STDCALL
|
||||||
|
NtUserCallHwndOpt(
|
||||||
|
HWND Param,
|
||||||
|
DWORD Routine)
|
||||||
|
{
|
||||||
|
switch (Routine)
|
||||||
|
{
|
||||||
|
case HWNDOPT_ROUTINE_SETPROGMANWINDOW:
|
||||||
|
/* FIXME */
|
||||||
|
break;
|
||||||
|
|
||||||
|
case HWNDOPT_ROUTINE_SETTASKMANWINDOW:
|
||||||
|
/* FIXME */
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @implemented
|
* @implemented
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $Id: stubs.c,v 1.37 2003/11/19 12:25:03 weiden Exp $
|
/* $Id: stubs.c,v 1.38 2003/11/22 11:01:28 navaraf Exp $
|
||||||
*
|
*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
* PROJECT: ReactOS kernel
|
* PROJECT: ReactOS kernel
|
||||||
|
@ -90,17 +90,6 @@ NtUserCallHwnd(
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
DWORD
|
|
||||||
STDCALL
|
|
||||||
NtUserCallHwndOpt(
|
|
||||||
DWORD Unknown0,
|
|
||||||
DWORD Unknown1)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
DWORD
|
DWORD
|
||||||
STDCALL
|
STDCALL
|
||||||
NtUserCallHwndParam(
|
NtUserCallHwndParam(
|
||||||
|
|
Loading…
Reference in a new issue