summaryrefslogtreecommitdiff
path: root/vcl/inc/win
AgeCommit message (Collapse)AuthorFilesLines
2019-10-10initial implementation of Skia drawing on screen in Windowsprivate/llunak/skiaLuboš Luňák1-0/+1
Change-Id: I1562bd2cfd1862947042bef3343aefd851a65002
2019-07-25Fix typosAndrea Gelmini1-1/+1
Change-Id: I1efccb8b926e4aa10e9ccee7e8e36919e38c05fc Reviewed-on: https://gerrit.libreoffice.org/76339 Tested-by: Jenkins Reviewed-by: Andrea Gelmini <andrea.gelmini@gelma.net>
2019-07-05WIN separate LO shared and embedded fontsJan-Marek Glogowski1-2/+3
This way we can get rid of the embedded fonts without the reqirement to re-process all of LO's shared fonts. Change-Id: I25661a611d43ae05052e5cb9cc21e74ccd06b172 Reviewed-on: https://gerrit.libreoffice.org/75101 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2019-07-05WIN don't register LO's shared fonts twiceJan-Marek Glogowski1-1/+0
This separates the system registration (AddFontResourceEx) of LO's shared fonts from the later PhysicalFontCollection population using EnumFontFamiliesEx. Calling AddTempDevFont from GetDevFontList creates a new WinFontFaces, but the later EnumFontFamiliesEx also creates WinFontFaces for all registered fonts, resulting in duplicate WinFontFace entries in the PhysicalFontCollection. Also currently the provided WinFontFace from AddTempDevFont is much less accurate, compated to the EnumFontFamiliesEx one. Change-Id: I2cd8af77197429508d0a7112ff98706d7f449659 Reviewed-on: https://gerrit.libreoffice.org/75067 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2019-06-20Remove leftover from bitmap fonts support on WindowsKhaled Hosny1-1/+1
The condition "nFontType & RASTER_FONTTYPE" can never be true since we reject such fonts, so nHeight is always zero and we can simplify the code a bit accordingly. Change-Id: Ib3a19777909e16367c8168e86e474c1a5ee64a5b Reviewed-on: https://gerrit.libreoffice.org/74400 Tested-by: Jenkins Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
2019-06-18VCL cleanup WidgetDrawInterfaceJan-Marek Glogowski1-2/+3
I don't understand why WidgetDrawInterface, which is basically a copy of the SalGraphics native controls interface, duplicated it, instead of cleaning things up. The whole commit message of commit 8fcfa3853a81, which added this code, is just: "custom widgets: Custom Widget Themes". That's it. So this patch does, what the original one skipped: replacing the SalGraphics interface with the WidgetDrawInterface. One result is the addition of handleDamage to SalGraphics to correctly handle the damage done by a custom widget theme to the underlying SalGraphics implementation. Change-Id: I5fda1a64b28e6560fb3c62e02b6dcda827f698e2 Reviewed-on: https://gerrit.libreoffice.org/74118 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2019-04-30tdf#114209 vcl win DirectWrite: handle rotated textMiklos Vajna2-5/+8
Commit a51b7a1c3a7e7cf7b0c733e1dec40288278c1884 (tdf#103831, tdf#100986: Force using GDI when needed, 2017-03-03) noted that the DirectWrite text renderer doesn't support vertical text, add initial support for this now by extending the DirectWrite transform matrix to do rotation as well. This is initial support, as it can be improved in two ways: - vertical text is not cached - only vertical Latin text is handled, which wants rotated glyphs (vs e.g. Japanese text that would not rotate the glyphs) With this, the "unreadable" text in the bugdoc's chart is on par with the the GDI rendering. Change-Id: I07af4de6cb437f83cc40546396ec8c8aac456bb3 Reviewed-on: https://gerrit.libreoffice.org/71592 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2019-04-24Related: tdf#113076 vcl win DirectWrite: handle stretched textMiklos Vajna2-0/+13
Commit a51b7a1c3a7e7cf7b0c733e1dec40288278c1884 (tdf#103831, tdf#100986: Force using GDI when needed, 2017-03-03) noted that the DirectWrite text renderer doesn't support stretched text, add support for this now by setting a DirectWrite transform matrix that only does horizontal scaling. With this, tdf#113076 is kept fixed, but at the same time manually stretched text keeps working. Previously the glyphs of the text had the correct size and position, but the glyphs themselves where not streched, but simply aligned to the left. Change-Id: I8fe8e74d3edc0d71ed2f16fcce66c6f5009ed264 Reviewed-on: https://gerrit.libreoffice.org/71245 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2019-04-05Replace legacy dynamically-loaded functions with statically linked onesMike Kaganski1-14/+0
We don't need the dynamic load complexity for these now with baseline Windows version being Windows 7 SP1. Stuff used only for compatibility with older versions was dumped. Change-Id: I810f271796cfd875cfa18a3081c9ad444fe57b3e Reviewed-on: https://gerrit.libreoffice.org/70321 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-04-03tdf#114316 vcl opengl windows: fix missing context menu in full-screen modeMiklos Vajna1-0/+1
Full-screen mode on Windows used to work by measuring the space needed by window caption (title) and borders, then positioning and sizing the window in a way, so that the caption and borders are not visible. This approach breaks at least in the OpenGL case where a large enough negative position results in rendering errors. Fix the problem by explicitly requesting the window to have no caption, so we render less outside the screen (30 pixels -> 8 pixels in my case), which makes the "exit fullscreen" toolbar appear, also the context menu is visible. Change-Id: I6cf2b9774b505d3887b958a6a018b5ae84bbe4bc Reviewed-on: https://gerrit.libreoffice.org/70191 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2019-02-27convert more Start timer methods from sal_uLong->sal_uInt64Noel Grandin1-1/+1
Change-Id: I1ed43bab00a5bc456032410ccf32b3fd64cc970c Reviewed-on: https://gerrit.libreoffice.org/68419 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-02-26sal_uIntPtr->sal_uInt32 inSalClipRegion::BeginSetClipRegionNoel Grandin2-2/+2
sal_uInt32 seems reasonable given that this is the number of rectanges in an image. And then convert all of the other BeginSetClipRegion methods to use sal_uInt32 too. Change-Id: I85a712ec823662ac30f3859051e2b974fb99775e Reviewed-on: https://gerrit.libreoffice.org/68343 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-02-26sal_uIntPtr->sal_uInt64 in SalTimer::StartNoel Grandin1-1/+1
because the call site specifies millis in a sal_uInt64 variable Change-Id: I5cf42407b9e7f3cdef976d8f442609723fd67af9 Reviewed-on: https://gerrit.libreoffice.org/68342 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-02-26sal_uLong->sal_uInt32 in drawEPSNoel Grandin1-1/+1
Change-Id: I58beedfee1a55df971e778ba2aa3b6989ba53663 Reviewed-on: https://gerrit.libreoffice.org/68341 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-02-01tdf#107792 vcl/win: use ScopedGDI in WinSalVirtualDeviceDmitriy Shilin1-1/+2
Change-Id: Ia804f4ab527870ded8d57aa0d49aae1d357b7ac9 Reviewed-on: https://gerrit.libreoffice.org/66649 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-01-30loplugin:redundantfcast (clang-cl)Stephan Bergmann1-1/+1
Change-Id: I814e7b61ebbef1a0bbd38a5e70beeb7f99a0cfa1 Reviewed-on: https://gerrit.libreoffice.org/67146 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-01-30tdf#107792 vcl/win: introduce ScopedCachedHDCDmitriy Shilin1-0/+17
Change-Id: Ia6c5ca98005642bbcce9d9d66bf16a4d4cbed04e Reviewed-on: https://gerrit.libreoffice.org/66648 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-01-25Change SalGraphics::GetTextLayout definitionJan-Marek Glogowski1-2/+2
* drop the unused ImplLayoutArgs argument * return a std::unique_ptr<GenericSalLayout> Change-Id: I150a2a46f67f1ffbbd3ba0ffa68f5bffb30206c8 Reviewed-on: https://gerrit.libreoffice.org/66884 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2019-01-18tdf#107792 vcl/win: introduce ScopedHBITMAPDmitriy Shilin1-0/+1
Change-Id: I2af507d9b924644d3a0e8a4bf2e92ca4b8a9a1b4 Reviewed-on: https://gerrit.libreoffice.org/65929 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-01-18tdf#107792 vcl/win: introduce ScopedSelectedHBRUSHDmitriy Shilin1-0/+1
Change-Id: I39792ce8442f9e7776b44a489b3c15b908e2f773 Reviewed-on: https://gerrit.libreoffice.org/66253 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-01-18tdf#107792 vcl/win: introduce ScopedSelectedHFONTDmitriy Shilin1-31/+20
Change-Id: If06ef869fc68976ee3ac6e671edd1bb4f992e716 Reviewed-on: https://gerrit.libreoffice.org/65964 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Jenkins
2019-01-13tdf#107792 vcl/win: introduce ScopedSelectedHPENDmitriy Shilin1-0/+25
Change-Id: Ifbf42e083388c1e678615489ffba1245e2b49665 Reviewed-on: https://gerrit.libreoffice.org/65963 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-01-13tdf#107792 vcl/win: move scoped_gdi.hxx to vcl/inc/winDmitriy Shilin1-0/+42
Change-Id: Id08a98d31673cfa9b701e7efdaefd94d24a93807 Reviewed-on: https://gerrit.libreoffice.org/66214 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-01-09tdf#107792 vcl/win: replace ScopedHDC with type aliasDmitriy Shilin1-45/+0
Change-Id: I2d12ebc2a7e353ce685ec5132b0a65b393c36212 Reviewed-on: https://gerrit.libreoffice.org/65962 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-12-12tdf#117295 WIN no main loop shortcut for OLE dialogJan-Marek Glogowski1-0/+2
Normally we handle Idle events directly without posting events to the main event queue, as there seem to be no way to post them to the end of the queue and this starves system events. This prevents using this short-cut, as the default Windows event processing doesn't know of this special handling. Eventually this hack should be removed by simply always processing all pending events... Change-Id: If9ae81ca7e847743f9251343e106dbf566371584 Reviewed-on: https://gerrit.libreoffice.org/65040 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2018-12-05tdf#121719: Revert fix for tdf#96971Xisco Fauli1-1/+1
it's still used on Mac. Revert it until XOL is removed This reverts 258301879bcd20397c38bbd522dea2c923bd9fc2 Change-Id: I06548a590f370618ad640724a1b9c59a3faceec2 Reviewed-on: https://gerrit.libreoffice.org/64582 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-11-01loplugin:useuniqueptr in SalFrame::PostEventNoel Grandin1-1/+1
Change-Id: Ib066b1d6df90f330f2f93ec639bd7bc59a08c024 Reviewed-on: https://gerrit.libreoffice.org/62507 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-10-31loplugin:useuniqueptr in DeletePrinterQueueInfoNoel Grandin1-1/+0
Change-Id: Ia124a4af642e449dc05f5bae2d5ca766bd67bd68 Reviewed-on: https://gerrit.libreoffice.org/62388 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-10-30Move SalGraphics glyph functions into FontInstanceJan-Marek Glogowski2-5/+5
As we already rely on the GlyphItem's font instance, consequently this removes the SalGraphics GlyphItem based functions. Also unifies the glyph bound rect cache handling. An interesting aspect is the rotated glyph bounding box handling moved from CairoTextRender to FreetypeFont. It doesn't look like an implementation detail for Cairo, so it may have been a bug. Change-Id: I81bbb5d8ee98fb77a1eee05568c456f9e4553023 Reviewed-on: https://gerrit.libreoffice.org/62503 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2018-10-06WIN rename GlyphCache to OpenGLGlyphCacheJan-Marek Glogowski2-20/+21
The Windows-backend based GlyphCache is OpenGL specific, so reflect that by renaming it. Change-Id: I1034bfde14792f0b6a807f8e938742556a31fcfb Reviewed-on: https://gerrit.libreoffice.org/61452 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2018-10-02Unify sal plugin loadersJan-Marek Glogowski1-1/+0
Change-Id: Ic099761eaff80349e985ccf62e3f4aa6b2e98022 Reviewed-on: https://gerrit.libreoffice.org/61103 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2018-09-18Move yield mutex handling into SalInstanceJan-Marek Glogowski1-5/+0
After the refectoring in commit 4c93de2c921b ("merge GenericSolarMutex and SolarMutex"), there is no more need to prevent instantiation of comphelper::SolarMutex objects. Since every VCL backend implements the yield mutex management in the same way, we can move the general implementation into the SalInstance. While at it use std::unique_ptr for the yield mutex on Mac and Windows platforms. Change-Id: Ibe0610bd92b4623152ee14e7a35b52465d403720 Reviewed-on: https://gerrit.libreoffice.org/60570 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2018-09-14make WinFontInstance take and return a WinFontFaceNoel Grandin1-2/+4
to make the handling more explicit here Change-Id: I934fcc7b0da8a160acd904440f18fc6c01ec1ad3 Reviewed-on: https://gerrit.libreoffice.org/60475 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-09-13Support buffering SystemDependent GraphicData (II)Armin Le Grand1-1/+4
In this step I have changed all calls that use a B2DPolyPolygon and do filled graphics, added support for providing needed transformation which will -if supported- be used. Added buffering of SystemDependentData at B2DPolyPolygon for that purpose, see comments describing the current possibilities in the Gdiplus implementation. Moved lifetime creation/cleanup of SystemDependentDataManager to ImplSVData due to cleanup problems in the clang build Tried to use a std::unique_ptr to hold the instance of a SystemDependentDataBuffer at ImplSVData and cleanup inside DeInitVCL() right before ::ImplDeInitScheduler. This works in principle, but scheduler shutdown triggers ProcessEventsToIdle which leads to repaints and re-creates the buffer. Will now do exactly as was done with GdiPlusBuffer before, a simple local static incarnation and a call to SetStatic() in constructor Splitted SystemDependentDataBuffer and Timer due to different LifeTimes. Timer needs to be destructed earlier than SystemDependentDataBuffer, before Scheduler::ImplDeInitScheduler() is called from DeInitVCL() Change-Id: I2134e4346a183a4cee1be3428c51541cc8867c11 Reviewed-on: https://gerrit.libreoffice.org/60102 Tested-by: Jenkins Reviewed-by: Armin Le Grand <Armin.Le.Grand@cib.de>
2018-09-07WIN add SalGraphics* to WinFontInstanceJan-Marek Glogowski2-4/+7
HFONT lookup in ImplDoSetFont depends on the mbVirDev of the WinSalGraphics. Since we need too look up HFONTs for SalLayout without changing the corresponding SalGraphics, add a pointer to the WinFontInstance. Change-Id: Idb6573ce7267f0019c2183be47621d0eaef8e57b Reviewed-on: https://gerrit.libreoffice.org/60093 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2018-09-07WIN drop mhFonts[MAX_FALLBACK]Jan-Marek Glogowski1-13/+0
Everything now uses the HFONT from WinFontInstance, so there is no need for the additional fallback array. Change-Id: I15a197b262633569cb95c37689561db5323e1115 Reviewed-on: https://gerrit.libreoffice.org/60092 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2018-09-06tdf#119302 WIN better font scale handlingJan-Marek Glogowski2-2/+3
Moves the scale factor into the LogicalFontInstance and uses the Glyphs font fallback level to use the correct font and scale. Probably the glyphs should be using a rtl::Reference to the LogcalFontInstance instead of the fallback level. I don't know if glyphs are evicted from the cache, if the fallback changes. There is now an assert and all places will use 1.0 as the default scaling factor, so LO should at least not crash. Change-Id: I9dd4fc3a5b5924fc379b48a7f71c9eed26b4779d Reviewed-on: https://gerrit.libreoffice.org/60091 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2018-08-30Support buffering SystemDependent GraphicDataArmin Le Grand2-15/+21
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 <noelgrandin@gmail.com>), 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 <Armin.Le.Grand@cib.de> Reviewed-by: Armin Le Grand <Armin.Le.Grand@cib.de>
2018-08-27WIN use the SetTimer timer as one-shotJan-Marek Glogowski1-0/+1
SetTimer is a continuous timer, but we want to use it as a one-shot, so make sure we actually kill it when not needed. Change-Id: If6f5374346dc530eb664545ade2c2955885941b5 Reviewed-on: https://gerrit.libreoffice.org/59589 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2018-08-27WIN ignore the timer resultsJan-Marek Glogowski1-2/+2
Nobody else will handle our scheduler or WM_TIMER event, so there is really no point to return any error value from the handlers to some lower level function. Change-Id: I33eac11076a30220cfa11cec8f352bd5c8b69209 Reviewed-on: https://gerrit.libreoffice.org/59588 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2018-08-24tdf#118786 WIN just assert in YieldJan-Marek Glogowski1-1/+1
This reminds me - again - that Jenkins doesn't run make check. It turns out InSendMessage() also returns true, if you process a nested SendMessage in the same thread. Therefore we have to remove the SalComWndProc assert and just keep the one in the Yield call. Why? Because there seem to be no way to get the information ReplyMessage has access to, so we could detect the caller / origin of the send message and implement proper nested call checks. The alternative would be to change all call sites of SendMessage to: if ( !pSalData->mpInstance->IsMainThread() ) SendMessage(...) else SalComWndProc(...) which is the same SendMessage already does. Change-Id: I991d68a64952dc5d47ba51edd8635c9e8c46614c Reviewed-on: https://gerrit.libreoffice.org/59538 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-08-22arg is never nullCaolán McNamara1-1/+1
Change-Id: Ifde85786e9e0b0d9c1bdb1163b7c4a0889005323 Reviewed-on: https://gerrit.libreoffice.org/59386 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-08-22rename FontSelectPatternAttributes to FontSelectPatternCaolán McNamara2-6/+6
Change-Id: I2c018e2e61707c0d89178b0cb38a0918906e23cb Reviewed-on: https://gerrit.libreoffice.org/59390 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-08-22turn the cache around to work on LogicalFontInstanceCaolán McNamara2-3/+3
instead of a FontSelectPattern with an associated LogicalFontInstance use a LogicalFontInstance with owned FontSelectPatternAttributes Change-Id: I939f84731fcb8db5ff6484dcfbd2f9199bb50d23 Reviewed-on: https://gerrit.libreoffice.org/59388 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-08-21can now use just FontSelectPatternAttributesCaolán McNamara1-3/+3
Change-Id: I1857afa0a9aff39118ba3c242134985f865e37c1 Reviewed-on: https://gerrit.libreoffice.org/59387 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-08-21use LogicalFontInstance with SalGraphicsCaolán McNamara1-2/+2
Change-Id: I66fb1ff4b2fdcc211e0a9d5831f6dcc5e564e789 Reviewed-on: https://gerrit.libreoffice.org/59372 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-07-19Fix typosAndrea Gelmini1-1/+1
Change-Id: I2aa5448869bf60e9c8d9b1ebabd0d0932d28f3a1 Reviewed-on: https://gerrit.libreoffice.org/57606 Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> Tested-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2018-07-10Revert "tdf#117517: Fix OpenGL text rendering on Windows"Jan-Marek Glogowski1-1/+1
This actually breaks the OpenGL glyph cache, which forced a full redraw all the time working around the original problem, which is now fixed with commit fad862e290d727fc9fefe206f6e4b807482c4175. This reverts commit c5f8a296fcfc08f8ac441cb8300a7565caa50b53. Change-Id: Ibfc5a24dfc157c42b4cf796b35101191e88a6d15 Reviewed-on: https://gerrit.libreoffice.org/57221 Tested-by: Jenkins Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
2018-07-09tdf#118555 fix HFONT fallback handing / lifecycleJan-Marek Glogowski2-4/+19
Instead of storing the never changing DC in the WinFontInstance store the HFONT, which is Windows logical font instance. Then set the correct HFONT instance from the layout when rendering its text. This also changes the HFONT ownership and lifecycle. The HFONT is moved from the mhFonts to the WinFontInstance, if available, so it has a proper referenced lifecycle. The mhFonts is still needed, as embedded font just supply an HFONT and no WinFontInstance. Change-Id: Iba62281c710290276f004f0c0177e6d37c849d2c Reviewed-on: https://gerrit.libreoffice.org/57101 Tested-by: Jenkins Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
2018-06-14return SalBitmap using std::shared_ptrNoel Grandin2-2/+2
since we hold it like that in Bitmap anyway Change-Id: I6264dfaaae6210cb008df5db8a421fc80c508f5b Reviewed-on: https://gerrit.libreoffice.org/55458 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>