aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Provide a default SurfaceFormat for our ContextAndy Nichols2014-09-012-2/+10
| | | | | | | | | | | Since we are not using OpenGL the content of the SurfaceFormat does not matter to us. Instead it gives us a way to expose the fact that we are rendering to a raster surface. Using the OpenGLInfo API from QML allows you to check the properties of the SurfaceFormat and see that the QSurfaceFormat::RenderableType is not OpenGL or OpenGLES. Change-Id: Iac087dd89115f3455b4fb1941385352cadd2a364 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Add path for QQuickShaderEffectNodeAndy Nichols2014-09-011-0/+3
| | | | | | | | | We can not easily determine what to render in this case so for now we do not render anything, but at least now we do not hit Q_UNREACHABLE when iterating through the scene graph. Change-Id: Ia6cc4be35ba4d977ffc7b52f6370539a0443c63b Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Correct painting of RectangleNodeAndy Nichols2014-09-012-13/+143
| | | | | | | | | | | | The previous behavior was very wrong compared to how QtQuick normally paints Rectangle elements. The border.width property does not effect the geometry of the Rectangle, where as QPainter::drawRect draws a border 0.5 the border.width around the edge of the rectangle. So now there is special logic to draw the each case correctly using fillRect as much as possible. Change-Id: I4ea2be2226ff3b1a11dc5000522df503c6f43227 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Update PainterNode now that QQuickPaintedItem is a texture providerAndy Nichols2014-08-274-0/+20
| | | | | | | | | We now have to return an QSGTexture, which in practice for software context does not mean a whole lot. In this cause it would generally be used for ShaderEffects which we don't support anyway. Change-Id: I63c17327aa541ac853d124daba28e1a512d11ea2 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Add support for rendering QSGSimpleTextureNode'sLars Knoll2014-08-252-9/+20
| | | | | | | | With this change, Canvas works correctly, at least in Image mode. Change-Id: I6641c07b031870dad3c7f9f50ece163724ad429a Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Add support for rendering QSGSimpleRectNodeAndy Nichols2014-08-251-2/+13
| | | | | Change-Id: Ic43877a9128cf0f944abeefd7819f8e99175fbeb Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Add support for rendering QQuickPaintedItemAndy Nichols2014-08-257-2/+296
| | | | | Change-Id: I80dbd2003f53e21fa35ebd270ecc92cc03628454 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Revert "Save and restore changed QPainter properties"Louai Al-Khanji2014-08-183-19/+2
| | | | | | | | | The above commit was accidentally pushed. This reverts commit 4e55b36b29e2114c7edfd53b62f04a6029bab6d6 Change-Id: I48bf983475e98365b62302ff0c37234a73774b79 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Save and restore changed QPainter propertiesLouai Al-Khanji2014-08-183-2/+19
| | | | | Change-Id: I67c604aa43d03207fd18fb41f54b445bd6bb34d9 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix text renderingSimon Hausmann2014-08-181-0/+1
| | | | | | | | | | | | | | Since we don't save/restore the painter state for each node, we have to be careful that settings don't "leak" across paint calls. For example a rectangle node with a gradient will leave the painter with a brush set. A sub-sequent child text node will be rendered incorrectly. This patch corrects that by setting the brush explicitly to the empty brush. This fixes also the examples/quick/views rendering. Change-Id: Ia1415b5fdf77a560b02719917d36298e808418f1 Reviewed-by: Louai Al-Khanji <louai.al-khanji@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix compilation warning on MSVC2013Louai Al-Khanji2014-08-151-1/+3
| | | | | | | | | | | | | In constructs like the following: QSGRenderContext */*rc*/ MSVC parses the commented out variable name "rc" after the pointer star as signifying the end of a C-style comment. Do the proper thing and use Q_UNUSED within the function Change-Id: I149ccf10e7db4762adc8510d8cba864171c5db36 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Added support for the missing text rendering stylesSimon Hausmann2014-08-142-1/+27
| | | | | Change-Id: Id1d3d518fbde6f2d8329850c4966b0576b36be36 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Ported the threaded render loop from qtdeclarativeSimon Hausmann2014-08-148-14/+1262
| | | | | Change-Id: I3408c1df03ac6a8c547e7db17c835c25a4c5fce9 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Do not paint fully transparent nodesAndy Nichols2014-08-131-1/+6
| | | | | | | | | | | | | | | With the current renderer we paint everything, including nodes that are fully transparent. Granted since the thing we paint is also transparent it doesn't effect the output other than wasting cycles. A limit of the current approach is that we can not easily drop branches of the tree to be rendered when a parent node is fully transparent. This also fixes the opacity node implementation in general to respect any previously set opacity. Change-Id: I993fcd4db5b714a3e8caf60135add0bb660c0b80 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Adapt to internal scene graph API changesSimon Hausmann2014-08-132-18/+36
| | | | | | | | The changed visitor API requires a boolean to visit() to indicate whether a sub-tree should be processed or not. Change-Id: Iede12fb50d5aad7843af19855d72c18f968b8d55 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix add-on nameSimon Hausmann2014-08-1220-20/+20
| | | | | Change-Id: I7df5c64a5035bcec317b7a837d4c7f499f21ab53 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Add files for exportSimon Hausmann2014-08-122-0/+5
| | | | | Change-Id: Ided43329e4c3f9fee555a533d43dff518ea77f07 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Adapt to internal API changes in QtQuickSimon Hausmann2014-08-124-11/+11
| | | | | Change-Id: I795e6a352402fb731c751d5ac5bfa30487306f78 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Revert "Add a simple rectangle node"Simon Hausmann2014-08-126-64/+0
| | | | | | | | | This reverts commit 7d516abb39081c7ce58bb78a644f5bb5ff88f98a. Gunnar preferred routing the text cursor rectangles through the regular QSGRectangleNode. Change-Id: I40dc44451a10c9ccfe436974c21995a2b3bf86c2 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Add commercial license headersSimon Hausmann2014-08-1220-126/+344
| | | | | Change-Id: Iffa31b2d644ebc7e13e710fff4aee28e2a3f67c7 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Add support for software layersSimon Hausmann2014-08-128-19/+371
| | | | | Change-Id: Iefac991ea5b9124cc9dd482e809180aa5f3d96d7 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Use fillRect when appropriateAndy Nichols2014-08-121-0/+2
| | | | | | | | | This is the most common case and it is possible to use the accelerated blitter path, where as drawRect requires extra effort for the border and thus always uses the raster path. Change-Id: Ic4600b7247a86db5f79268c5ad5b02c331f51058 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Implement support for BorderImageLars Knoll2014-08-081-0/+24
| | | | | Change-Id: Ie49ee5c8debddcc7f2db39bb231f25c78dcd8dbb Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Add a simple rectangle nodeLars Knoll2014-08-086-0/+64
| | | | | | | | This gets text cursor and selections working properly together with the corresponding change in qtdeclarative. Change-Id: I53acc39c959f9cde875ef5e8d1bcd4d660269d5e Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Fix the nine patch rendering used by the qtquick controlsSimon Hausmann2014-08-084-41/+59
| | | | | Change-Id: I2064e5d2cb9596cc5fed3ebf15fccf22d2ad79d0 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix default background colorSimon Hausmann2014-08-081-1/+1
| | | | | Change-Id: I7dd4ca61678b677d0004667d873ee3fcd44604bf Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Adapt signature of QSGNinePatchNode after internal API changesSimon Hausmann2014-08-082-2/+2
| | | | | Change-Id: Icd112816ef5528757a12d03955138316bf7fcda0 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Add support for styling the nine patch nodes QtQuick.Controls createsSimon Hausmann2014-08-087-4/+93
| | | | | Change-Id: Ia1d4aeb55bc855770a3a2718114e18ed44cf9645 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Adapt to new visitor pattern for renderingSimon Hausmann2014-08-088-39/+121
| | | | | Change-Id: I32b5d748a5cadcb88511f401924d3b3635275881 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Add support for opacity nodesLars Knoll2014-08-081-0/+5
| | | | | Change-Id: Ia72204a9fb8ff09070efd85deabf70ca52d621a8 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Implement all features required for ImageLars Knoll2014-08-082-2/+29
| | | | | | | BorderImage still needs some work. Change-Id: I37616f18ddc15d3071d9f8b40e29bd4b0e2ea0a4 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fully implement RectangleNodeLars Knoll2014-08-082-6/+33
| | | | | Change-Id: If03d1fbcac76035628254033121a822ce481fa38 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Basic support for text renderingSimon Hausmann2014-08-085-2/+87
| | | | | Change-Id: I365c44b596f8866df2aff4e9f5e088bec0010539 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* First implementation of images and rectanglesSimon Hausmann2014-08-0814-9/+944
| | | | | Change-Id: Ia905d6dfe3d9922ef820085fedc5195be8ace1da Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Initial version of new software backend for the QtQuick scene graphSimon Hausmann2014-08-087-0/+354
| | | | | | | Based on the scene graph plugin from Qt Gerrit playground Change-Id: Ic6e65f912fef70ba5f153113ce68107b56608151 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Initial commitOswald Buddenhagen2014-08-080-0/+0