a8f1f42...
by
Armin Le Grand <email address hidden>
Support buffering SystemDependent GraphicData
Note: This is the backport to LO52bp version
This is a first step to allow buffering of system
dependent data, especially (but not only) for the
system-dependent implementations of graphic output.
For example, for B2DPolygon and Win output, it allows
buffering the Gdiplus::GraphicsPath instead of re-
creating it all the time.
To support that, the change includes forwarding the
current transformation to the renderers in SalGraphics.
The current state in VCL is to transform all and
everything to device coordinates at every single
paint.
I have currently started to do this for ::drawPolyLine
implementations. The fallbacks for all systems will
at the start of that method just transform the data
to device coordinates, so all works as before.
This may also be done for FilledPolygon paint in a later
step, but most urgent is FatLine painting.
An arrangement of shared_ptr/weak_ptr is used so that
either the instance buffering (in the example B2DPolygon)
or the instance managing it can delete it. The instance
managing it currently uses a 1s Timer and a cycle-lifetime
management, but that can be extended in the future
to e.g. include size hints, too.
The mechanism it designed to support multiple Data per
buffering element, e.g. for B2DPolygon at the same time
system-dependent instances of Gdiplus and Cairo can be
buffered, but also PDF-data.
This is achieved semi-automatic by using
typeid(class).hash_code() as key for organization.
The mechanism will be used for now at B2DPolygon, but
is not limited to. There is already a similar but less
general buffer (see GdiPlusBuffer) that can and will
be converted to use this new mechanism.
Added vcl/headless Cairo renderer to support given
ObjectToDevice transformation (not to transform given
B2DPolygon)
Added support for CairoPath buffered at B2DPolygon,
seems to work well. Need to do more tests
Moved usage to templates suggested by Noel Grandin
(Noel Grandin <email address hidden>), thanks for
these suggestions. Adapted Win usage to that, too.
Converted Win-specific GdiPlus BitmapBuffer to new
mechanism, works well. Checked, the manager holds
now a mix of bitmap and path data under Win
Added a cleanup mechanism to flush all buffered data
at DeInitVCL() using flushAll() at
SystemDependentDataBuffer
Adapted Linux-versions of ::drawPolyLine to support
PixelSnapHairline, for now in a simplified version
that still allows buffering. This will also be used
(and use buffering) for the Cairo-fallback in
X11SalGraphics
Change-Id: I88d7e438a20b96ddab7707050893bdd590c098c7
Reviewed-on: https://gerrit.libreoffice.org/59555
Tested-by: Armin Le Grand <email address hidden>
Reviewed-by: Armin Le Grand <email address hidden>
38e5947...
by
Samuel Mehrbrodt <email address hidden>
tdf#109188 Always load documents read-only in SwOneExampleFrame
Should be no problem since 38a3743e0c5d52f9386f74097fd512d3133fbbe3
Reviewed-on: https://gerrit.libreoffice.org/40140
Tested-by: Jenkins <email address hidden>
Reviewed-by: Michael Stahl <email address hidden>
(cherry picked from commit bde72cdae1e7e001d5089c5284672c976b8e43df)
tdf#118994 JAWS has no access to accessibility objects
According to the MSDN, lParam must be cast to DWORD when examining
WM_GETOBJECT messages on 64-bit Windows. The MSDN example also
casts wParam, so in this solution, lParam and wParam are cast to
the appropriate types sal_Int32 and sal_uInt32.
ab76e2b...
by
Vasily Melenchuk <email address hidden>
presentation minimizer: report possible errors
In process bunch of different problems can occur, but they are
not reported to user. IO errors are now shown with message dialog,
other exceptions (if any) are passed to upper level.
2255516...
by
Armin Le Grand <email address hidden>
tdf#115582 Correct coordinate usage for sc's ::Array
In ScOutputData::SetCellRotations() eventually existing
CellRotations are added to the svx::frame::Array data
that gets created for repaint. This used the wrong coordinate
calculation, thus in some cases the repaint of rotated
Cells failed.
Reviewed-on: https://gerrit.libreoffice.org/53171
Tested-by: Jenkins <email address hidden>
Reviewed-by: Armin Le Grand <email address hidden>
(cherry picked from commit 0185e65bcd73dbad2205a39369e1e06b33a2ca51)
Reviewed-on: https://gerrit.libreoffice.org/54922
(cherry picked from commit 08e45e11a0e74cdb4a17ec29df9d03ad03b7f7c0)
The problem was (the same condition of the bOnlyFrameStarts parameter
was used during output of Start and End bookmarks):
if (BkmType::Start == pPtr->nBkmType && !bOnlyFrameStarts)
...
if (BkmType::End == pPtr->nBkmType && !bOnlyFrameStarts)
...
Should be:
if (BkmType::Start == pPtr->nBkmType && bOnlyFrameStarts)
...
if (BkmType::End == pPtr->nBkmType && !bOnlyFrameStarts)
...