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
f0a507e1
Commit
f0a507e1
authored
Aug 24, 2008
by
Nikolay Sivov
Committed by
Alexandre Julliard
Aug 25, 2008
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
gdiplus: Made Graphics calls check for busy state.
parent
366ae1e6
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
244 additions
and
74 deletions
+244
-74
graphics.c
dlls/gdiplus/graphics.c
+172
-2
graphics.c
dlls/gdiplus/tests/graphics.c
+72
-72
No files found.
dlls/gdiplus/graphics.c
View file @
f0a507e1
...
...
@@ -908,6 +908,9 @@ GpStatus WINGDIPAPI GdipDrawArc(GpGraphics *graphics, GpPen *pen, REAL x,
if
(
!
graphics
||
!
pen
||
width
<=
0
||
height
<=
0
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
num_pts
=
arc2polybezier
(
points
,
x
,
y
,
width
,
height
,
startAngle
,
sweepAngle
);
save_state
=
prepare_dc
(
graphics
,
pen
);
...
...
@@ -935,6 +938,9 @@ GpStatus WINGDIPAPI GdipDrawBezier(GpGraphics *graphics, GpPen *pen, REAL x1,
if
(
!
graphics
||
!
pen
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
pt
[
0
].
X
=
x1
;
pt
[
0
].
Y
=
y1
;
pt
[
1
].
X
=
x2
;
...
...
@@ -963,6 +969,9 @@ GpStatus WINGDIPAPI GdipDrawBezierI(GpGraphics *graphics, GpPen *pen, INT x1,
if
(
!
graphics
||
!
pen
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
pt
[
0
].
X
=
x1
;
pt
[
0
].
Y
=
y1
;
pt
[
1
].
X
=
x2
;
...
...
@@ -990,6 +999,9 @@ GpStatus WINGDIPAPI GdipDrawBeziers(GpGraphics *graphics, GpPen *pen,
if
(
!
graphics
||
!
pen
||
!
points
||
(
count
<=
0
))
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
for
(
i
=
0
;
i
<
floor
(
count
/
4
);
i
++
){
ret
=
GdipDrawBezier
(
graphics
,
pen
,
points
[
4
*
i
].
X
,
points
[
4
*
i
].
Y
,
...
...
@@ -1013,6 +1025,9 @@ GpStatus WINGDIPAPI GdipDrawBeziersI(GpGraphics *graphics, GpPen *pen,
if
(
!
graphics
||
!
pen
||
!
points
||
(
count
<=
0
))
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
pts
=
GdipAlloc
(
sizeof
(
GpPointF
)
*
count
);
if
(
!
pts
)
return
OutOfMemory
;
...
...
@@ -1050,6 +1065,9 @@ GpStatus WINGDIPAPI GdipDrawClosedCurve2(GpGraphics *graphics, GpPen *pen,
if
(
!
graphics
||
!
pen
||
!
points
||
count
<=
0
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
/* make a full points copy.. */
ptf
=
GdipAlloc
(
sizeof
(
GpPointF
)
*
(
count
+
1
));
if
(
!
ptf
)
...
...
@@ -1136,6 +1154,9 @@ GpStatus WINGDIPAPI GdipDrawCurve2(GpGraphics *graphics, GpPen *pen,
if
(
!
graphics
||
!
pen
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
pt
=
GdipAlloc
(
len_pt
*
sizeof
(
GpPointF
));
tension
=
tension
*
TENSION_CONST
;
...
...
@@ -1211,6 +1232,9 @@ GpStatus WINGDIPAPI GdipDrawEllipse(GpGraphics *graphics, GpPen *pen, REAL x,
if
(
!
graphics
||
!
pen
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
ptf
[
0
].
X
=
x
;
ptf
[
0
].
Y
=
y
;
ptf
[
1
].
X
=
x
+
width
;
...
...
@@ -1415,6 +1439,9 @@ GpStatus WINGDIPAPI GdipDrawLine(GpGraphics *graphics, GpPen *pen, REAL x1,
if
(
!
pen
||
!
graphics
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
pt
[
0
].
X
=
x1
;
pt
[
0
].
Y
=
y1
;
pt
[
1
].
X
=
x2
;
...
...
@@ -1439,6 +1466,9 @@ GpStatus WINGDIPAPI GdipDrawLineI(GpGraphics *graphics, GpPen *pen, INT x1,
if
(
!
pen
||
!
graphics
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
pt
[
0
].
X
=
(
REAL
)
x1
;
pt
[
0
].
Y
=
(
REAL
)
y1
;
pt
[
1
].
X
=
(
REAL
)
x2
;
...
...
@@ -1462,6 +1492,9 @@ GpStatus WINGDIPAPI GdipDrawLines(GpGraphics *graphics, GpPen *pen, GDIPCONST
if
(
!
pen
||
!
graphics
||
(
count
<
2
))
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
save_state
=
prepare_dc
(
graphics
,
pen
);
retval
=
draw_polyline
(
graphics
,
pen
,
points
,
count
,
TRUE
);
...
...
@@ -1482,6 +1515,9 @@ GpStatus WINGDIPAPI GdipDrawLinesI(GpGraphics *graphics, GpPen *pen, GDIPCONST
if
(
!
pen
||
!
graphics
||
(
count
<
2
))
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
ptf
=
GdipAlloc
(
count
*
sizeof
(
GpPointF
));
if
(
!
ptf
)
return
OutOfMemory
;
...
...
@@ -1508,6 +1544,9 @@ GpStatus WINGDIPAPI GdipDrawPath(GpGraphics *graphics, GpPen *pen, GpPath *path)
if
(
!
pen
||
!
graphics
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
save_state
=
prepare_dc
(
graphics
,
pen
);
retval
=
draw_poly
(
graphics
,
pen
,
path
->
pathdata
.
Points
,
...
...
@@ -1526,6 +1565,9 @@ GpStatus WINGDIPAPI GdipDrawPie(GpGraphics *graphics, GpPen *pen, REAL x,
if
(
!
graphics
||
!
pen
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
save_state
=
prepare_dc
(
graphics
,
pen
);
SelectObject
(
graphics
->
hdc
,
GetStockObject
(
NULL_BRUSH
));
...
...
@@ -1552,6 +1594,9 @@ GpStatus WINGDIPAPI GdipDrawRectangle(GpGraphics *graphics, GpPen *pen, REAL x,
if
(
!
pen
||
!
graphics
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
ptf
[
0
].
X
=
x
;
ptf
[
0
].
Y
=
y
;
ptf
[
1
].
X
=
x
+
width
;
...
...
@@ -1588,6 +1633,9 @@ GpStatus WINGDIPAPI GdipDrawRectangles(GpGraphics *graphics, GpPen *pen,
if
(
!
graphics
||
!
pen
||
!
rects
||
count
<
1
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
ptf
=
GdipAlloc
(
4
*
count
*
sizeof
(
GpPointF
));
pti
=
GdipAlloc
(
4
*
count
*
sizeof
(
POINT
));
...
...
@@ -1811,6 +1859,9 @@ GpStatus WINGDIPAPI GdipFillClosedCurve2(GpGraphics *graphics, GpBrush *brush,
if
(
!
graphics
||
!
brush
||
!
points
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
stat
=
GdipCreatePath
(
fill
,
&
path
);
if
(
stat
!=
Ok
)
return
stat
;
...
...
@@ -1868,6 +1919,9 @@ GpStatus WINGDIPAPI GdipFillEllipse(GpGraphics *graphics, GpBrush *brush, REAL x
if
(
!
graphics
||
!
brush
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
ptf
[
0
].
X
=
x
;
ptf
[
0
].
Y
=
y
;
ptf
[
1
].
X
=
x
+
width
;
...
...
@@ -1901,6 +1955,9 @@ GpStatus WINGDIPAPI GdipFillPath(GpGraphics *graphics, GpBrush *brush, GpPath *p
if
(
!
brush
||
!
graphics
||
!
path
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
save_state
=
SaveDC
(
graphics
->
hdc
);
EndPath
(
graphics
->
hdc
);
SelectObject
(
graphics
->
hdc
,
brush
->
gdibrush
);
...
...
@@ -1933,6 +1990,9 @@ GpStatus WINGDIPAPI GdipFillPie(GpGraphics *graphics, GpBrush *brush, REAL x,
if
(
!
graphics
||
!
brush
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
save_state
=
SaveDC
(
graphics
->
hdc
);
EndPath
(
graphics
->
hdc
);
SelectObject
(
graphics
->
hdc
,
brush
->
gdibrush
);
...
...
@@ -1962,6 +2022,9 @@ GpStatus WINGDIPAPI GdipFillPolygon(GpGraphics *graphics, GpBrush *brush,
if
(
!
graphics
||
!
brush
||
!
points
||
!
count
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
ptf
=
GdipAlloc
(
count
*
sizeof
(
GpPointF
));
pti
=
GdipAlloc
(
count
*
sizeof
(
POINT
));
if
(
!
ptf
||
!
pti
){
...
...
@@ -2001,6 +2064,9 @@ GpStatus WINGDIPAPI GdipFillPolygonI(GpGraphics *graphics, GpBrush *brush,
if
(
!
graphics
||
!
brush
||
!
points
||
!
count
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
ptf
=
GdipAlloc
(
count
*
sizeof
(
GpPointF
));
pti
=
GdipAlloc
(
count
*
sizeof
(
POINT
));
if
(
!
ptf
||
!
pti
){
...
...
@@ -2054,6 +2120,9 @@ GpStatus WINGDIPAPI GdipFillRectangle(GpGraphics *graphics, GpBrush *brush,
if
(
!
graphics
||
!
brush
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
ptf
[
0
].
X
=
x
;
ptf
[
0
].
Y
=
y
;
ptf
[
1
].
X
=
x
+
width
;
...
...
@@ -2087,6 +2156,9 @@ GpStatus WINGDIPAPI GdipFillRectangleI(GpGraphics *graphics, GpBrush *brush,
if
(
!
graphics
||
!
brush
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
ptf
[
0
].
X
=
x
;
ptf
[
0
].
Y
=
y
;
ptf
[
1
].
X
=
x
+
width
;
...
...
@@ -2160,6 +2232,9 @@ GpStatus WINGDIPAPI GdipFillRegion(GpGraphics* graphics, GpBrush* brush,
if
(
!
(
graphics
&&
brush
&&
region
))
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
FIXME
(
"(%p, %p, %p): stub
\n
"
,
graphics
,
brush
,
region
);
return
NotImplemented
;
...
...
@@ -2172,6 +2247,9 @@ GpStatus WINGDIPAPI GdipFlush(GpGraphics *graphics, GpFlushIntention intention)
if
(
!
graphics
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
if
(
!
(
calls
++
))
FIXME
(
"not implemented
\n
"
);
...
...
@@ -2185,6 +2263,9 @@ GpStatus WINGDIPAPI GdipGetCompositingMode(GpGraphics *graphics,
if
(
!
graphics
||
!
mode
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
*
mode
=
graphics
->
compmode
;
return
Ok
;
...
...
@@ -2197,6 +2278,9 @@ GpStatus WINGDIPAPI GdipGetCompositingQuality(GpGraphics *graphics,
if
(
!
graphics
||
!
quality
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
*
quality
=
graphics
->
compqual
;
return
Ok
;
...
...
@@ -2209,6 +2293,9 @@ GpStatus WINGDIPAPI GdipGetInterpolationMode(GpGraphics *graphics,
if
(
!
graphics
||
!
mode
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
*
mode
=
graphics
->
interpolation
;
return
Ok
;
...
...
@@ -2219,6 +2306,9 @@ GpStatus WINGDIPAPI GdipGetPageScale(GpGraphics *graphics, REAL *scale)
if
(
!
graphics
||
!
scale
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
*
scale
=
graphics
->
scale
;
return
Ok
;
...
...
@@ -2229,6 +2319,9 @@ GpStatus WINGDIPAPI GdipGetPageUnit(GpGraphics *graphics, GpUnit *unit)
if
(
!
graphics
||
!
unit
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
*
unit
=
graphics
->
unit
;
return
Ok
;
...
...
@@ -2241,6 +2334,9 @@ GpStatus WINGDIPAPI GdipGetPixelOffsetMode(GpGraphics *graphics, PixelOffsetMode
if
(
!
graphics
||
!
mode
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
*
mode
=
graphics
->
pixeloffset
;
return
Ok
;
...
...
@@ -2252,6 +2348,9 @@ GpStatus WINGDIPAPI GdipGetSmoothingMode(GpGraphics *graphics, SmoothingMode *mo
if
(
!
graphics
||
!
mode
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
*
mode
=
graphics
->
smoothing
;
return
Ok
;
...
...
@@ -2264,6 +2363,9 @@ GpStatus WINGDIPAPI GdipGetTextRenderingHint(GpGraphics *graphics,
if
(
!
graphics
||
!
hint
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
*
hint
=
graphics
->
texthint
;
return
Ok
;
...
...
@@ -2274,6 +2376,9 @@ GpStatus WINGDIPAPI GdipGetWorldTransform(GpGraphics *graphics, GpMatrix *matrix
if
(
!
graphics
||
!
matrix
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
*
matrix
=
*
graphics
->
worldtrans
;
return
Ok
;
}
...
...
@@ -2405,6 +2510,9 @@ GpStatus WINGDIPAPI GdipResetWorldTransform(GpGraphics *graphics)
if
(
!
graphics
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
graphics
->
worldtrans
->
matrix
[
0
]
=
1
.
0
;
graphics
->
worldtrans
->
matrix
[
1
]
=
0
.
0
;
graphics
->
worldtrans
->
matrix
[
2
]
=
0
.
0
;
...
...
@@ -2434,6 +2542,9 @@ GpStatus WINGDIPAPI GdipRotateWorldTransform(GpGraphics *graphics, REAL angle,
if
(
!
graphics
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
return
GdipRotateMatrix
(
graphics
->
worldtrans
,
angle
,
order
);
}
...
...
@@ -2456,6 +2567,9 @@ GpStatus WINGDIPAPI GdipScaleWorldTransform(GpGraphics *graphics, REAL sx,
if
(
!
graphics
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
return
GdipScaleMatrix
(
graphics
->
worldtrans
,
sx
,
sy
,
order
);
}
...
...
@@ -2465,6 +2579,9 @@ GpStatus WINGDIPAPI GdipSetCompositingMode(GpGraphics *graphics,
if
(
!
graphics
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
graphics
->
compmode
=
mode
;
return
Ok
;
...
...
@@ -2476,6 +2593,9 @@ GpStatus WINGDIPAPI GdipSetCompositingQuality(GpGraphics *graphics,
if
(
!
graphics
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
graphics
->
compqual
=
quality
;
return
Ok
;
...
...
@@ -2487,6 +2607,9 @@ GpStatus WINGDIPAPI GdipSetInterpolationMode(GpGraphics *graphics,
if
(
!
graphics
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
graphics
->
interpolation
=
mode
;
return
Ok
;
...
...
@@ -2497,6 +2620,9 @@ GpStatus WINGDIPAPI GdipSetPageScale(GpGraphics *graphics, REAL scale)
if
(
!
graphics
||
(
scale
<=
0
.
0
))
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
graphics
->
scale
=
scale
;
return
Ok
;
...
...
@@ -2504,7 +2630,13 @@ GpStatus WINGDIPAPI GdipSetPageScale(GpGraphics *graphics, REAL scale)
GpStatus
WINGDIPAPI
GdipSetPageUnit
(
GpGraphics
*
graphics
,
GpUnit
unit
)
{
if
(
!
graphics
||
(
unit
==
UnitWorld
))
if
(
!
graphics
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
if
(
unit
==
UnitWorld
)
return
InvalidParameter
;
graphics
->
unit
=
unit
;
...
...
@@ -2518,6 +2650,9 @@ GpStatus WINGDIPAPI GdipSetPixelOffsetMode(GpGraphics *graphics, PixelOffsetMode
if
(
!
graphics
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
graphics
->
pixeloffset
=
mode
;
return
Ok
;
...
...
@@ -2528,6 +2663,9 @@ GpStatus WINGDIPAPI GdipSetSmoothingMode(GpGraphics *graphics, SmoothingMode mod
if
(
!
graphics
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
graphics
->
smoothing
=
mode
;
return
Ok
;
...
...
@@ -2539,6 +2677,9 @@ GpStatus WINGDIPAPI GdipSetTextRenderingHint(GpGraphics *graphics,
if
(
!
graphics
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
graphics
->
texthint
=
hint
;
return
Ok
;
...
...
@@ -2549,6 +2690,9 @@ GpStatus WINGDIPAPI GdipSetWorldTransform(GpGraphics *graphics, GpMatrix *matrix
if
(
!
graphics
||
!
matrix
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
GdipDeleteMatrix
(
graphics
->
worldtrans
);
return
GdipCloneMatrix
(
matrix
,
&
graphics
->
worldtrans
);
}
...
...
@@ -2559,6 +2703,9 @@ GpStatus WINGDIPAPI GdipTranslateWorldTransform(GpGraphics *graphics, REAL dx,
if
(
!
graphics
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
return
GdipTranslateMatrix
(
graphics
->
worldtrans
,
dx
,
dy
,
order
);
}
...
...
@@ -2568,6 +2715,12 @@ GpStatus WINGDIPAPI GdipSetClipRectI(GpGraphics *graphics, INT x, INT y,
{
static
int
calls
;
if
(
!
graphics
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
if
(
!
(
calls
++
))
FIXME
(
"not implemented
\n
"
);
...
...
@@ -2605,6 +2758,9 @@ GpStatus WINGDIPAPI GdipDrawPolygon(GpGraphics *graphics,GpPen *pen,GDIPCONST Gp
if
(
!
graphics
||
!
pen
||
count
<=
0
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
pti
=
GdipAlloc
(
sizeof
(
POINT
)
*
count
);
save_state
=
prepare_dc
(
graphics
,
pen
);
...
...
@@ -2645,6 +2801,9 @@ GpStatus WINGDIPAPI GdipGetDpiX(GpGraphics *graphics, REAL* dpi)
if
(
!
graphics
||
!
dpi
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
*
dpi
=
(
REAL
)
GetDeviceCaps
(
graphics
->
hdc
,
LOGPIXELSX
);
return
Ok
;
...
...
@@ -2655,6 +2814,9 @@ GpStatus WINGDIPAPI GdipGetDpiY(GpGraphics *graphics, REAL* dpi)
if
(
!
graphics
||
!
dpi
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
*
dpi
=
(
REAL
)
GetDeviceCaps
(
graphics
->
hdc
,
LOGPIXELSY
);
return
Ok
;
...
...
@@ -2669,6 +2831,9 @@ GpStatus WINGDIPAPI GdipMultiplyWorldTransform(GpGraphics *graphics, GDIPCONST G
if
(
!
graphics
||
!
matrix
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
m
=
*
(
graphics
->
worldtrans
);
ret
=
GdipMultiplyMatrix
(
&
m
,
(
GpMatrix
*
)
matrix
,
order
);
...
...
@@ -2707,8 +2872,13 @@ GpStatus WINGDIPAPI GdipReleaseDC(GpGraphics *graphics, HDC hdc)
GpStatus
WINGDIPAPI
GdipGetClip
(
GpGraphics
*
graphics
,
GpRegion
*
region
)
{
FIXME
(
"(%p, %p): stub
\n
"
,
graphics
,
region
);
if
(
!
graphics
||
!
region
)
return
InvalidParameter
;
if
(
graphics
->
busy
)
return
ObjectBusy
;
FIXME
(
"(%p, %p): stub
\n
"
,
graphics
,
region
);
return
NotImplemented
;
}
...
...
dlls/gdiplus/tests/graphics.c
View file @
f0a507e1
...
...
@@ -560,160 +560,160 @@ static void test_Get_Release_DC(void)
/* try all Graphics calls here */
status
=
Ok
;
status
=
GdipDrawArc
(
graphics
,
pen
,
0
.
0
,
0
.
0
,
1
.
0
,
1
.
0
,
0
.
0
,
0
.
0
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipDrawArcI
(
graphics
,
pen
,
0
,
0
,
1
,
1
,
0
.
0
,
0
.
0
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipDrawBezier
(
graphics
,
pen
,
0
.
0
,
10
.
0
,
20
.
0
,
15
.
0
,
35
.
0
,
-
10
.
0
,
10
.
0
,
10
.
0
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipDrawBezierI
(
graphics
,
pen
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipDrawBeziers
(
graphics
,
pen
,
ptf
,
5
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipDrawBeziersI
(
graphics
,
pen
,
pt
,
5
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipDrawClosedCurve
(
graphics
,
pen
,
ptf
,
5
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipDrawClosedCurveI
(
graphics
,
pen
,
pt
,
5
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipDrawClosedCurve2
(
graphics
,
pen
,
ptf
,
5
,
1
.
0
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipDrawClosedCurve2I
(
graphics
,
pen
,
pt
,
5
,
1
.
0
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipDrawCurve
(
graphics
,
pen
,
ptf
,
5
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipDrawCurveI
(
graphics
,
pen
,
pt
,
5
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipDrawCurve2
(
graphics
,
pen
,
ptf
,
5
,
1
.
0
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipDrawCurve2I
(
graphics
,
pen
,
pt
,
5
,
1
.
0
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipDrawEllipse
(
graphics
,
pen
,
0
.
0
,
0
.
0
,
100
.
0
,
50
.
0
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipDrawEllipseI
(
graphics
,
pen
,
0
,
0
,
100
,
50
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
/* GdipDrawImage/GdipDrawImageI */
/* GdipDrawImagePointsRect/GdipDrawImagePointsRectI */
/* GdipDrawImageRectRect/GdipDrawImageRectRectI */
/* GdipDrawImageRect/GdipDrawImageRectI */
status
=
GdipDrawLine
(
graphics
,
pen
,
0
.
0
,
0
.
0
,
100
.
0
,
200
.
0
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipDrawLineI
(
graphics
,
pen
,
0
,
0
,
100
,
200
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipDrawLines
(
graphics
,
pen
,
ptf
,
5
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipDrawLinesI
(
graphics
,
pen
,
pt
,
5
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipDrawPath
(
graphics
,
pen
,
path
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipDrawPie
(
graphics
,
pen
,
0
.
0
,
0
.
0
,
100
.
0
,
100
.
0
,
0
.
0
,
90
.
0
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipDrawPieI
(
graphics
,
pen
,
0
,
0
,
100
,
100
,
0
.
0
,
90
.
0
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipDrawRectangle
(
graphics
,
pen
,
0
.
0
,
0
.
0
,
100
.
0
,
300
.
0
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipDrawRectangleI
(
graphics
,
pen
,
0
,
0
,
100
,
300
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipDrawRectangles
(
graphics
,
pen
,
rectf
,
2
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipDrawRectanglesI
(
graphics
,
pen
,
rect
,
2
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
/* GdipDrawString */
status
=
GdipFillClosedCurve2
(
graphics
,
(
GpBrush
*
)
brush
,
ptf
,
5
,
1
.
0
,
FillModeAlternate
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipFillClosedCurve2I
(
graphics
,
(
GpBrush
*
)
brush
,
pt
,
5
,
1
.
0
,
FillModeAlternate
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipFillEllipse
(
graphics
,
(
GpBrush
*
)
brush
,
0
.
0
,
0
.
0
,
100
.
0
,
100
.
0
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipFillEllipseI
(
graphics
,
(
GpBrush
*
)
brush
,
0
,
0
,
100
,
100
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipFillPath
(
graphics
,
(
GpBrush
*
)
brush
,
path
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipFillPie
(
graphics
,
(
GpBrush
*
)
brush
,
0
.
0
,
0
.
0
,
100
.
0
,
100
.
0
,
0
.
0
,
15
.
0
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipFillPieI
(
graphics
,
(
GpBrush
*
)
brush
,
0
,
0
,
100
,
100
,
0
.
0
,
15
.
0
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipFillPolygon
(
graphics
,
(
GpBrush
*
)
brush
,
ptf
,
5
,
FillModeAlternate
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipFillPolygonI
(
graphics
,
(
GpBrush
*
)
brush
,
pt
,
5
,
FillModeAlternate
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipFillPolygon2
(
graphics
,
(
GpBrush
*
)
brush
,
ptf
,
5
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipFillPolygon2I
(
graphics
,
(
GpBrush
*
)
brush
,
pt
,
5
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipFillRectangle
(
graphics
,
(
GpBrush
*
)
brush
,
0
.
0
,
0
.
0
,
100
.
0
,
100
.
0
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipFillRectangleI
(
graphics
,
(
GpBrush
*
)
brush
,
0
,
0
,
100
,
100
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipFillRectangles
(
graphics
,
(
GpBrush
*
)
brush
,
rectf
,
2
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipFillRectanglesI
(
graphics
,
(
GpBrush
*
)
brush
,
rect
,
2
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipFillRegion
(
graphics
,
(
GpBrush
*
)
brush
,
region
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipFlush
(
graphics
,
FlushIntentionFlush
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipGetCompositingMode
(
graphics
,
&
compmode
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipGetCompositingQuality
(
graphics
,
&
quality
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipGetInterpolationMode
(
graphics
,
&
intmode
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipGetPageScale
(
graphics
,
&
r
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipGetPageUnit
(
graphics
,
&
unit
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipGetPixelOffsetMode
(
graphics
,
&
offsetmode
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipGetSmoothingMode
(
graphics
,
&
smoothmode
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipGetTextRenderingHint
(
graphics
,
&
texthint
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipGetWorldTransform
(
graphics
,
m
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
/* GdipMeasureCharacterRanges */
/* GdipMeasureString */
status
=
GdipResetWorldTransform
(
graphics
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
/* GdipRestoreGraphics */
status
=
GdipRotateWorldTransform
(
graphics
,
15
.
0
,
MatrixOrderPrepend
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
/* GdipSaveGraphics */
status
=
GdipScaleWorldTransform
(
graphics
,
1
.
0
,
1
.
0
,
MatrixOrderPrepend
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipSetCompositingMode
(
graphics
,
CompositingModeSourceOver
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipSetCompositingQuality
(
graphics
,
CompositingQualityDefault
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipSetInterpolationMode
(
graphics
,
InterpolationModeDefault
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipSetPageScale
(
graphics
,
1
.
0
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipSetPageUnit
(
graphics
,
UnitWorld
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipSetPixelOffsetMode
(
graphics
,
PixelOffsetModeDefault
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipSetSmoothingMode
(
graphics
,
SmoothingModeDefault
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipSetTextRenderingHint
(
graphics
,
TextRenderingHintSystemDefault
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipSetWorldTransform
(
graphics
,
m
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipTranslateWorldTransform
(
graphics
,
0
.
0
,
0
.
0
,
MatrixOrderPrepend
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipSetClipRectI
(
graphics
,
0
,
0
,
10
,
10
,
CombineModeReplace
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
/* GdipSetClipRegion */
status
=
GdipDrawPolygon
(
graphics
,
pen
,
ptf
,
5
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipDrawPolygonI
(
graphics
,
pen
,
pt
,
5
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipGetDpiX
(
graphics
,
&
r
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipGetDpiY
(
graphics
,
&
r
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipMultiplyWorldTransform
(
graphics
,
m
,
MatrixOrderPrepend
);
status
=
GdipGetClip
(
graphics
,
region
);
todo_wine
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
expect
(
ObjectBusy
,
status
);
status
=
Ok
;
status
=
GdipReleaseDC
(
graphics
,
retdc
);
expect
(
Ok
,
status
);
...
...
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