El Diumenge, 24 de febrer de 2013, a les 08:55:10, Thomas Freitag va escriure: > Hi folks! > > I fear that nearly nobody really understand the enhancements coming with > this patch. Therefore I try explain it a little bit better and create > the attached documentation, hoping it is understandable. > > Enjoy the new modes (already available in okular in git, thanks to Albert),
This is cool, how do we add this to the poppler qt documentation? Cheers, Albert > Thomas > > Am 23.02.2013 23:52, schrieb Albert Astals Cid: > > qt4/src/poppler-page.cc | 5 ++++- > > qt4/src/poppler-qt4.h | 6 ++++-- > > splash/Splash.cc | 14 +++++++++++--- > > 3 files changed, 19 insertions(+), 6 deletions(-) > > > > New commits: > > commit be5d9af38655496a2eaa4eb12cea84461c5aeb3f > > Author: Thomas Freitag <[email protected]> > > Date: Sat Feb 23 23:41:46 2013 +0100 > > > > expose thin line modes in qt frontend > > > > diff --git a/qt4/src/poppler-page.cc b/qt4/src/poppler-page.cc > > index 7c47573..b5f0a8a 100644 > > --- a/qt4/src/poppler-page.cc > > +++ b/qt4/src/poppler-page.cc > > @@ -294,6 +294,9 @@ QImage Page::renderToImage(double xres, double yres, > > int x, int y, int w, int h,> > > } > > > > GBool AA = m_page->parentDoc->m_hints & Document::TextAntialiasing > > ? gTrue : gFalse;> > > + SplashThinLineMode thinLineMode = splashThinLineDefault; > > + if (m_page->parentDoc->m_hints & Document::ThinLineShape) > > thinLineMode = splashThinLineShape; + if (m_page->parentDoc->m_hints > > & Document::ThinLineSolid) thinLineMode = splashThinLineSolid;> > > SplashOutputDev * splash_output = new SplashOutputDev( > > > > #if defined(SPLASH_CMYK) > > > > @@ -301,7 +304,7 @@ QImage Page::renderToImage(double xres, double yres, > > int x, int y, int w, int h,> > > #else > > > > splashModeXBGR8, > > > > #endif > > > > - 4, gFalse, bgColor, gTrue, AA, > > splashThinLineDefault, overprint); + 4, gFalse, > > bgColor, gTrue, AA, thinLineMode, overprint);> > > splash_output->setVectorAntialias(m_page->parentDoc->m_hints & > > Document::Antialiasing ? gTrue : gFalse); > > splash_output->setFreeTypeHinting(m_page->parentDoc->m_hints & > > Document::TextHinting ? gTrue : gFalse,> > > diff --git a/qt4/src/poppler-qt4.h b/qt4/src/poppler-qt4.h > > index f4f6fc6..1e3efca 100644 > > --- a/qt4/src/poppler-qt4.h > > +++ b/qt4/src/poppler-qt4.h > > @@ -13,7 +13,7 @@ > > > > * Copyright (C) 2012, Fabio D'Urso <[email protected]> > > * Copyright (C) 2012, Tobias Koenig <[email protected]> > > * Copyright (C) 2012 Adam Reichold <[email protected]> > > > > - * Copyright (C) 2012 Thomas Freitag <[email protected]> > > + * Copyright (C) 2012, 2013 Thomas Freitag <[email protected]> > > > > * > > * This program is free software; you can redistribute it and/or modify > > * it under the terms of the GNU General Public License as published by > > > > @@ -848,7 +848,9 @@ delete it; > > > > TextAntialiasing = 0x00000002, ///< Antialiasing for text > > TextHinting = 0x00000004, ///< Hinting for text \since 0.12.1 > > TextSlightHinting = 0x00000008, ///< Lighter hinting for text when > > combined with TextHinting \since 0.18> > > - OverprintPreview = 0x00000010 ///< Overprint preview \since 0.22 > > + OverprintPreview = 0x00000010, ///< Overprint preview \since 0.22 > > + ThinLineSolid = 0x00000020, ///< Enhance thin lines solid \since > > 0.24 + ThinLineShape = 0x00000040 ///< Enhance thin lines > > shape. > > Wins over ThinLineSolid \since 0.24> > > }; > > Q_DECLARE_FLAGS( RenderHints, RenderHint ) > > > > commit f96cbacfdbc97ace35f843854992f06e9322f485 > > Author: Thomas Freitag <[email protected]> > > Date: Sat Feb 23 23:39:52 2013 +0100 > > > > Refine splashThinLineShape support > > > > diff --git a/splash/Splash.cc b/splash/Splash.cc > > index 3a355b8..bc8c62d 100644 > > --- a/splash/Splash.cc > > +++ b/splash/Splash.cc > > @@ -2456,9 +2456,17 @@ SplashError Splash::fillWithPattern(SplashPath > > *path, GBool eo,> > > if (clipRes != splashClipAllInside) { > > > > state->clip->clipAALine(aaBuf, &x0, &x1, y, thinLineMode != > > splashThinLineDefault && xMinI == xMaxI);> > > } > > > > - drawAALine(&pipe, x0, x1, y, > > - thinLineMode == splashThinLineShape && (xMinI == xMaxI || yMinI > > == > > yMaxI), - clip255(splashRound(state->lineWidth * 255))); > > + Guchar lineShape = 255; > > + GBool adjustLine = gFalse; > > + if (thinLineMode == splashThinLineShape && (xMinI == xMaxI || yMinI == > > yMaxI)) { + // compute line shape for thin lines: > > + SplashCoord mx, my, delta; > > + transform(state->matrix, 0, 0, &mx, &my); > > + transform(state->matrix, state->lineWidth, 0, &delta, &my); > > + adjustLine = gTrue; > > + lineShape = clip255((delta - mx) * 255); > > + } > > + drawAALine(&pipe, x0, x1, y, adjustLine, lineShape); > > > > } > > > > } else { > > > > for (y = yMinI; y <= yMaxI; ++y) { > > > > _______________________________________________ > > poppler mailing list > > [email protected] > > http://lists.freedesktop.org/mailman/listinfo/poppler > > > > . _______________________________________________ poppler mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/poppler
