[cc] Split TransformNode members into input values and derived values

This cleanup CL refactors TransformNode structure so that its member
variables are splitted into input values and derived values, so that it
is clearer which values are expected to be set by the client and which
are to be recalculated by impl thread every frame.

In the process, pre_local and post_local are eliminated and is only
computed on the fly. To achieve this, the calculation of post_local
needs to be unified between root and non-root layers. Previously the
transform node #0 stores the scale component of the root transform[1],
and node #1 stores the root transform with scale component extracted.

With this CL, transform node #0 stores the whole root transform and
node #1 becomes a regular node.

This CL affects rounding error of draw matrices due to the change in
association order. Should introduce no other behavior change.

[1] root transform = device_transform * device_scale * page_scale

Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Ia553ec5816d71eff6e2d7bc42b51b439817d9d2b
Reviewed-on: https://chromium-review.googlesource.com/685544
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Reviewed-by: danakj <danakj@chromium.org>
Reviewed-by: Ali Juma <ajuma@chromium.org>
Commit-Queue: Tien-Ren Chen <trchen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#506901}

CrOS-Libchrome-Original-Commit: ce3e2fd8496123a0737dcee3dd1d44bccbf36456
1 file changed
tree: f2368c38d5ca9ba07bd84cee23f0b4b3fe95150b
  1. base/
  2. build/
  3. components/
  4. dbus/
  5. device/
  6. ipc/
  7. mojo/
  8. testing/
  9. third_party/
  10. ui/