20 static const struct PosTestDesc {
22 std::vector<SkSVGLength> xa, ya;
25 std::vector<SkSVGLength> xb, yb;
27 std::vector<SkPoint> expected;
55 0, { L( 1), L(2) }, {},
58 { {10,
N}, {2,
N}, {
N,
N} }
61 0, { L(1), L( 2) }, {},
64 { {1,
N}, {20,
N}, {
N,
N} }
67 0, { L(1), L( 2), L(3) }, {},
70 { {1,
N}, {20,
N}, {3,
N}, {
N,
N} }
73 0, { L(1), L(2), L( 3) }, {},
76 { {1,
N}, {2,
N}, {30,
N}, {
N,
N} }
82 { {1,
N}, {
N,
N}, {30,
N}, {
N,
N} }
105 0, {}, { L( 4), L(5) },
108 { {
N,40}, {
N,5}, {
N,
N} }
111 0, {}, { L(4), L( 5) },
114 { {
N,4}, {
N,50}, {
N,
N} }
117 0, {}, { L(4), L( 5), L(6) },
120 { {
N,4}, {
N,50}, {
N,6}, {
N,
N} }
123 0, {}, { L(4), L(5), L( 6) },
126 { {
N,4}, {
N,5}, {
N,60}, {
N,
N} }
132 { {
N,4}, {
N,
N}, {
N,60}, {
N,
N} }
136 0, { L( 1), L(2)}, { L( 4) },
137 0, { L(10) }, { L(40), L(50) },
139 { {10,40}, {2,50}, {
N,
N} }
142 0, { L(1), L( 2), L(3) }, { L(4), L( 5) },
143 1, { L(20) }, { L(50), L(60) },
145 { {1,4}, {20,50}, {3,60}, {
N,
N} }
152 auto test = [&](
const PosTestDesc& tst) {
182 for (
size_t i = 0; i < tst.expected.size(); ++i) {
183 const auto& exp = tst.expected[i];
191 for (
const auto& tst :
gTests) {
PosAttrs resolve(size_t charIndex) const
std::function< void(const SkSVGRenderContext &, const sk_sp< SkTextBlob > &, const SkPaint *, const SkPaint *)> ShapedTextCallback
static sk_sp< SkSVGText > Make()