mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Cover browser: improve rendering of text with heavily hinted fonts. Fixes #1886239 [Cover Browser: Font clipping with Microsoft ClearType Fonts](https://bugs.launchpad.net/calibre/+bug/1886239)
Turn off hinting since we render to an offscreen buffer that is copied to screen later anyway and hinting results in very poor rendering. Hinting should not be needed at the larger text sizes typically used in the cover browser anyway.
This commit is contained in:
parent
8b7b02cc41
commit
b948bf49f6
@ -435,6 +435,7 @@ PictureFlowPrivate::PictureFlowPrivate(PictureFlow* w, int queueLength_)
|
|||||||
target = 0;
|
target = 0;
|
||||||
fade = 256;
|
fade = 256;
|
||||||
subtitleFont = QFont();
|
subtitleFont = QFont();
|
||||||
|
subtitleFont.setHintingPreference(QFont::PreferNoHinting);
|
||||||
|
|
||||||
triggerTimer.setSingleShot(true);
|
triggerTimer.setSingleShot(true);
|
||||||
triggerTimer.setInterval(0);
|
triggerTimer.setInterval(0);
|
||||||
@ -767,6 +768,11 @@ void PictureFlowPrivate::render()
|
|||||||
r = renderSlide(centerSlide);
|
r = renderSlide(centerSlide);
|
||||||
int c1 = r.left();
|
int c1 = r.left();
|
||||||
int c2 = r.right();
|
int c2 = r.right();
|
||||||
|
QFont font = QFont();
|
||||||
|
font.setBold(true);
|
||||||
|
font.setPixelSize(fontSize);
|
||||||
|
font.setHintingPreference(QFont::PreferNoHinting);
|
||||||
|
|
||||||
|
|
||||||
if(step == 0)
|
if(step == 0)
|
||||||
{
|
{
|
||||||
@ -788,10 +794,6 @@ void PictureFlowPrivate::render()
|
|||||||
|
|
||||||
QPainter painter;
|
QPainter painter;
|
||||||
painter.begin(&buffer);
|
painter.begin(&buffer);
|
||||||
|
|
||||||
QFont font = QFont();
|
|
||||||
font.setBold(true);
|
|
||||||
font.setPixelSize(fontSize);
|
|
||||||
painter.setFont(font);
|
painter.setFont(font);
|
||||||
painter.setPen(Qt::white);
|
painter.setPen(Qt::white);
|
||||||
//painter.setPen(QColor(255,255,255,127));
|
//painter.setPen(QColor(255,255,255,127));
|
||||||
@ -835,14 +837,8 @@ void PictureFlowPrivate::render()
|
|||||||
c2 = rs.right();
|
c2 = rs.right();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
QPainter painter;
|
QPainter painter;
|
||||||
painter.begin(&buffer);
|
painter.begin(&buffer);
|
||||||
|
|
||||||
QFont font = QFont();
|
|
||||||
font.setBold(true);
|
|
||||||
font.setPixelSize(fontSize);
|
|
||||||
painter.setFont(font);
|
painter.setFont(font);
|
||||||
|
|
||||||
int leftTextIndex = (step>0) ? centerIndex : centerIndex-1;
|
int leftTextIndex = (step>0) ? centerIndex : centerIndex-1;
|
||||||
@ -1253,6 +1249,7 @@ void PictureFlow::setPreserveAspectRatio(bool preserve)
|
|||||||
void PictureFlow::setSubtitleFont(QFont font)
|
void PictureFlow::setSubtitleFont(QFont font)
|
||||||
{
|
{
|
||||||
d->subtitleFont = font;
|
d->subtitleFont = font;
|
||||||
|
d->subtitleFont.setHintingPreference(QFont::PreferNoHinting);
|
||||||
}
|
}
|
||||||
|
|
||||||
QFont PictureFlow::subtitleFont() const
|
QFont PictureFlow::subtitleFont() const
|
||||||
|
Loading…
x
Reference in New Issue
Block a user