Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
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-cw
Commits
063824dd
Commit
063824dd
authored
Oct 31, 2005
by
Huw Davies
Committed by
Alexandre Julliard
Oct 31, 2005
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Implement playback of EMR_ALPHABLEND.
parent
8f0c45b5
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
62 additions
and
1 deletion
+62
-1
enhmetafile.c
dlls/gdi/enhmetafile.c
+41
-1
wingdi.h
include/wingdi.h
+21
-0
No files found.
dlls/gdi/enhmetafile.c
View file @
063824dd
...
...
@@ -646,6 +646,7 @@ static BOOL emr_produces_output(int type)
case
EMR_POLYTEXTOUTA
:
case
EMR_POLYTEXTOUTW
:
case
EMR_SMALLTEXTOUT
:
case
EMR_ALPHABLEND
:
case
EMR_TRANSPARENTBLT
:
return
TRUE
;
default:
...
...
@@ -1795,6 +1796,46 @@ BOOL WINAPI PlayEnhMetaFileRecord(
break
;
}
case
EMR_ALPHABLEND
:
{
PEMRALPHABLEND
pAlphaBlend
=
(
PEMRALPHABLEND
)
mr
;
TRACE
(
"EMR_ALPHABLEND: %ld, %ld %ldx%ld -> %ld, %ld %ldx%ld. blendfn %08lx offBitsSrc %ld
\n
"
,
pAlphaBlend
->
xSrc
,
pAlphaBlend
->
ySrc
,
pAlphaBlend
->
cxSrc
,
pAlphaBlend
->
cySrc
,
pAlphaBlend
->
xDest
,
pAlphaBlend
->
yDest
,
pAlphaBlend
->
cxDest
,
pAlphaBlend
->
cyDest
,
pAlphaBlend
->
dwRop
,
pAlphaBlend
->
offBitsSrc
);
if
(
pAlphaBlend
->
offBmiSrc
==
0
)
{
FIXME
(
"EMR_ALPHABLEND: offBmiSrc == 0
\n
"
);
}
else
{
HDC
hdcSrc
=
CreateCompatibleDC
(
hdc
);
HBITMAP
hBmp
=
0
,
hBmpOld
=
0
;
BITMAPINFO
*
pbi
=
(
BITMAPINFO
*
)((
BYTE
*
)
mr
+
pAlphaBlend
->
offBmiSrc
);
BLENDFUNCTION
blendfn
;
void
*
bits
;
SetWorldTransform
(
hdcSrc
,
&
pAlphaBlend
->
xformSrc
);
hBmp
=
CreateDIBSection
(
hdc
,
pbi
,
pAlphaBlend
->
iUsageSrc
,
&
bits
,
NULL
,
0
);
memcpy
(
bits
,
(
BYTE
*
)
mr
+
pAlphaBlend
->
offBitsSrc
,
pAlphaBlend
->
cbBitsSrc
);
hBmpOld
=
SelectObject
(
hdcSrc
,
hBmp
);
blendfn
.
BlendOp
=
(
pAlphaBlend
->
dwRop
>>
24
)
&
0xff
;
blendfn
.
BlendFlags
=
(
pAlphaBlend
->
dwRop
>>
16
)
&
0xff
;
blendfn
.
SourceConstantAlpha
=
(
pAlphaBlend
->
dwRop
>>
8
)
&
0xff
;
blendfn
.
AlphaFormat
=
(
pAlphaBlend
->
dwRop
)
&
0xff
;
GdiAlphaBlend
(
hdc
,
pAlphaBlend
->
xDest
,
pAlphaBlend
->
yDest
,
pAlphaBlend
->
cxDest
,
pAlphaBlend
->
cyDest
,
hdcSrc
,
pAlphaBlend
->
xSrc
,
pAlphaBlend
->
ySrc
,
pAlphaBlend
->
cxSrc
,
pAlphaBlend
->
cySrc
,
blendfn
);
SelectObject
(
hdcSrc
,
hBmpOld
);
DeleteObject
(
hBmp
);
DeleteDC
(
hdcSrc
);
}
break
;
}
case
EMR_MASKBLT
:
{
PEMRMASKBLT
pMaskBlt
=
(
PEMRMASKBLT
)
mr
;
...
...
@@ -2061,7 +2102,6 @@ BOOL WINAPI PlayEnhMetaFileRecord(
case
EMR_COLORCORRECTPALETTE
:
case
EMR_SETICMPROFILEA
:
case
EMR_SETICMPROFILEW
:
case
EMR_ALPHABLEND
:
case
EMR_TRANSPARENTBLT
:
case
EMR_GRADIENTFILL
:
case
EMR_SETLINKEDUFI
:
...
...
include/wingdi.h
View file @
063824dd
...
...
@@ -2582,6 +2582,27 @@ typedef struct {
}
EMRSTRETCHBLT
,
*
PEMRSTRETCHBLT
;
typedef
struct
{
EMR
emr
;
RECTL
rclBounds
;
LONG
xDest
;
LONG
yDest
;
LONG
cxDest
;
LONG
cyDest
;
DWORD
dwRop
;
LONG
xSrc
;
LONG
ySrc
;
XFORM
xformSrc
;
COLORREF
crBkColorSrc
;
DWORD
iUsageSrc
;
DWORD
offBmiSrc
;
DWORD
cbBmiSrc
;
DWORD
offBitsSrc
;
DWORD
cbBitsSrc
;
LONG
cxSrc
;
LONG
cySrc
;
}
EMRALPHABLEND
,
*
PEMRALPHABLEND
;
typedef
struct
{
EMR
emr
;
RECTL
rclBounds
;
LONG
xDest
;
...
...
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