HRGN Path::CreateNativeRegion() const { int point_count = static_cast<int>(points_.size()); scoped_array<POINT> windows_points(new POINT[point_count]); for(int i=0; i<point_count; ++i) { windows_points[i].x = points_[i].x(); windows_points[i].y = points_[i].y(); } return ::CreatePolygonRgn(windows_points.get(), point_count, ALTERNATE); }
HRGN Path::CreateNativeRegion() const { int point_count = getPoints(NULL, 0); scoped_array<SkPoint> points(new SkPoint[point_count]); getPoints(points.get(), point_count); scoped_array<POINT> windows_points(new POINT[point_count]); for(int i=0; i<point_count; ++i) { windows_points[i].x = SkScalarRound(points[i].fX); windows_points[i].y = SkScalarRound(points[i].fY); } return ::CreatePolygonRgn(windows_points.get(), point_count, ALTERNATE); }