aboutsummaryrefslogtreecommitdiffstats
path: root/src/imports/shapes
Commit message (Collapse)AuthorAgeFilesLines
* Normalize dashOffset behavior between renderer backendsBerthold Krevert2017-08-051-3/+3
| | | | | | | | | | Software and tessellation backends assume that dashOffset is defined in units of strokeWidth. That means the nvpr backend has to scale the dashOffset by the strokeWidth to keep behavior in sync. Change-Id: Ie1735f8dcdc6ac89fc4425b29166f88ad2638a92 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* shapes: Rip out more JS API leftoversLaszlo Agocs2017-07-318-291/+49
| | | | | | | | | | None of the removed code is ever hit in practice since the public JS API has been removed some time ago. Let's follow it up with removing the internal details since such an API is not going to come back in the near future. Change-Id: I721ab296a7a2acb3a5f61ce705da7aa66d3ad765 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Move shapes-related shaders to under the shapes pluginLaszlo Agocs2017-07-2913-6/+122
| | | | | | | Do not leave them in quick/items' qrc. Change-Id: I12360a54caa368219a7a80645f92af66aa9de9ba Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Rename property to rendererTypeBerthold Krevert2017-07-282-2/+2
| | | | | | | This follows the documentation. Change-Id: I74d8d2b45546717c6a6b252af9370c6670ef1b78 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Check for GL_NV_path_rendering extensionBerthold Krevert2017-07-251-2/+6
| | | | | | | | | | If resolving of glProgramPathFragmentInput fails, the nvpr renderer should not report that it is supported, so that the shape item can fallback to the geometry renderer. Task-number: QTBUG-61913 Change-Id: I0795b1dedc330432884d5214ee2492c757055a54 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* shapes: Add example linksLaszlo Agocs2017-07-061-1/+3
| | | | | Change-Id: I9826058b6f721a6d3a85878ab872864e0fc494ac Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
* shape: Revise performance notes in the docsLaszlo Agocs2017-07-061-22/+37
| | | | | | | | Clear up some sentences and add some more recommendations. Change-Id: Iecfd90c63411aa6d17a9218122bada92b06f1cd3 Reviewed-by: J-P Nurmi <jpnurmi@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* shape: Call base impl for componentCompleteLaszlo Agocs2017-07-061-3/+3
| | | | | | | ...and classBegin(). Change-Id: Ie6b4a53c32044d17ce1beb5415a830683c2b513f Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
* shapes: Remove componentComplete from QQuickShapePrivateThomas Hartmann2017-07-062-3/+1
| | | | | | | | | | | | | QQuickItemPrivate already has the member componentComplete. Duplicating this breaks QQuickItem::isComponentComplete(), which is used in Qt Quick Designer. For this reason QQuickShape was never completed in Qt Quick Designer. This patch fixes the issue. Change-Id: I30201ff5fb17282dab99a8c84182c6fb6e183134 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Update plugins.qmltypes for ShapesMarco Benelli2017-07-061-192/+25
| | | | | | | | Update qmltypes forcing the dependency to QtQuick in order to avoid the dumping of duplicated QtQuick's components. Change-Id: Ie16f21518076d0af1c744e420d689122fafb485e Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
* shapes: Convert QT_NO_OPENGL to QT_CONFIG(opengl)Liang Qi2017-06-267-20/+32
| | | | | | | | Also guard fillGradient for now. Task-number: QTBUG-61632 Change-Id: I5fa2607cc1ede0922519258afd455bee4d0187c7 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Add Q_ASSERT to test prevNodeJesus Fernandez2017-06-261-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | To make Coverity happy: *** CID 181275: Null pointer dereferences (FORWARD_NULL) /qtdeclarative/src/imports/shapes/qquickshapegenericrenderer.cpp: 503 in QQuickShapeGenericRenderer::updateNode()() 497 QQuickShapeGenericNode **nodePtr = &m_rootNode; 498 QQuickShapeGenericNode *prevNode = nullptr; 499 500 for (ShapePathData &d : m_sp) { 501 if (!*nodePtr) { 502 *nodePtr = new QQuickShapeGenericNode; >>> CID 181275: Null pointer dereferences (FORWARD_NULL) >>> Dereferencing null pointer "prevNode". 503 prevNode->m_next = *nodePtr; 504 prevNode->appendChildNode(*nodePtr); 505 } 506 507 QQuickShapeGenericNode *node = *nodePtr; 508 Change-Id: I76e79ef6fe94aa8b0e77f79724101b4682dab6d3 Coverity-Id: 181275 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Initialize uniform location variablesJesus Fernandez2017-06-261-2/+2
| | | | | | | | | | | | | | | | | | | | | | | *** CID 181276: Uninitialized members (UNINIT_CTOR) /qtdeclarative/src/imports/shapes/qquickshapenvprrenderer_p.h: 174 in QQuickNvprBlitter::QQuickNvprBlitter()() 168 float opacity); 169 170 private: 171 QOpenGLShaderProgram *m_program = nullptr; 172 QOpenGLBuffer *m_buffer = nullptr; 173 int m_matrixLoc; >>> CID 181276: Uninitialized members (UNINIT_CTOR) >>> The compiler-generated constructor for this class does not initialize "m_opacityLoc". 174 int m_opacityLoc; 175 QSize m_prevSize; 176 }; 177 178 class QQuickShapeNvprRenderNode : public QSGRenderNode 179 { Change-Id: I4176981fe79c175db974ff428a5116d82420f7a6 Coverity-Id: 181276 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Initialize variablesJesus Fernandez2017-06-261-4/+4
| | | | | | | | | | | | | | | | | | | | | | | *** CID 181280: Uninitialized members (UNINIT_CTOR) /qtdeclarative/src/imports/shapes/qquickshapegenericrenderer.cpp: 700 in QQuickShapeLinearGradientShader::QQuickShapeLinearGradientShader()() 694 QQuickShapeLinearGradientShader::QQuickShapeLinearGradientShader() 695 { 696 setShaderSourceFile(QOpenGLShader::Vertex, 697 QStringLiteral(":/qt-project.org/items/shaders/lineargradient.vert")); 698 setShaderSourceFile(QOpenGLShader::Fragment, 699 QStringLiteral(":/qt-project.org/items/shaders/lineargradient.frag")); >>> CID 181280: Uninitialized members (UNINIT_CTOR) >>> Non-static class member "m_gradEndLoc" is not initialized in this constructor nor in any functions that it calls. 700 } 701 702 void QQuickShapeLinearGradientShader::initialize() 703 { 704 m_opacityLoc = program()->uniformLocation("opacity"); 705 m_matrixLoc = program()->uniformLocation("matrix"); Change-Id: Ic9435039a1409ade63c7592a4a55b6c7306d03c2 Coverity-Id: 181280 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Initialize pointerJesus Fernandez2017-06-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | *** CID 181281: Uninitialized members (UNINIT_CTOR) /qtdeclarative/src/imports/shapes/qquickshapenvprrenderer_p.h: 156 in QQuickNvprMaterialManager::QQuickNvprMaterialManager()() 150 151 void create(QQuickNvprFunctions *nvpr); 152 MaterialDesc *activateMaterial(Material m); 153 void releaseResources(); 154 155 private: >>> CID 181281: Uninitialized members (UNINIT_CTOR) >>> The compiler-generated constructor for this class does not initialize "m_nvpr". 156 QQuickNvprFunctions *m_nvpr; 157 MaterialDesc m_materials[NMaterials]; 158 }; 159 160 class QQuickNvprBlitter 161 { Change-Id: Ia502683b55022ac3eafd4ebd015d44273185bdfc Coverity-Id: 181281 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Initialize pointerJesus Fernandez2017-06-261-1/+2
| | | | | | | | | | | | | | | | | | | | | | | *** CID 181282: Uninitialized members (UNINIT_CTOR) /qtdeclarative/src/imports/shapes/qquickshapegenericrenderer_p.h: 85 in QQuickShapeGenericRenderer::QQuickShapeGenericRenderer(QQuickItem *)() 79 QQuickShapeGenericRenderer(QQuickItem *item) 80 : m_item(item), 81 m_api(QSGRendererInterface::Unknown), 82 m_rootNode(nullptr), 83 m_accDirty(0), 84 m_asyncCallback(nullptr) >>> CID 181282: Uninitialized members (UNINIT_CTOR) >>> Non-static class member "m_asyncCallbackData" is not initialized in this constructor nor in any functions that it calls. 85 { } 86 ~QQuickShapeGenericRenderer(); 87 88 void beginSync(int totalCount) override; 89 void setPath(int index, const QQuickPath *path) override; 90 void setJSPath(int index, const QQuickShapePathCommands &path) override; Change-Id: Ifce4e20c8372b392900b77f45ae14d2abfa1657d Coverity-Id: 181282 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Rename to vendorExtensionsEnableLaszlo Agocs2017-06-192-9/+9
| | | | | | | Fits existing Quick item naming patterns better. Change-Id: Id6d8f3653b33b1c1963bda4a2bcc212761e74caa Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Allow freely mixing non-ShapePath objects in ShapeLaszlo Agocs2017-06-082-29/+29
| | | | | | | | | | | | | | | | | | | | The own list property must be kept. However, we can reuse QQuickItemPrivate's data accessors in order to start supporting code like: Shape { .. ShapePath { ... } ShapePath { ... } Rectangle { ... } Image { ... } // any other visual type // or non-visual: Timer { ... } } Change-Id: I6d502d697cae37bf16857770273a749cee1b3aa3 Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
* Use GradientStop and rename ShapeLinearGradient to LinearGradientLaszlo Agocs2017-06-087-191/+30
| | | | | | | | | | | | | | | | | | | Thus application code becomes: ShapePath { ... fillGradient: LinearGradient { ... GradientStop { ... } } } which is even more clean and readable. The duplication for stops is now avoided. Change-Id: I50ae2f388e21683a37dc4787763dc71e16eef4f5 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
* Reduce objects: Make ShapePath inherit PathLaszlo Agocs2017-06-073-91/+48
| | | | | | | | Shape { ShapePath { Path { ... } } } simply becomes Shape { ShapePath { ... } } Change-Id: Ie57936cd7953c8a8d6c67e78b9d73bdbe2a05316 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Rename to Shape/ShapePath and remove public JS APILaszlo Agocs2017-06-0216-0/+5893
Change-Id: I299354da0632fb0b8487cfb13748ed58b97d75fd Reviewed-by: Andy Nichols <andy.nichols@qt.io>