- 08 2月, 2020 3 次提交
-
-
由 jp9000 提交于
Adds API: obs_scene_add_group2 obs_scene_insert_group2 obs_sceneitem_group_ungroup2 These functions should be used by plugins if they need to use these functions and need to send a refresh signal. If a major API rework ever happens the old functions should be removed. The old functions should eventually be deprecated. The reason why specifying a 'signal' parameter is useful is because it's a bit more seamless for the user interface to be able to have custom handling of these specific cases. It looks better and doesn't require completely erasing/recreating the entire list, which is visually unappealing.
-
由 jp9000 提交于
Fixes a bug where the UI would not know that a group had been updated.
-
由 jp9000 提交于
This signal is used to specify when a scene needs a full refresh of its item list.
-
- 28 1月, 2020 1 次提交
-
-
由 jp9000 提交于
Same as obs_scene_find_source but also searches groups within the scene.
-
- 30 8月, 2019 2 次提交
- 26 7月, 2019 1 次提交
-
-
由 jpark37 提交于
-
- 18 7月, 2019 1 次提交
-
-
由 jpark37 提交于
Add a separate shader for area upscaling to take advantage of bilinear filtering. Iterating over texels is unnecessary in the upscale case because a target pixel can only overlap 1 or 2 texels in X and Y directions. When only overlapping one texel, adjust UVs to sample texel center to avoid filtering. Also add "base_dimension" uniform to avoid unnecessary division. Intel HD Graphics 530, 644x478 -> 1323x1080: ~836 us -> ~232 us
-
- 24 6月, 2019 1 次提交
-
-
由 jp9000 提交于
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.
-
- 16 6月, 2019 1 次提交
-
-
由 Chris Angelico 提交于
Similar to item_visible, this event fires whenever a scene item is locked or unlocked. This allows the UI and libobs to remain in sync regarding scene elements' statuses.
-
- 09 5月, 2019 1 次提交
-
-
由 James Park 提交于
There are cases where alpha is multiplied unnecessarily. This change attempts to use premultiplied alpha blending for composition. To keep this change simple, The filter chain will continue to use straight alpha. Otherwise, every source would need to modified to output premultiplied, and every filter modified for premultiplied input. "DrawAlphaDivide" shader techniques have been added to convert from premultiplied alpha to straight alpha for final output. "DrawMatrix" techniques ignore alpha, so they do not appear to need changing. One remaining issue is that scale effects are set up here to use the same shader logic for both scale filters (straight alpha - incorrectly), and output composition (premultiplied alpha - correctly). A fix could be made to add additional shaders for straight alpha, but the "real" fix may be to eliminate the straight alpha path at some point. For graphics, SrcBlendAlpha and DestBlendAlpha were both ONE, and could combine together to form alpha values greater than one. This is not as noticeable of a problem for UNORM targets because the channels are clamped, but it will likely become a problem in more situations if FLOAT targets are used. This change switches DestBlendAlpha to INVSRCALPHA. The blending behavior of stacked transparents is preserved without overflowing the alpha channel. obs-transitions: Use premultiplied alpha blend, and simplify shaders because both inputs and outputs use premultiplied alpha now. Fixes https://obsproject.com/mantis/view.php?id=1108
-
- 25 4月, 2019 1 次提交
-
- 19 4月, 2019 1 次提交
-
-
由 James Park 提交于
The line drawing functions previously assumed the upper-left 3x3 for box_transform only held scale. The matrix can also hold rotation, so pass in scale separately. Fixes https://obsproject.com/mantis/view.php?id=1442
-
- 08 4月, 2019 2 次提交
-
-
由 James Park 提交于
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
-
由 James Park 提交于
Currently SrcBlendAlpha and DestBlendAlpha are both ONE, and can combine together to form two. This is not a noticeable problem for UNORM targets because the channels are clamped, but it will likely become a problem if FLOAT targets are more widely used. This change switches DestBlendAlpha to INVSRCALPHA, and starts backgrounds as opaque black instead of transparent black. The blending behavior of stacked transparents is preserved without overflowing the alpha channel.
-
- 04 4月, 2019 1 次提交
-
-
由 James Park 提交于
It appears there's a projection flip that is applied in some situations, like the preview pane in studio mode, and the shader math fails when it's active causing the output color to be zero. This fixes the math for GLSL (with a tiny redundancy penalty to HLSL), and cleans up some unnecessary code along the way. Use abs() to avoid zero area in case the OpenGL projection flip is active. Also simplify the math, and remove the unnecessary sampler state.
-
- 07 3月, 2019 1 次提交
-
-
由 James Park 提交于
This new scale filter computes pixels by weighing the coverage area of source pixels over the target pixel. This algorithm works well for both upsampling and downsampling, but was mainly designed to upscale high-quality low-resolution sources like RGB/HDMI retro consoles. I've heard of people using odd workarounds like scaling up to very high resolutions before scaling back down to preserve pixel shartpness. This algorithm directly addresses this use-case in a much more direct fashion. The Area scale filter does a better job of preserving the thickness of thin features than the Point filter. The Area scale filter does not look at source pixels that lie outside of the target pixel, leading to a much sharper image than Bilinear, Bicubic, and Lanczos filters. This filter should interpolate pixels in linear space, but OBS is not equipped to do that at the moment. libobs: Add GPU effect, and wire up scene serialization. obs-filters: Add Area as an option for scale_filter. UI: Add Area as an option for both scene items, and canvas downscaling.
-
- 16 8月, 2018 2 次提交
-
-
由 jp9000 提交于
Useful when you need to modify transform properties of group sub-items and have the transform available immediately (group sub-items always automatically defer their transform update to the next frame).
-
由 jp9000 提交于
Fixes a bug where sources that are flipped vertically and/or horizontally would not maintain their flipped state.
-
- 15 8月, 2018 1 次提交
-
-
由 jp9000 提交于
The value of 0 can represent a valid hotkey ID, so make sure that when we initialize a hotkey variable, that we use OBS_INVALID_HOTKEY_ID or OBS_INVALID_HOTKEY_PAIR_ID and not 0. This fixes a bug where scene item hotkey pair IDs would be initialized to 0, and it would unregister valid unrelated hotkeys. Particularly, the start/stop streaming hotkey pair ID, which would commonly be the first hotkey pair created, thus having the hotkey pair ID of 0. The start/streaming hotkey pair would unintentionally be unregistered via code in obs-scene.c.
-
- 11 8月, 2018 1 次提交
-
-
由 Richard Stanway 提交于
-
- 05 8月, 2018 2 次提交
-
-
由 jp9000 提交于
Because groups can now be used in multiple scenes at once, it's important that if the user wishes to ungroup a group, that they must be able to keep the group intact if it exists in other scenes. This requires duplicating all scene items (as well as their hotkey/private data) instead of just reparenting the subitems. This fixes an issue where if the user had the group referenced in multiple scenes, the group would become empty in other scenes.
-
由 jp9000 提交于
Adds an internal function to duplicate scene item data.
-
- 24 7月, 2018 3 次提交
-
-
由 jp9000 提交于
Due to the recent change in which scene items now only update their transforms during the next frame's tick, snapping sources would sometimes jitter and have incorrect snapping. This fixes that issue by reverting to the behavior of updating the transform immediately rather than deferring the update to the next frame tick, but only on non-group items. This should not be done on items that are sub-items of groups because we rely on the obs_scene_item::update_transform variable to update the parent group's transform in addition.
-
由 jp9000 提交于
Instead of updating the scene item texture any time update_item_transform() is called, only update it when obs_scene_item::update_transform is called. Prevents having to lock the graphics mutex needlessly.
-
由 jp9000 提交于
-
- 19 7月, 2018 1 次提交
-
-
由 jp9000 提交于
If the scene item crop/filtering is updated, instead of creating/destroying the item texture on the spot, update it in the graphics thread to prevent potential race conditions (especially when the crop function for example could be called from within obs_scene_enum_items in some situations, which would lock the graphics and scene mutexes in the wrong order).
-
- 17 7月, 2018 2 次提交
-
-
由 jp9000 提交于
-
由 jp9000 提交于
(This commit also modifies UI) Changes groups to their own independent type, "group". This allows them to be used like other regular types, and allows the ability to reference groups in multiple scenes. Before, a group would always be linked to the scene it was in. This made it cumbersome for users to modify groups if they had a similar group in multiple scenes (they would have to modify each group in each scene). Making groups like other source types makes more sense to solve this issue so they can be referenced in multiple scenes at once. This also removes a significant amount of group-specific handling code required for implementing groups in the front-end. One limitation however: due to the way sub-items of groups are seamlessly modifiable and sortable as part of the whole scene, the user cannot have multiple references to the same group within one scene.
-
- 16 7月, 2018 3 次提交
-
-
由 jp9000 提交于
-
由 jp9000 提交于
Allows using a different source type (I.E. "group" instead of "scene").
-
由 jp9000 提交于
(This commit also modifies UI) Removes obs_scene::group_sceneitem and replaces it with obs_scene::is_group. Changes a number of other functions related to groups so that a group is not inherently tied to a specific scene, and helps allow a single group to be referenced in multiple scenes if desired.
-
- 02 7月, 2018 5 次提交
-
-
由 Hunter L. Allen 提交于
-
由 Hunter L. Allen 提交于
-
由 Hunter L. Allen 提交于
Removes a likely unintentional self-comparison.
-
由 Hunter L. Allen 提交于
As declared, transform_val is static inline, but it should be marked as a static inline void since it does not return.
-
由 Hunter L. Allen 提交于
-
- 05 6月, 2018 1 次提交
-
-
由 vokama 提交于
-
- 04 6月, 2018 2 次提交