summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Enable input for Layer3DLaszlo Agocs2018-08-222-1/+66
| | | | | Change-Id: Id22d8e963fbeba2db3e7b6387f6b14a133eda2c1 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Add support for SSAA and MSAA in View3DLaszlo Agocs2018-08-2212-24/+394
| | | | | Change-Id: I5958d6391504d57c8c11c31ccc8b3de0d1a038fc Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Move and share the Studio3D scenegraph node implementationLaszlo Agocs2018-08-2012-71/+92
| | | | | | | | | | | | The material and node implementation is now shared between Studio3D, View3D and Layer3D. By not relying on QSGImageNode in View3D (and Layer3D), we have better control and can eventually implement support for things like multisample textures. Change-Id: I34a3a590a3ec6cdccbdd8ffd4fec40fb3750a972 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Enhance docs for Studio3DProfiler and View3DLaszlo Agocs2018-08-205-1/+112
| | | | | Change-Id: I197170c8881c4190cf714bdfe7738a7a51599c04 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Improve frame rate reporting in profileuiLaszlo Agocs2018-08-2011-25/+135
| | | | | | | Show something from the Qt Quick render thread too. Change-Id: Id62cc6835baa06f367e324baafdc029ad25be71e Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Bump doc version numbers to 2.1Laszlo Agocs2018-08-205-9/+9
| | | | | Change-Id: I1063234174e5db3c6b518d8e7461d6628286857f Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Do not expose Studio3DProfiler when the feature is disabledLaszlo Agocs2018-08-201-0/+4
| | | | | Change-Id: I83a357d9c4869ed85a3c823f1d71de5ee3723bcd Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* profileui/quick: Use proper scaling with high dpiLaszlo Agocs2018-08-202-17/+15
| | | | | | | | | Gone are the days of custom scale factors and ugly upscaling. We now behave like a good QQuickItem would do, and show the views at a proper size regardless of devicePixelRatio. Change-Id: If3546296fc4a4ea0af91151b472e90a9fc4abdbc Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Re-enable warning_cleanLaszlo Agocs2018-08-181-1/+1
| | | | | | | Need to eliminate mingw warnings in qt3d first. Change-Id: I09ddf19203345159ff45c4903845859e1654d53e Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Add Object3D tests covering object orderingLaszlo Agocs2018-08-172-7/+112
| | | | | | | | | ...and fix a small glitch that prevented objects being detached from the parent when m_layer was null (because the object was never attached to a live Layer3D). Change-Id: I2479d255aa150bae085d845dd36061b4ffbf19a9 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Port some threading logic fixes to View3DLaszlo Agocs2018-08-175-16/+18
| | | | | | | | ...and fix also a small potential issue in Studio3DEngine (let's not access m_engine in the assert) Change-Id: If4768a3b9e203a754e25bfa3cbee45f33699295d Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Add Object3D infraLaszlo Agocs2018-08-1726-93/+1090
| | | | | | | | | | | | | Use Group (and Node) to crystalize the concepts. Fix also some issues in Studio3DEngine. Also changes the pureqml example to a manual test since Studio3DEngine and friends are marked as internal for now, so shipping examples for them along with the regular examples is not desirable yet. Change-Id: I8ab0ad50d1b846cadb6927fcb38afe9dff576c2e Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Improve View3D docs about performance benefitsLaszlo Agocs2018-08-171-3/+12
| | | | | Change-Id: I18a8470fd54272d5f8f08f0658edce42d9798055 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Add prefix to ImGuiInputEventFilter to avoid potential clashesLaszlo Agocs2018-08-172-7/+7
| | | | | | | | | Use the Q3DSQuick prefix like we already do for some other classes (Quick is needed since we do not want to clash with the Qt3D integration...) Change-Id: Ice44bb1ecfb229294b74b09e28dcccbb8d08062d Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Fix eyeball changes when changing slidesChristian Strømme2018-08-164-27/+58
| | | | | | | | | | | | When changing slides, always reset to eyeball value to "true" for all objects on the master slide, as the value will be set to false by the current slides property change if needed, or else the eyeball value is implicitly true. Task-number: QT3DS-2084 Change-Id: Ie7906d642edda2ff7bd1e8850cdb0ed0ce5c7eb5 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Add picking support in View3DLaszlo Agocs2018-08-168-50/+175
| | | | | Change-Id: I6d6740443ed9979adf3bc2286c9df3549f6b0870 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Disable input handling on Studio3D when View3Ds are presentLaszlo Agocs2018-08-161-1/+8
| | | | | | | because in this case the View3D items should process input. Change-Id: Ia23e71c77e5049b841c2a408cc37ac73f4257f37 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* console: Remove a now-unneeded resolveReferences callLaszlo Agocs2018-08-161-1/+0
| | | | | | | | This should not be necessary now since the scenemanager takes care of triggering resolveReferences calls as appropriate. Change-Id: I370a14123eb240f9592bfa4628c02abfb6323996 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Add support for element paths referencing objects in propertiesLaszlo Agocs2018-08-163-1/+43
| | | | | | | | | | | | | | | Users of the legacy API may very well do something like the following: Element { id: texture; elementPath: "Scene.Layer.Rectangle.Material.diffusemap" } texture.setAttribute("sourcepath", "some_image.png"); Note how the .diffusemap selects the Image object stored in the diffusemap property instead of a child object named diffusemap. Task-number: QT3DS-2089 Change-Id: I1b03516f67b390f8411e263774d64980b9f9e09b Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Improve Image sourcepath (re-)resolvingLaszlo Agocs2018-08-163-0/+24
| | | | | | | | | | | | Make sure the value of sourcepath is re-evaluated and adjusted as needed whenever it changes. In addition, add support for qrc:/ prefixes since applications written for the old runtime may try to treat the values are URLs instead of actual filenames (which is very wrong but it does not cost much to convert qrc:/ to :/ ) Task-number: QT3DS-2089 Change-Id: Id2ba31ef6246db2d4477a87ec15433b17bc836be Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Fix Layer3D with dpr > 1Laszlo Agocs2018-08-152-6/+8
| | | | | Change-Id: I87120087fb73d8fad416a7b04e4250ca37ed388f Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Add doc page for layersinquick exampleLaszlo Agocs2018-08-154-0/+85
| | | | | | | And add the missing property docs for View3D Change-Id: I9c4725710da66543633ba1337ca45934227f79b6 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* profileui/quick: Fix high dpi issuesLaszlo Agocs2018-08-152-3/+7
| | | | | | | Port scissor and rendering fixes from upstream. Change-Id: I201a3872e9ffbbd7f2e4d5cb2790fd891d030cbc Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Enable HighDpiScaling for the QML examplesLaszlo Agocs2018-08-152-0/+2
| | | | | | | | | | On macOS this is the default anyways. On Windows machines however the devicePixelRatio will not be > 1 without AA_EnableHighDpiScaling. Set this flag in the examples to indicate we are capable of handling this. (and also test-drive this a bit better on non-Apple machines as well) Change-Id: Iafd30536e527dbc3ab764be44287ff3651106093 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Fix View3D with dpr > 1Laszlo Agocs2018-08-153-9/+12
| | | | | | | | | We must not forget that rect() should use logical coordinates, meaning the rect from a QQuickItem can be used as-is. sourceRect on the other hand is in pixels (as is the texture size). Change-Id: I67337d94f26bbaac4352b72e2d27fbabf3ed9e91 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* profileui: change default position of the consoleLaszlo Agocs2018-08-151-1/+1
| | | | | | | | | Centering does not play nice with dpr > 1 screens due to our somewhat odd way we handle that with scaling and whatnot. Just having a small fixed offset works better. Change-Id: I90819e725299fd335736f1dbbe10c4ed11015375 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Yet another imgui scissor fixLaszlo Agocs2018-08-153-10/+15
| | | | | Change-Id: I8834a4ff0564f42331c4ccc2ca89629cc1c13fd4 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Add a keyword to fix an invalid link in documentationTohge, Norihito2018-08-151-0/+1
| | | | | | | | | | Studio3D keyword is added to enable documentation link from qt3dstudio to qt3d-runtime. Since Studio3D was moved from qt3dstudio repo to qt3d-runtime repo, links to Studio3D in documentation have been invalid. Task-number: QT3DS-1970 Change-Id: I13b7f9d1190fa38209fb9eb8e7b9413dac2c65fc Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Make compilers happyLaszlo Agocs2018-08-146-4/+15
| | | | | Change-Id: Ib120fb42b7f38b7ff3f82ee7dbb82ed037c59852 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* profileui/quick: Fix scissor adjustment calculationLaszlo Agocs2018-08-141-1/+1
| | | | | | | | Mapping position() was clearly wrong when an item used anchors. What we have to map is (0, 0) i.e. the top-left in local coordinates. Change-Id: I84ed81fb8903f41deb4873a47d41903f9e26fe53 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Move layersinquick example over to Quick-based profileuiLaszlo Agocs2018-08-141-1/+20
| | | | | | | So that it now works on both normal and separatedViews mode. Change-Id: I220e9e221b6cc8702fd83b02031a9eb7593e7791 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Introduce Studio3DEngine and Layer3DLaszlo Agocs2018-08-1424-13/+2110
| | | | | | | | | | | | | | ...and the ImGui integration for Qt Quick since in the new world Qt 3D is not used to create the final, composited image and therefore the profile ui must be moved over to be rendered by Qt Quick. Each Layer3D has hard-coded content for now (a camera, a light, and a sphere model). The new types are marked as internal for the time being. Change-Id: I9cc7cff4d8252f6dbd344fc972fef31f0db6da73 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Add an optional separated engine-view mode to Studio3DLaszlo Agocs2018-08-1422-19/+1131
| | | | | | | | | | | | | | | | | | | | Adding View3D items to the Qt Quick scene allows turning off layer composition in the main presentation, and instead accessing each layer's texture as an individual visual QQuickItem. This way the 3D layers can be placed anywhere and be blended freely in the 2D scene, while avoiding all the trouble multiple Studio3D items would cause. This also moves composition into the Qt Quick domain, providing a more sensible story for creating 2D-3D UIs. While post-processing effects are still active even in separated views mode, it is now possible to use ShaderEffect instead. MSAA and SSAA layers are not handled currently and are left as a future exercise for those who like mind-boggling complexity. Task-number: QT3DS-2032 Change-Id: I08128b65d0344c609f8dea15f9562ccfd19140a6 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Don't restart components on the master slide when changing slidesChristian Strømme2018-08-143-2/+103
| | | | | | | | Components on the master slide should not be restarted when changing slides. Task-number: QT3DS-2052 Change-Id: I986e0ad713b7f979d6899a8ef80032d93e371656 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Fix Studio3D with high-DPILaszlo Agocs2018-08-142-7/+9
| | | | | | | | | | While not obvious at first, the sizing behavior was half-broken with dpr > 1 (Qt3D got correct settings with the device pixel ratio included, Q3DSEngine did not). The profileui did not show up either. This is now corrected. Change-Id: I7aa86d50e2eb0e24ca9e1888aae8f40b4efdf20e Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Fix effect orderLaszlo Agocs2018-08-103-2/+108
| | | | | | | | | | | Object order in the scene graph is front to back (like with Layer). When building the effect chain for rendering (which is back to front by nature) the effect list must be iterated in reverse order. (just like the compositor does for layers) Task-number: QT3DS-2053 Change-Id: I0ef82fe678330f9863a08f0411638f216dbef5f4 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Add support for QImage in Q3DSImageLaszlo Agocs2018-08-076-14/+141
| | | | | | | Also fixes changing the filename in the sourcepath property of an Image. Change-Id: Ie805cc288ecda96cdf126ec1d611aa863cb82c48 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Model: Avoid leaking when setting a new custom geometryLaszlo Agocs2018-08-061-1/+5
| | | | | | | ...and handle setCustomMesh(nullptr) gracefully in addition. Change-Id: Ida9652cc6cbc8ebfda95b2259ec1c13666c36254 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Fix clang build warningsAndy Nichols2018-08-062-2/+2
| | | | | Change-Id: Ie3fcd1b98b5a612fa1bd61ee970ae3f61ec7f2af Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Pick up the new custom property list when changing cust.mat. classLaszlo Agocs2018-08-062-2/+12
| | | | | Change-Id: I6946eb935e315a47823e8642aed917091efc9496 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Create a dummy material for a null custom materialLaszlo Agocs2018-08-061-3/+10
| | | | | | | | Null meaning default constructed, when 'class' is not set. Previously this resulted in a crash. Change-Id: I779164c70747482c533fd64ae64219f8fb7648fe Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* standalone test: Change a const to static constLaszlo Agocs2018-08-061-1/+1
| | | | | | | | | ...to avoid lambda capture trouble: some compilers require stride to be listed in the capture list, while others show a warning saying it is unnecessary. Change-Id: I67a3b2be51b6cfb3df76494f00791c6151d34497 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Lift the requirement of atomic model+material managementLaszlo Agocs2018-08-031-1/+31
| | | | | | | | | | | | One can now create, destroy and move materials around freely, even while the model and the material(s) are connected to the scene. No need to unparent the model first. In practice it is still more efficient to create model+material hierarchies off-scene since doing so prevents unnecessary submesh/material rebuilding that is caused by every change in the model's children list. Change-Id: Ifa8db4976e4dbf4b6b9a20369e8daa6c9beae7ea Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* profileui: Show effect info and explanation in Layer listLaszlo Agocs2018-08-033-5/+22
| | | | | Change-Id: I6f58b4ae276c6d0530ce5a5fb726fd1fafbd3581 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Disable layer caching with time dependent effectsLaszlo Agocs2018-08-032-1/+12
| | | | | | | Task-number: QT3DS-2025 Task-number: QT3DS-2023 Change-Id: Ie17c0ed176c5f25e552db35b4eebbab64829bfc1 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Add flags to Q3DSEffect and check for ReliesOnTimeLaszlo Agocs2018-08-035-1/+143
| | | | | | | Task-number: QT3DS-2025 Task-number: QT3DS-2023 Change-Id: Icd8e5190b078cd78ee13525c522097d94fe45ded Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Fix two sources of crashes when (un)loading a Studio3DLaszlo Agocs2018-08-033-2/+15
| | | | | | Task-number: QT3DS-1995 Change-Id: Ie9a5ded67edba5d9c0247fb381254558e381bf3a Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Add support for changing the custom material source on the flyLaszlo Agocs2018-08-023-57/+89
| | | | | | | | | | | | | | | | | | | Like with effects, the 'class' property can now be changed at run time, and can also refer to a file (in addition to a #id from the .uip's Classes section) Note that constructing materials on the fly needs to be done so that the active scene's tree is consistent at any time. For example, to replace a model's material, the model has to first be unparented from the scene's object tree (and so be disconnected from the scene) because having a model without the sufficient number of materials is not allowed. Once the child object (the material) is replaced (and, for custom materials, the class property was set), the model can be parented back to where it was. When just changing the class property on a CustomMaterial, this is not needed of course, the change is picked up right away. Change-Id: I086154023513d13a4a298aeac7e0e247951a6e09 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Disable dialogs while profileui is upLaszlo Agocs2018-08-024-0/+17
| | | | | | | | | | | | | | | Parsing something, like an effect due to setting the 'class' property to a file, can lead to parse errors that pop up dialogs by default when running with the widget-based viewer. While not an issue for applications or the QWindow-mode viewer, it is nice if we avoid popping up dialogs when triggering errors from the console - these should rather print on the debug output and show up in the log. In addition, popping up a dialog with the console active leads to strange problems with input afterwards. Avoid this altogether. Change-Id: Ica5aa893601418d569b4b0dcbc26d042e6af9284 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Make effects dynamically spawnable, destroyable, and changeableLaszlo Agocs2018-08-027-165/+252
| | | | | | | | | | | | | | | Also makes it possible to use filenames in effects', custom materials' and behaviors' "class" property. Previously this could only contain an id referring to an entry in the Classes section of the uip document. With programatically constructed scenes the pre-loaded list of effect/material/behavior descriptions is not used. Instead the instances refer directly to filenames (the loaded data is cached like with meshes). Custom materials and behaviors do not yet support changing their "class" at runtime, although they get many of the enablers. Change-Id: I560ab00b9dc447bd19d5ebeb749972873b89ec2c Reviewed-by: Andy Nichols <andy.nichols@qt.io>