Rendercontext & Double-Bufgering
By Jan Holesovsky
@JHolesovsky <kendy@collabora.com> @CollaboraOffjce www.CollaboraOffjce.com
Rendercontext & Double-Bufgering By Jan Holesovsky @JHolesovsky - - PowerPoint PPT Presentation
Rendercontext & Double-Bufgering By Jan Holesovsky @JHolesovsky <kendy@collabora.com> @CollaboraOffjce www.CollaboraOffjce.com VCL changes... VCL (Visual Class Library) LibreOffjce's graphics toolkit ~20 year history
By Jan Holesovsky
@JHolesovsky <kendy@collabora.com> @CollaboraOffjce www.CollaboraOffjce.com
2 / 14 LibreOffice Conference 2015, Aarhus | Jan Holesovsky
modern features like OpenGL support
picture
3 / 14 LibreOffice Conference 2015, Aarhus | Jan Holesovsky
mouse over efgect, …)
riggered by timer
debug rectangle at the top left when layout fjnishes)
4 / 14 LibreOffice Conference 2015, Aarhus | Jan Holesovsky
– Consequently it can control the conditions of
the paint – various setups / tear downs etc.
– And VCL decides when to paint, and what
5 / 14 LibreOffice Conference 2015, Aarhus | Jan Holesovsky
drawing
OutputDevice which allows all the painting at random points of time
– That's what we want to avoid
implementation of the OutputDevice
6 / 14 LibreOffice Conference 2015, Aarhus | Jan Holesovsky
directly now has to use Invalidate()
Idle work
7 / 14 LibreOffice Conference 2015, Aarhus | Jan Holesovsky
for the rendering in the right order
– Bufger set up before calling paint
(VirtualDevice)
– Then call the Paint()s (as before) – Copy the bufger to the screen when done
8 / 14 LibreOffice Conference 2015, Aarhus | Jan Holesovsky
clang plugin)
many bugs – thank you!
9 / 14 LibreOffice Conference 2015, Aarhus | Jan Holesovsky
the Paint method
OutputDevice, and paint to it later
rendercontext confusion
10 / 14 LibreOffice Conference 2015, Aarhus | Jan Holesovsky
in the Paint() methods
– Except text cursor – needs inverting still – and
some deep pieces
12 / 14 LibreOffice Conference 2015, Aarhus | Jan Holesovsky
as a fmat rectangle? [as in Firefox etc.]
needed for double-bufgering
13 / 14 LibreOffice Conference 2015, Aarhus | Jan Holesovsky
screen, but only 256x256 'tiles'
path again
scrolling / panning / zoom
14 / 14 LibreOffice Conference 2015, Aarhus | Jan Holesovsky