/* * Copyright 2017 ARM Ltd. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef GrDistanceFieldGenFromVector_DEFINED #define GrDistanceFieldGenFromVector_DEFINED #include "SkPath.h" class SkMatrix; #ifndef SK_USE_LEGACY_DISTANCE_FIELDS #define SK_USE_LEGACY_DISTANCE_FIELDS #endif /** Given a vector path, generate the associated distance field. * @param distanceField The distance field to be generated. Should already be allocated * by the client with the padding defined in "SkDistanceFieldGen.h". * @param path The path we're using to generate the distance field. * @param matrix Transformation matrix for path. * @param width Width of the distance field. * @param height Height of the distance field. * @param rowBytes Size of each row in the distance field, in bytes. */ bool GrGenerateDistanceFieldFromPath(unsigned char* distanceField, const SkPath& path, const SkMatrix& viewMatrix, int width, int height, size_t rowBytes); inline bool IsDistanceFieldSupportedFillType(SkPath::FillType fFillType) { return (SkPath::kEvenOdd_FillType == fFillType || SkPath::kInverseEvenOdd_FillType == fFillType); } #endif