Add testing of fillRect() to QPainter lancelot test
Change-Id: I3be230d3fafa178a37cf7387f79f372c8d8aeb05 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
This commit is contained in:
parent
78d349eaab
commit
ea377c5a2f
@ -365,6 +365,7 @@ void PaintCommands::staticInit()
|
||||
"^gradient_setCoordinateMode\\s+(\\w*)$",
|
||||
"gradient_setCoordinateMode <coordinate method enum>",
|
||||
"gradient_setCoordinateMode ObjectBoundingMode");
|
||||
|
||||
DECL_PAINTCOMMANDSECTION("drawing ops");
|
||||
DECL_PAINTCOMMAND("drawPoint", command_drawPoint,
|
||||
"^drawPoint\\s+(-?[\\w.]*)\\s+(-?[\\w.]*)$",
|
||||
@ -454,6 +455,14 @@ void PaintCommands::staticInit()
|
||||
"\n - where t means tile"
|
||||
"\n - and s is an offset in the tile",
|
||||
"drawTiledPixmap :/images/alpha.png ");
|
||||
DECL_PAINTCOMMAND("fillRect", command_fillRect,
|
||||
"^fillRect\\s+(-?\\w*)\\s+(-?\\w*)\\s+(-?\\w*)\\s+(-?\\w*)\\s*(\\w*)?$",
|
||||
"fillRect <x> <y> <w> <h> [color]\n - Uses current brush if no color given",
|
||||
"fillRect 10 10 20 20 blue");
|
||||
DECL_PAINTCOMMAND("fillRectF", command_fillRectF,
|
||||
"^fillRectF\\s+(-?[.\\w]*)\\s+(-?[.\\w]*)\\s+(-?[.\\w]*)\\s+(-?[.\\w]*)\\s*(\\w*)?$",
|
||||
"fillRectF <x> <y> <w> <h> [color]\n - Uses current brush if no color given",
|
||||
"fillRectF 10.5 10.5 20.2 20.2 blue");
|
||||
|
||||
DECL_PAINTCOMMANDSECTION("painterPaths");
|
||||
DECL_PAINTCOMMAND("path_moveTo", command_path_moveTo,
|
||||
@ -1331,6 +1340,46 @@ void PaintCommands::command_drawTextDocument(QRegularExpressionMatch re)
|
||||
m_painter->restore();
|
||||
}
|
||||
|
||||
/***************************************************************************************************/
|
||||
void PaintCommands::command_fillRect(QRegularExpressionMatch re)
|
||||
{
|
||||
QStringList caps = re.capturedTexts();
|
||||
int x = convertToInt(caps.at(1));
|
||||
int y = convertToInt(caps.at(2));
|
||||
int w = convertToInt(caps.at(3));
|
||||
int h = convertToInt(caps.at(4));
|
||||
|
||||
if (!caps.at(5).isEmpty()) {
|
||||
QColor color = convertToColor(caps.at(5));
|
||||
if (m_verboseMode)
|
||||
printf(" -(lance) fillRect(%d, %d, %d, %d, %s)\n", x, y, w, h, qPrintable(color.name()));
|
||||
m_painter->fillRect(x, y, w, h, color);
|
||||
} else {
|
||||
if (m_verboseMode)
|
||||
printf(" -(lance) fillRect(%d, %d, %d, %d)\n", x, y, w, h);
|
||||
m_painter->fillRect(x, y, w, h, m_painter->brush());
|
||||
}
|
||||
}
|
||||
|
||||
void PaintCommands::command_fillRectF(QRegularExpressionMatch re)
|
||||
{
|
||||
QStringList caps = re.capturedTexts();
|
||||
double x = convertToDouble(caps.at(1));
|
||||
double y = convertToDouble(caps.at(2));
|
||||
double w = convertToDouble(caps.at(3));
|
||||
double h = convertToDouble(caps.at(4));
|
||||
|
||||
if (!caps.at(5).isEmpty()) {
|
||||
QColor color = convertToColor(caps.at(5));
|
||||
if (m_verboseMode)
|
||||
printf(" -(lance) fillRectF(%.2f, %.2f, %.2f, %.2f, %s)\n", x, y, w, h, qPrintable(color.name()));
|
||||
m_painter->fillRect(QRectF(x, y, w, h), color);
|
||||
} else {
|
||||
if (m_verboseMode)
|
||||
printf(" -(lance) fillRectF(%.2f, %.2f, %.2f, %.2f)\n", x, y, w, h);
|
||||
m_painter->fillRect(QRectF(x, y, w, h), m_painter->brush());
|
||||
}
|
||||
}
|
||||
|
||||
/***************************************************************************************************/
|
||||
void PaintCommands::command_noop(QRegularExpressionMatch)
|
||||
|
@ -200,6 +200,10 @@ private:
|
||||
void command_drawStaticText(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);
|
||||
|
121
tests/auto/other/lancelot/scripts/fillrect.qps
Normal file
121
tests/auto/other/lancelot/scripts/fillrect.qps
Normal file
@ -0,0 +1,121 @@
|
||||
setRenderHint Antialiasing false
|
||||
|
||||
# offscreen
|
||||
translate 0 -200
|
||||
|
||||
begin_block rects
|
||||
# int API
|
||||
fillRect 10 10 20 20 green
|
||||
fillRect 40 10 20 20
|
||||
drawRect 70 10 20 20
|
||||
|
||||
# float API, int values
|
||||
fillRectF 10.0 40.0 20.0 20.0 green
|
||||
fillRectF 40.0 40.0 20.0 20.0
|
||||
drawRect 70.0 40.0 20.0 20.0
|
||||
|
||||
# float API, float values
|
||||
fillRectF 10.0 70.0 20.5 20.5 green
|
||||
fillRectF 40.0 70.0 20.5 20.5
|
||||
drawRect 70.0 70.0 20.5 20.5
|
||||
|
||||
# alignment, int api, color
|
||||
fillRect 10 100 10 10 green
|
||||
fillRect 20 100 10 10 green
|
||||
fillRect 10 110 10 10 green
|
||||
fillRect 20 110 10 10 green
|
||||
|
||||
# alignment, int api, brush
|
||||
fillRect 40 100 10 10
|
||||
fillRect 50 100 10 10
|
||||
fillRect 40 110 10 10
|
||||
fillRect 50 110 10 10
|
||||
|
||||
# alignment comparison
|
||||
drawRect 70 100 10 10
|
||||
drawRect 80 100 10 10
|
||||
drawRect 70 110 10 10
|
||||
drawRect 80 110 10 10
|
||||
|
||||
# alignment, float api, color
|
||||
fillRectF 10.0 130.0 10.0 10.0 green
|
||||
fillRectF 20.0 130.0 10.0 10.0 green
|
||||
fillRectF 10.0 140.0 10.0 10.0 green
|
||||
fillRectF 20.0 140.0 10.0 10.0 green
|
||||
|
||||
# alignment, float api, brush
|
||||
fillRectF 40.0 130.0 10.0 10.0
|
||||
fillRectF 50.0 130.0 10.0 10.0
|
||||
fillRectF 40.0 140.0 10.0 10.0
|
||||
fillRectF 50.0 140.0 10.0 10.0
|
||||
|
||||
# alignment comparison
|
||||
drawRect 70.0 130.0 10.0 10.0
|
||||
drawRect 80.0 130.0 10.0 10.0
|
||||
drawRect 70.0 140.0 10.0 10.0
|
||||
drawRect 80.0 140.0 10.0 10.0
|
||||
|
||||
end_block
|
||||
|
||||
begin_block row
|
||||
|
||||
repeat_block rects
|
||||
|
||||
save
|
||||
translate 100.2 0.2
|
||||
repeat_block rects
|
||||
restore
|
||||
|
||||
save
|
||||
translate 200.5 0.5
|
||||
repeat_block rects
|
||||
restore
|
||||
|
||||
save
|
||||
translate 300.7 0.7
|
||||
repeat_block rects
|
||||
restore
|
||||
|
||||
end_block
|
||||
|
||||
# end of block defs
|
||||
|
||||
resetMatrix
|
||||
|
||||
setPen NoPen
|
||||
setBrush green
|
||||
repeat_block row
|
||||
|
||||
save
|
||||
translate 500 50
|
||||
scale 0.42 0.42
|
||||
repeat_block row
|
||||
restore
|
||||
|
||||
save
|
||||
translate 0 160
|
||||
scale 1.8 0.8
|
||||
repeat_block row
|
||||
restore
|
||||
|
||||
save
|
||||
translate 650 320
|
||||
rotate 80
|
||||
repeat_block row
|
||||
restore
|
||||
|
||||
save
|
||||
setBrush green Dense2Pattern
|
||||
translate 0 400
|
||||
repeat_block row
|
||||
restore
|
||||
|
||||
save
|
||||
gradient_clearStops
|
||||
gradient_appendStop 0 green
|
||||
gradient_appendStop 1 blue
|
||||
gradient_setCoordinateMode ObjectBoundingMode
|
||||
gradient_setLinear 0.0 0.0 1.0 1.0
|
||||
translate 0 600
|
||||
repeat_block row
|
||||
restore
|
121
tests/auto/other/lancelot/scripts/fillrect_aa.qps
Normal file
121
tests/auto/other/lancelot/scripts/fillrect_aa.qps
Normal file
@ -0,0 +1,121 @@
|
||||
setRenderHint Antialiasing true
|
||||
|
||||
# offscreen
|
||||
translate 0 -200
|
||||
|
||||
begin_block rects
|
||||
# int API
|
||||
fillRect 10 10 20 20 green
|
||||
fillRect 40 10 20 20
|
||||
drawRect 70 10 20 20
|
||||
|
||||
# float API, int values
|
||||
fillRectF 10.0 40.0 20.0 20.0 green
|
||||
fillRectF 40.0 40.0 20.0 20.0
|
||||
drawRect 70.0 40.0 20.0 20.0
|
||||
|
||||
# float API, float values
|
||||
fillRectF 10.0 70.0 20.5 20.5 green
|
||||
fillRectF 40.0 70.0 20.5 20.5
|
||||
drawRect 70.0 70.0 20.5 20.5
|
||||
|
||||
# alignment, int api, color
|
||||
fillRect 10 100 10 10 green
|
||||
fillRect 20 100 10 10 green
|
||||
fillRect 10 110 10 10 green
|
||||
fillRect 20 110 10 10 green
|
||||
|
||||
# alignment, int api, brush
|
||||
fillRect 40 100 10 10
|
||||
fillRect 50 100 10 10
|
||||
fillRect 40 110 10 10
|
||||
fillRect 50 110 10 10
|
||||
|
||||
# alignment comparison
|
||||
drawRect 70 100 10 10
|
||||
drawRect 80 100 10 10
|
||||
drawRect 70 110 10 10
|
||||
drawRect 80 110 10 10
|
||||
|
||||
# alignment, float api, color
|
||||
fillRectF 10.0 130.0 10.0 10.0 green
|
||||
fillRectF 20.0 130.0 10.0 10.0 green
|
||||
fillRectF 10.0 140.0 10.0 10.0 green
|
||||
fillRectF 20.0 140.0 10.0 10.0 green
|
||||
|
||||
# alignment, float api, brush
|
||||
fillRectF 40.0 130.0 10.0 10.0
|
||||
fillRectF 50.0 130.0 10.0 10.0
|
||||
fillRectF 40.0 140.0 10.0 10.0
|
||||
fillRectF 50.0 140.0 10.0 10.0
|
||||
|
||||
# alignment comparison
|
||||
drawRect 70.0 130.0 10.0 10.0
|
||||
drawRect 80.0 130.0 10.0 10.0
|
||||
drawRect 70.0 140.0 10.0 10.0
|
||||
drawRect 80.0 140.0 10.0 10.0
|
||||
|
||||
end_block
|
||||
|
||||
begin_block row
|
||||
|
||||
repeat_block rects
|
||||
|
||||
save
|
||||
translate 100.2 0.2
|
||||
repeat_block rects
|
||||
restore
|
||||
|
||||
save
|
||||
translate 200.5 0.5
|
||||
repeat_block rects
|
||||
restore
|
||||
|
||||
save
|
||||
translate 300.7 0.7
|
||||
repeat_block rects
|
||||
restore
|
||||
|
||||
end_block
|
||||
|
||||
# end of block defs
|
||||
|
||||
resetMatrix
|
||||
|
||||
setPen NoPen
|
||||
setBrush green
|
||||
repeat_block row
|
||||
|
||||
save
|
||||
translate 500 50
|
||||
scale 0.42 0.42
|
||||
repeat_block row
|
||||
restore
|
||||
|
||||
save
|
||||
translate 0 160
|
||||
scale 1.8 0.8
|
||||
repeat_block row
|
||||
restore
|
||||
|
||||
save
|
||||
translate 650 320
|
||||
rotate 80
|
||||
repeat_block row
|
||||
restore
|
||||
|
||||
save
|
||||
setBrush green Dense2Pattern
|
||||
translate 0 400
|
||||
repeat_block row
|
||||
restore
|
||||
|
||||
save
|
||||
gradient_clearStops
|
||||
gradient_appendStop 0 green
|
||||
gradient_appendStop 1 blue
|
||||
gradient_setCoordinateMode ObjectBoundingMode
|
||||
gradient_setLinear 0.0 0.0 1.0 1.0
|
||||
translate 0 600
|
||||
repeat_block row
|
||||
restore
|
Loading…
x
Reference in New Issue
Block a user