60 Commits

Author SHA1 Message Date
Exeldro
32e7ba1abe UI: Add visibility transitions
This also modifies libobs.

This adds the ability for scene items to have transitions
when their visibility is toggled.
2021-03-16 22:15:16 -07:00
Christopher P Yarger
25a335dc3c UI: Add Frontend API function to get value of T-bar
Also add a Frontend API event for when the T-bar's value changes.
2021-03-10 20:18:36 -08:00
Mike
40f99da8a2 UI: Fix Qt signal connection warnings
Closes obsproject/obs-studio#4264
2021-03-08 21:39:43 -08:00
VodBox
e81cf90c1e UI: Disable scroll and keyboard input for t-bar
closes #2951
2021-03-09 01:31:08 +13:00
Clayton Groeneveld
753de748e5 UI: Remove redundant code
The UpdateSceneSelection function was doing the same thing as the
code in the SetCurrentScene function.
2021-03-07 22:53:08 -08:00
jp9000
e8a1c082da Revert "UI: Add ability for stingers to use filters"
This reverts commit 36ab7b97cff3bad9f3056b2f3cb1fa6a7158f79b.

The fact that a transition is a composition of two scenes was not
factored into the merging of this PR. Thus, it would apply to the
underlying scenes when transitioning, making the effectiveness of this
feature cause inconsistent rendering of the underlying scenes when
transitions are activated versus when they're not.
2021-02-11 22:34:55 -08:00
Clayton Groeneveld
36ab7b97cf UI: Add ability for stingers to use filters
This adds a menu item in the transitions config menu to access
filters for stinger transitions.
2021-02-09 02:46:27 -08:00
Johann Garces
ade4c4cf49 UI: Run Autoconfig Wizard on New Profile Creation
New profile state is similar to first start: settings are wiped, encoders
not setup. It may make sense to show the auto configuration wizard when
a new profile is made as well.

There is a checkbox option to show the wizard. If a profile is created
with the checkbox off, the checkbox will remain defaulted to off next
prompt.
2020-10-29 14:15:57 -07:00
jp9000
3486c0b363 UI: Fix selecting correct transition when deleting
When deleting a transition, it would sometimes select the one that
replaces it, which could be the separator.  This would cause undefined
behavior.  This fixes it so that it selects either the one that replaces
it (if a valid one replaces it), or the transition at the bottom of the
known list and not the separator.
2020-10-06 08:49:58 -07:00
jp9000
da8547c112 UI: Fix non-default transitions going below add vals 2020-10-06 08:25:03 -07:00
jp9000
6460579fb6 UI: Move "Add [transition]" to bottom of combo
Instead of having "Add [transition]" at the top of the combo box
blocking out the values, move the add values to the bottom of the box
instead for slightly better UX.
2020-09-30 23:57:49 -07:00
jp9000
1a14304784 UI: Fix "Add [transition]" not being translated
This is a temporary fix as to not to delay the release, and will need to
be replaced with AddValue in future versions.
2020-09-27 05:31:55 -07:00
jp9000
b4443ea5ef UI: Remove null source warnings 2020-08-25 00:46:33 -07:00
Clayton Groeneveld
b9b990a35a UI: Fix transition enumeration
Fixes issue where sometimes the transition loop would return a null
transition.
2020-08-23 09:47:52 -07:00
Clayton Groeneveld
d5905039c9 UI: Redesign transitions dock
Co-authored-by: Jim <obs.jim@gmail.com>
2020-07-31 09:48:09 -07:00
tt2468
a03189bb68 UI: Add TBar controls to obs-frontend-api
Adds `obs_frontend_set_tbar_position` and `obs_frontend_release_tbar`,
which allow plugins and scripts to control the tbar in OBS.
This specific change is required for the `SetTBarPosition`
request to be added to obs-websocket.
2020-07-06 17:48:30 -07:00
Matt Gajownik
a5453f12a0 UI: Don't open Studio Mode's Program label in a window 2020-03-21 22:19:29 +11:00
jp9000
5722710f0a UI: Turn off T-bar mode when going out of studio mode 2020-03-14 16:28:06 -07:00
Clayton Groeneveld
18f41afa18 UI: Fix override transition not working 2020-03-05 16:42:25 -06:00
Clayton Groeneveld
b240a5671b UI: Do not disable t-bar 2020-03-05 09:11:17 -06:00
Clayton Groeneveld
69cede2b8d UI: Fix transitions being disabled 2020-02-04 06:06:45 -06:00
Clayton Groeneveld
0700c9eae1 UI: Fix transtions not enabled 2020-01-29 02:04:45 -06:00
Clayton Groeneveld
95c68fed15 UI: Fix t-bar not working with transition override 2020-01-21 23:53:11 -08:00
Clayton Groeneveld
f7d39c12c0 UI: Fix studio mode transition bugs
-If the user were in the middle of a transition and clicked
the cut transition, the transitions would become borked.

-This actually disables the transition widgets, so the
user doesn't click them. Before, the disabling of the
widgets didn't work as expected. The code for enabling/disabling
them was also simplified.

-This loading of studio mode was moved in OBSInit because
the loading of transitions needs to happen first. This fixes
a bug when enabling/disabling the t-bar when the program
is first loaded. The t-bar would be disabled even if a
cut or stinger transition was not used.

-When the user would click the quick transitions, the
t-bar would be enabled even when it was not supposed
to.
2020-01-14 01:29:23 -06:00
Clayton Groeneveld
68d88fa4c6 UI: Add t-bar to studio mode
Co-authored-by: Jim <obs.jim@gmail.com>
2019-12-27 16:41:28 -08:00
Clayton Groeneveld
54e7b2c769 UI: Fix swap scene issue with double click mode 2019-11-19 22:10:22 -08:00
Clayton Groeneveld
0676c385ba UI: Fix main transition being set to the quick one
This fixes an issue where using a quick transition, it would change
the main transition as well.
2019-11-05 23:47:28 -06:00
Clayton Groeneveld
1c005fcb51 UI: Add fade to black in studio mode 2019-10-24 19:00:33 -05:00
Jim
b327bf5deb
Merge pull request #2053 from Palakis/feature/frontend-api-transition-duration-changed
Frontend API: provide a "transition duration changed" event
2019-10-12 17:34:09 -07:00
Stéphane Lepin
881e49ce62 UI: frontend api "trans. duration changed" event 2019-10-12 16:29:44 -07:00
Stéphane Lepin
5156de4b17 UI: set names on scenes duplicated for Studio Mode 2019-08-31 22:20:43 +02:00
jpark37
3456ed0644 libobs: UI: Remove DrawBackdrop() to save fullscreen pass
It's a waste of GPU time to do two fullscreen passes to render final mix
previews. Use blend states to simulate the black background of
DrawBackdrop() for the following situations:

- Main preview window (Studio Mode off)
- Studio Mode: Program

This does not effect:

- Studio Mode: Preview (still uses DrawBackdrop)
- Fullscreen Projector (uses GPU clear to black)
- Windowed Projector (uses GPU clear to black)

intel GPA, SetStablePowerState, Intel HD Graphics 530, 1920x1080

Before:
DrawBackdrop: ~529 us
main texture: ~367 us (Cheaper than drawing a black quad?)

After:
[DrawBackdrop optimized away]
main texture: ~383 us
2019-07-18 19:58:29 -07:00
jp9000
f53df7da64 clang-format: Apply formatting
Code submissions have continually suffered from formatting
inconsistencies that constantly have to be addressed.  Using
clang-format simplifies this by making code formatting more consistent,
and allows automation of the code formatting so that maintainers can
focus more on the code itself instead of code formatting.
2019-06-23 23:49:10 -07:00
Clayton Groeneveld
ed5fdde059 UI: Fix preview/program label alignment 2019-04-22 03:08:35 -05:00
Richard Stanway
90df9ea290 UI: Update error message severity levels and show additional info 2019-04-19 05:45:19 -07:00
James Park
21f4dd63d4 libobs: UI: Use graphics debug markers
Add D3D/GL debug markers to make RenderDoc captures easier to tranverse.

Also add obs_source_get_name_no_null() to avoid boilerplate for safe
string formatting.

Closes obsproject/obs-studio#1799
2019-04-08 02:05:37 -07:00
Clayton Groenveld
5a5efa0b3e UI: Add preview/program labels in studio mode 2019-03-03 22:38:23 -06:00
Terje Gundersen
8b98568bbc UI: Don't transition if already transitioning (studio mode)
Closes obsproject/obs-studio#1304
2018-10-01 19:37:33 -07:00
jp9000
b6665f9cc0 UI: Use QScopedPointer (not QPointer) where applicable
Contrary to what the name would have you believe, QPointer<> is not used
to delete a pointer when it leaves its specific scope.  Instead, it's
used to check to see if the pointer is still valid.  For most
QWidget-based objects, this is actually fine because QWidgets that are
assigned to layouts or other widgets will automatically be destroyed --
however, for non-widget objects, this can cause a memory leak.

This patch replaces QPointer with QScopedPointer where applicable to
prevent memory leaks.

Closes obsproject/obs-studio#1367
2018-07-31 21:14:52 -07:00
Shaolin
0c43448ca2 UI: Fix OBS_FRONTEND_EVENT_TRANSITION_LIST_CHANGED
This event is fired during Add/Delete operations but was missing on
renaming a transition.
2018-07-09 19:08:42 -03:00
vokama
54ab27bda6 UI: Update hotkey label on quick transition rename 2018-06-05 01:38:19 +03:00
jp9000
f81d106b2a UI: Fix OBS_FRONTEND_EVENT_PREVIEW_SCENE_CHANGED
OBS_FRONTEND_EVENT_PREVIEW_SCENE_CHANGED is supposed to be called
whenever the user changes the current preview scene -- it was almost
never being triggered.
2018-05-15 00:49:12 +02:00
jp9000
cd1399f01a UI: Fix possible source reference leakage
This would fail to release the reference if the 'direct' parameter was
used.

Closes jp9000/obs-studio#1116
2018-01-04 18:43:12 -08:00
jp9000
7f6cf97bd7 libobs: Add obs_render_main_texture
(Note: This commit also modifies UI and test)

This makes it so that main preview panes are rendered with the main
output texture rather than re-rendering the main view.  The view will
render all objects again, whereas the output texture will be a single
texture render of the same exact thing.

Also fixes some abnormal artifacting when scaling the main preview pane.
2018-01-01 18:52:47 -08:00
jp9000
570cd49b6d UI: Duplicate when double-click switching is used
The studio mode double-click scene switching option disables scene
duplication, which bypasses the user's settings for scene switching in
studio mode.  This fixes it so that scenes are properly duplicated
according to the user's settings.
2017-12-02 16:36:01 -08:00
jp9000
42323ea31b UI: Fix scene override when switching off studio mode
The scene override would trigger, but the scene override variable would
stay set, causing the next transition to be the same one that was
previously used for overriding.
2017-11-30 09:51:24 -08:00
jp9000
ed7ae5839b UI: Don't override transition if quick transition
Fixes an issue where quick transitions would not function if the scene
has a transition override set for it.
2017-11-30 09:48:59 -08:00
cg2121
60e1d7e90b UI: Implement per-scene transition overriding
Allows the ability to override what specific transition a scene may use
when transitioning to it.

(Original proposal by cg2121, reworked by Jim)

Closes jp9000/obs-studio#1052
2017-11-30 05:10:25 -08:00
Ryan Foster
f140104da8 UI: Add Studio Mode layout option for portrait mode displays
This commit adds a checkbox to general setting to allow users to enable
a vertically oriented layout for studio mode.

This commit addresses mantis issue 827:
https://obsproject.com/mantis/view.php?id=827

Closes jp9000/obs-studio#1072
2017-11-28 22:24:57 -08:00
jp9000
68e67366d2 UI: Fix bug with studio mode double-click switching
Fixes a bug where the OBSBasic::programScene variable would not be set
for the new program scene when switching scenes via double-clicking on
them.
2017-11-28 03:38:30 -08:00