This patch realizes the rotation for the domain input of filter nodes.
That's because most filter nodes are not rotation invariant, so an input
with identity rotation is required for its correct operation in global
space.
This is not a real patch, but it was created to package builds for
testing and get some feedback.
This patch adds support for the realization of transformations of
operation inputs in the Realtime Compositor. Input socket declarations
can now include a preference to what sort of realization needs to
happen.
All inputs specify realization on the operation domain by default
because that is needed for the correct operation of most operations.
Nodes may choose not to be realized on the operation domain, like the
MapUV, Plane Deform, and Bokeh Blur nodes; that's because their inputs
are treated as transform-less image objects.
Nodes may chose to realize their rotation or scale, like operations that
are not rotation or scale invariant and thus need images of identity
transformations. No nodes are declared as such so far, as this is still
being considered by developers and test builds be published for testing.
This patch coincidently also fixes#102252 by declaring the Bokeh input
of the Bokeh Blur node to need realization of rotation.
Depends on #111178.
Fixes#102252.
This patch adds support for 2D transformation matrix decomposition into
translation, rotation, and scale. This is needed by the realtime
compositor to implement automatic domain realization logic.