Commit Graph

103 Commits

Author SHA1 Message Date
Pierre Bourdon da0de12cce dqt2: lazy-initialize GraphicsWindow
Initializing GraphicsWindow layout & children requires cooperation from
the graphics stack: on my system, for example, it causes a Vulkan
context to get created in order to get driver info. This is a slow
operation, and right now it is taking about 60-70% of the Dolphin
startup time on my system.

Move instead to a lazy-initialization model where the constructor
does nothing, instead offloading work to a separate Initialize() method
called before the window is shown.

I would expect this should be done for other larger parts of the UI,
especially the ones where creating widgets ends up triggering large IO
subsystems (I suspect controller configuration might be doing that).

(I'm not super happy with how this is implemented, but right now it's a
one-off, and it's a major complaint users have with the new UI. I
prioritized getting something working quickly...)
2018-07-03 03:48:32 +02:00
Techjar bc15eb2d57 Expose arbitrary mipmap detection toggle in UI 2018-07-01 04:42:47 -04:00
Techjar 68b8cd1e7c Qt/EnhancementsWidget: Fix post-processing options not being disabled when they should 2018-06-30 14:59:19 -04:00
Techjar b59387a65d Qt: Fix inability to select translated video backend names 2018-06-30 07:31:44 -04:00
8times9 33691d2992 Qt: Add Vulkan to graphics backend description 2018-06-19 08:38:48 -05:00
Ryan Meredith 5fcb509702 Give "Dump TEV Stages" and "Dump Texture Fetches" descriptions 2018-06-06 11:59:29 -04:00
Ryan Meredith 7340935b38 QT: Use brackets for description arrays 2018-06-06 09:05:18 -04:00
Ryan Meredith 45b9b7d211 Give Dump Objects dedicated folder and tooltip 2018-06-06 08:42:41 -04:00
spycrab 8e5a96fcfc Qt/GeneralWidget: Show tooltip when adapters are not supported by the backend 2018-05-31 03:52:18 +02:00
spycrab c07b89792d Qt/GeneralWidget: Add icon and title to the backend switch confirm dialog 2018-05-30 01:19:31 +02:00
spycrab 6268c7b3d5 Qt: Sort includes properly 2018-05-28 04:31:38 +02:00
spycrab d3eff93140 Qt/EnhancementsWidget: Fix missing / duplicate anaglyph options 2018-05-26 17:52:28 +02:00
spycrab 30aa291e83 Qt/EnhacementsWidget: Default anaglyph to "dubois" 2018-05-26 17:38:42 +02:00
spycrab 538aa3197f Qt/EnhancementsWidget: Fix "feature not supported" not disappearing when switching backends 2018-05-26 17:38:14 +02:00
spycrab 928a64dc6a Qt/EnhancementsWidget: Add missing anaglyph options 2018-05-25 22:05:12 +02:00
spycrab 157e263e05 Qt/Graphics: Fix broken stereoscopy settings 2018-05-25 21:37:22 +02:00
flatulation 93e0a2e52a Qt: Implement post-processing shader configuration window 2018-05-21 16:09:04 +01:00
spycrab ef803613d0 Qt/SoftwareRendererWidget: Fix backend info not getting updated properly 2018-05-19 23:28:23 +02:00
spycrab 49f8d5aefb Qt/AdvancedWidget: Save progressive scan when toggled 2018-05-19 20:59:30 +02:00
spycrab bc504d9f84 Qt/GraphicsWindow: Show display name in title 2018-05-19 17:44:22 +02:00
spycrab adcaf3c581
Merge pull request #6887 from spycrab/qt_slider_accuracy
Qt/HacksWidget: Fix slider not showing overridden settings
2018-05-19 03:00:34 +02:00
spycrab 5e3d7dc162 Qt/HacksWidget: Fix slider not showing overridden settings 2018-05-18 20:19:21 +02:00
Tilka cbc85d928b
Merge pull request #6860 from Zexaron/qt_generalwidget_remove_wrong_description
Qt/GeneralWidget remove unnecesary description wiring
2018-05-18 02:24:08 +01:00
spycrab e922f91cc3 Qt/GeneralWidget: Restore the adapter properly 2018-05-14 21:16:20 +02:00
Zexaron ff971b1a6f Qt/GeneralWidget remove unnecesary description wiring 2018-05-14 18:18:18 +02:00
Lioncash 222fe58e25 DolphinQt2: Add missing Q_OBJECT macro to all QObject-related classes missing it
Without this macro, if any signals or slots were attempted to be used,
they wouldn't work; neither would various other features of the Qt
meta-object system. This can also lead to weird behavior in other
circumstances. Qt's documentation specifically states:

"Therefore, we strongly recommend that all subclasses of QObject use the
Q_OBJECT macro regardless of whether or not they actually use signals,
slots, and properties."

on its page for "The Meta-Object System", which can be seen here:
https://doc.qt.io/qt-5/metaobjects.html

Let's opt for "always do the right thing", and keep the code extensible
for the future and not have random things blow up on us.
2018-05-13 17:33:32 -04:00
Léo Lam 6763a3fce1 Config: Add support for enums
This makes it possible to use enums as the config type.
Default values are now clearer and there's no need for casts
when calling Config::Get/Set anymore.

In order to add support for enums, the common code was updated to
handle enums by using the underlying type when loading/saving settings.

A copy constructor is also provided for conversions from
`ConfigInfo<Enum>` to `ConfigInfo<underlying_type<Enum>>`
so that enum settings can still easily work with code that doesn't care
about the actual enum values (like Graphics{Choice,Radio} in DolphinQt2
which only treat the setting as an integer).
2018-05-12 18:10:26 +02:00
spycrab be007b436c Qt/GraphicsWindow: Fix software renderer breaking layout 2018-05-10 12:08:23 +02:00
spycrab 074a17482b Qt/GraphicsWindow: Refresh settings on construction 2018-05-10 12:08:23 +02:00
spycrab 6a34f2b47c Qt/GeneralWidget: Fix "No" response to backend switch confirmation 2018-05-10 12:08:23 +02:00
spycrab b7b6b5162c Qt/GeneralWidget: Refresh backend settings properly 2018-05-10 12:08:23 +02:00
Anthony 1ec3a4db6c
Merge pull request #6763 from spycrab/qt_fix_prog
Qt/AdvancedWidget: Fix "Enable Progressive Scan"
2018-05-07 09:59:32 -07:00
spycrab a2448c5b66 Qt/GeneralWidget: Various fixes 2018-05-07 17:50:03 +02:00
spycrab 6f65238efc Qt: Fix "Render To Main" 2018-05-06 04:51:13 +02:00
spycrab 6442b32aeb Qt/AdvancedWidget: Fix "Enable Progressive Scan" 2018-05-06 03:16:43 +02:00
Léo Lam 31efec623a
Merge pull request #6695 from Ebola16/UbershadersDecrip
Update Ubershader descriptions
2018-05-05 11:16:30 +02:00
Pierre Bourdon 798639291f
Merge pull request #6749 from spycrab/qt_gcontrols_crash
Qt/GraphicsControls: Fix more random crashes
2018-05-05 03:02:43 +02:00
spycrab e809eef11a Qt/AdvancedWidget: Fix progressive scan checkbox 2018-05-04 21:33:24 +02:00
spycrab 300c3970f3 Qt/GraphicsControls: Fix more random crashes 2018-05-04 13:51:55 +02:00
Stenzek a5e410b7c9
Merge pull request #6744 from stenzek/ui-disable-vram-copies
UI: Add Disable EFB Copies to VRAM to Advanced Options
2018-05-04 12:01:29 +10:00
Mat M 348125eda4
Merge pull request #6738 from spycrab/qt_fix_empty_adapter
Qt/GeneralWidget: Fix empty adapter option
2018-05-03 13:11:00 -04:00
spycrab a61445919d Qt/GraphicsSlider: Fix random crashes 2018-05-03 15:22:40 +02:00
Stenzek d4f6c86eec UI: Add Disable EFB Copies to VRAM to Advanced Options 2018-05-03 14:31:04 +10:00
Stenzek 8a061d6fb4 Qt/AdvancedWidget: Fix borderless fullscreen option not showing 2018-05-03 14:13:35 +10:00
spycrab b99610f1a3 Qt/GeneralWidget: Fix empty adapter option 2018-05-02 19:20:45 +02:00
spycrab ef3f660983 Qt/HacksWidget: Fix "Accuracy" slider 2018-05-02 16:36:15 +02:00
Ryan Meredith 05205ce3d7 Update Ubershader descriptions 2018-05-01 18:57:34 -04:00
Stenzek 6e62d1ab9f
Merge pull request #6722 from spycrab/qt_adapter
Qt/GraphicsSettings: Save Adapter index
2018-05-01 21:57:50 +10:00
spycrab 87d6bffcec Qt/GraphicsSettings: Fix various adapter issues 2018-05-01 13:54:01 +02:00
Léo Lam 78c9bad44f
Merge pull request #6688 from spycrab/qt_dedup
Qt: Deduplicate settings
2018-05-01 11:53:39 +02:00