#include "src/gpu/geometry/GrPathUtils.h"
#include "src/gpu/geometry/GrWangsFormula.h"
namespace pk {
static float tolerance_to_wangs_precision(float srcTol) {
return 1.f / srcTol;
}
uint32_t max_bezier_vertices(uint32_t chopCount) {
static constexpr uint32_t kMaxChopsPerCurve = 10;
static_assert((1 << kMaxChopsPerCurve) == GrPathUtils::kMaxPointsPerCurve);
return 1 << std::min(chopCount, kMaxChopsPerCurve);
}
uint32_t GrPathUtils::cubicPointCount(const SkPoint points[], SkScalar tol) {
return max_bezier_vertices(
GrWangsFormula::cubic_log2(tolerance_to_wangs_precision(tol), points));
}
}