vcl/win/source/gdi/winlayout.cxx | 48 +++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 24 deletions(-)
New commits: commit 5a11de95b7c540beef85a90416bd9fc4640b8cdd Author: Tor Lillqvist <t...@collabora.com> Date: Sun Aug 30 08:31:27 2015 +0300 Don't check SAL_DETAIL_ENABLE_LOG_INFO, check SAL_LOG_INFO SAL_DETAIL_ENABLE_LOG_INFO is always defined, as "true" or "false". It is SAL_LOG_INFO that is defined or not, and can be used to avoid unnecessary non-trivial code that the compiler might not be able to optimise away. Change-Id: I9903faab64b39fee86bff3b085cdce3614b0d921 (cherry picked from commit d23a1f4dabda939a216293c150c3679b0979d0bd) diff --git a/vcl/win/source/gdi/winlayout.cxx b/vcl/win/source/gdi/winlayout.cxx index ef27141..d36b265 100644 --- a/vcl/win/source/gdi/winlayout.cxx +++ b/vcl/win/source/gdi/winlayout.cxx @@ -104,7 +104,7 @@ public: const OpenGLGlyphCacheChunk& GetCachedGlyphChunkFor(int nGlyphIndex) const; }; -#ifdef SAL_DETAIL_ENABLE_LOG_INFO +#ifdef SAL_LOG_INFO namespace { @@ -149,7 +149,7 @@ void DumpGlyphBitmap(OpenGLGlyphCacheChunk& rChunk, HDC hDC) } // anonymous namespace -#endif // SAL_DETAIL_ENABLE_LOG_INFO +#endif // SAL_LOG_INFO template< typename charT, typename traits > inline std::basic_ostream<charT, traits> & operator <<( @@ -427,7 +427,7 @@ bool ImplWinFontEntry::AddChunkOfGlyphs(int nGlyphIndex, const WinLayout& rLayou if (hNonAntialiasedFont != NULL) DeleteObject(hNonAntialiasedFont); -#ifdef SAL_DETAIL_ENABLE_LOG_INFO +#ifdef SAL_LOG_INFO SAL_INFO("vcl.gdi.opengl", "this=" << this << " now: " << maOpenGLGlyphCache); DumpGlyphBitmap(aChunk, aDC.getCompatibleHDC()); #endif commit ed084b0c3880a6e509271c134b052d4038cffd52 Author: Tor Lillqvist <t...@collabora.com> Date: Sat Aug 29 09:02:31 2015 +0300 Avoid unintended unconditional std::cerr debug output Can't call a function that as a side effect prints to std::cerr in SAL_INFO. It will be called even if the log area doesn't match $SAL_LOG. Just use only SAL_INFO and no plain std::cerr output. It's fine to output a string with embedded newlines in SAL_INFO. Also drop the debug output line with the glyph start positions, it was less than useful. Change-Id: I9fb5ed068aae1b835e20cf1ec1097bcd55deb05d (cherry picked from commit 15943416240e29a052e3a6e4d338932e8c1ffb06) diff --git a/vcl/win/source/gdi/winlayout.cxx b/vcl/win/source/gdi/winlayout.cxx index d13f1b1..ef27141 100644 --- a/vcl/win/source/gdi/winlayout.cxx +++ b/vcl/win/source/gdi/winlayout.cxx @@ -104,6 +104,10 @@ public: const OpenGLGlyphCacheChunk& GetCachedGlyphChunkFor(int nGlyphIndex) const; }; +#ifdef SAL_DETAIL_ENABLE_LOG_INFO + +namespace { + char ColorFor(COLORREF aColor) { if (aColor == RGB(0xFF, 0xFF, 0xFF)) @@ -114,47 +118,39 @@ char ColorFor(COLORREF aColor) return '0' + (10*(GetRValue(aColor) + GetGValue(aColor) + GetBValue(aColor))) / (0xFF*3); } -OUString DumpGlyphBitmap(OpenGLGlyphCacheChunk& rChunk, HDC hDC) +void DumpGlyphBitmap(OpenGLGlyphCacheChunk& rChunk, HDC hDC) { HBITMAP hBitmap = static_cast<HBITMAP>(GetCurrentObject(hDC, OBJ_BITMAP)); if (hBitmap == NULL) { SAL_WARN("vcl.gdi", "GetCurrentObject failed: " << WindowsErrorString(GetLastError())); - return ""; + return; } BITMAP aBitmap; if (!GetObjectW(hBitmap, sizeof(aBitmap), &aBitmap)) { SAL_WARN("vcl.gdi", "GetObjectW failed: " << WindowsErrorString(GetLastError())); - return ""; + return; } - std::cerr << "Bitmap " << hBitmap << ": " << aBitmap.bmWidth << "x" << aBitmap.bmHeight << ":" << std::endl; - - // Print out start pos of each glyph only in the horizontal font case - int nPos = 0; - if (rChunk.mnGlyphCount > 1 && rChunk.maLocation[1].Left() > rChunk.maLocation[0].Left()) - { - for (int i = 1; i < rChunk.mnGlyphCount && nPos < 75; i++) - { - for (int j = nPos; j < rChunk.maLocation[i].Left(); j++) - std::cerr << " "; - std::cerr << "!"; - nPos = rChunk.maLocation[i].Left() + 1; - } - } - std::cerr << std::endl; + SAL_INFO("vcl.gdi.opengl", "Bitmap " << hBitmap << ": " << aBitmap.bmWidth << "x" << aBitmap.bmHeight << ":"); + std::ostringstream sLine("\n"); for (long y = 0; y < aBitmap.bmHeight; y++) { for (long x = 0; x < std::min(75l, aBitmap.bmWidth); x++) - std::cerr << ColorFor(GetPixel(hDC, x, y)); - std::cerr << std::endl; + sLine << ColorFor(GetPixel(hDC, x, y)); + if (y < aBitmap.bmHeight - 1) + sLine << "\n"; } - return ""; + SAL_INFO("vcl.gdi.opengl", sLine.str()); } +} // anonymous namespace + +#endif // SAL_DETAIL_ENABLE_LOG_INFO + template< typename charT, typename traits > inline std::basic_ostream<charT, traits> & operator <<( std::basic_ostream<charT, traits> & stream, const std::vector<OpenGLGlyphCacheChunk>& rCache ) @@ -431,7 +427,10 @@ bool ImplWinFontEntry::AddChunkOfGlyphs(int nGlyphIndex, const WinLayout& rLayou if (hNonAntialiasedFont != NULL) DeleteObject(hNonAntialiasedFont); - SAL_INFO("vcl.gdi.opengl", "this=" << this << " now: " << maOpenGLGlyphCache << DumpGlyphBitmap(aChunk, aDC.getCompatibleHDC())); +#ifdef SAL_DETAIL_ENABLE_LOG_INFO + SAL_INFO("vcl.gdi.opengl", "this=" << this << " now: " << maOpenGLGlyphCache); + DumpGlyphBitmap(aChunk, aDC.getCompatibleHDC()); +#endif return true; } commit 6791acea1634f8f6e52a38fa3ffc9a6a0974ece3 Author: Tor Lillqvist <t...@collabora.com> Date: Fri Aug 28 18:35:59 2015 +0300 Avoid accidental leftover unconditional debug printout Change-Id: I67d2430aec782efa7916856584028f469d39355c diff --git a/vcl/win/source/gdi/winlayout.cxx b/vcl/win/source/gdi/winlayout.cxx index d341806..d13f1b1 100644 --- a/vcl/win/source/gdi/winlayout.cxx +++ b/vcl/win/source/gdi/winlayout.cxx @@ -276,9 +276,10 @@ bool ImplWinFontEntry::AddChunkOfGlyphs(int nGlyphIndex, const WinLayout& rLayou return false; } + std::ostringstream sLine; for (int i = 0; i < nCount; i++) - std::cerr << aABC[i].abcA << ":" << aABC[i].abcB << ":" << aABC[i].abcC << " "; - std::cerr << std::endl; + sLine << aABC[i].abcA << ":" << aABC[i].abcB << ":" << aABC[i].abcC << " "; + SAL_INFO("vcl.gdi.opengl", "ABC widths: " << sLine.str()); // Try hard to avoid overlap as we want to be able to use // individual rectangles for each glyph. The ABC widths don't _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits