Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
4c03fd01
Commit
4c03fd01
authored
May 07, 2010
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
user32: Use the correct rop when blitting an icon in DrawIconEx.
parent
a59d79c9
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
7 additions
and
10 deletions
+7
-10
cursoricon.c
dlls/user32/cursoricon.c
+4
-4
cursoricon.c
dlls/user32/tests/cursoricon.c
+3
-6
No files found.
dlls/user32/cursoricon.c
View file @
4c03fd01
...
@@ -2275,8 +2275,7 @@ BOOL WINAPI DrawIconEx( HDC hdc, INT x0, INT y0, HICON hIcon,
...
@@ -2275,8 +2275,7 @@ BOOL WINAPI DrawIconEx( HDC hdc, INT x0, INT y0, HICON hIcon,
oldFg
=
SetTextColor
(
hdc
,
RGB
(
0
,
0
,
0
)
);
oldFg
=
SetTextColor
(
hdc
,
RGB
(
0
,
0
,
0
)
);
oldBg
=
SetBkColor
(
hdc
,
RGB
(
255
,
255
,
255
)
);
oldBg
=
SetBkColor
(
hdc
,
RGB
(
255
,
255
,
255
)
);
if
(((
flags
&
DI_MASK
)
&&
!
(
flags
&
DI_IMAGE
))
||
if
((
flags
&
DI_MASK
)
&&
!
has_alpha
)
((
flags
&
DI_MASK
)
&&
!
has_alpha
))
{
{
hAndBits
=
CreateBitmap
(
ptr
->
nWidth
,
ptr
->
nHeight
,
1
,
1
,
ptr
+
1
);
hAndBits
=
CreateBitmap
(
ptr
->
nWidth
,
ptr
->
nHeight
,
1
,
1
,
ptr
+
1
);
if
(
hAndBits
)
if
(
hAndBits
)
...
@@ -2341,13 +2340,14 @@ BOOL WINAPI DrawIconEx( HDC hdc, INT x0, INT y0, HICON hIcon,
...
@@ -2341,13 +2340,14 @@ BOOL WINAPI DrawIconEx( HDC hdc, INT x0, INT y0, HICON hIcon,
}
}
else
else
{
{
DWORD
rop
=
(
flags
&
DI_MASK
)
?
SRCINVERT
:
SRCCOPY
;
hBitTemp
=
SelectObject
(
hMemDC
,
hXorBits
);
hBitTemp
=
SelectObject
(
hMemDC
,
hXorBits
);
if
(
DoOffscreen
)
if
(
DoOffscreen
)
StretchBlt
(
hDC_off
,
0
,
0
,
cxWidth
,
cyWidth
,
StretchBlt
(
hDC_off
,
0
,
0
,
cxWidth
,
cyWidth
,
hMemDC
,
0
,
0
,
ptr
->
nWidth
,
ptr
->
nHeight
,
SRCPAINT
);
hMemDC
,
0
,
0
,
ptr
->
nWidth
,
ptr
->
nHeight
,
rop
);
else
else
StretchBlt
(
hdc
,
x0
,
y0
,
cxWidth
,
cyWidth
,
StretchBlt
(
hdc
,
x0
,
y0
,
cxWidth
,
cyWidth
,
hMemDC
,
0
,
0
,
ptr
->
nWidth
,
ptr
->
nHeight
,
SRCPAINT
);
hMemDC
,
0
,
0
,
ptr
->
nWidth
,
ptr
->
nHeight
,
rop
);
SelectObject
(
hMemDC
,
hBitTemp
);
SelectObject
(
hMemDC
,
hBitTemp
);
}
}
...
...
dlls/user32/tests/cursoricon.c
View file @
4c03fd01
...
@@ -1190,15 +1190,12 @@ static void test_DrawIconEx(void)
...
@@ -1190,15 +1190,12 @@ static void test_DrawIconEx(void)
check_DrawIconEx
(
hdcDst
,
FALSE
,
0x80A0B0C0
,
32
,
DI_MASK
,
0x00FFFFFF
,
0x00000000
,
0x00000000
,
__LINE__
);
check_DrawIconEx
(
hdcDst
,
FALSE
,
0x80A0B0C0
,
32
,
DI_MASK
,
0x00FFFFFF
,
0x00000000
,
0x00000000
,
__LINE__
);
check_DrawIconEx
(
hdcDst
,
TRUE
,
0x80A0B0C0
,
32
,
DI_MASK
,
0x00FFFFFF
,
0x00FFFFFF
,
0x00FFFFFF
,
__LINE__
);
check_DrawIconEx
(
hdcDst
,
TRUE
,
0x80A0B0C0
,
32
,
DI_MASK
,
0x00FFFFFF
,
0x00FFFFFF
,
0x00FFFFFF
,
__LINE__
);
todo_wine
check_DrawIconEx
(
hdcDst
,
FALSE
,
0x00A0B0C0
,
32
,
DI_IMAGE
,
0x00FFFFFF
,
0x00C0B0A0
,
0x00C0B0A0
,
__LINE__
);
{
check_DrawIconEx
(
hdcDst
,
TRUE
,
0x00A0B0C0
,
32
,
DI_IMAGE
,
0x00FFFFFF
,
0x00C0B0A0
,
0x00C0B0A0
,
__LINE__
);
check_DrawIconEx
(
hdcDst
,
FALSE
,
0x00A0B0C0
,
32
,
DI_IMAGE
,
0x00FFFFFF
,
0x00C0B0A0
,
0x00C0B0A0
,
__LINE__
);
check_DrawIconEx
(
hdcDst
,
TRUE
,
0x00A0B0C0
,
32
,
DI_IMAGE
,
0x00FFFFFF
,
0x00C0B0A0
,
0x00C0B0A0
,
__LINE__
);
}
/* Test normal drawing */
/* Test normal drawing */
check_DrawIconEx
(
hdcDst
,
FALSE
,
0x00A0B0C0
,
32
,
DI_NORMAL
,
0x00FFFFFF
,
0x00C0B0A0
,
0x00C0B0A0
,
__LINE__
);
check_DrawIconEx
(
hdcDst
,
FALSE
,
0x00A0B0C0
,
32
,
DI_NORMAL
,
0x00FFFFFF
,
0x00C0B0A0
,
0x00C0B0A0
,
__LINE__
);
todo_wine
check_DrawIconEx
(
hdcDst
,
TRUE
,
0x00A0B0C0
,
32
,
DI_NORMAL
,
0x00FFFFFF
,
0x003F4F5F
,
0x003F4F5F
,
__LINE__
);
check_DrawIconEx
(
hdcDst
,
TRUE
,
0x00A0B0C0
,
32
,
DI_NORMAL
,
0x00FFFFFF
,
0x003F4F5F
,
0x003F4F5F
,
__LINE__
);
check_DrawIconEx
(
hdcDst
,
FALSE
,
0xFFA0B0C0
,
32
,
DI_NORMAL
,
0x00FFFFFF
,
0x00C0B0A0
,
0x00C0B0A0
,
__LINE__
);
check_DrawIconEx
(
hdcDst
,
FALSE
,
0xFFA0B0C0
,
32
,
DI_NORMAL
,
0x00FFFFFF
,
0x00C0B0A0
,
0x00C0B0A0
,
__LINE__
);
/* Test alpha blending */
/* Test alpha blending */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment