aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/scenegraph/qsgdistancefieldglyphnode_p.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-04-081-9/+9
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change also fixes the build of two benchmarks, tst_affectors and tst_emission. Conflicts: src/plugins/qmltooling/qmldbg_native/qmldbg_native.pro src/qml/qml/ftw/qhashfield_p.h tests/benchmarks/particles/affectors/tst_affectors.cpp tests/benchmarks/particles/emission/tst_emission.cpp tests/benchmarks/qml/pointers/pointers.pro tests/benchmarks/qml/pointers/tst_pointers.cpp tests/benchmarks/qml/qmltime/qmltime.pro tests/benchmarks/qml/qquickwindow/qquickwindow.pro Change-Id: I595309d1e183c18371cb9b07af6e4681059de3b2
| * Move Qt Quick scenegraph resources under the :/qt-project.org/ directoryGiuseppe D'Angelo2016-04-011-9/+9
| | | | | | | | | | | | Change-Id: Ib1c2695f86837b02ba4aaf49184421cd464f7c20 Reviewed-by: Robin Burchell <robin.burchell@viroteck.net> Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* | Updated license headersJani Heikkinen2016-01-191-14/+20
|/ | | | | | | | | | | From Qt 5.7 -> LGPL v2.1 isn't an option anymore, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new LGPL header instead of LGPL21 one (in those files which will be under LGPL v3) Change-Id: Ic36f1a0a1436fe6ac6eeca8c2375a79857e9cb12 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* Address uninitialized scalar fieldsHolger Hans Peter Freyther2015-04-031-0/+11
| | | | | | | Fixes Coverity CID 10732, 10734, 10735, 10736, 10739, 10740 Change-Id: Idebb0bdaf42ceb06cd86c73592138e758a8a87c9 Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* Update copyright headersJani Heikkinen2015-02-121-7/+7
| | | | | | | | | Qt copyrights are now in The Qt Company, so we could update the source code headers accordingly. In the same go we should also fix the links to point to qt.io. Change-Id: I61120571787870c0ed17066afb31779b1e6e30e9 Reviewed-by: Iikka Eklund <iikka.eklund@theqtcompany.com>
* Update license headers and add new licensesJani Heikkinen2014-08-251-19/+11
| | | | | | | | | - Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 & LICENSE.GPLv2 - Removed LICENSE.GPL Change-Id: I84a565e2e0caa3b76bf291a7d188a57a4b00e1b0 Reviewed-by: Jani Heikkinen <jani.heikkinen@digia.com>
* Avoid direct GL calls in QuickLaszlo Agocs2014-05-231-7/+8
| | | | | Change-Id: I9b8673fb3292c9d5ad2f9e8e63f56dc661699be6 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Implement missing compare() function for Raised/Sunken textGunnar Sletta2013-11-111-0/+7
| | | | | | | Task-number: QTBUG-34715 Change-Id: Ifdac2511b7f642b1ea4bd06847c840b5a951a753 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Refactor shaders into seprate GLSL source filesSean Harmer2013-10-311-221/+22
| | | | | | | | | | | | | | | | | | | | | | The default implementation of QSGShaderMaterial::vertexShader() and fragmentShader() now loads the GLSL source from a list of source files that can be specified via the setShaderSourceFile() or setShaderSourceFiles() functions. Multiple shader source files for each shader stage are supported. Each source file will be read in the order specified and concatenated together before being compiled. The other places where Qt Quick 2 loads shader source code have been adapted to use the new QSGShaderSourceBuilder, which is also used internally by QSGMaterial. This puts Qt Quick 2 into a better state ready to support OpenGL core profile and to load different shaders based upon OpenGL version, profile, GPU vendor, platform, etc. Change-Id: I1a66213c2ce788413168eb48c7bc5317e61988a2 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Don't use reserved keyword "texture" as uniform variable nameSean Harmer2013-10-211-39/+39
| | | | | | | | | | The "texture" keyword is a function name in OpenGL core profile. This commit is in preparation for making the Qt Quick 2 renderer and materials work with a core profile context. Change-Id: Iad243e64ab8db739fc46b85bb626bdb8b9ceb208 Reviewed-by: James Turner <james.turner@kdab.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Fix license headers of QtQuick sources.Gunnar Sletta2013-09-301-1/+1
| | | | | Change-Id: I3750c47640bf21c3567c5fa1c4667e3e2552942e Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Make compare check against the right colorGunnar Sletta2013-08-161-1/+1
| | | | | Change-Id: Ie23864c782ecdda26b68eb8813799aecae7bbb7e Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Avoid redundant state changes in distancefield text shaderGunnar Sletta2013-08-081-5/+37
| | | | | Change-Id: I7efdd167192017acefb4745d433b77b6d0ff85e7 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Fix warning about change of sign: glyph_t is unsignedThiago Macieira2013-07-031-3/+3
| | | | | | | | | qsgdistancefieldglyphnode_p.cpp(222): warning #68: integer conversion resulted in a change of sign Use the value 0, which is reserved to mean "no texture" Change-Id: I0bb135639c432ab08f6561c1d45f64e2d8f96dd7 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Avoid using QColor::xxxF functions.Gunnar Sletta2013-05-221-23/+16
| | | | | | | | | | | | | | | In our usecase, the color is always used as a float so using QColor (which is ushort) internally adds a lot of pointless conversion. Enough so that it shows up in profiles as 1-2% each. Not a lot, but easy to fix. The compare function is also somewhat simplified. For colors we're primarily searching for equallity. If that fails, we just need to provide consistent values, so use the address instead of doing any fancy calculation. Change-Id: Icae7e78ed767e802c137bab7fcacff66e9a4bc66 Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* Fixed distance field text when using non-opaque colors.Yoann Lopes2013-04-061-4/+20
| | | | | | | | The alpha has to be premultiplied before passing the color to the shader. Change-Id: If22f0e0892eb4330d5f7398bea2710fce18c4dcb Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Use correct alpha range for the distance field outlined text.Yoann Lopes2013-04-061-8/+14
| | | | | | | | | | The alpha treshold values used in the outline shader were hard-coded. It should use the same logic as in the normal text shader, using the ThresholdFunc and the AntialiasingSpreadFunc for calculating these values. Change-Id: I0e6f38644692cc7a8a4cee1e8e60622fe289d615 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Fix distance field antialiasing for retina displays.Gunnar Sletta2013-04-021-2/+3
| | | | | | Change-Id: I01d7d41a4e70822555bae453978dbe92fbb5c98d Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com> Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* Update copyright year in Digia's license headersSergio Ahumada2013-01-101-1/+1
| | | | | | Change-Id: I6c3bd7bebe3d62d1cfd0fa6334544c9db8398c76 Reviewed-by: Akseli Salovaara <akseli.salovaara@digia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
* Change copyrights from Nokia to DigiaIikka Eklund2012-09-231-24/+24
| | | | | | | Change copyrights and license headers from Nokia to Digia Change-Id: Ie7f5d49ed8235d7a7845ab68f99ad1c220e64d5c Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Adding mediump precision qualifier in distance-field fragment shaderThomas Senyk2012-07-241-1/+1
| | | | | | | | | sampler2D texture had no precision qualifier. This was intepreted as lowp on trim slice, leading to a glsl-compile-error because of mismatching types. Change-Id: I0a6726f6cde15c7d81f891ec75caed702f273021 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Initialize data members in quick.Martin Jones2012-05-291-0/+1
| | | | | | | Found by static analysis. Change-Id: Ide1ce1d7964655664dc872de6da9962a281e229c Reviewed-by: Alan Alpert <alan.alpert@nokia.com>
* Use a single distance-field cache instance for all sizes of a given font.Yoann Lopes2012-03-191-15/+13
| | | | | | | | | | | Previously we had a different cache instance for each font size, but they all shared the same textures and positions. Only the glyph metrics were specific to each font size. The metrics for each font sizes are now calculated by scaling the metrics of the distance-field size (54px). Change-Id: I0d9016990dedd93318893506afb1dba7a5249e2e Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* Merge master <-> api_changesMatthew Vogt2012-03-051-1/+5
|\ | | | | | | Change-Id: Iad2f07b989b25349fd2d4fff010e24dcd5a1688f
| * Fix material compare for distance field glyph nodes.Glenn Watson2012-03-011-1/+5
| | | | | | | | | | | | | | | | | | The compare function did not take into account the GL texture ID when comparing materials. This could result in a renderer merging glyph nodes into a single batch incorrectly. Change-Id: Ib62c43f93fb1bbbc231197323dced4254ffa12aa Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
* | Rename QDeclarative symbols to QQuick and QQmlMatthew Vogt2012-02-241-1/+1
|/ | | | | | | | | | | | | Symbols beginning with QDeclarative are already exported by the quick1 module. Users can apply the bin/rename-qtdeclarative-symbols.sh script to modify client code using the previous names of the renamed symbols. Task-number: QTBUG-23737 Change-Id: Ifaa482663767634931e8711a8e9bf6e404859e66 Reviewed-by: Martin Jones <martin.jones@nokia.com>
* Provide determinant accessor in render state structure.Glenn Watson2012-02-081-1/+1
| | | | | | | | | | | This allows custom renderers to set the determinant to a value different than the actual model view transform matrix. This is useful when parts of the scene node transformation are done on the CPU rather than in the vertex shader. Change-Id: Icf26a5922b0933275a61af4656cf842bf61e70d5 Reviewed-by: Michael Brasser <michael.brasser@nokia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
* Remove "All rights reserved" line from license headers.Jason McDonald2012-01-301-1/+1
| | | | | | | | | | As in the past, to avoid rewriting various autotests that contain line-number information, an extra blank line has been inserted at the end of the license text to ensure that this commit does not change the total number of lines in the license header. Change-Id: If39bd256b0fa85eba17ea30f8ab87ea27d758908 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Update obsolete contact address.Jason McDonald2012-01-231-1/+1
| | | | | | | | Replace Nokia contact email address with Qt Project website. Change-Id: I6a730abc0c396fb545a48b2d6938abedac2e3f1c Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com> Reviewed-by: Alan Alpert <alan.alpert@nokia.com>
* Added a few material flagsGunnar Sletta2012-01-201-1/+1
| | | | | Change-Id: Id324ebb82df985f1a7380761cc4923f60c7d1f20 Reviewed-by: Kim M. Kalland <kim.kalland@nokia.com>
* Use mediump in distance field shaders for the alpha threshold.Yoann Lopes2012-01-181-12/+12
| | | | | | | lowp or highp cause some problems depending on the hardware. Change-Id: I2762c04548656de8fdb34711f52e5cf05d8c2ac5 Reviewed-by: Yoann Lopes <yoann.lopes@nokia.com>
* Update copyright year in Nokia copyright headers.Jason McDonald2012-01-171-1/+1
| | | | | | | | Update copyright headers from before 2011, and a couple of new ones that were merged after the previous change to copyright headers. Change-Id: Ia76e08e2734afa4ef3f1207dbcda5ff3bc81b366 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* More distance-field cache refactoring.Yoann Lopes2011-12-141-6/+4
| | | | | | | | | | | | | | | | The distance field glyph node now uses preprocess(). The glyph cache is updated at that time, then when all the glyphs are ready the node's geometry is updated. addGlyphPositions and addGlyphTextures in QSGDistanceFieldGlyphCache have been renamed to setGlyphsPosition and setGlyphsTexture to reflect the fact that they can be used to update existing glyphs. For example when a glyph has moved to a different texture. When an existing glyph is updated, all nodes containing that glyph are invalidated and their geometries are reconstructed with the new values. Change-Id: I7758313155f48811e6027434e6c9a1c3df5dfab7 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* update: make fragment shader code for distance field work with tegra2Johannes Zellner2011-12-141-12/+12
| | | | | | Change-Id: If907389dc904e9963aa87e5efdc39664e74d1eea Reviewed-by: Yoann Lopes <yoann.lopes@nokia.com> Reviewed-by: Harald Fernengel <harald.fernengel@nokia.com>
* Say hello to QtQuick moduleKent Hansen2011-12-021-0/+725
This change moves the QtQuick 2 types and C++ API (including SceneGraph) to a new module (AKA library), QtQuick. 99% of this change is moving files from src/declarative to src/quick, and from tests/auto/declarative to tests/auto/qtquick2. The loading of QtQuick 2 ("import QtQuick 2.0") is now delegated to a plugin, src/imports/qtquick2, just like it's done for QtQuick 1. All tools, examples, and tests that use QtQuick C++ API have gotten "QT += quick" or "QT += quick-private" added to their .pro file. A few additional internal QtDeclarative classes had to be exported (via Q_DECLARATIVE_PRIVATE_EXPORT) since they're needed by the QtQuick 2 implementation. The old header locations (e.g. QtDeclarative/qquickitem.h) will still be supported for some time, but will produce compile-time warnings. (To avoid the QtQuick implementation using the compatibility headers (since QtDeclarative's includepath comes first), a few include statements were modified, e.g. from "#include <qsgnode.h>" to "#include <QtQuick/qsgnode.h>".) There's a change in qtbase that automatically adds QtQuick to the module list if QtDeclarative is used. Together with the compatibility headers, this should help reduce the migration pain for existing projects. In theory, simply getting an existing QtDeclarative-based project to compile and link shouldn't require any changes for now -- but porting to the new scheme is of course recommended, and will eventually become mandatory. Task-number: QTBUG-22889 Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Change-Id: Ia52be9373172ba2f37e7623231ecb060316c96a7 Reviewed-by: Kent Hansen <kent.hansen@nokia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@nokia.com>