diff options
Diffstat (limited to 'tests/auto/other/lancelot')
-rw-r--r-- | tests/auto/other/lancelot/paintcommands.cpp | 49 | ||||
-rw-r--r-- | tests/auto/other/lancelot/paintcommands.h | 2 | ||||
-rw-r--r-- | tests/auto/other/lancelot/scripts/gradientxform_object.qps | 15 | ||||
-rw-r--r-- | tests/auto/other/lancelot/scripts/image_dpr.qps | 43 |
4 files changed, 106 insertions, 3 deletions
diff --git a/tests/auto/other/lancelot/paintcommands.cpp b/tests/auto/other/lancelot/paintcommands.cpp index 074644393d..65a688ec40 100644 --- a/tests/auto/other/lancelot/paintcommands.cpp +++ b/tests/auto/other/lancelot/paintcommands.cpp @@ -106,7 +106,8 @@ const char *PaintCommands::spreadMethodTable[] = { const char *PaintCommands::coordinateMethodTable[] = { "LogicalMode", "StretchToDeviceMode", - "ObjectBoundingMode" + "ObjectBoundingMode", + "ObjectMode" }; const char *PaintCommands::sizeModeTable[] = { @@ -176,6 +177,9 @@ const char *PaintCommands::imageFormatTable[] = { "Format_A2RGB30_Premultiplied", "Alpha8", "Grayscale8", + "RGBx64", + "RGBA64", + "RGBA64_Premultiplied", }; int PaintCommands::translateEnum(const char *table[], const QString &pattern, int limit) @@ -561,6 +565,10 @@ void PaintCommands::staticInit() "^bitmap_load\\s+([\\w.:\\/]*)\\s*([\\w.:\\/]*)$", "bitmap_load <bitmap filename> <bitmapName>\n - note that the image is stored as a pixmap", "bitmap_load :/images/bitmap.png myBitmap"); + DECL_PAINTCOMMAND("pixmap_setDevicePixelRatio", command_pixmap_setDevicePixelRatio, + "^pixmap_setDevicePixelRatio\\s+([\\w.:\\/]*)\\s+([.0-9]*)$", + "pixmap_setDevicePixelRatio <pixmapName> <dpr>", + "pixmap_setDevicePixelRatio myPixmap 2.0"); DECL_PAINTCOMMAND("image_convertToFormat", command_image_convertToFormat, "^image_convertToFormat\\s+([\\w.:\\/]*)\\s+([\\w.:\\/]+)\\s+([\\w0-9_]*)$", "image_convertToFormat <sourceImageName> <destImageName> <image format enum>", @@ -577,6 +585,10 @@ void PaintCommands::staticInit() "^image_setColorCount\\s+([\\w.:\\/]*)\\s+([0-9]*)$", "image_setColorCount <imageName> <nbColors>", "image_setColorCount myImage 128"); + DECL_PAINTCOMMAND("image_setDevicePixelRatio", command_image_setDevicePixelRatio, + "^image_setDevicePixelRatio\\s+([\\w.:\\/]*)\\s+([.0-9]*)$", + "image_setDevicePixelRatio <imageName> <dpr>", + "image_setDevicePixelRatio myImage 2.0"); DECL_PAINTCOMMANDSECTION("transformations"); DECL_PAINTCOMMAND("resetMatrix", command_resetMatrix, @@ -1761,7 +1773,9 @@ void PaintCommands::command_setBrush(QRegularExpressionMatch re) { QStringList caps = re.capturedTexts(); - QImage img = image_load<QImage>(caps.at(1)); + QImage img = m_imageMap[caps.at(1)]; // try cache first + if (img.isNull()) + img = image_load<QImage>(caps.at(1)); if (!img.isNull()) { // Assume image brush if (m_verboseMode) printf(" -(lance) setBrush(image=%s, width=%d, height=%d)\n", @@ -2132,6 +2146,20 @@ void PaintCommands::command_bitmap_load(QRegularExpressionMatch re) m_pixmapMap[name] = bm; } +void PaintCommands::command_pixmap_setDevicePixelRatio(QRegularExpressionMatch re) +{ + QStringList caps = re.capturedTexts(); + + QString name = caps.at(1); + double dpr = convertToDouble(caps.at(2)); + + if (m_verboseMode) + printf(" -(lance) pixmap_setDevicePixelRatio(%s), %.1f -> %.1f\n", + qPrintable(name), m_pixmapMap[name].devicePixelRatioF(), dpr); + + m_pixmapMap[name].setDevicePixelRatio(dpr); +} + /***************************************************************************************************/ void PaintCommands::command_pixmap_setMask(QRegularExpressionMatch re) { @@ -2197,6 +2225,21 @@ void PaintCommands::command_image_setColor(QRegularExpressionMatch re) } /***************************************************************************************************/ +void PaintCommands::command_image_setDevicePixelRatio(QRegularExpressionMatch re) +{ + QStringList caps = re.capturedTexts(); + + QString name = caps.at(1); + double dpr = convertToDouble(caps.at(2)); + + if (m_verboseMode) + printf(" -(lance) image_setDevicePixelRatio(%s), %.1f -> %.1f\n", + qPrintable(name), m_imageMap[name].devicePixelRatioF(), dpr); + + m_imageMap[name].setDevicePixelRatio(dpr); +} + +/***************************************************************************************************/ void PaintCommands::command_abort(QRegularExpressionMatch) { m_abort = true; @@ -2355,7 +2398,7 @@ void PaintCommands::command_gradient_setSpread(QRegularExpressionMatch re) void PaintCommands::command_gradient_setCoordinateMode(QRegularExpressionMatch re) { - int coord = translateEnum(coordinateMethodTable, re.captured(1), 3); + int coord = translateEnum(coordinateMethodTable, re.captured(1), 4); if (m_verboseMode) printf(" -(lance) gradient_setCoordinateMode %d=[%s]\n", coord, diff --git a/tests/auto/other/lancelot/paintcommands.h b/tests/auto/other/lancelot/paintcommands.h index e3fb96744c..83e3bbc11c 100644 --- a/tests/auto/other/lancelot/paintcommands.h +++ b/tests/auto/other/lancelot/paintcommands.h @@ -229,10 +229,12 @@ private: 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); diff --git a/tests/auto/other/lancelot/scripts/gradientxform_object.qps b/tests/auto/other/lancelot/scripts/gradientxform_object.qps index d785a008c0..dcc718072f 100644 --- a/tests/auto/other/lancelot/scripts/gradientxform_object.qps +++ b/tests/auto/other/lancelot/scripts/gradientxform_object.qps @@ -62,7 +62,22 @@ repeat_block row restore end_block block +save translate 400 0 brushRotate 30.0 brushScale 1.5 .5 repeat_block block +restore + +drawText 80 400 "BRUSH XFORM, OBJECT BOUNDING MODE" +drawText 500 400 "BRUSH XFORM, OBJECT MODE" + +translate 0 400 +brushTranslate 0.5 0.5 +brushRotate 180.0 +brushTranslate -0.5 -0.5 +repeat_block block + +translate 400 0 +gradient_setCoordinateMode ObjectMode +repeat_block block diff --git a/tests/auto/other/lancelot/scripts/image_dpr.qps b/tests/auto/other/lancelot/scripts/image_dpr.qps new file mode 100644 index 0000000000..7d3ca3099c --- /dev/null +++ b/tests/auto/other/lancelot/scripts/image_dpr.qps @@ -0,0 +1,43 @@ + +setRenderHint Antialiasing true +setRenderHint SmoothPixmapTransform true + +image_load sign.png img1 +pixmap_load sign.png pix1 + +begin_block drawIt +save + +drawImage img1 20 20 -1 -1 +drawRect 17.5 17.5 85 85 + +setBrush img1 +setPen NoPen +drawRect 20 120 120 120 + +brushRotate 45 +drawRect 20 260 120 120 + +setBrush NoBrush +drawTiledPixmap pix1 20 400 120 120 + +restore +end_block + +save +translate 150 0 +rotate -5 +repeat_block drawIt +restore + +image_setDevicePixelRatio img1 2.0 +pixmap_setDevicePixelRatio pix1 2.0 +translate 400 0 +repeat_block drawIt + +save +translate 150 0 +rotate -5 +repeat_block drawIt +restore + |