f46db29d8c
In a recent improvement (6de36918c0
) the
last set clip region or path was stored in separate variables, in
order to be set again if the aliasing mode changed. That solution was
too simplistic, as it would break down as soon as more than one clip
area was set, with the latter either replacing or intersecting the
first. It was also unnecessary to introduce new storing of clip areas
and transforms, as those are already recorded in the clipInfo stack in
the painter state. This patch hence reverts much of that implementation.
However the basic idea of setting the clip area again after AA change
is good, so that part is kept, implementated instead by calling a
pre-existing function to replay the clipInfo stack.
One of the baseline test cases is extended to excercise the
combination of clip areas. As a driveby, support for setClipRectF is
added to the painting baseline test scripts, and the build of the
manual lance tool is fixed.
Fixes: QTBUG-101474
Pick-to: 6.3 6.2
Change-Id: Ide8b70d8cbf138deb06cbb84f69e62f7405886e6
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
353 lines
6.1 KiB
Plaintext
353 lines
6.1 KiB
Plaintext
# Version: 1
|
|
# CheckVsReference: 5%
|
|
|
|
save
|
|
|
|
translate 10 10
|
|
setPen NoPen
|
|
|
|
begin_block clipping
|
|
save
|
|
|
|
setBrush 0x7f7fff
|
|
save
|
|
setClipRect 0 0 50 10
|
|
drawRect 0 0 100 100
|
|
|
|
setClipRect 0 0 10 50 IntersectClip
|
|
setBrush black CrossPattern
|
|
drawRect 0 0 100 100
|
|
restore
|
|
|
|
translate 100 0
|
|
save
|
|
setClipRect 0 0 50 10
|
|
drawRect 0 0 100 100
|
|
|
|
setClipRect 0 0 10 50 ReplaceClip
|
|
setBrush black CrossPattern
|
|
drawRect 0 0 100 100
|
|
restore
|
|
|
|
translate 100 0
|
|
save
|
|
setClipRect 0 0 50 10
|
|
drawRect 0 0 100 100
|
|
|
|
setClipRect 0 0 10 50 UniteClip
|
|
setBrush black CrossPattern
|
|
drawRect 0 0 100 100
|
|
restore
|
|
|
|
restore
|
|
end_block
|
|
|
|
translate 300 0
|
|
setRenderHint Antialiasing
|
|
repeat_block clipping
|
|
|
|
translate -300 100
|
|
setRenderHint Antialiasing false
|
|
scale 1.2 1.2
|
|
repeat_block clipping
|
|
|
|
translate 300 0
|
|
setRenderHint Antialiasing
|
|
setRenderHint SmoothPixmapTransform
|
|
repeat_block clipping
|
|
|
|
restore
|
|
|
|
# Excercise combining different clips
|
|
|
|
translate 0 250
|
|
scale 0.9 0.9
|
|
setFont "times" 10 bold
|
|
region_addRect dummyRegion 1000 1000 10 10
|
|
region_addRect realRegion 20 10 60 30
|
|
path_addRect dummyPath 1000 1000 10 10
|
|
path_addRect realPath 20 10 60 30
|
|
begin_block paintstuff
|
|
fillRect 0 0 100 50 orange
|
|
drawText 0 5 "Should be clipped"
|
|
drawText 0 15 "Should be clipped"
|
|
drawText 0 25 "Should be clipped"
|
|
drawText 0 35 "Should be clipped"
|
|
drawText 0 45 "Should be clipped"
|
|
drawText 0 55 "Should be clipped"
|
|
end_block
|
|
|
|
translate 0 100
|
|
|
|
# rect replaced by x
|
|
save
|
|
setClipRect 1000 1000 10 10 ReplaceClip
|
|
setClipRect 20 10 60 30 ReplaceClip
|
|
repeat_block paintstuff
|
|
restore
|
|
translate 100 0
|
|
|
|
save
|
|
setClipRect 1000 1000 10 10 ReplaceClip
|
|
setClipRectF 20 10 60 30 ReplaceClip
|
|
repeat_block paintstuff
|
|
restore
|
|
translate 100 0
|
|
|
|
save
|
|
setClipRect 1000 1000 10 10 ReplaceClip
|
|
setClipRegion realRegion ReplaceClip
|
|
repeat_block paintstuff
|
|
restore
|
|
translate 100 0
|
|
|
|
save
|
|
setClipRect 1000 1000 10 10 ReplaceClip
|
|
setClipPath realPath ReplaceClip
|
|
repeat_block paintstuff
|
|
restore
|
|
translate 100 0
|
|
|
|
# rectF replaced by x
|
|
save
|
|
setClipRectF 1000 1000 10 10 ReplaceClip
|
|
setClipRect 20 10 60 30 ReplaceClip
|
|
repeat_block paintstuff
|
|
restore
|
|
translate 100 0
|
|
|
|
save
|
|
setClipRectF 1000 1000 10 10 ReplaceClip
|
|
setClipRectF 20 10 60 30 ReplaceClip
|
|
repeat_block paintstuff
|
|
restore
|
|
translate 100 0
|
|
|
|
save
|
|
setClipRectF 1000 1000 10 10 ReplaceClip
|
|
setClipRegion realRegion ReplaceClip
|
|
repeat_block paintstuff
|
|
restore
|
|
translate 100 0
|
|
|
|
save
|
|
setClipRectF 1000 1000 10 10 ReplaceClip
|
|
setClipPath realPath ReplaceClip
|
|
repeat_block paintstuff
|
|
restore
|
|
translate 100 0
|
|
|
|
translate -800 100
|
|
|
|
# region replaced by x
|
|
save
|
|
setClipRegion dummyRegion ReplaceClip
|
|
setClipRect 20 10 60 30 ReplaceClip
|
|
repeat_block paintstuff
|
|
restore
|
|
translate 100 0
|
|
|
|
save
|
|
setClipRegion dummyRegion ReplaceClip
|
|
setClipRectF 20 10 60 30 ReplaceClip
|
|
repeat_block paintstuff
|
|
restore
|
|
translate 100 0
|
|
|
|
save
|
|
setClipRegion dummyRegion ReplaceClip
|
|
setClipRegion realRegion ReplaceClip
|
|
repeat_block paintstuff
|
|
restore
|
|
translate 100 0
|
|
|
|
save
|
|
setClipRegion dummyRegion ReplaceClip
|
|
setClipPath realPath ReplaceClip
|
|
repeat_block paintstuff
|
|
restore
|
|
translate 100 0
|
|
|
|
# path replaced by x
|
|
save
|
|
setClipPath dummyPath ReplaceClip
|
|
setClipRect 20 10 60 30 ReplaceClip
|
|
repeat_block paintstuff
|
|
restore
|
|
translate 100 0
|
|
|
|
save
|
|
setClipPath dummyPath ReplaceClip
|
|
setClipRectF 20 10 60 30 ReplaceClip
|
|
repeat_block paintstuff
|
|
restore
|
|
translate 100 0
|
|
|
|
save
|
|
setClipPath dummyPath ReplaceClip
|
|
setClipRegion realRegion ReplaceClip
|
|
repeat_block paintstuff
|
|
restore
|
|
translate 100 0
|
|
|
|
save
|
|
setClipPath dummyPath ReplaceClip
|
|
setClipPath realPath ReplaceClip
|
|
repeat_block paintstuff
|
|
restore
|
|
translate 100 0
|
|
|
|
region_addRect intregion 0 10 60 30
|
|
path_addRect intpath 0 10 60 30
|
|
|
|
translate -800 100
|
|
# rect & x
|
|
save
|
|
setClipRect 0 10 60 30 ReplaceClip
|
|
translate 40 0
|
|
setClipRect 0 10 60 30 IntersectClip
|
|
translate -40 0
|
|
repeat_block paintstuff
|
|
restore
|
|
translate 100 0
|
|
|
|
save
|
|
setClipRect 0 10 60 30 ReplaceClip
|
|
translate 40 0
|
|
setClipRectF 0 10 60 30 IntersectClip
|
|
translate -40 0
|
|
repeat_block paintstuff
|
|
restore
|
|
translate 100 0
|
|
|
|
save
|
|
setClipRect 0 10 60 30 ReplaceClip
|
|
translate 40 0
|
|
setClipRegion intregion IntersectClip
|
|
translate -40 0
|
|
repeat_block paintstuff
|
|
restore
|
|
translate 100 0
|
|
|
|
save
|
|
setClipRect 0 10 60 30 ReplaceClip
|
|
translate 40 0
|
|
setClipPath intpath IntersectClip
|
|
translate -40 0
|
|
repeat_block paintstuff
|
|
restore
|
|
translate 100 0
|
|
|
|
# rectF & x
|
|
save
|
|
setClipRectF 0 10 60 30 ReplaceClip
|
|
translate 40 0
|
|
setClipRect 0 10 60 30 IntersectClip
|
|
translate -40 0
|
|
repeat_block paintstuff
|
|
restore
|
|
translate 100 0
|
|
|
|
save
|
|
setClipRectF 0 10 60 30 ReplaceClip
|
|
translate 40 0
|
|
setClipRectF 0 10 60 30 IntersectClip
|
|
translate -40 0
|
|
repeat_block paintstuff
|
|
restore
|
|
translate 100 0
|
|
|
|
save
|
|
setClipRectF 0 10 60 30 ReplaceClip
|
|
translate 40 0
|
|
setClipRegion intregion IntersectClip
|
|
translate -40 0
|
|
repeat_block paintstuff
|
|
restore
|
|
translate 100 0
|
|
|
|
save
|
|
setClipRectF 0 10 60 30 ReplaceClip
|
|
translate 40 0
|
|
setClipPath intpath IntersectClip
|
|
translate -40 0
|
|
repeat_block paintstuff
|
|
restore
|
|
translate 100 0
|
|
|
|
translate -800 100
|
|
|
|
# region & x
|
|
save
|
|
setClipRegion intregion ReplaceClip
|
|
translate 40 0
|
|
setClipRect 0 10 60 30 IntersectClip
|
|
translate -40 0
|
|
repeat_block paintstuff
|
|
restore
|
|
translate 100 0
|
|
|
|
save
|
|
setClipRegion intregion ReplaceClip
|
|
translate 40 0
|
|
setClipRectF 0 10 60 30 IntersectClip
|
|
translate -40 0
|
|
repeat_block paintstuff
|
|
restore
|
|
translate 100 0
|
|
|
|
save
|
|
setClipRegion intregion ReplaceClip
|
|
translate 40 0
|
|
setClipRegion intregion IntersectClip
|
|
translate -40 0
|
|
repeat_block paintstuff
|
|
restore
|
|
translate 100 0
|
|
|
|
save
|
|
setClipRegion intregion ReplaceClip
|
|
translate 40 0
|
|
setClipPath intpath IntersectClip
|
|
translate -40 0
|
|
repeat_block paintstuff
|
|
restore
|
|
translate 100 0
|
|
|
|
# path & x
|
|
save
|
|
setClipPath intpath ReplaceClip
|
|
translate 40 0
|
|
setClipRect 0 10 60 30 IntersectClip
|
|
translate -40 0
|
|
repeat_block paintstuff
|
|
restore
|
|
translate 100 0
|
|
|
|
save
|
|
setClipPath intpath ReplaceClip
|
|
translate 40 0
|
|
setClipRectF 0 10 60 30 IntersectClip
|
|
translate -40 0
|
|
repeat_block paintstuff
|
|
restore
|
|
translate 100 0
|
|
|
|
save
|
|
setClipPath intpath ReplaceClip
|
|
translate 40 0
|
|
setClipRegion intregion IntersectClip
|
|
translate -40 0
|
|
repeat_block paintstuff
|
|
restore
|
|
translate 100 0
|
|
|
|
save
|
|
setClipPath intpath ReplaceClip
|
|
translate 40 0
|
|
setClipPath intpath IntersectClip
|
|
translate -40 0
|
|
repeat_block paintstuff
|
|
restore
|
|
translate 100 0
|