| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
This issue was fixed in qtdeclarative a slightly different way, so now
we need to change our code to reflect the change.
Change-Id: I5c050da88efc32e808ad5a4a764ff410544db1cd
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
|
|
|
|
|
| |
Change-Id: Id4b87c285370182b34ec42cf02c59627e8019956
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
|
|
|
|
|
|
|
|
|
| |
There will be times when we hit custom QSGGeometry nodes where we won't
be able to render them. Rather than crashing, just ignore them. The
Q_UNREACHABLE macro was more for the development phase anyway.
Change-Id: I4962cab17b8b3399e081dba58c3a7c4dd988de8f
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
|
|
|
|
|
|
|
|
| |
This prevents blending with either garbage or the contents of the
previous buffer when clearing with colors with an alpha.
Change-Id: I52fc13c2af224a37206e51efd38301b95085c9b2
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
|
|
|
|
|
| |
Change-Id: Icd2dbadaa0302ceaf06daaeb26b10cb9403cc492
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
|
|
|
|
|
|
|
|
| |
There were many cases where properties of nodes could change but since
the node was not marked dirty, the scene update was never rendered.
Change-Id: I7740a43d98521073056f85fe80d6c1ff213236a3
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
|
|
|
|
|
|
|
|
|
|
| |
If QSGRenderer::renderScene is not called by SoftwareLayer then any
updates in the scenegraph will not be reflected in that layer. This is
the "live" but not "recursive" situation.
Change-Id: If55cc71b3932e283855e3a1f9ff1bca5e07f4498
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
| |
Change-Id: I842c8cd117f1e25cc7848618e86d2aff2e5e522f
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
|
|
|
|
|
| |
The is probably not the ideal path (as there is at least one copy), but
we can document that mirror is slow. There is no clear path to blit
mirrored though, so it is better to do this than to render un-mirrored
or use QPixamp.toImage().mirrored().toPixmap()
Change-Id: Ife751f3635e8f9d8ea08676fb1f263bdb727aa2f
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
| |
Change-Id: Id20ae015bd4cb4c8d2354ae2f70e514e1545fee3
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The existing implementation has both inaccurate drawing of
borders as well as many alignment issues. Much of these
alignment issues are due to our use of floating point sizes
and the integer based nature of blitter hardware. So now
for the Rectangle node we force alignment via the use of
whole numbers. This should be a better compromise of
speed vs accuracy than previously.
Change-Id: I9d8e9d1b3347a99bf0c2ae65ec66c935d8017817
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|
|
|
|
|
|
|
|
|
|
| |
By default we used the threaded renderer, but this will
only work if the platform has the capability to render to
QPixmaps from multiple threads. Now if we don't have
the Threaded Pixmaps capability we use the non-threaded
render loop.
Change-Id: I5090e874d0bbdd1e54561ea3583a5a17bbf50061
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
QGradient does not allow stops positions that are outside the bounds of
0 and 1. Gradients created from QML however can have stops outside of
these bounds and so we must normalize these stops before giving them to
QPainter to render. This change creates a new stop at 0 or 1 if a stop
goes below or above the bounds respectively, and interpolates a new
color value for the stop based on the original position.
Change-Id: I10cc41d923e88a9b41bfd27de0326cea25464add
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|
|
|
|
|
|
| |
Should resolve issues with deployment.
Change-Id: I268734e5db67d3f2bc3afa603618270985387b30
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|
|
|
|
|
|
|
|
|
| |
Qt still depends on OpenGL even if we dont plan on using
it. The OpenGL dummy library provides the OpenGL and EGL
headers and sharded objects necessary to build Qt with
OpenGL ES2 support.
Change-Id: I588f819b108834486a14769a8c1740e86a14bc24
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
| |
Change-Id: I03a56701f0314e935f4acc610e1335b23b7d921a
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
| |
Change-Id: I2fe8df530a687247a9cd7ea12c1d8de79fef506e
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
With this change, Canvas works correctly, at least in
Image mode.
Change-Id: I6641c07b031870dad3c7f9f50ece163724ad429a
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|
|
|
|
| |
Change-Id: Ic43877a9128cf0f944abeefd7819f8e99175fbeb
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
| |
Change-Id: I80dbd2003f53e21fa35ebd270ecc92cc03628454
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
|
|
|
|
| |
The above commit was accidentally pushed.
This reverts commit 4e55b36b29e2114c7edfd53b62f04a6029bab6d6
Change-Id: I48bf983475e98365b62302ff0c37234a73774b79
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|
|
|
|
| |
Change-Id: I67c604aa43d03207fd18fb41f54b445bd6bb34d9
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: Id1d3d518fbde6f2d8329850c4966b0576b36be36
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
| |
Change-Id: I3408c1df03ac6a8c547e7db17c835c25a4c5fce9
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: I7df5c64a5035bcec317b7a837d4c7f499f21ab53
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|
|
|
|
| |
Change-Id: Ided43329e4c3f9fee555a533d43dff518ea77f07
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|
|
|
|
| |
Change-Id: I795e6a352402fb731c751d5ac5bfa30487306f78
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: Iffa31b2d644ebc7e13e710fff4aee28e2a3f67c7
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
| |
Change-Id: Iefac991ea5b9124cc9dd482e809180aa5f3d96d7
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: Ie49ee5c8debddcc7f2db39bb231f25c78dcd8dbb
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: I2064e5d2cb9596cc5fed3ebf15fccf22d2ad79d0
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
| |
Change-Id: I7dd4ca61678b677d0004667d873ee3fcd44604bf
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
| |
Change-Id: Icd112816ef5528757a12d03955138316bf7fcda0
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
| |
Change-Id: Ia1d4aeb55bc855770a3a2718114e18ed44cf9645
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
| |
Change-Id: I32b5d748a5cadcb88511f401924d3b3635275881
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
| |
Change-Id: Ia72204a9fb8ff09070efd85deabf70ca52d621a8
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
|
|
| |
BorderImage still needs some work.
Change-Id: I37616f18ddc15d3071d9f8b40e29bd4b0e2ea0a4
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
| |
Change-Id: If03d1fbcac76035628254033121a822ce481fa38
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
| |
Change-Id: I365c44b596f8866df2aff4e9f5e088bec0010539
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|