Commit Graph

313 Commits

Author SHA1 Message Date
Uwe Rathmann e50fb269c3 minor adjustments 2023-01-10 10:20:30 +01:00
Uwe Rathmann a5ab93bba8 bad workaround removed ad fixing the bug instead. 2023-01-09 15:11:38 +01:00
Uwe Rathmann d80f9780fc iotdashboard crash fixed 2023-01-09 15:11:38 +01:00
Uwe Rathmann f4aaf4cc92 more variations of gradient vectors supported 2023-01-05 17:18:34 +01:00
Uwe Rathmann 21e1206b2d QskBoxRenderer improvements 2023-01-05 13:06:32 +01:00
Uwe Rathmann 1b85d3053e QskBoxRenderer fixes 2023-01-04 16:15:22 +01:00
Uwe Rathmann b449289509 convenience API added 2022-12-30 10:27:18 +01:00
Uwe Rathmann 14cee228e0 SimpleColorIterator added 2022-12-29 08:20:29 +01:00
Uwe Rathmann 8c6f0ffd60 full support of all linear gradient vectors by QskRectRenderer ( = not rounded rectangles ). 2022-12-28 19:39:08 +01:00
Uwe Rathmann fba8b97a74 monochrome gradients are rendered vertically 2022-12-24 12:22:42 +01:00
Uwe Rathmann 76c8e41fcc radiusX/radiusY to allow ellipsoid and circular radial gradients 2022-12-23 14:57:46 +01:00
Uwe Rathmann f13026b544 conic gradients fixed 2022-12-22 20:27:49 +01:00
Uwe Rathmann a2a2c63678 qskEffectiveGradient fixed 2022-12-22 20:27:17 +01:00
Uwe Rathmann 82cb6e6811 QskGradient::effectiveGradient added 2022-12-22 20:13:45 +01:00
Uwe Rathmann 4670e3b5d3 wrong vector size fixed 2022-12-22 17:49:02 +01:00
Uwe Rathmann 3de71d1bd5 QskGradient::Spread -> QskGradient::SpreadMode 2022-12-22 11:45:23 +01:00
Uwe Rathmann 26e422ac07 convenience update method added 2022-12-20 16:29:51 +01:00
Uwe Rathmann 8318ff757b update issues with gradients fixed 2022-12-10 16:08:32 +01:00
Uwe Rathmann fd5856cd50 class renamed 2022-12-09 12:03:46 +01:00
Uwe Rathmann 334254caf8 crash fixed for square rectangles with mutiple stops at 0.5 2022-12-09 11:54:42 +01:00
Uwe Rathmann b36521b0ed code moved to cpp file 2022-12-09 11:50:31 +01:00
Uwe Rathmann 5f6ab6db42 code moved to QskBoxRenderer.cpp 2022-12-06 16:52:55 +01:00
Uwe Rathmann e1b65c6dd6 QskBoxRenderer::isGradientSupported also depends on the shape ( at least
in the future )
2022-12-06 16:37:18 +01:00
Uwe Rathmann 8551f4459d gardient check fixed 2022-12-06 16:32:27 +01:00
Uwe Rathmann 3bab38029d wrong update check fixed 2022-12-06 16:31:58 +01:00
Uwe Rathmann a2e29e0d16 code moved to QskVertex + hiding classes in QskVertex from public use 2022-12-06 13:20:18 +01:00
Uwe Rathmann 778ed1de9e QskBoxRectangleNode supports rounded rectangles now. 2022-12-06 12:12:54 +01:00
Uwe Rathmann 9ae7dc2f63 QskGradientNode renamed to QskRectangleNode 2022-12-06 09:58:46 +01:00
Uwe Rathmann 6d726eee0a QskGradientNode introduced for rectangles filled with any type of
gradient being supported by QskGradient. It is lighter than QskBoxNode,
that is a compositition of border/gradient/shadow. Used for the
background node now - what means, that background can have radial/conic
gradients now as well.
2022-12-05 17:10:13 +01:00
Uwe Rathmann c31d554d6b QskBoxRenderer::isGradientSupported introduced 2022-12-05 17:08:32 +01:00
Uwe Rathmann 9d409ab89b QskBoxRenderer with static methods 2022-12-05 17:06:55 +01:00
Uwe Rathmann 6ed417873e QskSGNode::resetGeometry added 2022-12-05 17:00:54 +01:00
Uwe Rathmann 296b2f368a code simplified/harmonized 2022-12-05 13:05:13 +01:00
Uwe Rathmann 125fe1e9f4 QskBoxNode renamed to QskBoxRectangleNode, QskShadedBoxNode renamed to QskBoxNode 2022-12-05 12:34:08 +01:00
Uwe Rathmann d82f3d08ff calculating vertexes manually instead of using the expensive painter
path triangulator
2022-12-05 11:39:09 +01:00
Uwe Rathmann 4888fcc5ba crash fixed 2022-12-05 11:18:35 +01:00
Uwe Rathmann f4275c5098 using the more efficient QVector< qreal > instead of QPainterPath 2022-12-04 21:13:14 +01:00
Uwe Rathmann 4dddb8abf5 unused method removed 2022-12-04 21:13:00 +01:00
Uwe Rathmann 7abd90b2dd Finally all types of gradients can be set to boxes.
For radial/conic and tilted linear gradients shape/border metrics
will be translated into a QPainterPath to be fed into the triangulation.
However the borders remain being done by QskBoxRenderer.
2022-12-04 19:54:05 +01:00
Uwe Rathmann 38cbefac78 using QskGradient::firstColor 2022-12-04 19:53:25 +01:00
Uwe Rathmann 7eecc63571 QPainterPath support added 2022-12-04 19:52:07 +01:00
Uwe Rathmann 0925b40b7a QGradient::Spread -> QskGradient::Spread 2022-12-01 12:03:36 +01:00
Uwe Rathmann 974e7372dd code moved to QskColorRamp 2022-11-16 17:26:50 +01:00
Uwe Rathmann 0f028e4239 qsb files recreated 2022-11-16 16:00:36 +01:00
Uwe Rathmann ff0599686d unused parameters removed 2022-11-16 14:33:10 +01:00
Uwe Rathmann 18b0594cd6 internal API simplyfied 2022-11-16 14:23:47 +01:00
Uwe Rathmann 615e0016c2 working more with RGBA values instead of QColor 2022-11-16 13:46:37 +01:00
Uwe Rathmann 70f4d28285 using QRgb instead of QColor 2022-11-14 09:01:07 +01:00
Uwe Rathmann b140d1b30a QskGradientDirection introduced - no more classes derived from
QskGradient
2022-11-13 17:22:09 +01:00
Uwe Rathmann a658a2a4e4 palette -> colorRamp 2022-11-13 11:05:53 +01:00
Uwe Rathmann ad67d035f3 new QskGradient 2022-10-31 14:42:08 +01:00
Uwe Rathmann bad4f90a16 if/else cascade reordered 2022-10-25 18:19:32 +02:00
Uwe Rathmann 506dd4f60c working towards introducing new type of gradients 2022-10-25 18:17:21 +02:00
Uwe Rathmann e67b0b385a allowing gradient stops that do not start/end with 0.0/1.0 ( like
QGradient )
2022-10-24 17:29:39 +02:00
Uwe Rathmann 03ce740b29 towards improved QskGradient 2022-10-24 16:40:47 +02:00
Uwe Rathmann 99132276fc first adjustments for QskGradient improvements 2022-10-24 16:02:46 +02:00
Uwe Rathmann 4a04a27d0d making code more readable 2022-10-21 16:49:05 +02:00
Uwe Rathmann f0c9548b4c using QskGradient::isVisisble() instead of isValid() 2022-10-21 16:46:59 +02:00
Uwe Rathmann b1f63999c6 preparations for gradient updates 2022-10-20 09:29:20 +02:00
Uwe Rathmann d5ba7d9504 QskGradient::qtStops added 2022-10-20 09:22:11 +02:00
Uwe Rathmann 4ca794f7db linear shaders modified 2022-10-18 17:37:31 +02:00
Uwe Rathmann 0d49820cad bad memory allocation size fixed 2022-10-18 17:36:55 +02:00
Uwe Rathmann 618a97235e auto keyword 2022-10-14 17:13:57 +02:00
Uwe Rathmann 6fef215310 using QskGradient::hash 2022-10-14 17:13:33 +02:00
Uwe Rathmann 51a7e4e589 Using our own gradient shaders ( no dependencies from quickshapes
anymore ). shapes/Gradient has not yet been merged into QskGradient
and we still have some stupid conversions to QGradient in the way.
2022-10-13 19:39:57 +02:00
Uwe Rathmann 9d640d3f06 Qt5 fixes 2022-10-07 16:17:52 +02:00
Uwe Rathmann 1c98c90e8c radial gradints fixed 2022-10-07 14:32:20 +02:00
Uwe Rathmann 477a284cfa more expressive API 2022-10-05 09:38:35 +02:00
Uwe Rathmann 8052074c42 Conical->Conic ( following CSS naming ) 2022-10-04 12:46:17 +02:00
Uwe Rathmann f031e78a7b storing path and transformation to know when geometry updates are
necessary
2022-09-30 15:23:55 +02:00
Uwe Rathmann ee7dbb300a scaling of pens moved to QskStrokeNode 2022-09-30 15:09:52 +02:00
Uwe Rathmann cd19b047ab setting an initial material, so that the node can be inserted into the
scene grapf without rnning into Qt assertions
2022-09-30 15:08:19 +02:00
Uwe Rathmann 45e59d6c10 wip 2022-09-29 17:26:15 +02:00
Uwe Rathmann f798f2228c more details around shapes 2022-09-29 16:50:46 +02:00
Uwe Rathmann 634ca3bed3 smarter matrial updates 2022-09-29 12:40:22 +02:00
Uwe Rathmann b138d04053 shaders for gradients ( QGradient variations ) added 2022-09-28 20:14:10 +02:00
Uwe Rathmann 12e462e657 filling the vertex buffer fixed 2022-09-26 17:50:07 +02:00
Uwe Rathmann 60efe3649b QSK_EXPORT added 2022-09-26 17:49:47 +02:00
Uwe Rathmann 3ccaa113fd QskShapeNode introduced ( completely untestest, without gradients in the
first version )
2022-09-26 14:44:23 +02:00
Uwe Rathmann 96906e04ca code reorganized 2022-09-26 14:44:06 +02:00
Uwe Rathmann b2d7d77640 QskStrokeNode introduced ( untested so far ) 2022-09-23 17:49:49 +02:00
Uwe Rathmann ab34af0b03 include changed 2022-09-23 17:49:13 +02:00
Uwe Rathmann 9cb3bc6ab9 compare operation fixed 2022-09-23 12:39:34 +02:00
Uwe Rathmann bfab362bbb Qt 6.4 compatibility fix 2022-08-29 17:44:57 +02:00
Uwe Rathmann 1cb0461829 debug print removed 2022-08-29 12:06:35 +02:00
Uwe Rathmann 55b2235d18 lineCount fixed ( clip nodes ended up with a final line with random
coordinates )
2022-07-18 16:27:22 +02:00
Uwe Rathmann 824325eccf being more careful with setting the dirty bits of a QskBoxShadowNode 2022-06-15 10:59:39 +02:00
Uwe Rathmann 49bc726376 missing color update added 2022-06-14 12:03:33 +02:00
Uwe Rathmann 2a2894a63f lost workaround forsituations, where multisampling gets lost, fixed 2022-06-13 20:34:12 +02:00
Uwe Rathmann 1339a5f4cb shadows added to the box model 2022-06-13 17:01:15 +02:00
Uwe Rathmann ff76f1ecfa removeChildNode added 2022-06-13 13:09:49 +02:00
Uwe Rathmann 0ed9afe2b4 QskBoxShadowNode introduced ( from playground/shadows )
- shader code migrated from glsl to vulkan-glsl
   - #ifdef "Geschnetzel" introduced to support old and rhi graphic APIs
   - iotdashboard, shadows examples adjusted
2022-06-04 17:56:14 +02:00
Uwe Rathmann a66d4645e8 Qt5 compiler error fixed 2022-06-02 16:15:25 +02:00
Uwe Rathmann c3c0b2cd33 bye, bye QskTextureNode 2022-06-02 16:09:49 +02:00
Uwe Rathmann 54b55c0324 default graphic pipeline without native OpenGL calls.
code is QRHI compiant now
2022-06-02 16:02:42 +02:00
Uwe Rathmann 5dc4200cdc typo fixed 2022-06-01 18:29:05 +02:00
Uwe Rathmann a35cc9936a mirroring added 2022-06-01 18:27:05 +02:00
Uwe Rathmann 86e438a0ed QFrameBufferObject::takeTexture also leaks with Qt 5.15 2022-06-01 17:50:16 +02:00
Uwe Rathmann 86658ee2dc raster rendering does not solve the problems with the experimantel RHI
state in Qt5 ( no problems with Qt6 RHI and Qt5 without RHI )
2022-06-01 17:04:37 +02:00
Uwe Rathmann e1a58f84ee QskPaintedNode improved 2022-06-01 16:57:57 +02:00
Uwe Rathmann c64d386477 QskPaintedNode reimplemented to work with RHI and software renderer
Code will be moved in parts to QskTextureRenderer to do something
similar with QskTextureNode.
2022-05-31 17:56:49 +02:00
Uwe Rathmann 8593a5cf2e hide QskGraphicNode, QskTextNode in QskSkinlet, where possible.
We will have less dependencies, when moving QskGraphicNode to something
that works better with the QRhi abstraction
2022-05-30 15:16:46 +02:00
Uwe Rathmann 1f0ad384ac dropping support for Qt < 5.15 2022-04-16 16:29:58 +02:00
Uwe Rathmann ab095afb13 using left/top/right/bottom 2022-04-16 16:01:40 +02:00
Uwe Rathmann dc14dda5ea respecting the graphicsApi 2022-04-11 10:11:57 +02:00
Uwe Rathmann a73ee6baba Squashed commit of the following:
commit e2887cdc9d7cbf69445c325fe074578e2f38da6c
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Mon Apr 11 09:58:03 2022 +0200

    wip

commit 63efe9f3ad95fdf3d9fb15c929a45b0dc7cc681c
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Mon Apr 11 09:39:18 2022 +0200

    wip

commit a2f3621fb6fea787f32c53428eee26f30c69510c
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Mon Apr 11 08:04:11 2022 +0200

    wip
2022-04-11 10:01:24 +02:00
Uwe Rathmann eaa5a63278 hash calls harmonized 2022-03-25 11:21:32 +01:00
Uwe Rathmann 55d5f99575 introducing QskHashValue to work around Qt5/6 incompatibilities 2022-03-25 10:28:06 +01:00
Uwe Rathmann 3b683ba6d4 reserving memory in advance 2022-03-24 17:13:09 +01:00
Uwe Rathmann ca36a1705d Q_DISABLE_COPY added 2022-03-24 17:12:34 +01:00
Uwe Rathmann d81e8991af pimpled 2022-03-24 11:14:46 +01:00
Uwe Rathmann b89fa86b67 using qAsConst 2022-03-24 10:39:33 +01:00
Uwe Rathmann 80a42f6d56 using reference parameters 2022-03-24 08:09:30 +01:00
Uwe Rathmann 057866e7ff disable copying 2022-03-24 08:08:40 +01:00
Uwe Rathmann f44208213c Squashed commit of the following:
commit 547927f937a3260d5b23068f06cd181de9b7c763
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Wed Mar 23 15:38:40 2022 +0100

    wip

commit ca06b1da4bf9c5b30ef2857f0b6c1e4fb137a64e
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Wed Mar 23 15:30:31 2022 +0100

    using private classes

commit 4977b0afa481039f22b64e7f55262be8053a26c2
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Wed Mar 23 15:18:20 2022 +0100

    avoid using private Qt headers in examples
2022-03-23 15:39:17 +01:00
Uwe Rathmann 1cc0dff8d5 uncrustified 2022-03-23 11:54:34 +01:00
Uwe Rathmann 598224e487 qmake setup changed 2022-03-18 12:32:57 +01:00
Uwe Rathmann ae2c6d87a8 upport for Qt < Qt 5.12 dropped 2022-03-08 11:53:46 +01:00
Uwe Rathmann 18b7f9590e using references 2022-02-04 16:18:14 +01:00
Peter Hartmann ac8ef9cd5a
Box renderer: Support border gradients (#158)
* QskBoxBorderColors: Use gradients instead of colors

* QskBoxBorderColors: rename API

* render gradients on borders

* boxes example: Also draw gradient borders

* calculate proper numbers of needed border colors

* fixup with example

* support rounded corners

* support more colors in rounded color gradients

I THINK WE DON'T REALLY NEED THIS COMMIT

* We don't need this commit either

* Revert "We don't need this commit either"

This reverts commit 2dc38064f7fee1d0505262fe5cebcf9e1fb16cea.

* Revert "support more colors in rounded color gradients"

This reverts commit 5754d2d0773d8273d42ae1775b53d40f5e6af26a.

* fix borders for rect ellipses

* play around a bit

* small fixes

* some helper stuff and missing stuff

* user border colors

* close to something working somehow

* works a bit better

* put it into an own function

* rearrange a bit

* something's off

* still off, but seems like we need an additional line

* works but hackish

* now it works

* bring back samples

* correction

* pimp up example

* fix normal rendering

* some more debugging etc.

* turn around gradients

* turn around rectangular gradients as well

* turn around easier

* more test cases

* fix fill case

* more test cases

* clean up a bit

* clean up example

* clean up some more

* incorporate feedback from Uwe

* fix bug when using horizontal gradients
2022-02-04 16:11:11 +01:00
Uwe Rathmann 262e5517f7 avoid using the same procedure name 2022-01-21 07:28:34 +01:00
Uwe Rathmann 622c6f06c2 trailing semicolons removed 2021-12-27 10:21:03 +01:00
Uwe Rathmann ca2cdf7663 beautified 2021-12-23 19:05:59 +01:00
Uwe Rathmann af8df9f4be minor improvements 2021-12-23 18:16:18 +01:00
Uwe Rathmann 0b5b622d1a minor improvements 2021-12-22 10:55:48 +01:00
Uwe Rathmann b76d96bb2e forgotten debug code removed 2021-12-13 16:53:18 +01:00
Uwe Rathmann 738de14d4c hiding the devicePixelRato scaling in the nodes 2021-12-13 16:43:34 +01:00
Uwe Rathmann e4ffc3f074 manually aligning textures to avoid rounding issues 2021-12-10 13:39:41 +01:00
Uwe Rathmann be16e74336 wip 2021-12-08 08:26:55 +01:00
Uwe Rathmann b5bc26eb63 using degrees for arcs ( not multiplied by 16, what QPainter wants ) 2021-12-02 17:15:41 +01:00
Uwe Rathmann 14040bf652 workaround for monochrome gradients with additional stops 2021-10-25 08:29:12 +02:00
Peter Hartmann b89621a3d4
Iot dashboard arc rendering (#134)
* add QskArcNode and QskArcRenderer

* IOT example: Use QskArcNode instead of own arc node

* move some functionality to the arc renderer

* add QskArcMetrics

* add methods to QskSkinlet

* remove circular bar graph node

We can now use updateArcNode() and don't need our own method.

* support linear gradients in the arc renderer

* clean up

* incorporate Uwe's changes

* add overloads for updateArcNode() when the angles are set dynamically

The angles don't always come from the style, so we need overloads
in QskSkinlet to set them dynamically.
2021-10-20 07:50:25 +02:00
Uwe Rathmann 15102be421 code duplication removed 2021-10-19 06:44:17 +02:00
Uwe Rathmann f9ca36443e Qt 6.2 adjustments 2021-09-21 08:51:01 +02:00
Uwe Rathmann 1e9080ee82 typo fixed 2021-09-18 14:06:31 +02:00
Uwe Rathmann 341d60e39b QskGradientStops introduced 2021-09-17 13:35:11 +02:00
Uwe Rathmann 89ceca4fb4 missing const qualifier added 2021-08-06 14:22:50 +02:00
Uwe Rathmann 923affe749 uncrustified 2021-08-04 09:31:16 +02:00
Uwe Rathmann 44f9f36d0d beautified 2021-07-14 13:30:24 +02:00
Uwe Rathmann 34b158b023 code changes to help the static code analyzer 2021-07-12 08:26:04 +02:00
Uwe Rathmann a73df141c6 avoid overlapping tick labels 2021-04-19 09:28:19 +02:00
Uwe Rathmann d59d31ceff position of tick labels fixed 2021-02-23 12:03:41 +01:00
Uwe Rathmann 5cb33ad79b renamed to QskQuickItem::UpdateFlags 2021-02-09 08:13:20 +01:00
Uwe Rathmann 40b257a36f hash function for QskGraphic added 2021-02-05 13:21:35 +01:00
Uwe Rathmann 956e830691 boundingLabelSize introduced 2021-02-01 10:22:54 +01:00
Uwe Rathmann fbf2a33a9a uncrustified 2020-12-05 15:09:31 +01:00
Uwe Rathmann 4803701a56 QskScaleRenderer added ( work in progress ) 2020-11-22 15:28:56 +01:00
Uwe Rathmann 8fb18ab145 codemoved to QskSGNode 2020-11-22 15:27:58 +01:00
Uwe Rathmann e8351e4496 adjustments for Qt 6.0.0 beta5 2020-11-21 20:36:47 +01:00
Uwe Rathmann 4fd41e7be2 some classes for scales/axes 2020-11-13 15:34:02 +01:00