Commit Graph

235 Commits

Author SHA1 Message Date
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