df788fcc30
because of the side effects using a bare GtkGrid as m_pSocket in vcl/unx/gtk3/gtk3gtkobject.cxx is perhaps a poor choice, getting its xid causes poor side effects wrt events belonging to its child widgets getting delivered to the SalFrame widget, so duplicate scrolling after showing a opengl slide and/or showing a video and lots of flickering we're (generally at least) not using the xid under gtk3 so don't set it unless it's explicitly asked for. Happily the gtk Player::createPlayerWindow doesn't use its arg[0] xid in any case, so don't bother setting it for that backend. Change-Id: I1c59a607a332635091782c3b49de10647558f301 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109941 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> |
||
---|---|---|
.. | ||
inc/pch | ||
opengl | ||
qa | ||
source | ||
test | ||
util | ||
CppunitTest_slideshow.mk | ||
IwyuFilter_slideshow.yaml | ||
Library_OGLTrans.mk | ||
Library_slideshow.mk | ||
Makefile | ||
manifest.txt | ||
Module_slideshow.mk | ||
Package_opengl.mk | ||
README |
The 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.hxx * slideshow/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 Box2D World. 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.