diff options
author | Eirik Aavitsland <eirik.aavitsland@qt.io> | 2022-06-02 16:40:05 +0200 |
---|---|---|
committer | Eirik Aavitsland <eirik.aavitsland@qt.io> | 2022-06-04 21:15:42 +0200 |
commit | f67d89ebde22bdef6d82f7a613f7f0fac794dd45 (patch) | |
tree | 90a4e9a18e8ca3891b18db8fa5d355fdfe9c488c /tests | |
parent | f8c5f4b7b57afb3c808a1f3d061eda04960475d8 (diff) |
Support cosmetic brush patterns in the pdf and opengl paint engines
This implements the recent functionality extension of painting
cosmetic (untransformed) brush patterns, and the corresponding
NonCosmeticBrushPatterns render hint, in the pdf and opengl paint
engines.
As part of the implementation it also fixes a couple of pre-existing
bugs in the opengl engine, relating to updating the brush after
changes in transformation or brush origin.
As a driveby, it also includes a minor fix for the lance testing tool:
request stencil buffer, as that is needed and not always provided by
default. This echoes a recent fix done to tst_baseline_painting.
Change-Id: Ia8811477e015eebeb40ed138bca96643ce1ab0dc
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/baseline/painting/scripts/pattern_xform.qps | 5 | ||||
-rw-r--r-- | tests/baseline/painting/scripts/pattern_xform2.qps | 81 | ||||
-rw-r--r-- | tests/manual/lance/main.cpp | 1 |
3 files changed, 85 insertions, 2 deletions
diff --git a/tests/baseline/painting/scripts/pattern_xform.qps b/tests/baseline/painting/scripts/pattern_xform.qps index a12ae05c72..224969f1c7 100644 --- a/tests/baseline/painting/scripts/pattern_xform.qps +++ b/tests/baseline/painting/scripts/pattern_xform.qps @@ -9,13 +9,14 @@ setBrush green Dense4Pattern drawRect 0 0 40 40 setBrush green DiagCrossPattern drawRect 40 0 40 40 -setBrush green VerPattern +setBrush green HorPattern brushRotate 30 drawRect 80 0 40 40 +fillRect 120 0 40 40 save setPen brush 40 SolidLine FlatCap setBrush NoBrush -drawLine 120 20 160 20 +drawLine 160 20 200 20 restore end_block restore diff --git a/tests/baseline/painting/scripts/pattern_xform2.qps b/tests/baseline/painting/scripts/pattern_xform2.qps new file mode 100644 index 0000000000..4f9314272d --- /dev/null +++ b/tests/baseline/painting/scripts/pattern_xform2.qps @@ -0,0 +1,81 @@ +# Version: 1 +# CheckVsReference: 5% + +# 1: Check brush origin vs (non)cosmetic brush patterns + +setBrush blue CrossPattern +begin_block blockName +save +setBrushOrigin 0 0 +fillRect 0 0 32 32 +translate 0 32 +setBrushOrigin 1 0 +fillRect 0 0 32 32 +translate 0 32 +setBrushOrigin 2 0 +fillRect 0 0 32 32 +translate 0 32 +setBrushOrigin 3 0 +fillRect 0 0 32 32 +translate 0 32 +setBrushOrigin 4 0 +fillRect 0 0 32 32 +translate 0 32 +setBrushOrigin 5 0 +fillRect 0 0 32 32 +translate 0 32 +setBrushOrigin 6 0 +fillRect 0 0 32 32 +translate 0 32 +setBrushOrigin 7 0 +fillRect 0 0 32 32 +translate 0 32 +setBrushOrigin 8 0 +fillRect 0 0 32 32 +restore +end_block blockName + +save +setBrush red CrossPattern +scale 2 1 +repeat_block blockName +restore + +save +translate 0 300 +setRenderHint NonCosmeticBrushPatterns true +setBrush blue CrossPattern +repeat_block blockName +setBrush red CrossPattern +scale 2 1 +repeat_block blockName +restore + +# 2: Check brush update after only xform or hint change +translate 100 0 + +save +setPen NoPen +setBrush blue DiagCrossPattern +setRenderHint NonCosmeticBrushPatterns true +drawRect 10 10 200 100 +scale 10 10 +drawRect 22 1 20 10 +drawRect 22 12 20 10 +setRenderHint NonCosmeticBrushPatterns false +drawRect 1 12 20 10 +restore + +setBrush green DiagCrossPattern +setPen brush 100 SolidLine FlatCap +pen_setCosmetic true +setBrush NoBrush +translate 0 250 +setRenderHint NonCosmeticBrushPatterns true +drawLine 10 60 210 60 +scale 10 10 +drawLine 22 6 42 6 +drawLine 22 17 42 17 +setRenderHint NonCosmeticBrushPatterns false +drawLine 1 17 21 17 + diff --git a/tests/manual/lance/main.cpp b/tests/manual/lance/main.cpp index 53f094c5c6..e6474b10c8 100644 --- a/tests/manual/lance/main.cpp +++ b/tests/manual/lance/main.cpp @@ -191,6 +191,7 @@ int main(int argc, char **argv) DeviceType type = WidgetType; QSurfaceFormat contextFormat; + contextFormat.setStencilBufferSize(8); bool checkers_background = true; QImage::Format imageFormat = QImage::Format_ARGB32_Premultiplied; |