static void test_scale(skiatest::Reporter* reporter) { SkMatrix44 mat(SkMatrix44::kUninitialized_Constructor); SkMatrix44 inverse(SkMatrix44::kUninitialized_Constructor); mat.setScale(1, 1, 1); REPORTER_ASSERT(reporter, bits_isonly(mat.getType(), SkMatrix44::kIdentity_Mask)); mat.setScale(1, 2, 3); REPORTER_ASSERT(reporter, bits_isonly(mat.getType(), SkMatrix44::kScale_Mask)); REPORTER_ASSERT(reporter, mat.invert(&inverse)); REPORTER_ASSERT(reporter, bits_isonly(inverse.getType(), SkMatrix44::kScale_Mask)); SkMatrix44 a(SkMatrix44::kUninitialized_Constructor); SkMatrix44 b(SkMatrix44::kUninitialized_Constructor); SkMatrix44 c(SkMatrix44::kUninitialized_Constructor); a.set3x3(1, 2, 3, 4, 5, 6, 7, 8, 9); b.setScale(10, 11, 12); c.setConcat(a, b); mat = a; mat.preScale(10, 11, 12); REPORTER_ASSERT(reporter, mat == c); c.setConcat(b, a); mat = a; mat.postScale(10, 11, 12); REPORTER_ASSERT(reporter, mat == c); }
static void test_translate(skiatest::Reporter* reporter) { SkMatrix44 mat, inverse; mat.setTranslate(0, 0, 0); REPORTER_ASSERT(reporter, bits_isonly(mat.getType(), SkMatrix44::kIdentity_Mask)); mat.setTranslate(1, 2, 3); REPORTER_ASSERT(reporter, bits_isonly(mat.getType(), SkMatrix44::kTranslate_Mask)); REPORTER_ASSERT(reporter, mat.invert(&inverse)); REPORTER_ASSERT(reporter, bits_isonly(inverse.getType(), SkMatrix44::kTranslate_Mask)); SkMatrix44 a, b, c; a.set3x3(1, 2, 3, 4, 5, 6, 7, 8, 9); b.setTranslate(10, 11, 12); c.setConcat(a, b); mat = a; mat.preTranslate(10, 11, 12); REPORTER_ASSERT(reporter, mat == c); c.setConcat(b, a); mat = a; mat.postTranslate(10, 11, 12); REPORTER_ASSERT(reporter, mat == c); }