summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gui/painting/qpaintbuffer.cpp1
-rw-r--r--src/gui/painting/qpaintengine_raster.cpp2
-rw-r--r--src/gui/painting/qpaintengineex.cpp2
-rw-r--r--src/gui/painting/qpainter.cpp7
-rw-r--r--src/gui/painting/qpainter.h2
-rw-r--r--src/gui/text/qstatictext.cpp3
-rw-r--r--src/gui/text/qstatictext.h98
-rw-r--r--src/gui/text/qstatictext_p.h122
-rw-r--r--src/gui/text/qstatictext_p_p.h140
-rw-r--r--src/gui/text/text.pri2
-rw-r--r--src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp2
-rw-r--r--src/opengl/qpaintengine_opengl.cpp2
-rw-r--r--src/openvg/qpaintengine_vg.cpp2
-rw-r--r--tests/auto/qstatictext/tst_qstatictext.cpp2
14 files changed, 198 insertions, 189 deletions
diff --git a/src/gui/painting/qpaintbuffer.cpp b/src/gui/painting/qpaintbuffer.cpp
index e41ad57..b0a3d7a 100644
--- a/src/gui/painting/qpaintbuffer.cpp
+++ b/src/gui/painting/qpaintbuffer.cpp
@@ -46,6 +46,7 @@
#include <private/qemulationpaintengine_p.h>
#include <private/qimage_p.h>
#include <private/qstatictext_p.h>
+#include <private/qstatictext_p_p.h>
#include <QDebug>
diff --git a/src/gui/painting/qpaintengine_raster.cpp b/src/gui/painting/qpaintengine_raster.cpp
index 1fbfbb4..29694d1 100644
--- a/src/gui/painting/qpaintengine_raster.cpp
+++ b/src/gui/painting/qpaintengine_raster.cpp
@@ -67,7 +67,7 @@
// #include <private/qpolygonclipper_p.h>
// #include <private/qrasterizer_p.h>
#include <private/qimage_p.h>
-#include <private/qstatictext_p.h>
+#include <private/qstatictext_p_p.h>
#include "qpaintengine_raster_p.h"
// #include "qbezier_p.h"
diff --git a/src/gui/painting/qpaintengineex.cpp b/src/gui/painting/qpaintengineex.cpp
index 1bbdafa..b61821d 100644
--- a/src/gui/painting/qpaintengineex.cpp
+++ b/src/gui/painting/qpaintengineex.cpp
@@ -44,7 +44,7 @@
#include "qstroker_p.h"
#include "qbezier_p.h"
#include <private/qpainterpath_p.h>
-#include <private/qstatictext_p.h>
+#include <private/qstatictext_p_p.h>
#include <qvarlengtharray.h>
#include <qdebug.h>
diff --git a/src/gui/painting/qpainter.cpp b/src/gui/painting/qpainter.cpp
index 521072f..c29cf5d 100644
--- a/src/gui/painting/qpainter.cpp
+++ b/src/gui/painting/qpainter.cpp
@@ -70,6 +70,7 @@
#include <private/qpaintengine_raster_p.h>
#include <private/qmath_p.h>
#include <private/qstatictext_p.h>
+#include <private/qstatictext_p_p.h>
QT_BEGIN_NAMESPACE
@@ -5707,18 +5708,24 @@ void QPainter::drawText(const QPointF &p, const QString &str)
/*!
\fn void QPainter::drawStaticText(const QPoint &position, const QStaticText &staticText)
+ \internal
+
\overload
*/
/*!
\fn void QPainter::drawStaticText(int x, int y, const QStaticText &staticText)
+ \internal
+
\overload
*/
/*!
Draws the given \a staticText beginning at the given \a position.
+ \internal
+
This function can be used to optimize drawing text if the text and its layout is updated
seldomly.
diff --git a/src/gui/painting/qpainter.h b/src/gui/painting/qpainter.h
index 1ae7c08..181eba7 100644
--- a/src/gui/painting/qpainter.h
+++ b/src/gui/painting/qpainter.h
@@ -50,7 +50,6 @@
#include <QtGui/qimage.h>
#include <QtGui/qtextoption.h>
#include <QtGui/qdrawutil.h>
-#include <QtGui/qstatictext.h>
#ifndef QT_INCLUDE_COMPAT
#include <QtGui/qpolygon.h>
@@ -79,6 +78,7 @@ class QPolygon;
class QTextItem;
class QMatrix;
class QTransform;
+class QStaticText;
class QPainterPrivateDeleter;
diff --git a/src/gui/text/qstatictext.cpp b/src/gui/text/qstatictext.cpp
index 4daa40d..922920e 100644
--- a/src/gui/text/qstatictext.cpp
+++ b/src/gui/text/qstatictext.cpp
@@ -39,8 +39,8 @@
**
****************************************************************************/
-#include "qstatictext.h"
#include "qstatictext_p.h"
+#include "qstatictext_p_p.h"
#include <private/qtextengine_p.h>
#include <private/qfontengine_p.h>
@@ -50,6 +50,7 @@ QT_BEGIN_NAMESPACE
/*!
\class QStaticText
+ \internal
\brief The QStaticText class enables optimized drawing of text when the text and its layout
is updated rarely.
\since 4.7
diff --git a/src/gui/text/qstatictext.h b/src/gui/text/qstatictext.h
deleted file mode 100644
index d79d887..0000000
--- a/src/gui/text/qstatictext.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: Qt Software Information (qt-info@nokia.com)
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the either Technology Preview License Agreement or the
-** Beta Release License Agreement.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain
-** additional rights. These rights are described in the Nokia Qt LGPL
-** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
-** package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-** If you are unsure which license is appropriate for your use, please
-** contact the sales department at qt-sales@nokia.com.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QSTATICTEXT_H
-#define QSTATICTEXT_H
-
-#include <QtCore/qsize.h>
-#include <QtCore/qstring.h>
-#include <QtCore/qmetatype.h>
-
-#include <QtGui/qtransform.h>
-#include <QtGui/qfont.h>
-
-
-QT_BEGIN_HEADER
-
-QT_BEGIN_NAMESPACE
-
-QT_MODULE(Gui)
-
-class QStaticTextPrivate;
-class Q_GUI_EXPORT QStaticText
-{
-public:
- QStaticText();
- QStaticText(const QString &text, const QSizeF &maximumSize = QSizeF());
- QStaticText(const QStaticText &other);
- ~QStaticText();
-
- void setText(const QString &text);
- QString text() const;
-
- void setMaximumSize(const QSizeF &maximumSize);
- QSizeF maximumSize() const;
-
- void prepare(const QTransform &matrix, const QFont &font);
-
- void setUseBackendOptimizations(bool on);
- bool useBackendOptimizations() const;
-
- QStaticText &operator=(const QStaticText &);
- bool operator==(const QStaticText &) const;
- bool operator!=(const QStaticText &) const;
-
- bool isEmpty() const;
-
-private:
- void detach();
-
- QStaticTextPrivate *d_ptr;
- friend class QStaticTextPrivate;
-};
-
-Q_DECLARE_METATYPE(QStaticText)
-
-QT_END_NAMESPACE
-
-QT_END_HEADER
-
-#endif // QSTATICTEXT_H
diff --git a/src/gui/text/qstatictext_p.h b/src/gui/text/qstatictext_p.h
index bca59e0..d79d887 100644
--- a/src/gui/text/qstatictext_p.h
+++ b/src/gui/text/qstatictext_p.h
@@ -39,102 +39,60 @@
**
****************************************************************************/
-#ifndef QSTATICTEXT_P_H
-#define QSTATICTEXT_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists for the convenience
-// of internal files. This header file may change from version to version
-// without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <private/qtextureglyphcache_p.h>
+#ifndef QSTATICTEXT_H
+#define QSTATICTEXT_H
-QT_BEGIN_NAMESPACE
+#include <QtCore/qsize.h>
+#include <QtCore/qstring.h>
+#include <QtCore/qmetatype.h>
-class QStaticTextUserData
-{
-public:
- enum Type {
- NoUserData,
- OpenGLUserData
- };
+#include <QtGui/qtransform.h>
+#include <QtGui/qfont.h>
- QStaticTextUserData(Type t) : type(t) {}
- virtual ~QStaticTextUserData() {}
- Type type;
-};
+QT_BEGIN_HEADER
-class Q_GUI_EXPORT QStaticTextItem
-{
-public:
- QStaticTextItem() : chars(0), numChars(0), fontEngine(0), userData(0),
- useBackendOptimizations(false), userDataNeedsUpdate(0) {}
- ~QStaticTextItem() { delete userData; }
-
- void setUserData(QStaticTextUserData *newUserData)
- {
- if (userData == newUserData)
- return;
-
- delete userData;
- userData = newUserData;
- }
-
- QFixedPoint *glyphPositions; // 8 bytes per glyph
- glyph_t *glyphs; // 4 bytes per glyph
- const QChar *chars; // 2 bytes per glyph
- // =================
- // 14 bytes per glyph
-
- // 12 bytes for pointers
- int numGlyphs; // 4 bytes per item
- int numChars; // 4 bytes per item
- QFontEngine *fontEngine; // 4 bytes per item
- QFont font; // 8 bytes per item
- QStaticTextUserData *userData; // 8 bytes per item
- char useBackendOptimizations : 1; // 1 byte per item
- char userDataNeedsUpdate : 1; //
- // ================
- // 41 bytes per item
-};
+QT_BEGIN_NAMESPACE
-class QStaticText;
-class Q_AUTOTEST_EXPORT QStaticTextPrivate
-{
+QT_MODULE(Gui)
+
+class QStaticTextPrivate;
+class Q_GUI_EXPORT QStaticText
+{
public:
- QStaticTextPrivate();
- ~QStaticTextPrivate();
+ QStaticText();
+ QStaticText(const QString &text, const QSizeF &maximumSize = QSizeF());
+ QStaticText(const QStaticText &other);
+ ~QStaticText();
+
+ void setText(const QString &text);
+ QString text() const;
+
+ void setMaximumSize(const QSizeF &maximumSize);
+ QSizeF maximumSize() const;
- void init();
+ void prepare(const QTransform &matrix, const QFont &font);
- QAtomicInt ref; // 4 bytes per text
+ void setUseBackendOptimizations(bool on);
+ bool useBackendOptimizations() const;
- QString text; // 4 bytes per text
- QFont font; // 8 bytes per text
- QSizeF size; // 16 bytes per text
- QPointF position; // 16 bytes per text
+ QStaticText &operator=(const QStaticText &);
+ bool operator==(const QStaticText &) const;
+ bool operator!=(const QStaticText &) const;
- QTransform matrix; // 80 bytes per text
- QStaticTextItem *items; // 4 bytes per text
- int itemCount; // 4 bytes per text
- glyph_t *glyphPool; // 4 bytes per text
- QFixedPoint *positionPool; // 4 bytes per text
+ bool isEmpty() const;
- char needsClipRect : 1; // 1 byte per text
- char useBackendOptimizations : 1;
- // ================
- // 145 bytes per text
+private:
+ void detach();
- static QStaticTextPrivate *get(const QStaticText *q);
+ QStaticTextPrivate *d_ptr;
+ friend class QStaticTextPrivate;
};
+Q_DECLARE_METATYPE(QStaticText)
+
QT_END_NAMESPACE
-#endif // QSTATICTEXT_P_H
+QT_END_HEADER
+
+#endif // QSTATICTEXT_H
diff --git a/src/gui/text/qstatictext_p_p.h b/src/gui/text/qstatictext_p_p.h
new file mode 100644
index 0000000..bca59e0
--- /dev/null
+++ b/src/gui/text/qstatictext_p_p.h
@@ -0,0 +1,140 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtGui module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QSTATICTEXT_P_H
+#define QSTATICTEXT_P_H
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists for the convenience
+// of internal files. This header file may change from version to version
+// without notice, or even be removed.
+//
+// We mean it.
+//
+
+#include <private/qtextureglyphcache_p.h>
+
+QT_BEGIN_NAMESPACE
+
+class QStaticTextUserData
+{
+public:
+ enum Type {
+ NoUserData,
+ OpenGLUserData
+ };
+
+ QStaticTextUserData(Type t) : type(t) {}
+ virtual ~QStaticTextUserData() {}
+
+ Type type;
+};
+
+class Q_GUI_EXPORT QStaticTextItem
+{
+public:
+ QStaticTextItem() : chars(0), numChars(0), fontEngine(0), userData(0),
+ useBackendOptimizations(false), userDataNeedsUpdate(0) {}
+ ~QStaticTextItem() { delete userData; }
+
+ void setUserData(QStaticTextUserData *newUserData)
+ {
+ if (userData == newUserData)
+ return;
+
+ delete userData;
+ userData = newUserData;
+ }
+
+ QFixedPoint *glyphPositions; // 8 bytes per glyph
+ glyph_t *glyphs; // 4 bytes per glyph
+ const QChar *chars; // 2 bytes per glyph
+ // =================
+ // 14 bytes per glyph
+
+ // 12 bytes for pointers
+ int numGlyphs; // 4 bytes per item
+ int numChars; // 4 bytes per item
+ QFontEngine *fontEngine; // 4 bytes per item
+ QFont font; // 8 bytes per item
+ QStaticTextUserData *userData; // 8 bytes per item
+ char useBackendOptimizations : 1; // 1 byte per item
+ char userDataNeedsUpdate : 1; //
+ // ================
+ // 41 bytes per item
+};
+
+class QStaticText;
+class Q_AUTOTEST_EXPORT QStaticTextPrivate
+{
+public:
+ QStaticTextPrivate();
+ ~QStaticTextPrivate();
+
+ void init();
+
+ QAtomicInt ref; // 4 bytes per text
+
+ QString text; // 4 bytes per text
+ QFont font; // 8 bytes per text
+ QSizeF size; // 16 bytes per text
+ QPointF position; // 16 bytes per text
+
+ QTransform matrix; // 80 bytes per text
+ QStaticTextItem *items; // 4 bytes per text
+ int itemCount; // 4 bytes per text
+ glyph_t *glyphPool; // 4 bytes per text
+ QFixedPoint *positionPool; // 4 bytes per text
+
+ char needsClipRect : 1; // 1 byte per text
+ char useBackendOptimizations : 1;
+ // ================
+ // 145 bytes per text
+
+ static QStaticTextPrivate *get(const QStaticText *q);
+};
+
+QT_END_NAMESPACE
+
+#endif // QSTATICTEXT_P_H
diff --git a/src/gui/text/text.pri b/src/gui/text/text.pri
index 026e6c6..2eaa418 100644
--- a/src/gui/text/text.pri
+++ b/src/gui/text/text.pri
@@ -38,7 +38,7 @@ HEADERS += \
text/qzipreader_p.h \
text/qzipwriter_p.h \
text/qtextodfwriter_p.h \
- text/qstatictext.h \
+ text/qstatictext_p_p.h \
text/qstatictext_p.h
SOURCES += \
diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
index 2636761..17b3317 100644
--- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
+++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
@@ -77,7 +77,7 @@
#include <private/qfontengine_p.h>
#include <private/qpixmapdata_gl_p.h>
#include <private/qdatabuffer_p.h>
-#include <private/qstatictext_p.h>
+#include <private/qstatictext_p_p.h>
#include "qglgradientcache_p.h"
#include "qglengineshadermanager_p.h"
diff --git a/src/opengl/qpaintengine_opengl.cpp b/src/opengl/qpaintengine_opengl.cpp
index a2f085c..e7a1b7e 100644
--- a/src/opengl/qpaintengine_opengl.cpp
+++ b/src/opengl/qpaintengine_opengl.cpp
@@ -60,7 +60,7 @@
#include <private/qglpixelbuffer_p.h>
#include <private/qbezier_p.h>
#include <qglframebufferobject.h>
-#include <private/qstatictext_p.h>
+#include <private/qstatictext_p_p.h>
#include "private/qtessellator_p.h"
diff --git a/src/openvg/qpaintengine_vg.cpp b/src/openvg/qpaintengine_vg.cpp
index 0ef93b3..9bb513d 100644
--- a/src/openvg/qpaintengine_vg.cpp
+++ b/src/openvg/qpaintengine_vg.cpp
@@ -53,7 +53,7 @@
#include <QtGui/private/qtextengine_p.h>
#include <QtGui/private/qfontengine_p.h>
#include <QtGui/private/qpainterpath_p.h>
-#include <QtGui/private/qstatictext_p.h>
+#include <QtGui/private/qstatictext_p_p.h>
#include <QDebug>
#include <QSet>
diff --git a/tests/auto/qstatictext/tst_qstatictext.cpp b/tests/auto/qstatictext/tst_qstatictext.cpp
index ca83f2f..9ad389d 100644
--- a/tests/auto/qstatictext/tst_qstatictext.cpp
+++ b/tests/auto/qstatictext/tst_qstatictext.cpp
@@ -42,10 +42,10 @@
#include <QtTest/QtTest>
#include <QtGui/QApplication>
#include <QtGui/QPainter>
-#include <QtGui/QStaticText>
#include <QtGui/QImage>
#include <private/qstatictext_p.h>
+#include <private/qstatictext_p_p.h>
// #define DEBUG_SAVE_IMAGE