skia2/include
Mike Reed 98bfcc7ff3 Extend SkCanvas matrix stack to be 4x4, but with (basically) the same public API.
Devices receive the 4x4, but by default they simply downsample it to SkMatrix.

New SkM44 matrix for the impl. It differs from SkMatrix44 in a few ways
- no tracking of "type"
- faster for concat, as it does not use doubles for intermediates
- much simpler API

There are some low-bit differences in some gms, so adding a flag for clients to
stage this change. (due to faster but lower-precision in SkM44::concat)

Performance: running canvas_matrix bench

3x3 version:

    167.93  	canvas_matrix_3x3	8888
    209.97  	canvas_matrix_2x3	8888
    174.87  	canvas_matrix_scale	8888
    135.30  	canvas_matrix_trans	8888

4x4 version:

    116.59  	canvas_matrix_3x3	8888
    105.40  	canvas_matrix_2x3	8888
    159.83 ?	canvas_matrix_scale	8888
    113.47  	canvas_matrix_trans	8888

Why faster?
- not tracking matrix_type helps a lot it seems
- faster full concat (no doubles)

Before adding the specialized preConcats...

    318.11 ?	canvas_matrix_3x3	8888
    339.38  	canvas_matrix_2x3	8888
    383.28  	canvas_matrix_scale	8888
    251.67  	canvas_matrix_trans	8888

Change-Id: I68eac942919fa5418081e789f31710a1e2a752da
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/262056
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
2020-01-07 18:23:04 +00:00
..
android [canvaskit] Expand SkAnimatedImage 2019-11-08 14:58:14 +00:00
atlastext rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
c Small fixes to C API. Add SK_API and fix function signature mismatch. 2019-06-07 01:29:23 +00:00
codec Hook up SkHeifCodec for ImageDecoder animation 2019-08-14 16:02:32 +00:00
config update SkUserConfig.h a bit 2019-05-20 17:52:22 +00:00
core Extend SkCanvas matrix stack to be 4x4, but with (basically) the same public API. 2020-01-07 18:23:04 +00:00
docs SkPDF/docs: note that Sfntly subsetter is deprecated 2019-11-07 18:07:55 +00:00
effects Move SkRuntimeEffect.h to include/effects 2020-01-02 17:37:46 +00:00
encode Revert "add runtime registration for encoders" 2019-05-15 22:02:39 +00:00
gpu Some GrTypes cleanup. 2020-01-03 19:49:07 +00:00
pathops rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
ports Change GrCFResource to sk_cf_obj and move to include/ports. 2019-06-10 18:44:28 +00:00
private Extend SkCanvas matrix stack to be 4x4, but with (basically) the same public API. 2020-01-07 18:23:04 +00:00
svg [svgcanvas] Add flag to suppress newlines and tabs in XML 2019-08-21 20:17:37 +00:00
third_party Roll skia/third_party/skcms ef3043bd8110..64374756e037 (1 commits) 2019-12-11 23:12:09 +00:00
utils Reland "Replace CGFontCreate with CTFontManagerCreate." 2019-11-27 19:42:13 +00:00