Determine font smoothing gamma in initialization.
Avoid calls to QStyleHint and QPlatformIntegration from threads. Change-Id: I851ef029ea348f182e0b42536d0a994960aa9187 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
This commit is contained in:
parent
6eae3cec5a
commit
4451010026
@ -52,6 +52,7 @@
|
|||||||
#include "qplatformintegration_qpa.h"
|
#include "qplatformintegration_qpa.h"
|
||||||
|
|
||||||
#include <QtCore/QAbstractEventDispatcher>
|
#include <QtCore/QAbstractEventDispatcher>
|
||||||
|
#include <QtCore/QVariant>
|
||||||
#include <QtCore/private/qcoreapplication_p.h>
|
#include <QtCore/private/qcoreapplication_p.h>
|
||||||
#include <QtCore/private/qabstracteventdispatcher_p.h>
|
#include <QtCore/private/qabstracteventdispatcher_p.h>
|
||||||
#include <QtCore/qmutex.h>
|
#include <QtCore/qmutex.h>
|
||||||
@ -143,6 +144,8 @@ static QBasicMutex applicationFontMutex;
|
|||||||
QFont *QGuiApplicationPrivate::app_font = 0;
|
QFont *QGuiApplicationPrivate::app_font = 0;
|
||||||
bool QGuiApplicationPrivate::obey_desktop_settings = true;
|
bool QGuiApplicationPrivate::obey_desktop_settings = true;
|
||||||
|
|
||||||
|
static qreal fontSmoothingGamma = 1.7;
|
||||||
|
|
||||||
extern void qRegisterGuiVariant();
|
extern void qRegisterGuiVariant();
|
||||||
extern void qUnregisterGuiVariant();
|
extern void qUnregisterGuiVariant();
|
||||||
extern void qInitDrawhelperAsm();
|
extern void qInitDrawhelperAsm();
|
||||||
@ -579,6 +582,7 @@ static void init_platform(const QString &pluginArgument, const QString &platform
|
|||||||
nativeInterface->setProperty(name.constData(), value);
|
nativeInterface->setProperty(name.constData(), value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
fontSmoothingGamma = QGuiApplicationPrivate::platformIntegration()->styleHint(QPlatformIntegration::FontSmoothingGamma).toReal();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void init_plugins(const QList<QByteArray> &pluginList)
|
static void init_plugins(const QList<QByteArray> &pluginList)
|
||||||
@ -2174,8 +2178,7 @@ const QDrawHelperGammaTables *QGuiApplicationPrivate::gammaTables()
|
|||||||
{
|
{
|
||||||
QDrawHelperGammaTables *result = m_gammaTables.load();
|
QDrawHelperGammaTables *result = m_gammaTables.load();
|
||||||
if (!result){
|
if (!result){
|
||||||
const qreal smoothing = qApp->styleHints()->fontSmoothingGamma();
|
QDrawHelperGammaTables *tables = new QDrawHelperGammaTables(fontSmoothingGamma);
|
||||||
QDrawHelperGammaTables *tables = new QDrawHelperGammaTables(smoothing);
|
|
||||||
if (!m_gammaTables.testAndSetRelease(0, tables))
|
if (!m_gammaTables.testAndSetRelease(0, tables))
|
||||||
delete tables;
|
delete tables;
|
||||||
result = m_gammaTables.load();
|
result = m_gammaTables.load();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user