Commit Graph

292 Commits

Author SHA1 Message Date
Uwe Rathmann 328e6a9e6f QskArcNode as composite of fill/border nodes 2023-04-14 12:44:49 +02:00
Uwe Rathmann 73dd618626 working on arcs 2023-04-14 09:47:10 +02:00
Uwe Rathmann 45a1bc3564 QskArcNode is a QskShapeNode now.
The performance of the previous implementation was simply horrible,
when drawing an arc with a small span angle. The size of the corresponding full circle
is huge and the previous implementation always created an image/texture with
that size.

However the final implementation is supposed to create vertex lists
- like what the box renderer does. So this code will also not stay forever.
2023-04-12 12:19:26 +02:00
Uwe Rathmann 98cb1b256b missing dummy destructor added 2023-04-12 12:17:38 +02:00
Uwe Rathmann 7ddae671e2 API of classes dealing with arcs improved 2023-04-11 13:04:10 +02:00
Uwe Rathmann 6c2713c1f9 avoid clang warnings 2023-04-06 10:06:00 +02:00
Uwe Rathmann 9e583166ff BSD-3-Clause license 2023-04-06 09:23:37 +02:00
Uwe Rathmann 1ac6334c0e avoidable private includes removed 2023-04-05 09:56:28 +02:00
Uwe Rathmann 658bc71891 fixig pedantic compiler warnings 2023-04-04 09:05:16 +02:00
Uwe Rathmann 7e36893d1c compiler warnings fixed 2023-04-04 08:49:11 +02:00
Peter Hartmann caf75721d4 tickmarks: support alignment 2023-02-28 16:11:27 +01:00
Uwe Rathmann f89ab863f6 always inserting the connecting line between border and filling, when
using different strokers
2023-02-14 13:44:52 +01:00
Uwe Rathmann 126c276eac better decisions for the direction of filling gradient lines 2023-02-14 11:19:13 +01:00
Uwe Rathmann b8f198a97a irrelevant micro optimzation removed, that was using the wrong corner
iteration
2023-02-14 09:29:51 +01:00
Uwe Rathmann 31feeff9aa Complete support of linear gradients from the box renderer - only
expection are reflect/repeat spreading.
Code has been reimplemented or cleaned up significantly
2023-02-08 17:58:09 +01:00
Uwe Rathmann 9d4c423591 color ramp calculation fixed for gradients with many stops 2023-02-04 11:53:23 +01:00
Uwe Rathmann 910a8a730f corner -> corners 2023-01-24 19:49:15 +01:00
Uwe Rathmann 83ce3dbbf9 convenience setter added 2023-01-24 19:48:04 +01:00
Uwe Rathmann bd25e8ae23 explanation added 2023-01-24 19:47:37 +01:00
Uwe Rathmann 76a7e94358 default value for reset added 2023-01-23 11:00:03 +01:00
Uwe Rathmann ad09186229 QskGradientDirection::contais added 2023-01-23 10:59:34 +01:00
Uwe Rathmann 6e2769edfa QskVertex::fillOrdered renamed to QskVertex::fillBox 2023-01-17 15:41:12 +01:00
Uwe Rathmann cd4a46cc11 de-template-ified: much better starting point for the fixes to come 2023-01-12 20:26:51 +01:00
Uwe Rathmann a916bd78c2 codemoved to QskRoundedRect.hpp/QskRoundedRect.h 2023-01-12 14:33:31 +01:00
Uwe Rathmann c670d23582 QskRoundedRectRenderer reorganized 2023-01-11 17:40:25 +01:00
Uwe Rathmann e66520294c minor API changes 2023-01-11 12:51:16 +01:00
Uwe Rathmann 5ba34eb11c method names cleaned up 2023-01-10 15:36:43 +01:00
Uwe Rathmann 4038f52cdf inverted gradient vectors for horizontal/vertical gradients supported 2023-01-10 12:17:56 +01:00
Uwe Rathmann d2c5413daa wrong check fixed 2023-01-10 12:09:53 +01:00
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