Skip to content

feat: SG-41316: Add Dissolve blend composite mode to stackIPNode with UI controls#940

Open
nigelsumner wants to merge 1 commit intoAcademySoftwareFoundation:mainfrom
nigelsumner:feature/dissolve-blend
Open

feat: SG-41316: Add Dissolve blend composite mode to stackIPNode with UI controls#940
nigelsumner wants to merge 1 commit intoAcademySoftwareFoundation:mainfrom
nigelsumner:feature/dissolve-blend

Conversation

@nigelsumner
Copy link

Add dissolve blend composite mode with UI controls

This PR implements a new dissolve blend composite mode for OpenRV's stack compositor with full UI integration and real-time controls.

OpenRV_dissolveBlend.mov

Features Added

  • Dissolve blend mode in StackIPNode for 2-input compositing
  • GPU shader implementation (Dissolve2.glsl) with configurable amount
  • UI slider and text input controls in Session Manager
  • Real-time dissolve amount adjustment (0.0 to 1.0 range)
  • Immediate UI updates when switching between composite modes

Technical Implementation

Core Implementation

  • StackIPNode.cpp: Added dissolve mode support with m_dissolveAmount property
  • StackIPNode.h: Added property declaration for dissolve amount control
  • ShaderCommon.cpp/.h: Implemented newDissolveBlend() function for GPU shader management

GPU Shaders

  • Dissolve2.glsl: GLSL shader for hardware-accelerated dissolve blending

UI Integration

  • composite.ui: Added QSlider and QLineEdit controls for dissolve amount
  • Composite_edit_mode.mu: Enhanced with slider integration and UI synchronization

Build System

  • CMakeLists.txt: Updated build configuration for dissolve shader compilation

Testing

  • Successfully builds on macOS with existing OpenRV build system
  • UI controls properly show/hide when switching composite modes
  • Slider and text field remain synchronized during interaction
  • Dissolve blending works correctly with 2-input stacks

Usage

  1. Load two media sources into a stack
  2. In Session Manager, set composite mode to "Dissolve"
  3. Use the slider or text input to control dissolve amount (0.0 = first input, 1.0 = second input)
  4. Real-time preview updates as you adjust the dissolve amount

Copy link
Contributor

@pbergeron-adsk pbergeron-adsk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks OK to me, needs to be view tested.

@bernie-laberge bernie-laberge added the community Contribution from the Open RV Community label Dec 1, 2025
Copy link
Contributor

@bernie-laberge bernie-laberge left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you @nigelsumner for this great contribution !

@bernie-laberge bernie-laberge changed the title Add Dissolve blend composite mode to stackIPNode with UI controls SG-41316: Add Dissolve blend composite mode to stackIPNode with UI controls Dec 1, 2025
@cedrik-fuoco-adsk
Copy link
Contributor

Hi @nigelsumner,

Thank you for the contribution! Could you fix the pre-commit issue? You might have to run the pre-commit manually on the files you modified.

Signed-off-by: nigel sumner <nigelsumner@mac.com>
@nigelsumner nigelsumner force-pushed the feature/dissolve-blend branch from 37823ae to 7b2e27a Compare February 18, 2026 18:04
@nigelsumner
Copy link
Author

Hey Cedrik, apologies for the messy commits. I'm still learning my way around the nuances of github. I figured a clean and rebase was the easiest fix. Still so much to learn on this platform. Cheers.

@cedrik-fuoco-adsk cedrik-fuoco-adsk changed the title SG-41316: Add Dissolve blend composite mode to stackIPNode with UI controls feat: SG-41316: Add Dissolve blend composite mode to stackIPNode with UI controls Feb 19, 2026
@cedrik-fuoco-adsk
Copy link
Contributor

It's ok, no problem! We will be testing your PR soon. Thank you for your contribution!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

community Contribution from the Open RV Community tracked

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants