and cid#1660225 Variable copied when it could be moved cid#1660211 Variable copied when it could be moved cid#1660185 Variable copied when it could be moved cid#1660173 Variable copied when it could be moved cid#1660168 Variable copied when it could be moved cid#1660166 Variable copied when it could be moved cid#1660165 Variable copied when it could be moved cid#1660163 Variable copied when it could be moved cid#1660152 Variable copied when it could be moved cid#1660149 Variable copied when it could be moved cid#1660147 Variable copied when it could be moved cid#1660145 Variable copied when it could be moved cid#1660142 Variable copied when it could be moved cid#1660140 Variable copied when it could be moved cid#1660137 Variable copied when it could be moved cid#1660136 Variable copied when it could be moved cid#1660135 Variable copied when it could be moved cid#1660128 Variable copied when it could be moved cid#1660124 Variable copied when it could be moved cid#1660122 Variable copied when it could be moved cid#1660117 Variable copied when it could be moved cid#1660114 Variable copied when it could be moved cid#1660110 Variable copied when it could be moved cid#1660109 Variable copied when it could be moved cid#1660105 Variable copied when it could be moved cid#1660104 Variable copied when it could be moved cid#1660102 Variable copied when it could be moved cid#1660100 Variable copied when it could be moved cid#1660098 Variable copied when it could be moved cid#1660080 Variable copied when it could be moved cid#1660079 Variable copied when it could be moved cid#1660078 Variable copied when it could be moved cid#1660075 Variable copied when it could be moved cid#1660071 Variable copied when it could be moved cid#1660070 Variable copied when it could be moved cid#1660064 Variable copied when it could be moved cid#1660063 Variable copied when it could be moved cid#1660060 Variable copied when it could be moved cid#1660058 Variable copied when it could be moved cid#1660053 Variable copied when it could be moved cid#1660050 Variable copied when it could be moved cid#1660049 Variable copied when it could be moved cid#1660046 Variable copied when it could be moved cid#1660042 Variable copied when it could be moved cid#1660028 Variable copied when it could be moved cid#1660023 Variable copied when it could be moved cid#1660022 Variable copied when it could be moved cid#1660021 Variable copied when it could be moved cid#1660020 Variable copied when it could be moved cid#1660017 Variable copied when it could be moved cid#1660013 Variable copied when it could be moved cid#1660005 Variable copied when it could be moved cid#1660003 Variable copied when it could be moved cid#1659999 Variable copied when it could be moved cid#1659998 Variable copied when it could be moved cid#1659995 Variable copied when it could be moved cid#1659993 Variable copied when it could be moved cid#1659989 Variable copied when it could be moved cid#1659988 Variable copied when it could be moved Change-Id: I2a30c8a2ac8785050d49b98635b0b406535b185a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189056 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Jenkins
Impress Slideshow Engine
3D Transitions
The 3D transitions are slideshow transition engine using OpenGL and
are located in slideshow/source/engine/OGLTrans/. They were initially
written by GSOC student Shane.M.Mathews. Radek has later polished the
code a bit, added few new 3D transitions, added infrastructure for
vertex and fragment shaders. Wrote few transitions with fragment shader
too.
Physics Animation Effects
Physics animation effects are simulated by external 2d physics engine
library Box2D. They don't directly call Box2D functions but instead
use the wrapper in:
slideshow/source/inc/box2dtools.hxxslideshow/source/engine/box2dtools.cxx
The wrapper has two corresponding classes to manage the Box2D world
and Box2D bodies.
When a physics animation starts, a Box2DWorld is initiated and
populated with every shape that is part of the foreground (which are
shapes that do not belong to the master slide and not a background
shape).
After creation until the end of the slide (not the whole slideshow)
the Box2D World isn't destroyed and reused. But the bodies that
represent the shapes in the slide get destroyed when there's a point
in time that there's no physics animation in progress. And recreated
when another physics animation starts.
If there are multiple physics animations in parallel only one of them takes the role of stepping through the simulation.
If there are other animation effects that go in parallel which change
the shape position, rotation, or visibility - they also report the
change to Box2DWorld. These updates are collected in a queue in
Box2DWorld and processed before stepping through the simulation.
To achieve convincing results these updates are performed by setting
the Box2D body's linear velocity or angular velocity instead of
setting directly it's position or rotation.