summaryrefslogtreecommitdiffstats
path: root/tests/auto/other/lancelot/paintcommands.h
diff options
context:
space:
mode:
authorEirik Aavitsland <eirik.aavitsland@qt.io>2021-11-15 13:36:48 +0100
committerVolker Hilsheimer <volker.hilsheimer@qt.io>2021-11-16 14:01:50 +0100
commite8f93e38debf4f46dbda4de198b9dd475df42d5c (patch)
treec042e1fea11d2b63788f1b8855030ecd96e13c19 /tests/auto/other/lancelot/paintcommands.h
parent9a131b59ee561e300fb6078886a85dd7b3c53599 (diff)
Rename and restructure the baseline (lancelot) testing code
In preparation for addition of new baseline tests, establish a new test category, "baseline". This is similar to the category "benchmarks" in that it contains tests that use the QTest framework, but conceptually are not unit tests, in contrast to those under auto/. Move the existing QPainter baseline test, tst_lancelot, into this new category, and rename it accordingly. Baseline tests use the QBaselineTest extension to QTest. Move that extension too into the tests/baseline directory, allowing the clean out of the baselineserver directory. Pick-to: 6.2 Change-Id: I1b527f5867c953b1d22be73798fcf7d1494712ea Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'tests/auto/other/lancelot/paintcommands.h')
-rw-r--r--tests/auto/other/lancelot/paintcommands.h348
1 files changed, 0 insertions, 348 deletions
diff --git a/tests/auto/other/lancelot/paintcommands.h b/tests/auto/other/lancelot/paintcommands.h
deleted file mode 100644
index 15c6d3fa58..0000000000
--- a/tests/auto/other/lancelot/paintcommands.h
+++ /dev/null
@@ -1,348 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef PAINTCOMMANDS_H
-#define PAINTCOMMANDS_H
-
-#include <qcolor.h>
-#include <qmap.h>
-#include <qpainterpath.h>
-#include <qregion.h>
-#include <qregularexpression.h>
-#include <qstringlist.h>
-#include <qpixmap.h>
-#include <qbrush.h>
-#include <qhash.h>
-
-QT_FORWARD_DECLARE_CLASS(QPainter)
-#ifndef QT_NO_OPENGL
-QT_FORWARD_DECLARE_CLASS(QOpenGLFramebufferObject)
-QT_FORWARD_DECLARE_CLASS(QOpenGLPaintDevice)
-QT_FORWARD_DECLARE_CLASS(QOpenGLContext)
-#endif
-
-enum DeviceType {
- WidgetType,
- BitmapType,
- PixmapType,
- ImageType,
- ImageMonoType,
- OpenGLType,
- OpenGLBufferType,
- PictureType,
- PrinterType,
- PdfType,
- PsType,
- GrabType,
- CustomDeviceType,
- CustomWidgetType,
- ImageWidgetType
-};
-
-/************************************************************************/
-class PaintCommands
-{
-public:
- // construction / initialization
- PaintCommands(const QStringList &cmds, int w, int h, QImage::Format format)
- : m_painter(0)
- , m_surface_painter(0)
- , m_format(format)
- , m_commands(cmds)
- , m_gradientSpread(QGradient::PadSpread)
- , m_gradientCoordinate(QGradient::LogicalMode)
- , m_width(w)
- , m_height(h)
- , m_verboseMode(false)
- , m_type(WidgetType)
- , m_checkers_background(true)
- , m_shouldDrawText(true)
-#ifndef QT_NO_OPENGL
- , m_default_glcontext(0)
- , m_surface_glcontext(0)
- , m_surface_glbuffer(0)
- , m_surface_glpaintdevice(0)
-#endif
- { staticInit(); }
-
-public:
- void setCheckersBackground(bool b) { staticInit(); m_checkers_background = b; }
- void setContents(const QStringList &cmds) {
- staticInit();
- m_blockMap.clear();
- m_pathMap.clear();
- m_pixmapMap.clear();
- m_imageMap.clear();
- m_regionMap.clear();
- m_gradientStops.clear();
- m_controlPoints.clear();
- m_gradientSpread = QGradient::PadSpread;
- m_gradientCoordinate = QGradient::LogicalMode;
- m_commands = cmds;
-
-
- }
- void setPainter(QPainter *pt) { staticInit(); m_painter = pt; }
- void setType(DeviceType t) { staticInit(); m_type = t; }
- void setFilePath(const QString &path) { staticInit(); m_filepath = path; }
- void setControlPoints(const QList<QPointF> &points)
- {
- staticInit();
- m_controlPoints = points;
- }
- void setVerboseMode(bool v) { staticInit(); m_verboseMode = v; }
- void insertAt(int commandIndex, const QStringList &newCommands);
- void setShouldDrawText(bool drawText) { m_shouldDrawText = drawText; }
-
- // run
- void runCommands();
-
-private:
- // run
- void runCommand(const QString &scriptLine);
-
- // conversion methods
- int convertToInt(const QString &str);
- double convertToDouble(const QString &str);
- float convertToFloat(const QString &str);
- QColor convertToColor(const QString &str);
-
- // commands: comments
- void command_comment(QRegularExpressionMatch re);
-
- // commands: importer
- void command_import(QRegularExpressionMatch re);
-
- // commands: blocks
- void command_begin_block(QRegularExpressionMatch re);
- void command_end_block(QRegularExpressionMatch re);
- void command_repeat_block(QRegularExpressionMatch re);
-
- // commands: misc
- void command_textlayout_draw(QRegularExpressionMatch re);
- void command_abort(QRegularExpressionMatch re);
-
- // commands: noops
- void command_noop(QRegularExpressionMatch re);
-
- // commands: setters
- void command_setBgMode(QRegularExpressionMatch re);
- void command_setBackground(QRegularExpressionMatch re);
- void command_setOpacity(QRegularExpressionMatch re);
- void command_path_setFillRule(QRegularExpressionMatch re);
- void command_setBrush(QRegularExpressionMatch re);
- void command_setBrushOrigin(QRegularExpressionMatch re);
- void command_brushTranslate(QRegularExpressionMatch re);
- void command_brushRotate(QRegularExpressionMatch re);
- void command_brushScale(QRegularExpressionMatch re);
- void command_brushShear(QRegularExpressionMatch re);
- void command_setClipPath(QRegularExpressionMatch re);
- void command_setClipRect(QRegularExpressionMatch re);
- void command_setClipRectangle(QRegularExpressionMatch re);
- void command_setClipRegion(QRegularExpressionMatch re);
- void command_setClipping(QRegularExpressionMatch re);
- void command_setCompositionMode(QRegularExpressionMatch re);
- void command_setFont(QRegularExpressionMatch re);
- void command_setPen(QRegularExpressionMatch re);
- void command_setPen2(QRegularExpressionMatch re);
- void command_pen_setDashOffset(QRegularExpressionMatch re);
- void command_pen_setDashPattern(QRegularExpressionMatch re);
- void command_pen_setCosmetic(QRegularExpressionMatch re);
- void command_setRenderHint(QRegularExpressionMatch re);
- void command_clearRenderHint(QRegularExpressionMatch re);
- void command_gradient_appendStop(QRegularExpressionMatch re);
- void command_gradient_clearStops(QRegularExpressionMatch re);
- void command_gradient_setConical(QRegularExpressionMatch re);
- void command_gradient_setLinear(QRegularExpressionMatch re);
- void command_gradient_setRadial(QRegularExpressionMatch re);
- void command_gradient_setRadialExtended(QRegularExpressionMatch re);
- void command_gradient_setLinearPen(QRegularExpressionMatch re);
- void command_gradient_setSpread(QRegularExpressionMatch re);
- void command_gradient_setCoordinateMode(QRegularExpressionMatch re);
-
- // commands: drawing ops
- void command_drawArc(QRegularExpressionMatch re);
- void command_drawChord(QRegularExpressionMatch re);
- void command_drawConvexPolygon(QRegularExpressionMatch re);
- void command_drawEllipse(QRegularExpressionMatch re);
- void command_drawImage(QRegularExpressionMatch re);
- void command_drawLine(QRegularExpressionMatch re);
- void command_drawLines(QRegularExpressionMatch re);
- void command_drawPath(QRegularExpressionMatch re);
- void command_drawPie(QRegularExpressionMatch re);
- void command_drawPixmap(QRegularExpressionMatch re);
- void command_drawPoint(QRegularExpressionMatch re);
- void command_drawPolygon(QRegularExpressionMatch re);
- void command_drawPolyline(QRegularExpressionMatch re);
- void command_drawRect(QRegularExpressionMatch re);
- void command_drawRoundedRect(QRegularExpressionMatch re);
- void command_drawRoundRect(QRegularExpressionMatch re);
- void command_drawText(QRegularExpressionMatch re);
- void command_drawStaticText(QRegularExpressionMatch re);
- void command_drawGlyphRun(QRegularExpressionMatch re);
- void command_drawTextDocument(QRegularExpressionMatch re);
- void command_drawTiledPixmap(QRegularExpressionMatch re);
- void command_fillRect(QRegularExpressionMatch re);
- void command_fillRectF(QRegularExpressionMatch re);
-
- // paths
- void command_path_addEllipse(QRegularExpressionMatch re);
- void command_path_addPolygon(QRegularExpressionMatch re);
- void command_path_addRect(QRegularExpressionMatch re);
- void command_path_addText(QRegularExpressionMatch re);
- void command_path_arcTo(QRegularExpressionMatch re);
- void command_path_closeSubpath(QRegularExpressionMatch re);
- void command_path_createOutline(QRegularExpressionMatch re);
- void command_path_cubicTo(QRegularExpressionMatch re);
- void command_path_debugPrint(QRegularExpressionMatch re);
- void command_path_lineTo(QRegularExpressionMatch re);
- void command_path_moveTo(QRegularExpressionMatch re);
- void command_region_addEllipse(QRegularExpressionMatch re);
- void command_region_addRect(QRegularExpressionMatch re);
-
- // getters
- void command_region_getClipRegion(QRegularExpressionMatch re);
- void command_path_getClipPath(QRegularExpressionMatch re);
-
- // commands: surface begin/end
- void command_surface_begin(QRegularExpressionMatch re);
- void command_surface_end(QRegularExpressionMatch re);
-
- // commands: save/restore painter state
- void command_restore(QRegularExpressionMatch re);
- void command_save(QRegularExpressionMatch re);
-
- // commands: pixmap/image
- void command_pixmap_load(QRegularExpressionMatch re);
- void command_pixmap_setMask(QRegularExpressionMatch re);
- void command_bitmap_load(QRegularExpressionMatch re);
- void command_pixmap_setDevicePixelRatio(QRegularExpressionMatch re);
- void command_image_convertToFormat(QRegularExpressionMatch re);
- void command_image_load(QRegularExpressionMatch re);
- void command_image_setColor(QRegularExpressionMatch re);
- void command_image_setColorCount(QRegularExpressionMatch re);
- void command_image_setDevicePixelRatio(QRegularExpressionMatch re);
-
- // commands: transformation
- void command_resetMatrix(QRegularExpressionMatch re);
- void command_translate(QRegularExpressionMatch re);
- void command_rotate(QRegularExpressionMatch re);
- void command_rotate_x(QRegularExpressionMatch re);
- void command_rotate_y(QRegularExpressionMatch re);
- void command_scale(QRegularExpressionMatch re);
- void command_mapQuadToQuad(QRegularExpressionMatch re);
- void command_setMatrix(QRegularExpressionMatch re);
-
- // attributes
- QPainter *m_painter;
- QPainter *m_surface_painter;
- QImage::Format m_format;
- QImage m_surface_image;
- QRectF m_surface_rect;
- QStringList m_commands;
- QString m_currentCommand;
- int m_currentCommandIndex;
- QString m_filepath;
- QMap<QString, QStringList> m_blockMap;
- QMap<QString, QPainterPath> m_pathMap;
- QMap<QString, QPixmap> m_pixmapMap;
- QMap<QString, QImage> m_imageMap;
- QMap<QString, QRegion> m_regionMap;
- QGradientStops m_gradientStops;
- QGradient::Spread m_gradientSpread;
- QGradient::CoordinateMode m_gradientCoordinate;
- bool m_abort;
- int m_width;
- int m_height;
-
- bool m_verboseMode;
- DeviceType m_type;
- bool m_checkers_background;
- bool m_shouldDrawText;
-
- QList<QPointF> m_controlPoints;
-
-#ifndef QT_NO_OPENGL
- QOpenGLContext *m_default_glcontext;
- QOpenGLContext *m_surface_glcontext;
- QOpenGLFramebufferObject *m_surface_glbuffer;
- QOpenGLPaintDevice *m_surface_glpaintdevice;
-#endif
-
- // painter functionalities string tables
- static const char *brushStyleTable[];
- static const char *penStyleTable[];
- static const char *fontWeightTable[];
- static const char *fontHintingTable[];
- static const char *fontCapitalizationTable[];
- static const char *clipOperationTable[];
- static const char *spreadMethodTable[];
- static const char *coordinateMethodTable[];
- static const char *compositionModeTable[];
- static const char *imageFormatTable[];
- static const char *sizeModeTable[];
- static int translateEnum(const char *table[], const QString &pattern, int limit);
-
- // utility
- template <typename T> T image_load(const QString &filepath);
-
- // commands dictionary management
- static void staticInit();
-
-public:
- struct PaintCommandInfos
- {
- PaintCommandInfos(QString id, void (PaintCommands::*p)(QRegularExpressionMatch), QRegularExpression r, QString sy, QString sa)
- : identifier(id)
- , regExp(r)
- , syntax(sy)
- , sample(sa)
- , paintMethod(p)
- {}
- PaintCommandInfos(QString title)
- : identifier(title), paintMethod(0) {}
- bool isSectionHeader() const { return paintMethod == 0; }
- QString identifier;
- QRegularExpression regExp;
- QString syntax;
- QString sample;
- void (PaintCommands::*paintMethod)(QRegularExpressionMatch);
- };
-
- static PaintCommandInfos *findCommandById(const QString &identifier) {
- for (int i=0; i<s_commandInfoTable.size(); i++)
- if (s_commandInfoTable[i].identifier == identifier)
- return &s_commandInfoTable[i];
- return 0;
- }
-
- static QList<PaintCommandInfos> s_commandInfoTable;
- static QList<QPair<QString,QStringList> > s_enumsTable;
- static QMultiHash<QString, int> s_commandHash;
-};
-
-#endif // PAINTCOMMANDS_H