/*
|
* 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
|