This reverts commits f5b6bfbbd1 and afccc72be3.
Reason: These commits seem to have caused a regression (#17764), so reverting
for now to get back to the same state as in 2.1.4-stable until a better
variant can be worked on and merged for 2.1.6.
Fixes#17764.
The change in #10524 subtly changes the behavior of set_motion_scale()
and set_motion_offset() if the ParallaxLayer does not have a parent
node. Previously it would still set the corresponding property, but
after this change the property change would be discarded.
I'm not entirely sure if this actually matters as there doesn't appear
to be any code that picks up this change if the ParallaxLayer gets
re-parented later, but it's better to not change behavior regardless.
That year should bring the long-awaited OpenGL ES 3.0 compatible renderer
with state-of-the-art rendering techniques tuned to work as low as middle
end handheld devices - without compromising with the possibilities given
for higher end desktop games of course. Great times ahead for the Godot
community and the gamers that will play our games!
(cherry picked from commit c7bc44d5ad)
Replaces the iterative approach currently used by an equivalent direct computation.
Also fixes infinite looping that happens when the mirroring value is negative.
Replaces the iterative approach currently used by the standard fmod() function.
Also fixes infinite looping that happens when the mirroring value is negative.