summaryrefslogtreecommitdiffstats
path: root/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h
diff options
context:
space:
mode:
authorQt Continuous Integration System <qt-info@nokia.com>2010-01-13 10:07:42 (GMT)
committerQt Continuous Integration System <qt-info@nokia.com>2010-01-13 10:07:42 (GMT)
commit5099edac8485e41ed4187fc18a42cbfc2bc43023 (patch)
tree85abbbd4e8ac1ec28d9e734e28fa9c4b19327bbe /src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h
parent48e08ee5718b3de855ecea626179ad5323e38fa0 (diff)
parent826d995ff48a01fffc22eafe7b3127e44ed60496 (diff)
downloadQt-5099edac8485e41ed4187fc18a42cbfc2bc43023.zip
Qt-5099edac8485e41ed4187fc18a42cbfc2bc43023.tar.gz
Qt-5099edac8485e41ed4187fc18a42cbfc2bc43023.tar.bz2
Merge branch '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into 4.6-integration
* '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-2: (26 commits) Fixed tst_qgl multipleFBOInterleavedRendering. Update autotest database connection settings SQL 4.6.1 changelog My changes Significant digits were lost in QDoubleSpinBox range when changing precision My changelog for 4.6.1. Added my changes to the 4.6.1 change log. Put LinesHint into QVectorPath hints to enable further optimizations Update changes file for 4.6.1 Avoid coordinate limitations in the raster engine. Update changelog with my 4.6.1 changes. 4.6.1 changes Fixed bug where QGLPixmapData::toImage() returned too dark image. Update change log with Yoann Lopes work. Fix completion in QFileDialog. Fix point drawing on raster engine for flat and square caps Update changes file with Rhys Weatherley's work. warning fixes for platforms, where qreal == float fix release mode crash in qfont.cpp initFontSubst() on Windows mobile Fixed justify aligned text drawing with the GL1 engine. ...
Diffstat (limited to 'src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h')
-rw-r--r--src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h b/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h
index 37bae6f..ce1b538 100644
--- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h
+++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h
@@ -196,6 +196,9 @@ public:
void drawPixmaps(const QDrawPixmaps::Data *drawingData, int dataCount, const QPixmap &pixmap, QDrawPixmaps::DrawingHints hints);
void drawCachedGlyphs(const QPointF &p, QFontEngineGlyphCache::Type glyphType, const QTextItemInt &ti);
+ // Calls glVertexAttributePointer if the pointer has changed
+ inline void setVertexAttributePointer(unsigned int arrayIndex, const GLfloat *pointer);
+
// draws whatever is in the vertex array:
void drawVertexArrays(const float *data, int *stops, int stopCount, GLenum primitive);
void drawVertexArrays(QGL2PEXVertexArray &vertexArray, GLenum primitive) {
@@ -230,6 +233,7 @@ public:
void regenerateClip();
void systemStateChanged();
+
static QGLEngineShaderManager* shaderManagerForEngine(QGL2PaintEngineEx *engine) { return engine->d_func()->shaderManager; }
static QGL2PaintEngineExPrivate *getData(QGL2PaintEngineEx *engine) { return engine->d_func(); }
static void cleanupVectorPath(QPaintEngineEx *engine, void *data);
@@ -291,8 +295,24 @@ public:
QSet<QVectorPath::CacheEntry *> pathCaches;
QVector<GLuint> unusedVBOSToClean;
+
+ const GLfloat *vertexAttribPointers[3];
};
+
+void QGL2PaintEngineExPrivate::setVertexAttributePointer(unsigned int arrayIndex, const GLfloat *pointer)
+{
+ Q_ASSERT(arrayIndex < 3);
+ if (pointer == vertexAttribPointers[arrayIndex])
+ return;
+
+ vertexAttribPointers[arrayIndex] = pointer;
+ if (arrayIndex == QT_OPACITY_ATTR)
+ glVertexAttribPointer(arrayIndex, 1, GL_FLOAT, GL_FALSE, 0, pointer);
+ else
+ glVertexAttribPointer(arrayIndex, 2, GL_FLOAT, GL_FALSE, 0, pointer);
+}
+
QT_END_NAMESPACE
#endif