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
0467d4e4
Commit
0467d4e4
authored
Oct 06, 2008
by
Dmitry Timoshkov
Committed by
Alexandre Julliard
Oct 06, 2008
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
gdi32: Make test_font_metrics require the font being selected into the DC.
parent
9d65ec27
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
21 additions
and
15 deletions
+21
-15
font.c
dlls/gdi32/tests/font.c
+21
-15
No files found.
dlls/gdi32/tests/font.c
View file @
0467d4e4
...
...
@@ -189,7 +189,6 @@ static void test_font_metrics(HDC hdc, HFONT hfont, LONG lfHeight,
const
SIZE
*
size_orig
,
INT
width_of_A_orig
,
INT
scale_x
,
INT
scale_y
)
{
HFONT
old_hfont
;
LOGFONTA
lf
;
OUTLINETEXTMETRIC
otm
;
TEXTMETRICA
tm
;
...
...
@@ -200,9 +199,9 @@ static void test_font_metrics(HDC hdc, HFONT hfont, LONG lfHeight,
if
(
!
hfont
)
return
;
GetObjectA
(
hfont
,
sizeof
(
lf
),
&
lf
);
ok
(
GetCurrentObject
(
hdc
,
OBJ_FONT
)
==
hfont
,
"hfont should be selected
\n
"
);
old_hfont
=
SelectObject
(
hdc
,
hfont
);
GetObjectA
(
hfont
,
sizeof
(
lf
),
&
lf
);
if
(
GetOutlineTextMetricsA
(
hdc
,
0
,
NULL
))
{
...
...
@@ -273,8 +272,6 @@ if (0) /* these metrics are scaled too, but with rounding errors */
GetCharWidthA
(
hdc
,
'A'
,
'A'
,
&
width_of_A
);
ok
(
near_match
(
width_of_A
,
width_of_A_orig
*
scale_x
),
"width A %d != %d
\n
"
,
width_of_A
,
width_of_A_orig
*
scale_x
);
SelectObject
(
hdc
,
old_hfont
);
}
/* Test how GDI scales bitmap font metrics */
...
...
@@ -315,7 +312,9 @@ static void test_bitmap_font(void)
bitmap_lf
.
lfHeight
=
0
;
bitmap_lf
.
lfWidth
=
4
;
hfont
=
create_font
(
"bitmap"
,
&
bitmap_lf
);
old_hfont
=
SelectObject
(
hdc
,
hfont
);
test_font_metrics
(
hdc
,
hfont
,
0
,
4
,
test_str
,
sizeof
(
test_str
),
&
tm_orig
,
&
size_orig
,
width_orig
,
1
,
1
);
SelectObject
(
hdc
,
old_hfont
);
DeleteObject
(
hfont
);
bitmap_lf
.
lfHeight
=
height_orig
;
...
...
@@ -332,22 +331,28 @@ static void test_bitmap_font(void)
nearest_height
=
scale
*
height_orig
;
/* XP allows not more than 10% deviation */
if
(
scale
>
1
&&
nearest_height
-
i
>
nearest_height
/
10
)
scale
--
;
old_hfont
=
SelectObject
(
hdc
,
hfont
);
test_font_metrics
(
hdc
,
hfont
,
bitmap_lf
.
lfHeight
,
0
,
test_str
,
sizeof
(
test_str
),
&
tm_orig
,
&
size_orig
,
width_orig
,
1
,
scale
);
DeleteObject
(
hfont
);
SelectObject
(
hdc
,
old_hfont
);
DeleteObject
(
hfont
);
}
/* test integer scaling 3x2 */
bitmap_lf
.
lfHeight
=
height_orig
*
2
;
bitmap_lf
.
lfWidth
*=
3
;
hfont
=
create_font
(
"3x2"
,
&
bitmap_lf
);
old_hfont
=
SelectObject
(
hdc
,
hfont
);
test_font_metrics
(
hdc
,
hfont
,
bitmap_lf
.
lfHeight
,
0
,
test_str
,
sizeof
(
test_str
),
&
tm_orig
,
&
size_orig
,
width_orig
,
3
,
2
);
SelectObject
(
hdc
,
old_hfont
);
DeleteObject
(
hfont
);
/* test integer scaling 3x3 */
bitmap_lf
.
lfHeight
=
height_orig
*
3
;
bitmap_lf
.
lfWidth
=
0
;
hfont
=
create_font
(
"3x3"
,
&
bitmap_lf
);
old_hfont
=
SelectObject
(
hdc
,
hfont
);
test_font_metrics
(
hdc
,
hfont
,
bitmap_lf
.
lfHeight
,
0
,
test_str
,
sizeof
(
test_str
),
&
tm_orig
,
&
size_orig
,
width_orig
,
3
,
3
);
SelectObject
(
hdc
,
old_hfont
);
DeleteObject
(
hfont
);
ReleaseDC
(
0
,
hdc
);
...
...
@@ -387,9 +392,9 @@ static void test_outline_font(void)
ok
(
GetOutlineTextMetricsA
(
hdc
,
sizeof
(
otm
),
&
otm
),
"GetTextMetricsA failed
\n
"
);
ok
(
GetTextExtentPoint32A
(
hdc
,
test_str
,
sizeof
(
test_str
),
&
size_orig
),
"GetTextExtentPoint32A failed
\n
"
);
ok
(
GetCharWidthA
(
hdc
,
'A'
,
'A'
,
&
width_orig
),
"GetCharWidthA failed
\n
"
);
SelectObject
(
hdc
,
old_hfont
);
test_font_metrics
(
hdc
,
hfont
,
lf
.
lfHeight
,
otm
.
otmTextMetrics
.
tmAveCharWidth
,
test_str
,
sizeof
(
test_str
),
&
otm
.
otmTextMetrics
,
&
size_orig
,
width_orig
,
1
,
1
);
SelectObject
(
hdc
,
old_hfont
);
DeleteObject
(
hfont
);
/* font of otmEMSquare height helps to avoid a lot of rounding errors */
...
...
@@ -411,30 +416,36 @@ static void test_outline_font(void)
lf
.
lfHeight
=
height_orig
*
2
;
lf
.
lfWidth
=
lfWidth
*
3
;
hfont
=
create_font
(
"3x2"
,
&
lf
);
old_hfont
=
SelectObject
(
hdc
,
hfont
);
test_font_metrics
(
hdc
,
hfont
,
lf
.
lfHeight
,
lf
.
lfWidth
,
test_str
,
sizeof
(
test_str
),
&
otm
.
otmTextMetrics
,
&
size_orig
,
width_orig
,
3
,
2
);
SelectObject
(
hdc
,
old_hfont
);
DeleteObject
(
hfont
);
/* test integer scaling 3x3 */
lf
.
lfHeight
=
height_orig
*
3
;
lf
.
lfWidth
=
lfWidth
*
3
;
hfont
=
create_font
(
"3x3"
,
&
lf
);
old_hfont
=
SelectObject
(
hdc
,
hfont
);
test_font_metrics
(
hdc
,
hfont
,
lf
.
lfHeight
,
lf
.
lfWidth
,
test_str
,
sizeof
(
test_str
),
&
otm
.
otmTextMetrics
,
&
size_orig
,
width_orig
,
3
,
3
);
SelectObject
(
hdc
,
old_hfont
);
DeleteObject
(
hfont
);
/* test integer scaling 1x1 */
lf
.
lfHeight
=
height_orig
*
1
;
lf
.
lfWidth
=
lfWidth
*
1
;
hfont
=
create_font
(
"1x1"
,
&
lf
);
old_hfont
=
SelectObject
(
hdc
,
hfont
);
test_font_metrics
(
hdc
,
hfont
,
lf
.
lfHeight
,
lf
.
lfWidth
,
test_str
,
sizeof
(
test_str
),
&
otm
.
otmTextMetrics
,
&
size_orig
,
width_orig
,
1
,
1
);
SelectObject
(
hdc
,
old_hfont
);
DeleteObject
(
hfont
);
/* test integer scaling 1x1 */
lf
.
lfHeight
=
height_orig
;
lf
.
lfWidth
=
0
;
hfont
=
create_font
(
"1x1"
,
&
lf
);
old_hfont
=
SelectObject
(
hdc
,
hfont
);
test_font_metrics
(
hdc
,
hfont
,
lf
.
lfHeight
,
lf
.
lfWidth
,
test_str
,
sizeof
(
test_str
),
&
otm
.
otmTextMetrics
,
&
size_orig
,
width_orig
,
1
,
1
);
old_hfont
=
SelectObject
(
hdc
,
hfont
);
/* with an identity matrix */
memset
(
&
gm
,
0
,
sizeof
(
gm
));
SetLastError
(
0xdeadbeef
);
...
...
@@ -451,7 +462,6 @@ static void test_outline_font(void)
trace
(
"gm.gmCellIncX %d, width_orig %d
\n
"
,
gm
.
gmCellIncX
,
width_orig
);
ok
(
gm
.
gmCellIncX
==
width_orig
/
2
,
"incX %d != %d
\n
"
,
gm
.
gmCellIncX
,
width_orig
/
2
);
ok
(
gm
.
gmCellIncY
==
0
,
"incY %d != 0
\n
"
,
gm
.
gmCellIncY
);
SelectObject
(
hdc
,
old_hfont
);
SetMapMode
(
hdc
,
MM_ANISOTROPIC
);
/* test restrictions of compatibility mode GM_COMPATIBLE */
...
...
@@ -474,6 +484,7 @@ static void test_outline_font(void)
if
(
!
SetGraphicsMode
(
hdc
,
GM_ADVANCED
))
{
SelectObject
(
hdc
,
old_hfont
);
DeleteObject
(
hfont
);
DeleteDC
(
hdc
);
skip
(
"GM_ADVANCED is not supported on this platform
\n
"
);
...
...
@@ -493,7 +504,6 @@ static void test_outline_font(void)
test_font_metrics
(
hdc
,
hfont
,
lf
.
lfHeight
,
lf
.
lfWidth
,
test_str
,
sizeof
(
test_str
),
&
otm
.
otmTextMetrics
,
&
size_orig
,
width_orig
,
1
,
1
);
old_hfont
=
SelectObject
(
hdc
,
hfont
);
/* with an identity matrix */
memset
(
&
gm
,
0
,
sizeof
(
gm
));
SetLastError
(
0xdeadbeef
);
...
...
@@ -516,7 +526,6 @@ static void test_outline_font(void)
ok
(
gm
.
gmCellIncX
==
pt
.
x
/
2
,
"incX %d != %d
\n
"
,
gm
.
gmCellIncX
,
pt
.
x
/
2
);
ok
(
near_match
(
gm
.
gmCellIncX
,
10
*
width_orig
),
"incX %d != %d
\n
"
,
gm
.
gmCellIncX
,
10
*
width_orig
);
ok
(
gm
.
gmCellIncY
==
0
,
"incY %d != 0
\n
"
,
gm
.
gmCellIncY
);
SelectObject
(
hdc
,
old_hfont
);
SetLastError
(
0xdeadbeef
);
ret
=
SetMapMode
(
hdc
,
MM_LOMETRIC
);
...
...
@@ -524,7 +533,6 @@ static void test_outline_font(void)
test_font_metrics
(
hdc
,
hfont
,
lf
.
lfHeight
,
lf
.
lfWidth
,
test_str
,
sizeof
(
test_str
),
&
otm
.
otmTextMetrics
,
&
size_orig
,
width_orig
,
1
,
1
);
old_hfont
=
SelectObject
(
hdc
,
hfont
);
/* with an identity matrix */
memset
(
&
gm
,
0
,
sizeof
(
gm
));
SetLastError
(
0xdeadbeef
);
...
...
@@ -545,7 +553,6 @@ static void test_outline_font(void)
LPtoDP
(
hdc
,
&
pt
,
1
);
ok
(
near_match
(
gm
.
gmCellIncX
,
(
pt
.
x
+
1
)
/
2
),
"incX %d != %d
\n
"
,
gm
.
gmCellIncX
,
(
pt
.
x
+
1
)
/
2
);
ok
(
gm
.
gmCellIncY
==
0
,
"incY %d != 0
\n
"
,
gm
.
gmCellIncY
);
SelectObject
(
hdc
,
old_hfont
);
SetLastError
(
0xdeadbeef
);
ret
=
SetMapMode
(
hdc
,
MM_TEXT
);
...
...
@@ -553,7 +560,6 @@ static void test_outline_font(void)
test_font_metrics
(
hdc
,
hfont
,
lf
.
lfHeight
,
lf
.
lfWidth
,
test_str
,
sizeof
(
test_str
),
&
otm
.
otmTextMetrics
,
&
size_orig
,
width_orig
,
1
,
1
);
old_hfont
=
SelectObject
(
hdc
,
hfont
);
/* with an identity matrix */
memset
(
&
gm
,
0
,
sizeof
(
gm
));
SetLastError
(
0xdeadbeef
);
...
...
@@ -576,8 +582,8 @@ static void test_outline_font(void)
ok
(
gm
.
gmCellIncX
==
pt
.
x
/
2
,
"incX %d != %d
\n
"
,
gm
.
gmCellIncX
,
pt
.
x
/
2
);
ok
(
gm
.
gmCellIncX
==
10
*
width_orig
,
"incX %d != %d
\n
"
,
gm
.
gmCellIncX
,
10
*
width_orig
);
ok
(
gm
.
gmCellIncY
==
0
,
"incY %d != 0
\n
"
,
gm
.
gmCellIncY
);
SelectObject
(
hdc
,
old_hfont
);
SelectObject
(
hdc
,
old_hfont
);
DeleteObject
(
hfont
);
DeleteDC
(
hdc
);
}
...
...
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