diff options
author | Andreas Aardal Hanssen <andreas.aardal.hanssen@nokia.com> | 2009-06-17 09:36:40 (GMT) |
---|---|---|
committer | Andreas Aardal Hanssen <andreas.aardal.hanssen@nokia.com> | 2009-06-17 09:44:48 (GMT) |
commit | fa8030a935acaacee570eee320e7510a4cfdc853 (patch) | |
tree | 51d48d56c94739aa569bb60f5ef6998da35ff110 /src/opengl/qpixmapdata_gl_p.h | |
parent | 24580f35a58390b4177aef8edef1192dc05f8ac2 (diff) | |
download | Qt-fa8030a935acaacee570eee320e7510a4cfdc853.zip Qt-fa8030a935acaacee570eee320e7510a4cfdc853.tar.gz Qt-fa8030a935acaacee570eee320e7510a4cfdc853.tar.bz2 |
Speed up QPixmap::width(), height(), isNull() and depth().
This change moves the w, h, d variables to QPixmapData and introduces
is_null to keep track of nullness. This is possible only because
QPixmapData is internal API; otherwise we'd have to be smarter.
The optimization makes the QPixmap::width() function take 7 instructions,
down from 34 before. For the calculator demo in the declarative ui branch
this reduces a block of 750000 instructions (out of 30000000) to around
100000-150000 instructions.
Tested on Windows, Linux, Mac. Raster, X11 and OpenGL paint engines. Have
not tested the DirectFB engine.
Reviewed-by: Trond
Diffstat (limited to 'src/opengl/qpixmapdata_gl_p.h')
-rw-r--r-- | src/opengl/qpixmapdata_gl_p.h | 7 |
1 files changed, 1 insertions, 6 deletions
diff --git a/src/opengl/qpixmapdata_gl_p.h b/src/opengl/qpixmapdata_gl_p.h index 605b25b..a6aa22d 100644 --- a/src/opengl/qpixmapdata_gl_p.h +++ b/src/opengl/qpixmapdata_gl_p.h @@ -94,9 +94,7 @@ public: bool needsFill() const { return m_hasFillColor; } QColor fillColor() const { return m_fillColor; } - QSize size() const { return QSize(m_width, m_height); } - int width() const { return m_width; } - int height() const { return m_height; } + QSize size() const { return QSize(w, h); } QGLFramebufferObject *fbo() const; @@ -117,9 +115,6 @@ private: QImage fillImage(const QColor &color) const; - int m_width; - int m_height; - mutable QGLFramebufferObject *m_renderFbo; mutable GLuint m_textureId; mutable QPaintEngine *m_engine; |