Created attachment 124238 [details] screenshot Graphite fonts (Linux Libertine/Biolinum, Gentium etc.) are rendered in inverted colors (see attachments).
Created attachment 124239 [details] test file
List of my fonts that are impacted: Andika Basic, SIL international Gentium Basic, SIL international Gentium Book Basic, SIL international Linux Biolinum G, LinuxLibertine.org Linux Libertine Display G, LinuxLibertine.org Linux Libertine G, LinuxLibertine.org It is very critical! Seems that all the graphic fonts are impacted. The colours are not true but the black, but also the view is not good (and not good for the eyes) and the text is not printed. Fortunately, the pdf exports are good. It impacts the document but also Base forms (it is worse than the previous release). Whit professional and business documents it is a nightmare. IT IS NOT MINOR !!! and I can't change the field.
This bug seems (not sure) related to tdf#97171 ( Artifacts for italic text in GL rendering mode) resolved in the same version this bug appears.
On Windows 10 Pro 64-bit en-US with Version: 5.1.2.2 (x64) Build ID: d3bf12ecb743fc0d20e0be0c58ca359301eb705f CPU Threads: 8; OS Version: Windows 6.19; UI Render: GL; Locale: en-US (en_US) Confirming, however when OpenGL rendering is enabled fonts are colored correctly. Only when OpenGL rendering is not enbled are the Graphite fonts taking an incorrect hue. Blue renders Red Red renders Blue Green renders Green.
Oh amazing - presumably if it only works when GL is enabled, then this is not a GL bug ? =) If that can be confirmed - please drop the 'Blocks' field =) Anyhow - let me CC Martin; we have the privilege of having the SIL / graphite guys interested & available. It'd be great if someone could add Martin as the guy to CC to the QA domain experts page for graphite related issues in the wiki (?) =) Thanks !
(In reply to Michael Meeks from comment #5) > Oh amazing - presumably if it only works when GL is enabled, then this is > not a GL bug ? =) If that can be confirmed - please drop the 'Blocks' field > =) OK, it is not strictly an issue with enabling OpenGL rendering, and looks to be in the GraphiteWinLayout area of winlayout.cxx Down side seems that when OpenGL is enabled, the coloring of fonts issue resolves, but performance when Graphite fonts are used becomes *very* sluggish to the point of the entire GUI being unusable. Otherwise, for folks with GPUs blacklisted for OpenGL use, they will only be seeing discolored Graphite fonts. Here is the top of a WinDbg 64bit stack trace of 64-bit 5.1.2.2 running in OpenGL mode and sluggish with any canvas redraw. 0:017> ~* kp 0 Id: 1a1c.1b40 Suspend: 1 Teb: 00000021`5a35a000 Unfrozen Child-SP RetAddr Call Site 00000021`5ad8cce8 00007ff9`c6ec3ce0 GDI32!NtGdiRestoreDC+0x14 00000021`5ad8ccf0 00007ff9`bf2fd050 GDI32!RestoreDC+0xa0 00000021`5ad8cd80 00007ff9`bf29d55e D2d1!BitmapRealization::ReleaseDC+0x64 00000021`5ad8cde0 00007ff9`bf29d255 D2d1!DCRenderTargetHelper::PresentToDC+0x12e 00000021`5ad8cea0 00007ff9`bf2f2328 D2d1!DCPresenter::Present+0x65 00000021`5ad8cee0 00007ff9`bf2bec80 D2d1!DrawingContext::EndDraw+0xe4 00000021`5ad8cf30 00007ff9`a34f02ff D2d1!D2DDeviceContextBase<ID2D1DCRenderTarget,ID2D1DCRenderTarget,ID2D1DeviceContext3>::EndDraw+0xa0 00000021`5ad8cf80 00007ff9`a34f3ac4 mergedlo!D2DWriteTextOutRenderer::operator()(class WinLayout * rLayout = 0x00007ff9`c6ec021f, struct HDC__ * hDC = 0x0000016b`000001d6, class Rectangle * pRectToErase = 0x00000000`00000000, class Point * pPos = 0x00000021`5ad8d138, int * pGetNextGlypInfo = 0x00000021`5ad8d120)+0x30f [c:\cygwin64\home\buildslave\source\libo-core\vcl\win\source\gdi\winlayout.cxx @ 3794] 00000021`5ad8d0b0 00007ff9`a34f3982 mergedlo!GraphiteWinLayout::DrawTextImpl(struct HDC__ * hDC = 0x00000021`5ad8d1c9, class Rectangle * pRectToErase = 0x00000000`038a007c, class Point * pPos = 0x00000000`0099ff66, int * pGetNextGlypInfo = 0x00000021`5ad8d120)+0x74 [c:\cygwin64\home\buildslave\source\libo-core\vcl\win\source\gdi\winlayout.cxx @ 4095] 00000021`5ad8d0f0 00007ff9`a3291cf7 mergedlo!WinLayout::DrawText(class SalGraphics * rGraphics = 0x00000000`00000000)+0x252 [c:\cygwin64\home\buildslave\source\libo-core\vcl\win\source\gdi\winlayout.cxx @ 1469] 00000021`5ad8d230 00007ff9`a3291020 mergedlo!OutputDevice::ImplDrawTextDirect(class SalLayout * rSalLayout = 0x00000181`6145d610, bool bTextLines = true, unsigned long flags = 0x73d18a30)+0x107 [c:\cygwin64\home\buildslave\source\libo-core\vcl\source\outdev\text.cxx @ 337] 00000021`5ad8d290 00007ff9`a328d78b mergedlo!OutputDevice::ImplDrawText(class SalLayout * rSalLayout = 0x00000181`6145d610)+0xa0 [c:\cygwin64\home\buildslave\source\libo-core\vcl\source\outdev\text.cxx @ 493] 00000021`5ad8d2c0 00007ff9`9ee3f33a mergedlo!OutputDevice::DrawTextArray(class Point * rStartPt = 0x00000181`61ef5fcc, class rtl::OUString * rStr = 0x00000021`5ad8d640, long * pDXAry = 0x00007ff9`9ea42baa, long nIndex = 0n1, long nLen = 0n103, SalLayoutFlags flags = NONE (0n0))+0x12b [c:\cygwin64\home\buildslave\source\libo-core\vcl\source\outdev\text.cxx @ 991] 00000021`5ad8d380 00007ff9`9ee610ec swlo!SwFntObj::DrawText(class SwDrawTextInfo * rInf = 0x00007ff9`b83cc600)+0x1d3a [c:\cygwin64\home\buildslave\source\libo-core\sw\source\core\txtnode\fntcache.cxx @ 1770] 00000021`5ad8d500 00007ff9`9edcffc4 swlo!SwSubFont::_DrawText(class SwDrawTextInfo * rInf = 0x00000021`5ad8d640, bool bGrey = true)+0x1ac [c:\cygwin64\home\buildslave\source\libo-core\sw\source\core\txtnode\swfont.cxx @ 1203] 00000021`5ad8d5d0 00007ff9`9edfeaad swlo!SwTextPaintInfo::_DrawText(class rtl::OUString * rText = 0x00000181`65d5c780, class SwLinePortion * rPor = 0x00000000`00000000, long nStart = 0n213, long nLength = 0n103, bool bKern = false, bool bWrong = false, bool bSmartTag = false, bool bGrammarCheck = false)+0x6a4 [c:\cygwin64\home\buildslave\source\libo-core\sw\source\core\text\inftxt.cxx @ 726] 00000021`5ad8d780 00007ff9`9ede3781 swlo!SwTextPortion::Paint(class SwTextPaintInfo * rInf = 0x00000021`5ad8d899)+0x20d [c:\cygwin64\home\buildslave\source\libo-core\sw\source\core\text\portxt.cxx @ 555] 00000021`5ad8d7f0 00007ff9`9edc6ea2 swlo!SwTextPainter::DrawTextLine(class SwRect * rPaint = 0x00000021`0000247f, class SwSaveClip * rClip = 0x00000021`5ad8d9a0, bool bUnderSz = false)+0x8e1 [c:\cygwin64\home\buildslave\source\libo-core\sw\source\core\text\itrpaint.cxx @ 392] 00000021`5ad8d900 00007ff9`9ed3afc0 swlo!SwTextFrame::Paint(class OutputDevice * rRenderContext = 0x00000021`5ad8e530, class SwRect * rRect = 0x00000181`0000170f, class SwPrintData * __formal = 0x00000181`65e1a510)+0x412 [c:\cygwin64\home\buildslave\source\libo-core\sw\source\core\text\frmpaint.cxx @ 693] 00000021`5ad8e4f0 00007ff9`9ed3afc0 swlo!SwLayoutFrame::Paint(class OutputDevice * rRenderContext = 0x00000181`7312e7a0, class SwRect * rRect = 0x00000181`65e19000, class SwPrintData * __formal = 0x00007ff9`9fd2ee00)+0x2c0 [c:\cygwin64\home\buildslave\source\libo-core\sw\source\core\layout\paintfrm.cxx @ 3673] 00000021`5ad8e5c0 00007ff9`9ed3ba33 swlo!SwLayoutFrame::Paint(class OutputDevice * rRenderContext = 0x00000181`7312e7a0, class SwRect * rRect = 0x00000181`61c42a50, class SwPrintData * __formal = 0x00007ff9`9fd7e330)+0x2c0 [c:\cygwin64\home\buildslave\source\libo-core\sw\source\core\layout\paintfrm.cxx @ 3673] 00000021`5ad8e690 00007ff9`9f04b1fe swlo!SwRootFrame::Paint(class OutputDevice * rRenderContext = 0x00000181`7312e7a0, class SwRect * rRect = 0x00000181`7312e7a0, class SwPrintData * pPrintData = 0x00000000`00000000)+0x963 [c:\cygwin64\home\buildslave\source\libo-core\sw\source\core\layout\paintfrm.cxx @ 3394] 00000021`5ad8e9a0 00007ff9`9ea5d8eb swlo!SwViewShell::Paint(class OutputDevice * rRenderContext = 0x00000181`61c42a50, class Rectangle * rRect = 0x00000181`61504900)+0x2ae [c:\cygwin64\home\buildslave\source\libo-core\sw\source\core\view\viewsh.cxx @ 1803] 00000021`5ad8ea70 00007ff9`9f1dce3f swlo!SwCursorShell::Paint(class OutputDevice * rRenderContext = 0x00000181`7628d010, class Rectangle * rRect = 0x00007ff9`a34d17da)+0xcb [c:\cygwin64\home\buildslave\source\libo-core\sw\source\core\crsr\crsrsh.cxx @ 1280] 00000021`5ad8eb10 00007ff9`a30c38f8 swlo!SwEditWin::Paint(class OutputDevice * rRenderContext = 0x00000181`73131558, class Rectangle * rRect = 0x00000181`73131320)+0xff [c:\cygwin64\home\buildslave\source\libo-core\sw\source\uibase\docvw\edtwin2.cxx @ 473] 00000021`5ad8eb60 00007ff9`a30c45c0 mergedlo!PaintHelper::DoPaint(class vcl::Region * pRegion = 0x00000181`61504900)+0x228 [c:\cygwin64\home\buildslave\source\libo-core\vcl\source\window\paint.cxx @ 306] 00000021`5ad8ec30 00007ff9`a30c33f1 mergedlo!vcl::Window::ImplCallPaint(class vcl::Region * pRegion = 0x00000181`7312e7a0, unsigned short nPaintFlags = 0x4900)+0x1b0 [c:\cygwin64\home\buildslave\source\libo-core\vcl\source\window\paint.cxx @ 608] 00000021`5ad8ece0 00007ff9`a30c45d3 mergedlo!PaintHelper::~PaintHelper(void)+0x91 [c:\cygwin64\home\buildslave\source\libo-core\vcl\source\window\paint.cxx @ 546] 00000021`5ad8ed90 00007ff9`a30c33f1 mergedlo!vcl::Window::ImplCallPaint(class vcl::Region * pRegion = 0x00000181`61dbce70, unsigned short nPaintFlags = 0x4900)+0x1c3 [c:\cygwin64\home\buildslave\source\libo-core\vcl\source\window\paint.cxx @ 610] 00000021`5ad8ee40 00007ff9`a30c45d3 mergedlo!PaintHelper::~PaintHelper(void)+0x91 [c:\cygwin64\home\buildslave\source\libo-core\vcl\source\window\paint.cxx @ 546] 00000021`5ad8eef0 00007ff9`a30c33f1 mergedlo!vcl::Window::ImplCallPaint(class vcl::Region * pRegion = 0x00000181`61dbd5f0, unsigned short nPaintFlags = 0x4900)+0x1c3 [c:\cygwin64\home\buildslave\source\libo-core\vcl\source\window\paint.cxx @ 610] 00000021`5ad8efa0 00007ff9`a30c45d3 mergedlo!PaintHelper::~PaintHelper(void)+0x91 [c:\cygwin64\home\buildslave\source\libo-core\vcl\source\window\paint.cxx @ 546] 00000021`5ad8f050 00007ff9`a30c33f1 mergedlo!vcl::Window::ImplCallPaint(class vcl::Region * pRegion = 0x00000181`72f21210, unsigned short nPaintFlags = 0x4900)+0x1c3 [c:\cygwin64\home\buildslave\source\libo-core\vcl\source\window\paint.cxx @ 610] 00000021`5ad8f100 00007ff9`a30c45d3 mergedlo!PaintHelper::~PaintHelper(void)+0x91 [c:\cygwin64\home\buildslave\source\libo-core\vcl\source\window\paint.cxx @ 546] 00000021`5ad8f1b0 00007ff9`a30c33f1 mergedlo!vcl::Window::ImplCallPaint(class vcl::Region * pRegion = 0x00000181`61c1ecd0, unsigned short nPaintFlags = 0x4900)+0x1c3 [c:\cygwin64\home\buildslave\source\libo-core\vcl\source\window\paint.cxx @ 610] 00000021`5ad8f260 00007ff9`a30c45d3 mergedlo!PaintHelper::~PaintHelper(void)+0x91 [c:\cygwin64\home\buildslave\source\libo-core\vcl\source\window\paint.cxx @ 546] 00000021`5ad8f310 00007ff9`a30c43fa mergedlo!vcl::Window::ImplCallPaint(class vcl::Region * pRegion = 0x00000000`00000000, unsigned short nPaintFlags = 0)+0x1c3 [c:\cygwin64\home\buildslave\source\libo-core\vcl\source\window\paint.cxx @ 610] 00000021`5ad8f3c0 00007ff9`a30c469b mergedlo!vcl::Window::ImplCallOverlapPaint(void)+0x9a [c:\cygwin64\home\buildslave\source\libo-core\vcl\source\window\paint.cxx @ 629] 00000021`5ad8f400 00007ff9`a3427c57 mergedlo!vcl::Window::ImplHandlePaintHdl(class Idle * __formal = 0x00000021`5a35a800)+0x8b [c:\cygwin64\home\buildslave\source\libo-core\vcl\source\window\paint.cxx @ 659] 00000021`5ad8f440 00007ff9`a3427ca6 mergedlo!ImplSchedulerData::Invoke(void)+0x47 [c:\cygwin64\home\buildslave\source\libo-core\vcl\source\app\scheduler.cxx @ 41] 00000021`5ad8f470 00007ff9`a343bc23 mergedlo!Scheduler::ProcessTaskScheduling(bool bTimerOnly = true)+0x36 [c:\cygwin64\home\buildslave\source\libo-core\vcl\source\app\scheduler.cxx @ 171] 00000021`5ad8f4b0 00007ff9`a343a3dc mergedlo!ImplYield(bool i_bWait = true, bool i_bAllEvents = true, unsigned int64 nReleased = 0x00000181`61e3d9f0)+0x93 [c:\cygwin64\home\buildslave\source\libo-core\vcl\source\app\svapp.cxx @ 522] 00000021`5ad8f510 00007ff9`a2485c82 mergedlo!Application::Execute(void)+0x14c [c:\cygwin64\home\buildslave\source\libo-core\vcl\source\app\svapp.cxx @ 470] 00000021`5ad8f560 00007ff9`a3442089 mergedlo!desktop::Desktop::Main(void)+0x1082 [c:\cygwin64\home\buildslave\source\libo-core\desktop\source\app\app.cxx @ 1609] 00000021`5ad8f820 00007ff9`a3442422 mergedlo!ImplSVMain(void)+0x49 [c:\cygwin64\home\buildslave\source\libo-core\vcl\source\app\svmain.cxx @ 170] 00000021`5ad8f860 00007ff9`a24a0fa5 mergedlo!SVMain(void)+0x32 [c:\cygwin64\home\buildslave\source\libo-core\vcl\source\app\svmain.cxx @ 208] *** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\Program Files\LibreOffice 5\program\soffice.bin - 00000021`5ad8f890 00007ff6`258b102e mergedlo!soffice_main(void)+0x75 [c:\cygwin64\home\buildslave\source\libo-core\desktop\source\app\sofficemain.cxx @ 96] 00000021`5ad8f940 00007ff6`258b139d soffice+0x102e 00000021`5ad8f970 00007ff9`c9428102 soffice!main+0x35d 00000021`5ad8f9b0 00007ff9`c9abc5b4 KERNEL32!BaseThreadInitThunk+0x22 00000021`5ad8f9e0 00000000`00000000 ntdll!RtlUserThreadStart+0x34
Just to add: - it doesn't print the graphic fonts (so I need to export in pdf to print...) - this problem of colours impacts the other fonts too: if I have text in Liberation (sans, mono, etc.) and I want to have it in another colour than black, it still appears in black - I ten do believe that is also impacts copy-paste: when you paste a text keeping it styles it doesn't appear as it should do while the style didn't change - in my computer, Windows 7, when I enable OpenGl, when I want to open a file, LibreOffice freezes. So it is very critical and not just normal. I hope it will be fixed very soon.
(In reply to Ysabeau from comment #7) ... > > - it doesn't print the graphic fonts (so I need to export in pdf to print...) > On Windows 10 Pro 64-bit en-US with Version: 5.1.2.2 (x64) Build ID: d3bf12ecb743fc0d20e0be0c58ca359301eb705f CPU Threads: 8; OS Version: Windows 6.19; UI Render: default; Locale: en-US (en_US) Can not reproduce, when printed to physical PCL printer I receive correct color order and Graphite font rendering. And when printed via ghostscript to PDF I receive a correct subset embedding of Graphite fonts and correct color order. > - this problem of colours impacts the other fonts too: if I have text in > Liberation (sans, mono, etc.) and I want to have it in another colour than > black, it still appears in black > Can not reproduce. All fonts other than Graphite based, are correctly rendered in selected color onto document canvas, and also when printed or exported to PDF. > So it is very critical and not just normal. I hope it will be fixed very > soon. As a regression it has suitable emphasis, its severity is normal and the cognizant developers are aware of issues in handling Graphite fonts in SimpleWinLayout, both with OpenGL support via DirectWrite and without. Correcting the wrong RGB/CMK color order being drawn to the display canvas should be trivial, correcting the OpenGL DirectWrite performance issues may be more involved.
Created attachment 124367 [details] sample colored text not Graphite
Created attachment 124368 [details] sample colored text Graphite font
added two simple documents with LoremIpsum autotext. One in Liberation Serif, the other in Linux Libertine Display G Color order for the six paragraphs top to bottom. Cyan Magenta Yellow Green Blue Red For the Graphite fonts, the Cyan and Yellow (or Blue and Red) are reversed when rendered to the document canvas.
For me in the not graphics fonts, the text is still black even in other colours. Windows 7 64 bits but with a LibreOffice 32bits, I just couldn't work with the 64bits. And,once again, I can't enable Open Gl.
Created attachment 124451 [details] View of coloured non graphite fonts
Created attachment 124452 [details] View of coloured graphites fonts
This seems to have begun at the below commit. Adding Cc: to Tim Eves; Could you possibly take a look at this one? Thanks c55d0f7c6dbdce844b683cf9f5ec5147e03232fc is the first bad commit commit c55d0f7c6dbdce844b683cf9f5ec5147e03232fc Author: Norbert Thiebaud <nthiebaud@gmail.com> Date: Fri Mar 18 10:00:11 2016 -0700 source 64172644c898d4f5f29494b2f8b5fbcdc2cd9824 author Tim Eves <tim_eves@sil.org> 2016-03-08 07:46:49 (GMT) committer Martin Hosken <martin_hosken@sil.org> 2016-03-09 03:02:12 (GMT) commit 64172644c898d4f5f29494b2f8b5fbcdc2cd9824 (patch) tree d8a392cde559ebad8cc6a29b626b177b88764077 parent 45701913f642b17aabd67b52de9002cc79cf07ae (diff) DirectWrite rendering for Graphite to work around ExTextOut bug
Hi, I think bug 99141 "Andika font does disapear (only in libroffice)when printing" is related Regards
*** Bug 99141 has been marked as a duplicate of this bug. ***
Still in the last release: Version: 5.1.3.1 Build ID: 115e0e13d3c8ac1452186ad2394abce2dd5c2b57 Threads CPU : 4; Version de l'OS :Windows 6.1; UI Render : par défaut; Locale : fr-FR (fr_FR)
Resolved by applying https://gerrit.libreoffice.org/#/c/24734/ on my machine.
Thanks Arnaud for finding the fix =) also for Tim & Marting pushing a tweaked version of it. Fixed in master, and pending for -5-1.
https://cgit.freedesktop.org/libreoffice/core/commit/?id=1caae7289d696686e88f60155cef895c5d781f53
Backport to libreoffice-5-1: https://cgit.freedesktop.org/libreoffice/core/commit/?h=libreoffice-5-1&id=a263a497722ddda21b47423dbde0c473020a8c55
*** Bug 99830 has been marked as a duplicate of this bug. ***
*** Bug 99858 has been marked as a duplicate of this bug. ***
*** Bug 100027 has been marked as a duplicate of this bug. ***
Not fixed in 5.1.4.2 for Windows! Version: 5.1.4.2 Build ID: f99d75f39f1c57ebdd7ffc5f42867c12031db97a Threads CPU : 4; Version de l'OS :Windows 6.2; UI Render : par défaut; Locale : fr-FR (fr_FR) View on Start Panel is OK, on the Styles also OK and in Base form but for the files, the colours still are bad same way for any font (I mean graphite or not).
The colours are good in a new profile :-(