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
965d4171
Commit
965d4171
authored
Mar 10, 2011
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
gdi32: Add null driver entry points for the various DC settings functions.
parent
75f792d7
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
229 additions
and
144 deletions
+229
-144
dc.c
dlls/gdi32/dc.c
+105
-84
driver.c
dlls/gdi32/driver.c
+72
-12
dc.c
dlls/gdi32/enhmfdrv/dc.c
+6
-6
graphics.c
dlls/gdi32/enhmfdrv/graphics.c
+1
-5
font.c
dlls/gdi32/font.c
+32
-23
gdi_private.h
dlls/gdi32/gdi_private.h
+3
-2
dc.c
dlls/gdi32/mfdrv/dc.c
+9
-11
metafiledrv.h
dlls/gdi32/mfdrv/metafiledrv.h
+1
-1
No files found.
dlls/gdi32/dc.c
View file @
965d4171
...
...
@@ -122,6 +122,7 @@ DC *alloc_dc_ptr( const DC_FUNCTIONS *funcs, WORD magic )
dc
->
textColor
=
RGB
(
0
,
0
,
0
);
dc
->
brushOrgX
=
0
;
dc
->
brushOrgY
=
0
;
dc
->
mapperFlags
=
0
;
dc
->
textAlign
=
TA_LEFT
|
TA_TOP
|
TA_NOUPDATECP
;
dc
->
charExtra
=
0
;
dc
->
breakExtra
=
0
;
...
...
@@ -399,6 +400,7 @@ INT save_dc_state( HDC hdc )
newdc
->
dcPenColor
=
dc
->
dcPenColor
;
newdc
->
brushOrgX
=
dc
->
brushOrgX
;
newdc
->
brushOrgY
=
dc
->
brushOrgY
;
newdc
->
mapperFlags
=
dc
->
mapperFlags
;
newdc
->
textAlign
=
dc
->
textAlign
;
newdc
->
charExtra
=
dc
->
charExtra
;
newdc
->
breakExtra
=
dc
->
breakExtra
;
...
...
@@ -535,6 +537,7 @@ BOOL restore_dc_state( HDC hdc, INT level )
dc
->
dcPenColor
=
dcs
->
dcPenColor
;
dc
->
brushOrgX
=
dcs
->
brushOrgX
;
dc
->
brushOrgY
=
dcs
->
brushOrgY
;
dc
->
mapperFlags
=
dcs
->
mapperFlags
;
dc
->
textAlign
=
dcs
->
textAlign
;
dc
->
charExtra
=
dcs
->
charExtra
;
dc
->
breakExtra
=
dcs
->
breakExtra
;
...
...
@@ -994,25 +997,23 @@ COLORREF WINAPI GetBkColor( HDC hdc )
*/
COLORREF
WINAPI
SetBkColor
(
HDC
hdc
,
COLORREF
color
)
{
COLORREF
oldColor
;
COLORREF
ret
=
CLR_INVALID
;
DC
*
dc
=
get_dc_ptr
(
hdc
);
TRACE
(
"hdc=%p color=0x%08x
\n
"
,
hdc
,
color
);
if
(
!
dc
)
return
CLR_INVALID
;
oldColor
=
dc
->
backgroundColor
;
if
(
dc
->
funcs
->
pSetBkColor
)
if
(
dc
)
{
color
=
dc
->
funcs
->
pSetBkColor
(
dc
->
physDev
,
color
);
if
(
color
==
CLR_INVALID
)
/* don't change it */
PHYSDEV
physdev
=
GET_DC_PHYSDEV
(
dc
,
pSetBkColor
);
color
=
physdev
->
funcs
->
pSetBkColor
(
physdev
,
color
);
if
(
color
!=
CLR_INVALID
)
{
color
=
ol
dColor
;
oldColor
=
CLR_INVALID
;
ret
=
dc
->
backgroun
dColor
;
dc
->
backgroundColor
=
color
;
}
release_dc_ptr
(
dc
);
}
dc
->
backgroundColor
=
color
;
release_dc_ptr
(
dc
);
return
oldColor
;
return
ret
;
}
...
...
@@ -1037,25 +1038,23 @@ COLORREF WINAPI GetTextColor( HDC hdc )
*/
COLORREF
WINAPI
SetTextColor
(
HDC
hdc
,
COLORREF
color
)
{
COLORREF
oldColor
;
COLORREF
ret
=
CLR_INVALID
;
DC
*
dc
=
get_dc_ptr
(
hdc
);
TRACE
(
" hdc=%p color=0x%08x
\n
"
,
hdc
,
color
);
if
(
!
dc
)
return
CLR_INVALID
;
oldColor
=
dc
->
textColor
;
if
(
dc
->
funcs
->
pSetTextColor
)
if
(
dc
)
{
color
=
dc
->
funcs
->
pSetTextColor
(
dc
->
physDev
,
color
);
if
(
color
==
CLR_INVALID
)
/* don't change it */
PHYSDEV
physdev
=
GET_DC_PHYSDEV
(
dc
,
pSetTextColor
);
color
=
physdev
->
funcs
->
pSetTextColor
(
physdev
,
color
);
if
(
color
!=
CLR_INVALID
)
{
color
=
old
Color
;
oldColor
=
CLR_INVALID
;
ret
=
dc
->
text
Color
;
dc
->
textColor
=
color
;
}
release_dc_ptr
(
dc
);
}
dc
->
textColor
=
color
;
release_dc_ptr
(
dc
);
return
oldColor
;
return
ret
;
}
...
...
@@ -1080,19 +1079,22 @@ UINT WINAPI GetTextAlign( HDC hdc )
*/
UINT
WINAPI
SetTextAlign
(
HDC
hdc
,
UINT
align
)
{
UINT
ret
;
UINT
ret
=
GDI_ERROR
;
DC
*
dc
=
get_dc_ptr
(
hdc
);
TRACE
(
"hdc=%p align=%d
\n
"
,
hdc
,
align
);
if
(
!
dc
)
return
0x0
;
ret
=
dc
->
textAlign
;
if
(
dc
->
funcs
->
pSetTextAlign
)
if
(
!
dc
->
funcs
->
pSetTextAlign
(
dc
->
physDev
,
align
))
ret
=
GDI_ERROR
;
if
(
ret
!=
GDI_ERROR
)
dc
->
textAlign
=
align
;
release_dc_ptr
(
dc
);
if
(
dc
)
{
PHYSDEV
physdev
=
GET_DC_PHYSDEV
(
dc
,
pSetTextAlign
);
align
=
physdev
->
funcs
->
pSetTextAlign
(
physdev
,
align
);
if
(
align
!=
GDI_ERROR
)
{
ret
=
dc
->
textAlign
;
dc
->
textAlign
=
align
;
}
release_dc_ptr
(
dc
);
}
return
ret
;
}
...
...
@@ -1171,12 +1173,12 @@ INT WINAPI GetArcDirection( HDC hdc )
/***********************************************************************
* SetArcDirection (GDI32.@)
*/
INT
WINAPI
SetArcDirection
(
HDC
hdc
,
INT
nDirection
)
INT
WINAPI
SetArcDirection
(
HDC
hdc
,
INT
dir
)
{
DC
*
dc
;
INT
nOldDirection
=
0
;
INT
ret
=
0
;
if
(
nDirection
!=
AD_COUNTERCLOCKWISE
&&
nDirection
!=
AD_CLOCKWISE
)
if
(
dir
!=
AD_COUNTERCLOCKWISE
&&
dir
!=
AD_CLOCKWISE
)
{
SetLastError
(
ERROR_INVALID_PARAMETER
);
return
0
;
...
...
@@ -1184,15 +1186,16 @@ INT WINAPI SetArcDirection( HDC hdc, INT nDirection )
if
((
dc
=
get_dc_ptr
(
hdc
)))
{
if
(
dc
->
funcs
->
pSetArcDirection
)
PHYSDEV
physdev
=
GET_DC_PHYSDEV
(
dc
,
pSetArcDirection
);
dir
=
physdev
->
funcs
->
pSetArcDirection
(
physdev
,
dir
);
if
(
dir
)
{
dc
->
funcs
->
pSetArcDirection
(
dc
->
physDev
,
nDirection
);
ret
=
dc
->
ArcDirection
;
dc
->
ArcDirection
=
dir
;
}
nOldDirection
=
dc
->
ArcDirection
;
dc
->
ArcDirection
=
nDirection
;
release_dc_ptr
(
dc
);
}
return
nOldDirection
;
return
ret
;
}
...
...
@@ -1694,22 +1697,25 @@ INT WINAPI GetBkMode( HDC hdc )
*/
INT
WINAPI
SetBkMode
(
HDC
hdc
,
INT
mode
)
{
INT
ret
;
INT
ret
=
0
;
DC
*
dc
;
if
((
mode
<=
0
)
||
(
mode
>
BKMODE_LAST
))
{
SetLastError
(
ERROR_INVALID_PARAMETER
);
return
0
;
}
if
(
!
(
dc
=
get_dc_ptr
(
hdc
)))
return
0
;
ret
=
dc
->
backgroundMode
;
if
(
dc
->
funcs
->
pSetBkMode
)
if
(
!
dc
->
funcs
->
pSetBkMode
(
dc
->
physDev
,
mode
))
ret
=
0
;
if
(
ret
)
dc
->
backgroundMode
=
mode
;
release_dc_ptr
(
dc
);
if
((
dc
=
get_dc_ptr
(
hdc
)))
{
PHYSDEV
physdev
=
GET_DC_PHYSDEV
(
dc
,
pSetBkMode
);
mode
=
physdev
->
funcs
->
pSetBkMode
(
physdev
,
mode
);
if
(
mode
)
{
ret
=
dc
->
backgroundMode
;
dc
->
backgroundMode
=
mode
;
}
release_dc_ptr
(
dc
);
}
return
ret
;
}
...
...
@@ -1735,21 +1741,25 @@ INT WINAPI GetROP2( HDC hdc )
*/
INT
WINAPI
SetROP2
(
HDC
hdc
,
INT
mode
)
{
INT
ret
;
INT
ret
=
0
;
DC
*
dc
;
if
((
mode
<
R2_BLACK
)
||
(
mode
>
R2_WHITE
))
{
SetLastError
(
ERROR_INVALID_PARAMETER
);
return
0
;
}
if
(
!
(
dc
=
get_dc_ptr
(
hdc
)))
return
0
;
ret
=
dc
->
ROPmode
;
if
(
dc
->
funcs
->
pSetROP2
)
if
(
!
dc
->
funcs
->
pSetROP2
(
dc
->
physDev
,
mode
))
ret
=
0
;
if
(
ret
)
dc
->
ROPmode
=
mode
;
release_dc_ptr
(
dc
);
if
((
dc
=
get_dc_ptr
(
hdc
)))
{
PHYSDEV
physdev
=
GET_DC_PHYSDEV
(
dc
,
pSetROP2
);
mode
=
physdev
->
funcs
->
pSetROP2
(
physdev
,
mode
);
if
(
mode
)
{
ret
=
dc
->
ROPmode
;
dc
->
ROPmode
=
mode
;
}
release_dc_ptr
(
dc
);
}
return
ret
;
}
...
...
@@ -1759,22 +1769,25 @@ INT WINAPI SetROP2( HDC hdc, INT mode )
*/
INT
WINAPI
SetRelAbs
(
HDC
hdc
,
INT
mode
)
{
INT
ret
;
INT
ret
=
0
;
DC
*
dc
;
if
((
mode
!=
ABSOLUTE
)
&&
(
mode
!=
RELATIVE
))
{
SetLastError
(
ERROR_INVALID_PARAMETER
);
return
0
;
}
if
(
!
(
dc
=
get_dc_ptr
(
hdc
)))
return
0
;
if
(
dc
->
funcs
->
pSetRelAbs
)
ret
=
dc
->
funcs
->
pSetRelAbs
(
dc
->
physDev
,
mode
);
else
if
((
dc
=
get_dc_ptr
(
hdc
)))
{
ret
=
dc
->
relAbsMode
;
dc
->
relAbsMode
=
mode
;
PHYSDEV
physdev
=
GET_DC_PHYSDEV
(
dc
,
pSetRelAbs
);
mode
=
physdev
->
funcs
->
pSetRelAbs
(
physdev
,
mode
);
if
(
mode
)
{
ret
=
dc
->
relAbsMode
;
dc
->
relAbsMode
=
mode
;
}
release_dc_ptr
(
dc
);
}
release_dc_ptr
(
dc
);
return
ret
;
}
...
...
@@ -1800,21 +1813,25 @@ INT WINAPI GetPolyFillMode( HDC hdc )
*/
INT
WINAPI
SetPolyFillMode
(
HDC
hdc
,
INT
mode
)
{
INT
ret
;
INT
ret
=
0
;
DC
*
dc
;
if
((
mode
<=
0
)
||
(
mode
>
POLYFILL_LAST
))
{
SetLastError
(
ERROR_INVALID_PARAMETER
);
return
0
;
}
if
(
!
(
dc
=
get_dc_ptr
(
hdc
)))
return
0
;
ret
=
dc
->
polyFillMode
;
if
(
dc
->
funcs
->
pSetPolyFillMode
)
if
(
!
dc
->
funcs
->
pSetPolyFillMode
(
dc
->
physDev
,
mode
))
ret
=
0
;
if
(
ret
)
dc
->
polyFillMode
=
mode
;
release_dc_ptr
(
dc
);
if
((
dc
=
get_dc_ptr
(
hdc
)))
{
PHYSDEV
physdev
=
GET_DC_PHYSDEV
(
dc
,
pSetPolyFillMode
);
mode
=
physdev
->
funcs
->
pSetPolyFillMode
(
physdev
,
mode
);
if
(
mode
)
{
ret
=
dc
->
polyFillMode
;
dc
->
polyFillMode
=
mode
;
}
release_dc_ptr
(
dc
);
}
return
ret
;
}
...
...
@@ -1840,21 +1857,25 @@ INT WINAPI GetStretchBltMode( HDC hdc )
*/
INT
WINAPI
SetStretchBltMode
(
HDC
hdc
,
INT
mode
)
{
INT
ret
;
INT
ret
=
0
;
DC
*
dc
;
if
((
mode
<=
0
)
||
(
mode
>
MAXSTRETCHBLTMODE
))
{
SetLastError
(
ERROR_INVALID_PARAMETER
);
return
0
;
}
if
(
!
(
dc
=
get_dc_ptr
(
hdc
)))
return
0
;
ret
=
dc
->
stretchBltMode
;
if
(
dc
->
funcs
->
pSetStretchBltMode
)
if
(
!
dc
->
funcs
->
pSetStretchBltMode
(
dc
->
physDev
,
mode
))
ret
=
0
;
if
(
ret
)
dc
->
stretchBltMode
=
mode
;
release_dc_ptr
(
dc
);
if
((
dc
=
get_dc_ptr
(
hdc
)))
{
PHYSDEV
physdev
=
GET_DC_PHYSDEV
(
dc
,
pSetStretchBltMode
);
mode
=
physdev
->
funcs
->
pSetStretchBltMode
(
physdev
,
mode
);
if
(
mode
)
{
ret
=
dc
->
stretchBltMode
;
dc
->
stretchBltMode
=
mode
;
}
release_dc_ptr
(
dc
);
}
return
ret
;
}
...
...
dlls/gdi32/driver.c
View file @
965d4171
...
...
@@ -438,6 +438,21 @@ static HPEN CDECL nulldrv_SelectPen( PHYSDEV dev, HPEN pen )
return
pen
;
}
static
INT
CDECL
nulldrv_SetArcDirection
(
PHYSDEV
dev
,
INT
dir
)
{
return
dir
;
}
static
COLORREF
CDECL
nulldrv_SetBkColor
(
PHYSDEV
dev
,
COLORREF
color
)
{
return
color
;
}
static
INT
CDECL
nulldrv_SetBkMode
(
PHYSDEV
dev
,
INT
mode
)
{
return
mode
;
}
static
COLORREF
CDECL
nulldrv_SetDCBrushColor
(
PHYSDEV
dev
,
COLORREF
color
)
{
return
color
;
...
...
@@ -452,11 +467,56 @@ static void CDECL nulldrv_SetDeviceClipping( PHYSDEV dev, HRGN vis_rgn, HRGN cli
{
}
static
DWORD
CDECL
nulldrv_SetMapperFlags
(
PHYSDEV
dev
,
DWORD
flags
)
{
return
flags
;
}
static
COLORREF
CDECL
nulldrv_SetPixel
(
PHYSDEV
dev
,
INT
x
,
INT
y
,
COLORREF
color
)
{
return
color
;
}
static
INT
CDECL
nulldrv_SetPolyFillMode
(
PHYSDEV
dev
,
INT
mode
)
{
return
mode
;
}
static
INT
CDECL
nulldrv_SetROP2
(
PHYSDEV
dev
,
INT
rop
)
{
return
rop
;
}
static
INT
CDECL
nulldrv_SetRelAbs
(
PHYSDEV
dev
,
INT
mode
)
{
return
mode
;
}
static
INT
CDECL
nulldrv_SetStretchBltMode
(
PHYSDEV
dev
,
INT
mode
)
{
return
mode
;
}
static
UINT
CDECL
nulldrv_SetTextAlign
(
PHYSDEV
dev
,
UINT
align
)
{
return
align
;
}
static
INT
CDECL
nulldrv_SetTextCharacterExtra
(
PHYSDEV
dev
,
INT
extra
)
{
return
extra
;
}
static
COLORREF
CDECL
nulldrv_SetTextColor
(
PHYSDEV
dev
,
COLORREF
color
)
{
return
color
;
}
static
BOOL
CDECL
nulldrv_SetTextJustification
(
PHYSDEV
dev
,
INT
extra
,
INT
breaks
)
{
return
TRUE
;
}
static
INT
CDECL
nulldrv_StartDoc
(
PHYSDEV
dev
,
const
DOCINFOW
*
info
)
{
return
0
;
...
...
@@ -612,10 +672,10 @@ const DC_FUNCTIONS null_driver =
nulldrv_SelectFont
,
/* pSelectFont */
nulldrv_SelectPalette
,
/* pSelectPalette */
nulldrv_SelectPen
,
/* pSelectPen */
NULL
,
/* pSetArcDirection */
nulldrv_SetArcDirection
,
/* pSetArcDirection */
NULL
,
/* pSetBitmapBits */
NULL
,
/* pSetBkColor */
NULL
,
/* pSetBkMode */
nulldrv_SetBkColor
,
/* pSetBkColor */
nulldrv_SetBkMode
,
/* pSetBkMode */
nulldrv_SetDCBrushColor
,
/* pSetDCBrushColor */
nulldrv_SetDCPenColor
,
/* pSetDCPenColor */
NULL
,
/* pSetDIBColorTable */
...
...
@@ -624,17 +684,17 @@ const DC_FUNCTIONS null_driver =
nulldrv_SetDeviceClipping
,
/* pSetDeviceClipping */
NULL
,
/* pSetDeviceGammaRamp */
nulldrv_SetMapMode
,
/* pSetMapMode */
NULL
,
/* pSetMapperFlags */
nulldrv_SetMapperFlags
,
/* pSetMapperFlags */
nulldrv_SetPixel
,
/* pSetPixel */
NULL
,
/* pSetPixelFormat */
NULL
,
/* pSetPolyFillMode */
NULL
,
/* pSetROP2 */
NULL
,
/* pSetRelAbs */
NULL
,
/* pSetStretchBltMode */
NULL
,
/* pSetTextAlign */
NULL
,
/* pSetTextCharacterExtra */
NULL
,
/* pSetTextColor */
NULL
,
/* pSetTextJustification */
nulldrv_SetPolyFillMode
,
/* pSetPolyFillMode */
nulldrv_SetROP2
,
/* pSetROP2 */
nulldrv_SetRelAbs
,
/* pSetRelAbs */
nulldrv_SetStretchBltMode
,
/* pSetStretchBltMode */
nulldrv_SetTextAlign
,
/* pSetTextAlign */
nulldrv_SetTextCharacterExtra
,
/* pSetTextCharacterExtra */
nulldrv_SetTextColor
,
/* pSetTextColor */
nulldrv_SetTextJustification
,
/* pSetTextJustification */
nulldrv_SetViewportExtEx
,
/* pSetViewportExt */
nulldrv_SetViewportOrgEx
,
/* pSetViewportOrg */
nulldrv_SetWindowExtEx
,
/* pSetWindowExt */
...
...
dlls/gdi32/enhmfdrv/dc.c
View file @
965d4171
...
...
@@ -68,7 +68,7 @@ UINT CDECL EMFDRV_SetTextAlign( PHYSDEV dev, UINT align )
emr
.
emr
.
iType
=
EMR_SETTEXTALIGN
;
emr
.
emr
.
nSize
=
sizeof
(
emr
);
emr
.
iMode
=
align
;
return
EMFDRV_WriteRecord
(
dev
,
&
emr
.
emr
);
return
EMFDRV_WriteRecord
(
dev
,
&
emr
.
emr
)
?
align
:
GDI_ERROR
;
}
BOOL
CDECL
EMFDRV_SetTextJustification
(
PHYSDEV
dev
,
INT
nBreakExtra
,
INT
nBreakCount
)
...
...
@@ -87,7 +87,7 @@ INT CDECL EMFDRV_SetBkMode( PHYSDEV dev, INT mode )
emr
.
emr
.
iType
=
EMR_SETBKMODE
;
emr
.
emr
.
nSize
=
sizeof
(
emr
);
emr
.
iMode
=
mode
;
return
EMFDRV_WriteRecord
(
dev
,
&
emr
.
emr
);
return
EMFDRV_WriteRecord
(
dev
,
&
emr
.
emr
)
?
mode
:
0
;
}
INT
CDECL
EMFDRV_SetROP2
(
PHYSDEV
dev
,
INT
rop
)
...
...
@@ -96,7 +96,7 @@ INT CDECL EMFDRV_SetROP2( PHYSDEV dev, INT rop )
emr
.
emr
.
iType
=
EMR_SETROP2
;
emr
.
emr
.
nSize
=
sizeof
(
emr
);
emr
.
iMode
=
rop
;
return
EMFDRV_WriteRecord
(
dev
,
&
emr
.
emr
);
return
EMFDRV_WriteRecord
(
dev
,
&
emr
.
emr
)
?
rop
:
0
;
}
INT
CDECL
EMFDRV_SetPolyFillMode
(
PHYSDEV
dev
,
INT
mode
)
...
...
@@ -105,7 +105,7 @@ INT CDECL EMFDRV_SetPolyFillMode( PHYSDEV dev, INT mode )
emr
.
emr
.
iType
=
EMR_SETPOLYFILLMODE
;
emr
.
emr
.
nSize
=
sizeof
(
emr
);
emr
.
iMode
=
mode
;
return
EMFDRV_WriteRecord
(
dev
,
&
emr
.
emr
);
return
EMFDRV_WriteRecord
(
dev
,
&
emr
.
emr
)
?
mode
:
0
;
}
INT
CDECL
EMFDRV_SetStretchBltMode
(
PHYSDEV
dev
,
INT
mode
)
...
...
@@ -114,7 +114,7 @@ INT CDECL EMFDRV_SetStretchBltMode( PHYSDEV dev, INT mode )
emr
.
emr
.
iType
=
EMR_SETSTRETCHBLTMODE
;
emr
.
emr
.
nSize
=
sizeof
(
emr
);
emr
.
iMode
=
mode
;
return
EMFDRV_WriteRecord
(
dev
,
&
emr
.
emr
);
return
EMFDRV_WriteRecord
(
dev
,
&
emr
.
emr
)
?
mode
:
0
;
}
INT
CDECL
EMFDRV_ExcludeClipRect
(
PHYSDEV
dev
,
INT
left
,
INT
top
,
INT
right
,
INT
bottom
)
...
...
@@ -186,7 +186,7 @@ DWORD CDECL EMFDRV_SetMapperFlags( PHYSDEV dev, DWORD flags )
emr
.
emr
.
nSize
=
sizeof
(
emr
);
emr
.
dwFlags
=
flags
;
return
EMFDRV_WriteRecord
(
dev
,
&
emr
.
emr
);
return
EMFDRV_WriteRecord
(
dev
,
&
emr
.
emr
)
?
flags
:
GDI_ERROR
;
}
BOOL
CDECL
EMFDRV_AbortPath
(
PHYSDEV
dev
)
...
...
dlls/gdi32/enhmfdrv/graphics.c
View file @
965d4171
...
...
@@ -866,9 +866,5 @@ INT CDECL EMFDRV_SetArcDirection(PHYSDEV dev, INT arcDirection)
emr
.
emr
.
iType
=
EMR_SETARCDIRECTION
;
emr
.
emr
.
nSize
=
sizeof
(
emr
);
emr
.
iArcDirection
=
arcDirection
;
EMFDRV_WriteRecord
(
dev
,
&
emr
.
emr
);
/* We don't know the old arc direction and we don't care... */
return
0
;
return
EMFDRV_WriteRecord
(
dev
,
&
emr
.
emr
)
?
arcDirection
:
0
;
}
dlls/gdi32/font.c
View file @
965d4171
...
...
@@ -806,18 +806,21 @@ INT WINAPI GetTextCharacterExtra( HDC hdc )
*/
INT
WINAPI
SetTextCharacterExtra
(
HDC
hdc
,
INT
extra
)
{
INT
prev
;
INT
ret
=
0x80000000
;
DC
*
dc
=
get_dc_ptr
(
hdc
);
if
(
!
dc
)
return
0x80000000
;
if
(
dc
->
funcs
->
pSetTextCharacterExtra
)
prev
=
dc
->
funcs
->
pSetTextCharacterExtra
(
dc
->
physDev
,
extra
);
else
if
(
dc
)
{
prev
=
dc
->
charExtra
;
dc
->
charExtra
=
extra
;
PHYSDEV
physdev
=
GET_DC_PHYSDEV
(
dc
,
pSetTextCharacterExtra
);
extra
=
physdev
->
funcs
->
pSetTextCharacterExtra
(
physdev
,
extra
);
if
(
extra
!=
0x80000000
)
{
ret
=
dc
->
charExtra
;
dc
->
charExtra
=
extra
;
}
release_dc_ptr
(
dc
);
}
release_dc_ptr
(
dc
);
return
prev
;
return
ret
;
}
...
...
@@ -826,12 +829,15 @@ INT WINAPI SetTextCharacterExtra( HDC hdc, INT extra )
*/
BOOL
WINAPI
SetTextJustification
(
HDC
hdc
,
INT
extra
,
INT
breaks
)
{
BOOL
ret
=
TRUE
;
BOOL
ret
;
PHYSDEV
physdev
;
DC
*
dc
=
get_dc_ptr
(
hdc
);
if
(
!
dc
)
return
FALSE
;
if
(
dc
->
funcs
->
pSetTextJustification
)
ret
=
dc
->
funcs
->
pSetTextJustification
(
dc
->
physDev
,
extra
,
breaks
);
else
physdev
=
GET_DC_PHYSDEV
(
dc
,
pSetTextJustification
);
ret
=
physdev
->
funcs
->
pSetTextJustification
(
physdev
,
extra
,
breaks
);
if
(
ret
)
{
extra
=
abs
((
extra
*
dc
->
vportExtX
+
dc
->
wndExtX
/
2
)
/
dc
->
wndExtX
);
if
(
!
extra
)
breaks
=
0
;
...
...
@@ -2314,19 +2320,22 @@ BOOL WINAPI PolyTextOutW( HDC hdc, const POLYTEXTW *pptxt, INT cStrings )
/***********************************************************************
* SetMapperFlags (GDI32.@)
*/
DWORD
WINAPI
SetMapperFlags
(
HDC
h
DC
,
DWORD
dwFlag
)
DWORD
WINAPI
SetMapperFlags
(
HDC
h
dc
,
DWORD
flags
)
{
DC
*
dc
=
get_dc_ptr
(
h
DC
);
DWORD
ret
=
0
;
if
(
!
dc
)
return
0
;
if
(
dc
->
funcs
->
pSetMapperFlags
)
DC
*
dc
=
get_dc_ptr
(
h
dc
);
DWORD
ret
=
GDI_ERROR
;
if
(
dc
)
{
ret
=
dc
->
funcs
->
pSetMapperFlags
(
dc
->
physDev
,
dwFlag
);
/* FIXME: ret is just a success flag, we should return a proper value */
PHYSDEV
physdev
=
GET_DC_PHYSDEV
(
dc
,
pSetMapperFlags
);
flags
=
physdev
->
funcs
->
pSetMapperFlags
(
physdev
,
flags
);
if
(
flags
!=
GDI_ERROR
)
{
ret
=
dc
->
mapperFlags
;
dc
->
mapperFlags
=
flags
;
}
release_dc_ptr
(
dc
);
}
else
FIXME
(
"(%p, 0x%08x): stub - harmless
\n
"
,
hDC
,
dwFlag
);
release_dc_ptr
(
dc
);
return
ret
;
}
...
...
dlls/gdi32/gdi_private.h
View file @
965d4171
...
...
@@ -185,8 +185,8 @@ typedef struct tagDC_FUNCS
INT
(
CDECL
*
pSetStretchBltMode
)(
PHYSDEV
,
INT
);
UINT
(
CDECL
*
pSetTextAlign
)(
PHYSDEV
,
UINT
);
INT
(
CDECL
*
pSetTextCharacterExtra
)(
PHYSDEV
,
INT
);
DWORD
(
CDECL
*
pSetTextColor
)(
PHYSDEV
,
DWORD
);
INT
(
CDECL
*
pSetTextJustification
)(
PHYSDEV
,
INT
,
INT
);
COLORREF
(
CDECL
*
pSetTextColor
)(
PHYSDEV
,
COLORREF
);
BOOL
(
CDECL
*
pSetTextJustification
)(
PHYSDEV
,
INT
,
INT
);
BOOL
(
CDECL
*
pSetViewportExtEx
)(
PHYSDEV
,
INT
,
INT
,
SIZE
*
);
BOOL
(
CDECL
*
pSetViewportOrgEx
)(
PHYSDEV
,
INT
,
INT
,
POINT
*
);
BOOL
(
CDECL
*
pSetWindowExtEx
)(
PHYSDEV
,
INT
,
INT
,
SIZE
*
);
...
...
@@ -298,6 +298,7 @@ typedef struct tagDC
short
brushOrgX
;
short
brushOrgY
;
DWORD
mapperFlags
;
/* Font mapper flags */
WORD
textAlign
;
/* Text alignment from SetTextAlign() */
INT
charExtra
;
/* Spacing from SetTextCharacterExtra() */
INT
breakExtra
;
/* breakTotalExtra / breakCount */
...
...
dlls/gdi32/mfdrv/dc.c
View file @
965d4171
...
...
@@ -32,32 +32,32 @@ BOOL CDECL MFDRV_RestoreDC( PHYSDEV dev, INT level )
UINT
CDECL
MFDRV_SetTextAlign
(
PHYSDEV
dev
,
UINT
align
)
{
return
MFDRV_MetaParam2
(
dev
,
META_SETTEXTALIGN
,
HIWORD
(
align
),
LOWORD
(
align
));
return
MFDRV_MetaParam2
(
dev
,
META_SETTEXTALIGN
,
HIWORD
(
align
),
LOWORD
(
align
))
?
align
:
GDI_ERROR
;
}
INT
CDECL
MFDRV_SetBkMode
(
PHYSDEV
dev
,
INT
mode
)
{
return
MFDRV_MetaParam1
(
dev
,
META_SETBKMODE
,
(
WORD
)
mode
);
return
MFDRV_MetaParam1
(
dev
,
META_SETBKMODE
,
(
WORD
)
mode
)
?
mode
:
0
;
}
INT
CDECL
MFDRV_SetROP2
(
PHYSDEV
dev
,
INT
rop
)
{
return
MFDRV_MetaParam1
(
dev
,
META_SETROP2
,
(
WORD
)
rop
);
return
MFDRV_MetaParam1
(
dev
,
META_SETROP2
,
(
WORD
)
rop
)
?
rop
:
0
;
}
INT
CDECL
MFDRV_SetRelAbs
(
PHYSDEV
dev
,
INT
mode
)
{
return
MFDRV_MetaParam1
(
dev
,
META_SETRELABS
,
(
WORD
)
mode
);
return
MFDRV_MetaParam1
(
dev
,
META_SETRELABS
,
(
WORD
)
mode
)
?
mode
:
0
;
}
INT
CDECL
MFDRV_SetPolyFillMode
(
PHYSDEV
dev
,
INT
mode
)
{
return
MFDRV_MetaParam1
(
dev
,
META_SETPOLYFILLMODE
,
(
WORD
)
mode
);
return
MFDRV_MetaParam1
(
dev
,
META_SETPOLYFILLMODE
,
(
WORD
)
mode
)
?
mode
:
0
;
}
INT
CDECL
MFDRV_SetStretchBltMode
(
PHYSDEV
dev
,
INT
mode
)
{
return
MFDRV_MetaParam1
(
dev
,
META_SETSTRETCHBLTMODE
,
(
WORD
)
mode
);
return
MFDRV_MetaParam1
(
dev
,
META_SETSTRETCHBLTMODE
,
(
WORD
)
mode
)
?
mode
:
0
;
}
INT
CDECL
MFDRV_IntersectClipRect
(
PHYSDEV
dev
,
INT
left
,
INT
top
,
INT
right
,
INT
bottom
)
...
...
@@ -77,22 +77,20 @@ INT CDECL MFDRV_OffsetClipRgn( PHYSDEV dev, INT x, INT y )
return
MFDRV_MetaParam2
(
dev
,
META_OFFSETCLIPRGN
,
x
,
y
);
}
INT
CDECL
MFDRV_SetTextJustification
(
PHYSDEV
dev
,
INT
extra
,
INT
breaks
)
BOOL
CDECL
MFDRV_SetTextJustification
(
PHYSDEV
dev
,
INT
extra
,
INT
breaks
)
{
return
MFDRV_MetaParam2
(
dev
,
META_SETTEXTJUSTIFICATION
,
extra
,
breaks
);
}
INT
CDECL
MFDRV_SetTextCharacterExtra
(
PHYSDEV
dev
,
INT
extra
)
{
if
(
!
MFDRV_MetaParam1
(
dev
,
META_SETTEXTCHAREXTRA
,
extra
))
return
0x80000000
;
return
TRUE
;
return
MFDRV_MetaParam1
(
dev
,
META_SETTEXTCHAREXTRA
,
extra
)
?
extra
:
0x80000000
;
}
DWORD
CDECL
MFDRV_SetMapperFlags
(
PHYSDEV
dev
,
DWORD
flags
)
{
return
MFDRV_MetaParam2
(
dev
,
META_SETMAPPERFLAGS
,
HIWORD
(
flags
),
LOWORD
(
flags
)
);
LOWORD
(
flags
)
)
?
flags
:
GDI_ERROR
;
}
BOOL
CDECL
MFDRV_AbortPath
(
PHYSDEV
dev
)
...
...
dlls/gdi32/mfdrv/metafiledrv.h
View file @
965d4171
...
...
@@ -138,7 +138,7 @@ extern INT CDECL MFDRV_SetStretchBltMode( PHYSDEV dev, INT mode ) DECLSPEC_HIDD
extern
UINT
CDECL
MFDRV_SetTextAlign
(
PHYSDEV
dev
,
UINT
align
)
DECLSPEC_HIDDEN
;
extern
INT
CDECL
MFDRV_SetTextCharacterExtra
(
PHYSDEV
dev
,
INT
extra
)
DECLSPEC_HIDDEN
;
extern
COLORREF
CDECL
MFDRV_SetTextColor
(
PHYSDEV
dev
,
COLORREF
color
)
DECLSPEC_HIDDEN
;
extern
INT
CDECL
MFDRV_SetTextJustification
(
PHYSDEV
dev
,
INT
extra
,
INT
breaks
)
DECLSPEC_HIDDEN
;
extern
BOOL
CDECL
MFDRV_SetTextJustification
(
PHYSDEV
dev
,
INT
extra
,
INT
breaks
)
DECLSPEC_HIDDEN
;
extern
BOOL
CDECL
MFDRV_SetViewportExtEx
(
PHYSDEV
dev
,
INT
x
,
INT
y
,
SIZE
*
size
)
DECLSPEC_HIDDEN
;
extern
BOOL
CDECL
MFDRV_SetViewportOrgEx
(
PHYSDEV
dev
,
INT
x
,
INT
y
,
POINT
*
pt
)
DECLSPEC_HIDDEN
;
extern
BOOL
CDECL
MFDRV_SetWindowExtEx
(
PHYSDEV
dev
,
INT
x
,
INT
y
,
SIZE
*
size
)
DECLSPEC_HIDDEN
;
...
...
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