[SDK][INCLUDE] Implementing Gdiplus::GraphicsPath (#2200)

Point, PointF, Size, SizeF, Rect and RectF are also implemented. CORE-16585
This commit is contained in:
Katayama Hirofumi MZ 2019-12-31 09:23:45 +09:00 committed by GitHub
parent f84963b0d5
commit bef5aef62b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 645 additions and 156 deletions

View file

@ -980,7 +980,7 @@ class Region : public GdiplusBase
Region(const GraphicsPath *path)
{
status = DllExports::GdipCreateRegionPath(path->path, &region);
status = DllExports::GdipCreateRegionPath(path->nativePath, &region);
}
Region(HRGN hRgn)
@ -1004,14 +1004,15 @@ class Region : public GdiplusBase
Status
Complement(const GraphicsPath *path)
{
return SetStatus(DllExports::GdipCombineRegionPath(region, path ? path->path : NULL, CombineModeComplement));
GpPath *thePath = path ? path->nativePath : NULL;
return SetStatus(DllExports::GdipCombineRegionPath(region, thePath, CombineModeComplement));
}
Status
Complement(const Region *region)
{
return SetStatus(
DllExports::GdipCombineRegionRegion(this->region, region ? region->region : NULL, CombineModeComplement));
GpRegion *theRegion = region ? region->region : NULL;
return SetStatus(DllExports::GdipCombineRegionRegion(this->region, theRegion, CombineModeComplement));
}
Status
@ -1038,7 +1039,7 @@ class Region : public GdiplusBase
Status
Exclude(const GraphicsPath *path)
{
return SetStatus(DllExports::GdipCombineRegionPath(region, path ? path->path : NULL, CombineModeExclude));
return SetStatus(DllExports::GdipCombineRegionPath(region, path ? path->nativePath : NULL, CombineModeExclude));
}
Status
@ -1109,20 +1110,20 @@ class Region : public GdiplusBase
Status
GetRegionScans(const Matrix *matrix, Rect *rects, INT *count) const
{
return SetStatus(DllExports::GdipGetRegionScansI(region, rects, count, matrix ? matrix->matrix : NULL));
return SetStatus(DllExports::GdipGetRegionScansI(region, rects, count, matrix ? matrix->nativeMatrix : NULL));
}
Status
GetRegionScans(const Matrix *matrix, RectF *rects, INT *count) const
{
return SetStatus(DllExports::GdipGetRegionScans(region, rects, count, matrix ? matrix->matrix : NULL));
return SetStatus(DllExports::GdipGetRegionScans(region, rects, count, matrix ? matrix->nativeMatrix : NULL));
}
UINT
GetRegionScansCount(const Matrix *matrix) const
{
UINT count;
SetStatus(DllExports::GdipGetRegionScansCount(region, &count, matrix ? matrix->matrix : NULL));
SetStatus(DllExports::GdipGetRegionScansCount(region, &count, matrix ? matrix->nativeMatrix : NULL));
return count;
}
@ -1135,7 +1136,8 @@ class Region : public GdiplusBase
Status
Intersect(const GraphicsPath *path)
{
return SetStatus(DllExports::GdipCombineRegionPath(region, path ? path->path : NULL, CombineModeIntersect));
GpPath *thePath = path ? path->nativePath : NULL;
return SetStatus(DllExports::GdipCombineRegionPath(region, thePath, CombineModeIntersect));
}
Status
@ -1248,7 +1250,7 @@ class Region : public GdiplusBase
Status
Transform(const Matrix *matrix)
{
return SetStatus(DllExports::GdipTransformRegion(region, matrix ? matrix->matrix : NULL));
return SetStatus(DllExports::GdipTransformRegion(region, matrix ? matrix->nativeMatrix : NULL));
}
Status
@ -1285,13 +1287,13 @@ class Region : public GdiplusBase
Status
Union(const GraphicsPath *path)
{
return SetStatus(DllExports::GdipCombineRegionPath(region, path ? path->path : NULL, CombineModeUnion));
return SetStatus(DllExports::GdipCombineRegionPath(region, path ? path->nativePath : NULL, CombineModeUnion));
}
Status
Xor(const GraphicsPath *path)
{
return SetStatus(DllExports::GdipCombineRegionPath(region, path ? path->path : NULL, CombineModeXor));
return SetStatus(DllExports::GdipCombineRegionPath(region, path ? path->nativePath : NULL, CombineModeXor));
}
Status