void QSGRenderer::draw(const QSGMaterialShader *shader, const QSGGeometry *g)
{
- // ### remove before final release...
- static bool use_vbo = !QGuiApplication::arguments().contains(QLatin1String("--no-vbo"));
-
const void *vertexData;
int vertexByteSize = g->vertexCount() * g->sizeOfVertex();
- if (use_vbo && g->vertexDataPattern() != QSGGeometry::AlwaysUploadPattern && vertexByteSize > 1024) {
+ if (g->vertexDataPattern() != QSGGeometry::AlwaysUploadPattern && vertexByteSize > 1024) {
// The base pointer for a VBO is 0
vertexData = 0;
// Set up the indices...
const void *indexData;
- if (use_vbo && g->indexDataPattern() != QSGGeometry::AlwaysUploadPattern && g->indexCount() > 512) {
+ if (g->indexDataPattern() != QSGGeometry::AlwaysUploadPattern && g->indexCount() > 512) {
// Base pointer for a VBO is 0
indexData = 0;
QHash<glyph_t, QImage> distanceFields;
- // ### Remove before final release
- static bool cacheDistanceFields = QGuiApplication::arguments().contains(QLatin1String("--cache-distance-fields"));
-
- QString tmpPath = QString::fromLatin1("%1/.qt/").arg(QDir::tempPath());
- QString keyBase = QString::fromLatin1("%1%2%3_%4_%5_%6.fontblob")
- .arg(tmpPath)
- .arg(m_referenceFont.familyName())
- .arg(m_referenceFont.styleName())
- .arg(m_referenceFont.weight())
- .arg(m_referenceFont.style());
-
- if (cacheDistanceFields && !QFile::exists(tmpPath))
- QDir(tmpPath).mkpath(tmpPath);
-
for (int i = 0; i < m_pendingGlyphs.size(); ++i) {
glyph_t glyphIndex = m_pendingGlyphs.at(i);
- if (cacheDistanceFields) {
- QString key = keyBase.arg(glyphIndex);
- QFile file(key);
- if (file.open(QFile::ReadOnly)) {
- int fileSize = file.size();
- int dim = sqrt(float(fileSize));
- QByteArray blob = file.readAll();
- QImage df(dim, dim, QImage::Format_Indexed8);
- memcpy(df.bits(), blob.constData(), fileSize);
- distanceFields.insert(glyphIndex, df);
- continue;
- }
- }
-
QImage distanceField = qt_renderDistanceFieldGlyph(m_referenceFont, glyphIndex, m_doubleGlyphResolution);
distanceFields.insert(glyphIndex, distanceField);
-
- if (cacheDistanceFields) {
- QString key = keyBase.arg(glyphIndex);
- QFile file(key);
- file.open(QFile::WriteOnly);
- file.write((const char *) distanceField.constBits(), distanceField.width() * distanceField.height());
- }
}
m_pendingGlyphs.reset();
QObject(*(new QSGContextPrivate), parent)
{
Q_D(QSGContext);
- // ### Do something with these before final release...
static bool doSubpixel = qApp->arguments().contains(QLatin1String("--text-subpixel-antialiasing"));
static bool doLowQualSubpixel = qApp->arguments().contains(QLatin1String("--text-subpixel-antialiasing-lowq"));
static bool doGray = qApp->arguments().contains(QLatin1String("--text-gray-antialiasing"));
*/
QSGRenderer *QSGContext::createRenderer()
{
- // ### Do something with this before release...
- static bool doFrontToBack = qApp->arguments().contains(QLatin1String("--opaque-front-to-back"));
- QSGDefaultRenderer *renderer = new QSGDefaultRenderer(this);
- if (doFrontToBack) {
- printf("QSGContext: Sorting opaque nodes front to back...\n");
- renderer->setSortFrontToBackEnabled(true);
- }
- return renderer;
+ return new QSGDefaultRenderer(this);
}