예제 #1
0
파일: Path.cpp 프로젝트: coinpayee/blink
bool Path::strokeContains(const FloatPoint& point, const StrokeData& strokeData) const
{
    SkPaint paint;
    strokeData.setupPaint(&paint);
    SkPath strokePath;
    paint.getFillPath(m_path, &strokePath);

    return SkPathContainsPoint(strokePath, point, SkPath::kWinding_FillType);
}
예제 #2
0
bool Path::contains(const FloatPoint& point, WindRule rule) const
{
    /// M: fix w3c canvas fail case @{
    /* Since android use skia as 2d graphics engine, use skia utils instead.
     * Fix case list:
     * 2d.path.isPointInPath.edge.html
     */
    return SkPathContainsPoint(m_path, point,
      rule == RULE_NONZERO ? SkPath::kWinding_FillType : SkPath::kEvenOdd_FillType);
    /// @}
}
예제 #3
0
bool Path::strokeContains(StrokeStyleApplier* applier, const FloatPoint& point) const
{
    GraphicsContext* scratch = scratchContext();
    scratch->save();

    applier->strokeStyle(scratch);

    SkPaint paint;
    scratch->setupStrokePaint(&paint);
    SkPath strokePath;
    paint.getFillPath(*platformPath(), &strokePath);
    bool contains = SkPathContainsPoint(&strokePath, point,
                                        SkPath::kWinding_FillType);

    scratch->restore();
    return contains;
}
예제 #4
0
bool Path::strokeContains(StrokeStyleApplier* applier, const FloatPoint& point) const
{
    // FIXME(crbug.com/229267): Rewrite this to not require a scratch context.
    GraphicsContext* scratch = scratchContext();
    scratch->save();

    ASSERT(applier);
    applier->strokeStyle(scratch);

    SkPaint paint;
    scratch->platformContext()->setupPaintForStroking(&paint, 0, 0);
    SkPath strokePath;
    paint.getFillPath(m_path, &strokePath);

    bool contains = SkPathContainsPoint(&strokePath, point, SkPath::kWinding_FillType);

    scratch->restore();
    return contains;
}
예제 #5
0
파일: PathSkia.cpp 프로젝트: dog-god/iptv
bool Path::strokeContains(StrokeStyleApplier* applier, const FloatPoint& point) const
{
    if (isNull())
        return false;

    ASSERT(applier);
    GraphicsContext* scratch = scratchContext();
    scratch->save();

    applier->strokeStyle(scratch);

    SkPaint paint;
    scratch->platformContext()->setupPaintForStroking(&paint, 0, 0);
    SkPath strokePath;
    paint.getFillPath(*platformPath(), &strokePath);
    bool contains = SkPathContainsPoint(&strokePath, point, SkPath::kWinding_FillType);

    scratch->restore();
    return contains;
}
예제 #6
0
파일: Path.cpp 프로젝트: coinpayee/blink
bool Path::contains(const FloatPoint& point, WindRule rule) const
{
    return SkPathContainsPoint(m_path, point, rule == RULE_NONZERO ? SkPath::kWinding_FillType : SkPath::kEvenOdd_FillType);
}
예제 #7
0
bool Path::contains(const FloatPoint& point, WindRule rule) const
{
    return SkPathContainsPoint(m_path, point, static_cast<SkPath::FillType>(rule));
}
예제 #8
0
bool Path::contains(const FloatPoint& point, WindRule rule) const
{
    // After crbug.com/236559 is fixed, SkPathContainsPoint should take a const path so this will be unnecessary.
    SkPath* path = const_cast<SkPath*>(&m_path);
    return SkPathContainsPoint(path, point, rule == RULE_NONZERO ? SkPath::kWinding_FillType : SkPath::kEvenOdd_FillType);
}