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
2c5d7d71
Commit
2c5d7d71
authored
Jan 25, 2012
by
Daniel Lehman
Committed by
Alexandre Julliard
Apr 18, 2012
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
gdi32: Don't add_join if points are coincident in wide_line_segments.
parent
e7f41455
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
45 additions
and
6 deletions
+45
-6
objects.c
dlls/gdi32/dibdrv/objects.c
+10
-6
dib.c
dlls/gdi32/tests/dib.c
+35
-0
No files found.
dlls/gdi32/dibdrv/objects.c
View file @
2c5d7d71
...
...
@@ -1327,7 +1327,7 @@ static void add_join( dibdrv_physdev *pdev, HRGN region, HRGN round_cap, const P
return
;
}
static
void
wide_line_segment
(
dibdrv_physdev
*
pdev
,
HRGN
total
,
static
int
wide_line_segment
(
dibdrv_physdev
*
pdev
,
HRGN
total
,
const
POINT
*
pt_1
,
const
POINT
*
pt_2
,
int
dx
,
int
dy
,
BOOL
need_cap_1
,
BOOL
need_cap_2
,
struct
face
*
face_1
,
struct
face
*
face_2
)
{
...
...
@@ -1335,7 +1335,7 @@ static void wide_line_segment( dibdrv_physdev *pdev, HRGN total,
BOOL
sq_cap_1
=
need_cap_1
&&
(
pdev
->
pen_endcap
==
PS_ENDCAP_SQUARE
);
BOOL
sq_cap_2
=
need_cap_2
&&
(
pdev
->
pen_endcap
==
PS_ENDCAP_SQUARE
);
if
(
dx
==
0
&&
dy
==
0
)
return
;
if
(
dx
==
0
&&
dy
==
0
)
return
0
;
if
(
dy
==
0
)
{
...
...
@@ -1451,6 +1451,8 @@ static void wide_line_segment( dibdrv_physdev *pdev, HRGN total,
face_1
->
dx
=
face_2
->
dx
=
dx
;
face_1
->
dy
=
face_2
->
dy
=
dy
;
return
1
;
}
static
void
wide_line_segments
(
dibdrv_physdev
*
pdev
,
int
num
,
const
POINT
*
pts
,
BOOL
close
,
...
...
@@ -1486,10 +1488,12 @@ static void wide_line_segments( dibdrv_physdev *pdev, int num, const POINT *pts,
{
pt_1
=
&
pts
[(
start
+
i
)
%
num
];
pt_2
=
&
pts
[(
start
+
i
+
1
)
%
num
];
wide_line_segment
(
pdev
,
total
,
pt_1
,
pt_2
,
pt_2
->
x
-
pt_1
->
x
,
pt_2
->
y
-
pt_1
->
y
,
FALSE
,
FALSE
,
&
face_1
,
&
face_2
);
add_join
(
pdev
,
total
,
round_cap
,
pt_1
,
&
prev_face
,
&
face_1
);
prev_face
=
face_2
;
if
(
wide_line_segment
(
pdev
,
total
,
pt_1
,
pt_2
,
pt_2
->
x
-
pt_1
->
x
,
pt_2
->
y
-
pt_1
->
y
,
FALSE
,
FALSE
,
&
face_1
,
&
face_2
))
{
add_join
(
pdev
,
total
,
round_cap
,
pt_1
,
&
prev_face
,
&
face_1
);
prev_face
=
face_2
;
}
}
pt_1
=
&
pts
[(
start
+
count
-
1
)
%
num
];
...
...
dlls/gdi32/tests/dib.c
View file @
2c5d7d71
...
...
@@ -139,6 +139,7 @@ static const char *sha1_graphics_a8r8g8b8[] =
"657514a4ca1f2b6ca7a125ad58dfed82099a37d1"
,
"5e0549fdcf0fc7c50054dccc51d37fc734ab8134"
,
"eca1998a4d79fb81b2a4103f79e3b846a864eaaf"
,
"e4acfcf2d001fbc431d9af59ab3d3ca7c2d965e5"
,
"2b3198bd5c0a87db5dab13df8bbe14363d02acec"
,
"f115ef8392ba82d8cd6e7a039320edcd812c1d28"
,
"aebb1b3baa4fd5213bf80a5ad7a50d54de8fdba4"
,
...
...
@@ -211,6 +212,7 @@ static const char *sha1_graphics_a8r8g8b8_bitfields[] =
"657514a4ca1f2b6ca7a125ad58dfed82099a37d1"
,
"5e0549fdcf0fc7c50054dccc51d37fc734ab8134"
,
"eca1998a4d79fb81b2a4103f79e3b846a864eaaf"
,
"e4acfcf2d001fbc431d9af59ab3d3ca7c2d965e5"
,
"e4f110504dd3e4e34f960a39ba91a91c67bf26af"
,
"f115ef8392ba82d8cd6e7a039320edcd812c1d28"
,
"aebb1b3baa4fd5213bf80a5ad7a50d54de8fdba4"
,
...
...
@@ -283,6 +285,7 @@ static const char *sha1_graphics_a8b8g8r8[] =
"9988ceca44dafbee247aece1f027c06c27c01652"
,
"d80d45a97bc877b50ba2c3f720d5197f2f1c5fc5"
,
"b76e0724496e471b01ef8b34f8beba69f5bde261"
,
"34201d3d3583f89ce3267d3d0c4e01c64463de4b"
,
"693f5c5fbaeaadb5928d34b035499626fecb8394"
,
"8a9aa84c42dedc3e681191a1229846887ed262ec"
,
"66041875232f64dbfd2d18353aa28e43e8ccb6b5"
,
...
...
@@ -355,6 +358,7 @@ static const char *sha1_graphics_r10g10b10[] =
"ce0fc29bb0281d6c955d64e239254ef9e6dbc06d"
,
"5ab49e7b61eddd3bab4182f362a38e1ab6a5a3b7"
,
"555b6f04ba8dec9e2a60693dcaac594227052727"
,
"c199b96a71c3aab2d49ccb5b6294bf14eb0dd1eb"
,
"4238fe9d296b5c72b0a8745cc761f308605b2094"
,
"943dc6033ab335a6a63e666f70a6bb3a0677e157"
,
"88b6427cf71a6b9a26bfd6026103d50f721651a9"
,
...
...
@@ -427,6 +431,7 @@ static const char *sha1_graphics_r6g6b6[] =
"d67b897cad72d31e75359094007b1346fd8806ea"
,
"442bcf4d94a649c9406c3b0bf2f00cb7c6a4d1d4"
,
"3d0853f4f7580d7cd5148c21c34d878ecf39a5f3"
,
"1e5a4ef7f8634847a251d1fcce298c409fd13d87"
,
"481337fbedf181d4324bf7f8299b0327197ff468"
,
"9ab957870fa4e17aec6a79bc1a4fdb42a5ffcc30"
,
"b4b9f0bf127ef11f510f25684ae21d692609c85e"
,
...
...
@@ -499,6 +504,7 @@ static const char *sha1_graphics_24[] =
"cf311a96d41bd98fdbdfb5dfaac4ba1ba9b7d6da"
,
"bf5ec23456efe00e1e0931c17de9040ab2092858"
,
"0bbdf0a0489428f96e3c1d3e5305f9a893820852"
,
"9d86b1b2bbce90efd3c0b9fe20d23ffa3eeecd20"
,
"8f7a0af421101952e674f37154c1e8c4646ea2d2"
,
"e96b79bf88988b5694a04dfc3bd0029361b39801"
,
"d12284f58daabbd173dfae6c7e55fd5d822d89b4"
,
...
...
@@ -575,6 +581,7 @@ static const char *sha1_graphics_r5g5b5[] =
"1c1499051860b7caa25173b328ca9c862f01dd1a"
,
"a655512753bc90e6d4eb3848f69e96db1ad348e5"
,
"2230f36f12d4becb242e2962fa1b3694db2496ca"
,
"d81e41a765d7a2d68073f5fde3f74f09df84001d"
,
"0de013c2c6aba9f99cbcf5f8cfd3212ded7ae72a"
,
"5950f7d00cd8692872377df0e869a7d5ea5e4420"
,
"fedc67d1b0797be5f40cd45280844f2b61d29b0a"
,
...
...
@@ -646,6 +653,7 @@ static const char *sha1_graphics_r4g4b4[] =
"5505d2ed20dc61ffe48832ecf5329162a5ceb734"
,
"9f72be4467219a345b1164205d1fbfda2d64271e"
,
"13d1634e03bc49cfe14a32278d9b1f5ddbb9be10"
,
"a79e4cc419b9e1735e275e2823da52875536943a"
,
"b0182002cb1f4fba9df3c21a4d046ab41ce7e9be"
,
"3830cd728c1e72837310940bcdac4e294d6c9843"
,
"f571c7c4aac92491017963032194690c0fa06b42"
,
...
...
@@ -723,6 +731,7 @@ static const char *sha1_graphics_8_color[] =
"2c07272462c68cf5944b03e2aa049475b99143c5"
,
"07ca369fb875d37b9cf855045f528af1827edec4"
,
"5e9e3e71b06c5efe20f93b3838e745b40b878471"
,
"153ae5c9fc2a31b38c4878b25d9026b9f51f132d"
,
"488341e88810d737de0b26de4e4d4fa0e78eb482"
,
"bd1e7f40e3971e2ff6c5561286901193a1557527"
,
"5a42b7eeff8198e7b005e4afa4282e6ffb939906"
,
...
...
@@ -805,6 +814,7 @@ static const char *sha1_graphics_8_grayscale[] =
"1918a33f59d3500204ffc573318a39e9ff754221"
,
"5449d1aef0d2d6af9ac3fd7adb32c23ddc9be1e2"
,
"55d302ece31a9b7fc4be4a07a53767ba210273e7"
,
"a6a29836291f9dbca85e25cee60f62ef5faca6d7"
,
"3494a23633405e46af96cb57715617fef1ac252e"
,
"5a3ae1da30d83cc157e6a4a5617c85598309f4ac"
,
"edc1ad2704452354aa6f79fac244a55b6f509c2e"
,
...
...
@@ -880,6 +890,7 @@ static const char *sha1_graphics_8[] =
"f81c70b6ee2d4690f9f7c797c66582b176f8dcef"
,
"d3f359cac7318ce09e0531d51c8c2b316cf3a23b"
,
"293c41a7ed923a4617560481ae8815cebf83701a"
,
"ec06b56f3abe277be42650ebd49dabeaae9e756d"
,
"750c923785ba2afb9ce597516c072f90f014bf95"
,
"80089132f8a11d86e8038f2f8e12dfba46624ee5"
,
"bde5a62a065c027561226fbec5155e938ba7f6b3"
,
...
...
@@ -951,6 +962,7 @@ static const char *sha1_graphics_4[] =
"297f6ad15200bffbf15198324ee8f27a61a6f2d4"
,
"70cfa427a1a0d6f2232b1fd544905d48af69cb98"
,
"287ea7db721e641439888cb9f4bac3a5f16124eb"
,
"dd9eaa5325cdf250e89162ac84207978ebb6458e"
,
"42466aab11852741d937c1ff6f3bb711e58415a6"
,
"0663cf6330591fcf744aba96664e05d90243d07a"
,
"3024fa38333f83a639b0f0e6ac6d4b9868231157"
,
...
...
@@ -1022,6 +1034,7 @@ static const char *sha1_graphics_4_grayscale[] =
"58f400c9bb78e49a879276fb049edfc9c981740a"
,
"cb3794f676d6e9502f27172ac7d79a12ca2ba32c"
,
"aa89612798fbc4e11a73b6233c0ac4832e6af2f9"
,
"c96a998be5c1d588ef1243cfd2610d056d16947e"
,
"68bee638d59a373f33f308751471b3ef41849582"
,
"be0501175cc3cbb61217fca76356f761117fb40f"
,
"8fa37e26cdae406c2d1c81b1175dcf0311cf60c9"
,
...
...
@@ -1111,6 +1124,7 @@ static const char *sha1_graphics_1[] =
"55c26d22f11d80b73383fa57d0fac552d705b092"
,
"14443b33a9879bf829ed3b06e1aef0d7dcf662cc"
,
"53ab1fcccd09fa5cbff77497f36a70a3b3cb8b81"
,
"4842a30dd7fdf38ddc3ddec85c08efe13a0e2e0b"
,
"cc76db6da5ba1776f20240a5ad97a26a9cdf96b0"
,
"014f477664a7f4ce4a948d6359a2707119afc8e2"
,
"1ee4e951743efc8764249fbc7adecefbfec0428e"
,
...
...
@@ -1184,6 +1198,7 @@ static const RECT graphics_bounds[] =
{
5
,
5
,
206
,
206
},
{
45
,
45
,
256
,
256
},
{
86
,
86
,
215
,
215
},
{
45
,
45
,
256
,
256
},
{
8
,
0
,
392
,
231
},
{
8
,
0
,
392
,
231
},
{
0
,
0
,
60
,
20
},
...
...
@@ -1399,6 +1414,16 @@ static const POINT poly_lines[] =
{
100
,
100
},
{
200
,
100
},
{
200
,
200
},
{
100
,
200
}
};
static
const
POINT
polypoly_lines
[]
=
{
{
100
,
100
},
{
200
,
100
},
{
200
,
100
},
{
200
,
200
}
};
static
const
DWORD
polypoly_counts
[]
=
{
sizeof
(
polypoly_lines
)
/
sizeof
(
polypoly_lines
[
0
])
};
static
const
RECT
patblt_clips
[]
=
{
{
120
,
120
,
140
,
126
},
/* unclipped */
...
...
@@ -2497,6 +2522,16 @@ static void draw_graphics(HDC hdc, BITMAPINFO *bmi, BYTE *bits)
SelectObject
(
hdc
,
orig_pen
);
DeleteObject
(
wide_pen
);
wide_pen
=
ExtCreatePen
(
PS_GEOMETRIC
|
PS_ENDCAP_FLAT
|
PS_JOIN_MITER
|
PS_SOLID
,
9
,
&
log_brush
,
0
,
NULL
);
SelectObject
(
hdc
,
wide_pen
);
PolyPolyline
(
hdc
,
polypoly_lines
,
polypoly_counts
,
sizeof
(
polypoly_counts
)
/
sizeof
(
polypoly_counts
[
0
])
);
compare_hash
(
hdc
,
bmi
,
bits
,
"wide pen - empty segments"
);
SelectObject
(
hdc
,
orig_pen
);
DeleteObject
(
wide_pen
);
/* brushed wide pen */
old_text
=
GetTextColor
(
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