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
73423908
Commit
73423908
authored
Jan 15, 2004
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Get rid of the global INTERNAL_[XY]WSTODS macros.
parent
00346541
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
108 additions
and
64 deletions
+108
-64
freetype.c
dlls/gdi/freetype.c
+3
-3
download.c
dlls/wineps/download.c
+4
-4
graphics.c
dlls/wineps/graphics.c
+34
-0
pen.c
dlls/wineps/pen.c
+1
-1
psdrv.h
dlls/wineps/psdrv.h
+3
-0
text.c
dlls/wineps/text.c
+6
-6
graphics.c
dlls/x11drv/graphics.c
+34
-0
pen.c
dlls/x11drv/pen.c
+2
-4
text.c
dlls/x11drv/text.c
+3
-3
x11drv.h
dlls/x11drv/x11drv.h
+2
-0
xfont.c
dlls/x11drv/xfont.c
+4
-3
xrender.c
dlls/x11drv/xrender.c
+12
-12
gdi.h
include/gdi.h
+0
-28
No files found.
dlls/gdi/freetype.c
View file @
73423908
...
@@ -1182,6 +1182,7 @@ GdiFont WineEngCreateFontInstance(DC *dc, HFONT hfont)
...
@@ -1182,6 +1182,7 @@ GdiFont WineEngCreateFontInstance(DC *dc, HFONT hfont)
GdiFont
ret
;
GdiFont
ret
;
Face
*
face
;
Face
*
face
;
Family
*
family
=
NULL
;
Family
*
family
=
NULL
;
INT
height
;
BOOL
bd
,
it
;
BOOL
bd
,
it
;
LOGFONTW
lf
;
LOGFONTW
lf
;
CHARSETINFO
csi
;
CHARSETINFO
csi
;
...
@@ -1341,10 +1342,9 @@ not_found:
...
@@ -1341,10 +1342,9 @@ not_found:
TRACE
(
"Chosen: %s %s
\n
"
,
debugstr_w
(
family
->
FamilyName
),
TRACE
(
"Chosen: %s %s
\n
"
,
debugstr_w
(
family
->
FamilyName
),
debugstr_w
(
face
->
StyleName
));
debugstr_w
(
face
->
StyleName
));
height
=
GDI_ROUND
(
(
FLOAT
)
lf
.
lfHeight
*
dc
->
xformWorld2Vport
.
eM22
);
ret
->
ft_face
=
OpenFontFile
(
ret
,
face
->
file
,
face
->
face_index
,
ret
->
ft_face
=
OpenFontFile
(
ret
,
face
->
file
,
face
->
face_index
,
lf
.
lfHeight
<
0
?
lf
.
lfHeight
<
0
?
-
abs
(
height
)
:
abs
(
height
));
-
abs
(
INTERNAL_YWSTODS
(
dc
,
lf
.
lfHeight
))
:
abs
(
INTERNAL_YWSTODS
(
dc
,
lf
.
lfHeight
)));
if
(
!
ret
->
ft_face
)
if
(
!
ret
->
ft_face
)
{
{
free_font
(
ret
);
free_font
(
ret
);
...
...
dlls/wineps/download.c
View file @
73423908
...
@@ -139,10 +139,10 @@ BOOL PSDRV_SelectDownloadFont(PSDRV_PDEVICE *physDev)
...
@@ -139,10 +139,10 @@ BOOL PSDRV_SelectDownloadFont(PSDRV_PDEVICE *physDev)
physDev
->
font
.
fontloc
=
Download
;
physDev
->
font
.
fontloc
=
Download
;
physDev
->
font
.
fontinfo
.
Download
=
is_font_downloaded
(
physDev
,
ps_name
);
physDev
->
font
.
fontinfo
.
Download
=
is_font_downloaded
(
physDev
,
ps_name
);
physDev
->
font
.
size
=
INTERNAL_YWSTODS
(
physDev
->
dc
,
/* ppem */
physDev
->
font
.
size
=
PSDRV_YWStoDS
(
physDev
,
/* ppem */
potm
->
otmTextMetrics
.
tmAscent
+
potm
->
otmTextMetrics
.
tmAscent
+
potm
->
otmTextMetrics
.
tmDescent
-
potm
->
otmTextMetrics
.
tmDescent
-
potm
->
otmTextMetrics
.
tmInternalLeading
);
potm
->
otmTextMetrics
.
tmInternalLeading
);
physDev
->
font
.
underlineThickness
=
potm
->
otmsUnderscoreSize
;
physDev
->
font
.
underlineThickness
=
potm
->
otmsUnderscoreSize
;
physDev
->
font
.
underlinePosition
=
potm
->
otmsUnderscorePosition
;
physDev
->
font
.
underlinePosition
=
potm
->
otmsUnderscorePosition
;
physDev
->
font
.
strikeoutThickness
=
potm
->
otmsStrikeoutSize
;
physDev
->
font
.
strikeoutThickness
=
potm
->
otmsStrikeoutSize
;
...
...
dlls/wineps/graphics.c
View file @
73423908
...
@@ -36,6 +36,40 @@
...
@@ -36,6 +36,40 @@
WINE_DEFAULT_DEBUG_CHANNEL
(
psdrv
);
WINE_DEFAULT_DEBUG_CHANNEL
(
psdrv
);
/***********************************************************************
/***********************************************************************
* PSDRV_XWStoDS
*
* Performs a world-to-viewport transformation on the specified width.
*/
INT
PSDRV_XWStoDS
(
PSDRV_PDEVICE
*
physDev
,
INT
width
)
{
POINT
pt
[
2
];
pt
[
0
].
x
=
0
;
pt
[
0
].
y
=
0
;
pt
[
1
].
x
=
width
;
pt
[
1
].
y
=
0
;
LPtoDP
(
physDev
->
hdc
,
pt
,
2
);
return
pt
[
1
].
x
-
pt
[
0
].
x
;
}
/***********************************************************************
* PSDRV_YWStoDS
*
* Performs a world-to-viewport transformation on the specified height.
*/
INT
PSDRV_YWStoDS
(
PSDRV_PDEVICE
*
physDev
,
INT
height
)
{
POINT
pt
[
2
];
pt
[
0
].
x
=
0
;
pt
[
0
].
y
=
0
;
pt
[
1
].
x
=
0
;
pt
[
1
].
y
=
height
;
LPtoDP
(
physDev
->
hdc
,
pt
,
2
);
return
pt
[
1
].
y
-
pt
[
0
].
y
;
}
/***********************************************************************
* PSDRV_DrawLine
* PSDRV_DrawLine
*/
*/
static
void
PSDRV_DrawLine
(
PSDRV_PDEVICE
*
physDev
)
static
void
PSDRV_DrawLine
(
PSDRV_PDEVICE
*
physDev
)
...
...
dlls/wineps/pen.c
View file @
73423908
...
@@ -41,7 +41,7 @@ HPEN PSDRV_SelectPen( PSDRV_PDEVICE *physDev, HPEN hpen )
...
@@ -41,7 +41,7 @@ HPEN PSDRV_SelectPen( PSDRV_PDEVICE *physDev, HPEN hpen )
TRACE
(
"hpen = %p colour = %08lx
\n
"
,
hpen
,
logpen
.
lopnColor
);
TRACE
(
"hpen = %p colour = %08lx
\n
"
,
hpen
,
logpen
.
lopnColor
);
physDev
->
pen
.
width
=
INTERNAL_XWSTODS
(
physDev
->
dc
,
logpen
.
lopnWidth
.
x
);
physDev
->
pen
.
width
=
PSDRV_XWStoDS
(
physDev
,
logpen
.
lopnWidth
.
x
);
if
(
physDev
->
pen
.
width
<
0
)
if
(
physDev
->
pen
.
width
<
0
)
physDev
->
pen
.
width
=
-
physDev
->
pen
.
width
;
physDev
->
pen
.
width
=
-
physDev
->
pen
.
width
;
...
...
dlls/wineps/psdrv.h
View file @
73423908
...
@@ -395,6 +395,9 @@ extern void PSDRV_FreeAFMList( FONTFAMILY *head );
...
@@ -395,6 +395,9 @@ extern void PSDRV_FreeAFMList( FONTFAMILY *head );
extern
BOOL
WINAPI
PSDRV_Init
(
HINSTANCE
hinst
,
DWORD
reason
,
LPVOID
reserved
);
extern
BOOL
WINAPI
PSDRV_Init
(
HINSTANCE
hinst
,
DWORD
reason
,
LPVOID
reserved
);
extern
INT
PSDRV_XWStoDS
(
PSDRV_PDEVICE
*
physDev
,
INT
width
);
extern
INT
PSDRV_YWStoDS
(
PSDRV_PDEVICE
*
physDev
,
INT
height
);
extern
BOOL
PSDRV_Brush
(
PSDRV_PDEVICE
*
physDev
,
BOOL
EO
);
extern
BOOL
PSDRV_Brush
(
PSDRV_PDEVICE
*
physDev
,
BOOL
EO
);
extern
BOOL
PSDRV_SetFont
(
PSDRV_PDEVICE
*
physDev
);
extern
BOOL
PSDRV_SetFont
(
PSDRV_PDEVICE
*
physDev
);
extern
BOOL
PSDRV_SetPen
(
PSDRV_PDEVICE
*
physDev
);
extern
BOOL
PSDRV_SetPen
(
PSDRV_PDEVICE
*
physDev
);
...
...
dlls/wineps/text.c
View file @
73423908
...
@@ -172,12 +172,12 @@ static BOOL PSDRV_Text(PSDRV_PDEVICE *physDev, INT x, INT y, UINT flags, LPCWSTR
...
@@ -172,12 +172,12 @@ static BOOL PSDRV_Text(PSDRV_PDEVICE *physDev, INT x, INT y, UINT flags, LPCWSTR
sz
.
cx
=
tmpsz
.
cx
;
/* sz.cy remains untouched */
sz
.
cx
=
tmpsz
.
cx
;
/* sz.cy remains untouched */
}
}
sz
.
cx
=
INTERNAL_XWSTODS
(
dc
,
sz
.
cx
);
sz
.
cx
=
PSDRV_XWStoDS
(
physDev
,
sz
.
cx
);
sz
.
cy
=
INTERNAL_YWSTODS
(
dc
,
sz
.
cy
);
sz
.
cy
=
PSDRV_YWStoDS
(
physDev
,
sz
.
cy
);
GetTextMetricsW
(
physDev
->
hdc
,
&
tm
);
GetTextMetricsW
(
physDev
->
hdc
,
&
tm
);
ascent
=
INTERNAL_YWSTODS
(
dc
,
tm
.
tmAscent
);
ascent
=
PSDRV_YWStoDS
(
physDev
,
tm
.
tmAscent
);
descent
=
INTERNAL_YWSTODS
(
dc
,
tm
.
tmDescent
);
descent
=
PSDRV_YWStoDS
(
physDev
,
tm
.
tmDescent
);
TRACE
(
"textAlign = %x
\n
"
,
align
);
TRACE
(
"textAlign = %x
\n
"
,
align
);
switch
(
align
&
(
TA_LEFT
|
TA_CENTER
|
TA_RIGHT
)
)
{
switch
(
align
&
(
TA_LEFT
|
TA_CENTER
|
TA_RIGHT
)
)
{
...
@@ -260,8 +260,8 @@ static BOOL PSDRV_Text(PSDRV_PDEVICE *physDev, INT x, INT y, UINT flags, LPCWSTR
...
@@ -260,8 +260,8 @@ static BOOL PSDRV_Text(PSDRV_PDEVICE *physDev, INT x, INT y, UINT flags, LPCWSTR
PSDRV_WriteBuiltinGlyphShow
(
physDev
,
str
+
i
,
1
);
PSDRV_WriteBuiltinGlyphShow
(
physDev
,
str
+
i
,
1
);
dx
+=
deltas
[
i
]
*
cos_theta
;
dx
+=
deltas
[
i
]
*
cos_theta
;
dy
-=
deltas
[
i
]
*
sin_theta
;
dy
-=
deltas
[
i
]
*
sin_theta
;
PSDRV_WriteMoveTo
(
physDev
,
x
+
INTERNAL_XWSTODS
(
dc
,
dx
),
PSDRV_WriteMoveTo
(
physDev
,
x
+
PSDRV_XWStoDS
(
physDev
,
dx
),
y
+
INTERNAL_YWSTODS
(
dc
,
dy
));
y
+
PSDRV_YWStoDS
(
physDev
,
dy
));
}
}
if
(
physDev
->
font
.
fontloc
==
Download
)
if
(
physDev
->
font
.
fontloc
==
Download
)
PSDRV_WriteDownloadGlyphShow
(
physDev
,
glyphs
+
i
,
1
);
PSDRV_WriteDownloadGlyphShow
(
physDev
,
glyphs
+
i
,
1
);
...
...
dlls/x11drv/graphics.c
View file @
73423908
...
@@ -294,6 +294,40 @@ BOOL X11DRV_SetupGCForText( X11DRV_PDEVICE *physDev )
...
@@ -294,6 +294,40 @@ BOOL X11DRV_SetupGCForText( X11DRV_PDEVICE *physDev )
}
}
/***********************************************************************
/***********************************************************************
* X11DRV_XWStoDS
*
* Performs a world-to-viewport transformation on the specified width.
*/
INT
X11DRV_XWStoDS
(
X11DRV_PDEVICE
*
physDev
,
INT
width
)
{
POINT
pt
[
2
];
pt
[
0
].
x
=
0
;
pt
[
0
].
y
=
0
;
pt
[
1
].
x
=
width
;
pt
[
1
].
y
=
0
;
LPtoDP
(
physDev
->
hdc
,
pt
,
2
);
return
pt
[
1
].
x
-
pt
[
0
].
x
;
}
/***********************************************************************
* X11DRV_YWStoDS
*
* Performs a world-to-viewport transformation on the specified height.
*/
INT
X11DRV_YWStoDS
(
X11DRV_PDEVICE
*
physDev
,
INT
height
)
{
POINT
pt
[
2
];
pt
[
0
].
x
=
0
;
pt
[
0
].
y
=
0
;
pt
[
1
].
x
=
0
;
pt
[
1
].
y
=
height
;
LPtoDP
(
physDev
->
hdc
,
pt
,
2
);
return
pt
[
1
].
y
-
pt
[
0
].
y
;
}
/***********************************************************************
* X11DRV_LineTo
* X11DRV_LineTo
*/
*/
BOOL
BOOL
...
...
dlls/x11drv/pen.c
View file @
73423908
...
@@ -37,7 +37,6 @@ static const char PEN_alternate[] = { 1,1 };
...
@@ -37,7 +37,6 @@ static const char PEN_alternate[] = { 1,1 };
HPEN
X11DRV_SelectPen
(
X11DRV_PDEVICE
*
physDev
,
HPEN
hpen
)
HPEN
X11DRV_SelectPen
(
X11DRV_PDEVICE
*
physDev
,
HPEN
hpen
)
{
{
LOGPEN
logpen
;
LOGPEN
logpen
;
DC
*
dc
=
physDev
->
dc
;
if
(
!
GetObjectA
(
hpen
,
sizeof
(
logpen
),
&
logpen
))
return
0
;
if
(
!
GetObjectA
(
hpen
,
sizeof
(
logpen
),
&
logpen
))
return
0
;
...
@@ -46,12 +45,11 @@ HPEN X11DRV_SelectPen( X11DRV_PDEVICE *physDev, HPEN hpen )
...
@@ -46,12 +45,11 @@ HPEN X11DRV_SelectPen( X11DRV_PDEVICE *physDev, HPEN hpen )
physDev
->
pen
.
endcap
=
logpen
.
lopnStyle
&
PS_ENDCAP_MASK
;
physDev
->
pen
.
endcap
=
logpen
.
lopnStyle
&
PS_ENDCAP_MASK
;
physDev
->
pen
.
linejoin
=
logpen
.
lopnStyle
&
PS_JOIN_MASK
;
physDev
->
pen
.
linejoin
=
logpen
.
lopnStyle
&
PS_JOIN_MASK
;
physDev
->
pen
.
width
=
GDI_ROUND
((
FLOAT
)
logpen
.
lopnWidth
.
x
*
physDev
->
pen
.
width
=
X11DRV_XWStoDS
(
physDev
,
logpen
.
lopnWidth
.
x
);
dc
->
xformWorld2Vport
.
eM11
);
if
(
physDev
->
pen
.
width
<
0
)
physDev
->
pen
.
width
=
-
physDev
->
pen
.
width
;
if
(
physDev
->
pen
.
width
<
0
)
physDev
->
pen
.
width
=
-
physDev
->
pen
.
width
;
if
(
physDev
->
pen
.
width
==
1
)
physDev
->
pen
.
width
=
0
;
/* Faster */
if
(
physDev
->
pen
.
width
==
1
)
physDev
->
pen
.
width
=
0
;
/* Faster */
if
(
hpen
==
GetStockObject
(
DC_PEN
))
if
(
hpen
==
GetStockObject
(
DC_PEN
))
logpen
.
lopnColor
=
dc
->
dcPenColor
;
logpen
.
lopnColor
=
GetDCPenColor
(
physDev
->
hdc
)
;
physDev
->
pen
.
pixel
=
X11DRV_PALETTE_ToPhysical
(
physDev
,
logpen
.
lopnColor
);
physDev
->
pen
.
pixel
=
X11DRV_PALETTE_ToPhysical
(
physDev
,
logpen
.
lopnColor
);
switch
(
logpen
.
lopnStyle
&
PS_STYLE_MASK
)
switch
(
logpen
.
lopnStyle
&
PS_STYLE_MASK
)
{
{
...
...
dlls/x11drv/text.c
View file @
73423908
...
@@ -148,7 +148,7 @@ X11DRV_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flags,
...
@@ -148,7 +148,7 @@ X11DRV_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flags,
if
(
lpDx
)
/* have explicit character cell x offsets in logical coordinates */
if
(
lpDx
)
/* have explicit character cell x offsets in logical coordinates */
{
{
for
(
i
=
width
=
0
;
i
<
count
;
i
++
)
width
+=
lpDx
[
i
];
for
(
i
=
width
=
0
;
i
<
count
;
i
++
)
width
+=
lpDx
[
i
];
width
=
INTERNAL_XWSTODS
(
dc
,
width
);
width
=
X11DRV_XWStoDS
(
physDev
,
width
);
}
}
else
else
{
{
...
@@ -158,7 +158,7 @@ X11DRV_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flags,
...
@@ -158,7 +158,7 @@ X11DRV_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flags,
result
=
FALSE
;
result
=
FALSE
;
goto
END
;
goto
END
;
}
}
width
=
INTERNAL_XWSTODS
(
dc
,
sz
.
cx
);
width
=
X11DRV_XWStoDS
(
physDev
,
sz
.
cx
);
}
}
ascent
=
pfo
->
lpX11Trans
?
pfo
->
lpX11Trans
->
ascent
:
font
->
ascent
;
ascent
=
pfo
->
lpX11Trans
?
pfo
->
lpX11Trans
->
ascent
:
font
->
ascent
;
descent
=
pfo
->
lpX11Trans
?
pfo
->
lpX11Trans
->
descent
:
font
->
descent
;
descent
=
pfo
->
lpX11Trans
?
pfo
->
lpX11Trans
->
descent
:
font
->
descent
;
...
@@ -361,7 +361,7 @@ X11DRV_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flags,
...
@@ -361,7 +361,7 @@ X11DRV_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flags,
x_i
,
y_i
,
&
str2b
[
i
],
1
);
x_i
,
y_i
,
&
str2b
[
i
],
1
);
if
(
lpDx
)
if
(
lpDx
)
{
{
offset
+=
INTERNAL_XWSTODS
(
dc
,
lpDx
[
i
]);
offset
+=
X11DRV_XWStoDS
(
physDev
,
lpDx
[
i
]);
}
}
else
else
{
{
...
...
dlls/x11drv/x11drv.h
View file @
73423908
...
@@ -210,6 +210,8 @@ extern BOOL X11DRV_SetupGCForPatBlt( X11DRV_PDEVICE *physDev, GC gc, BOOL fMapCo
...
@@ -210,6 +210,8 @@ extern BOOL X11DRV_SetupGCForPatBlt( X11DRV_PDEVICE *physDev, GC gc, BOOL fMapCo
extern
BOOL
X11DRV_SetupGCForBrush
(
X11DRV_PDEVICE
*
physDev
);
extern
BOOL
X11DRV_SetupGCForBrush
(
X11DRV_PDEVICE
*
physDev
);
extern
BOOL
X11DRV_SetupGCForPen
(
X11DRV_PDEVICE
*
physDev
);
extern
BOOL
X11DRV_SetupGCForPen
(
X11DRV_PDEVICE
*
physDev
);
extern
BOOL
X11DRV_SetupGCForText
(
X11DRV_PDEVICE
*
physDev
);
extern
BOOL
X11DRV_SetupGCForText
(
X11DRV_PDEVICE
*
physDev
);
extern
INT
X11DRV_XWStoDS
(
X11DRV_PDEVICE
*
physDev
,
INT
width
);
extern
INT
X11DRV_YWStoDS
(
X11DRV_PDEVICE
*
physDev
,
INT
height
);
extern
const
int
X11DRV_XROPfunction
[];
extern
const
int
X11DRV_XROPfunction
[];
...
...
dlls/x11drv/xfont.c
View file @
73423908
...
@@ -3287,14 +3287,15 @@ HFONT X11DRV_SelectFont( X11DRV_PDEVICE *physDev, HFONT hfont )
...
@@ -3287,14 +3287,15 @@ HFONT X11DRV_SelectFont( X11DRV_PDEVICE *physDev, HFONT hfont )
/* FIXME - check that the other drivers do this correctly */
/* FIXME - check that the other drivers do this correctly */
if
(
lf
.
lfWidth
)
if
(
lf
.
lfWidth
)
{
{
lf
.
lfWidth
=
GDI_ROUND
((
FLOAT
)
lf
.
lfWidth
*
fabs
(
dc
->
xformWorld2Vport
.
eM11
));
INT
width
=
X11DRV_XWStoDS
(
physDev
,
lf
.
lfWidth
);
lf
.
lfWidth
=
(
lf
.
lfWidth
<
0
)
?
-
abs
(
width
)
:
abs
(
width
);
if
(
lf
.
lfWidth
==
0
)
if
(
lf
.
lfWidth
==
0
)
lf
.
lfWidth
=
1
;
/* Minimum width */
lf
.
lfWidth
=
1
;
/* Minimum width */
}
}
if
(
lf
.
lfHeight
)
if
(
lf
.
lfHeight
)
{
{
lf
.
lfHeight
=
GDI_ROUND
((
FLOAT
)
lf
.
lfHeight
*
fabs
(
dc
->
xformWorld2Vport
.
eM22
)
);
INT
height
=
X11DRV_YWStoDS
(
physDev
,
lf
.
lfHeight
);
lf
.
lfHeight
=
(
lf
.
lfHeight
<
0
)
?
-
abs
(
height
)
:
abs
(
height
);
if
(
lf
.
lfHeight
==
0
)
if
(
lf
.
lfHeight
==
0
)
lf
.
lfHeight
=
MIN_FONT_SIZE
;
lf
.
lfHeight
=
MIN_FONT_SIZE
;
}
}
...
...
dlls/x11drv/xrender.c
View file @
73423908
...
@@ -1070,14 +1070,14 @@ BOOL X11DRV_XRender_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flag
...
@@ -1070,14 +1070,14 @@ BOOL X11DRV_XRender_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flag
}
}
width
=
sz
.
cx
;
width
=
sz
.
cx
;
}
}
width
=
INTERNAL_XWSTODS
(
dc
,
width
);
width
=
X11DRV_XWStoDS
(
physDev
,
width
);
xwidth
=
width
*
cosEsc
;
xwidth
=
width
*
cosEsc
;
ywidth
=
width
*
sinEsc
;
ywidth
=
width
*
sinEsc
;
GetTextMetricsW
(
hdc
,
&
tm
);
GetTextMetricsW
(
hdc
,
&
tm
);
tm
.
tmAscent
=
INTERNAL_YWSTODS
(
dc
,
tm
.
tmAscent
);
tm
.
tmAscent
=
X11DRV_YWStoDS
(
physDev
,
tm
.
tmAscent
);
tm
.
tmDescent
=
INTERNAL_YWSTODS
(
dc
,
tm
.
tmDescent
);
tm
.
tmDescent
=
X11DRV_YWStoDS
(
physDev
,
tm
.
tmDescent
);
switch
(
dc
->
textAlign
&
(
TA_LEFT
|
TA_RIGHT
|
TA_CENTER
)
)
{
switch
(
dc
->
textAlign
&
(
TA_LEFT
|
TA_RIGHT
|
TA_CENTER
)
)
{
case
TA_LEFT
:
case
TA_LEFT
:
if
(
dc
->
textAlign
&
TA_UPDATECP
)
{
if
(
dc
->
textAlign
&
TA_UPDATECP
)
{
...
@@ -1255,7 +1255,7 @@ BOOL X11DRV_XRender_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flag
...
@@ -1255,7 +1255,7 @@ BOOL X11DRV_XRender_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flag
0
,
0
,
physDev
->
org
.
x
+
x
+
xoff
,
0
,
0
,
physDev
->
org
.
x
+
x
+
xoff
,
physDev
->
org
.
y
+
y
+
yoff
,
physDev
->
org
.
y
+
y
+
yoff
,
glyphs
+
idx
,
1
);
glyphs
+
idx
,
1
);
offset
+=
INTERNAL_XWSTODS
(
dc
,
deltas
[
idx
]);
offset
+=
X11DRV_XWStoDS
(
physDev
,
deltas
[
idx
]);
xoff
=
offset
*
cosEsc
;
xoff
=
offset
*
cosEsc
;
yoff
=
offset
*
-
sinEsc
;
yoff
=
offset
*
-
sinEsc
;
}
}
...
@@ -1275,8 +1275,8 @@ BOOL X11DRV_XRender_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flag
...
@@ -1275,8 +1275,8 @@ BOOL X11DRV_XRender_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flag
XSetForeground
(
gdi_display
,
physDev
->
gc
,
physDev
->
textPixel
);
XSetForeground
(
gdi_display
,
physDev
->
gc
,
physDev
->
textPixel
);
if
(
lf
.
lfUnderline
)
{
if
(
lf
.
lfUnderline
)
{
linePos
=
INTERNAL_YWSTODS
(
dc
,
otm
->
otmsUnderscorePosition
);
linePos
=
X11DRV_YWStoDS
(
physDev
,
otm
->
otmsUnderscorePosition
);
lineWidth
=
INTERNAL_YWSTODS
(
dc
,
otm
->
otmsUnderscoreSize
);
lineWidth
=
X11DRV_YWStoDS
(
physDev
,
otm
->
otmsUnderscoreSize
);
XSetLineAttributes
(
gdi_display
,
physDev
->
gc
,
lineWidth
,
XSetLineAttributes
(
gdi_display
,
physDev
->
gc
,
lineWidth
,
LineSolid
,
CapProjecting
,
JoinBevel
);
LineSolid
,
CapProjecting
,
JoinBevel
);
...
@@ -1286,8 +1286,8 @@ BOOL X11DRV_XRender_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flag
...
@@ -1286,8 +1286,8 @@ BOOL X11DRV_XRender_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flag
}
}
if
(
lf
.
lfStrikeOut
)
{
if
(
lf
.
lfStrikeOut
)
{
linePos
=
INTERNAL_YWSTODS
(
dc
,
otm
->
otmsStrikeoutPosition
);
linePos
=
X11DRV_YWStoDS
(
physDev
,
otm
->
otmsStrikeoutPosition
);
lineWidth
=
INTERNAL_YWSTODS
(
dc
,
otm
->
otmsStrikeoutSize
);
lineWidth
=
X11DRV_YWStoDS
(
physDev
,
otm
->
otmsStrikeoutSize
);
XSetLineAttributes
(
gdi_display
,
physDev
->
gc
,
lineWidth
,
XSetLineAttributes
(
gdi_display
,
physDev
->
gc
,
lineWidth
,
LineSolid
,
CapProjecting
,
JoinBevel
);
LineSolid
,
CapProjecting
,
JoinBevel
);
...
@@ -1311,7 +1311,7 @@ BOOL X11DRV_XRender_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flag
...
@@ -1311,7 +1311,7 @@ BOOL X11DRV_XRender_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flag
entry
->
bitmaps
[
glyphs
[
idx
]],
entry
->
bitmaps
[
glyphs
[
idx
]],
&
entry
->
gis
[
glyphs
[
idx
]]);
&
entry
->
gis
[
glyphs
[
idx
]]);
if
(
deltas
)
{
if
(
deltas
)
{
offset
+=
INTERNAL_XWSTODS
(
dc
,
deltas
[
idx
]);
offset
+=
X11DRV_XWStoDS
(
physDev
,
deltas
[
idx
]);
xoff
=
offset
*
cosEsc
;
xoff
=
offset
*
cosEsc
;
yoff
=
offset
*
-
sinEsc
;
yoff
=
offset
*
-
sinEsc
;
...
@@ -1327,7 +1327,7 @@ BOOL X11DRV_XRender_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flag
...
@@ -1327,7 +1327,7 @@ BOOL X11DRV_XRender_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flag
entry
->
bitmaps
[
glyphs
[
idx
]],
entry
->
bitmaps
[
glyphs
[
idx
]],
&
entry
->
gis
[
glyphs
[
idx
]]);
&
entry
->
gis
[
glyphs
[
idx
]]);
if
(
deltas
)
{
if
(
deltas
)
{
offset
+=
INTERNAL_XWSTODS
(
dc
,
deltas
[
idx
]);
offset
+=
X11DRV_XWStoDS
(
physDev
,
deltas
[
idx
]);
xoff
=
offset
*
cosEsc
;
xoff
=
offset
*
cosEsc
;
yoff
=
offset
*
-
sinEsc
;
yoff
=
offset
*
-
sinEsc
;
...
@@ -1361,7 +1361,7 @@ BOOL X11DRV_XRender_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flag
...
@@ -1361,7 +1361,7 @@ BOOL X11DRV_XRender_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flag
if
(
extents
.
bottom
<
cur
.
y
-
entry
->
gis
[
glyphs
[
idx
]].
y
+
entry
->
gis
[
glyphs
[
idx
]].
height
)
if
(
extents
.
bottom
<
cur
.
y
-
entry
->
gis
[
glyphs
[
idx
]].
y
+
entry
->
gis
[
glyphs
[
idx
]].
height
)
extents
.
bottom
=
cur
.
y
-
entry
->
gis
[
glyphs
[
idx
]].
y
+
entry
->
gis
[
glyphs
[
idx
]].
height
;
extents
.
bottom
=
cur
.
y
-
entry
->
gis
[
glyphs
[
idx
]].
y
+
entry
->
gis
[
glyphs
[
idx
]].
height
;
if
(
deltas
)
{
if
(
deltas
)
{
offset
+=
INTERNAL_XWSTODS
(
dc
,
deltas
[
idx
]);
offset
+=
X11DRV_XWStoDS
(
physDev
,
deltas
[
idx
]);
cur
.
x
=
offset
*
cosEsc
;
cur
.
x
=
offset
*
cosEsc
;
cur
.
y
=
offset
*
-
sinEsc
;
cur
.
y
=
offset
*
-
sinEsc
;
}
else
{
}
else
{
...
@@ -1438,7 +1438,7 @@ BOOL X11DRV_XRender_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flag
...
@@ -1438,7 +1438,7 @@ BOOL X11DRV_XRender_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flag
&
entry
->
gis
[
glyphs
[
idx
]],
&
entry
->
gis
[
glyphs
[
idx
]],
dc
->
textColor
);
dc
->
textColor
);
if
(
deltas
)
{
if
(
deltas
)
{
offset
+=
INTERNAL_XWSTODS
(
dc
,
deltas
[
idx
]);
offset
+=
X11DRV_XWStoDS
(
physDev
,
deltas
[
idx
]);
xoff
=
offset
*
cosEsc
;
xoff
=
offset
*
cosEsc
;
yoff
=
offset
*
-
sinEsc
;
yoff
=
offset
*
-
sinEsc
;
}
else
{
}
else
{
...
...
include/gdi.h
View file @
73423908
...
@@ -175,34 +175,6 @@ static inline INT WINE_UNUSED GDI_ROUND(FLOAT val)
...
@@ -175,34 +175,6 @@ static inline INT WINE_UNUSED GDI_ROUND(FLOAT val)
return
(
int
)
floor
(
val
+
0
.
5
);
return
(
int
)
floor
(
val
+
0
.
5
);
}
}
/* World -> Device size conversion */
/* Performs a world-to-viewport transformation on the specified width (which
* is in integer format).
*/
static
inline
INT
WINE_UNUSED
INTERNAL_XWSTODS
(
DC
*
dc
,
INT
width
)
{
FLOAT
floatWidth
;
/* Perform operation with floating point */
floatWidth
=
(
FLOAT
)
width
*
dc
->
xformWorld2Vport
.
eM11
;
/* Round to integers */
return
GDI_ROUND
(
floatWidth
);
}
/* Performs a world-to-viewport transformation on the specified size (which
* is in integer format).
*/
static
inline
INT
WINE_UNUSED
INTERNAL_YWSTODS
(
DC
*
dc
,
INT
height
)
{
FLOAT
floatHeight
;
/* Perform operation with floating point */
floatHeight
=
(
FLOAT
)
height
*
dc
->
xformWorld2Vport
.
eM22
;
/* Round to integers */
return
GDI_ROUND
(
floatHeight
);
}
/* GDI local heap */
/* GDI local heap */
extern
void
*
GDI_GetObjPtr
(
HGDIOBJ
,
WORD
);
extern
void
*
GDI_GetObjPtr
(
HGDIOBJ
,
WORD
);
...
...
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