Commit Graph
290 Commits
Author SHA1 Message Date
Mike-Solar 4aa4d59770 feat: hide non-texture OFX params from node graph + host coordinate standardization
Hide non-texture OFX params from node graph
  --------------------------------------------
  OFX plugins like ColorCorrect expose dozens of scalar parameters as
  node inputs, making nodes extremely tall and pushing Source/Mask far
  down. Previously attempted via kInputFlagHidden, but that also hid
  them from the parameter panel.

  Fix: move the filter to NodeViewItem::IsInputValid() instead.
  For OFX plugin nodes (getPluginInstance() != nullptr), only
  kTexture inputs are rendered as ports. Scalar parameters remain
  fully visible in the parameter panel.

  Files: app/widget/nodeview/nodeviewitem.cpp
         app/node/plugins/Plugin.cpp

  Standardize OFX host coordinate system
  --------------------------------------
  Olive's OFX host had partial and inconsistent coordinate handling.

  1. Fix Project coordinate methods
     - getProjectSize() / getProjectExtent() / getProjectOffset()
       now multiply X by pixel_aspect_ratio(), returning canonical
       coordinates per the OFX spec.

  2. Fix Clip default RoD
     - OliveClipInstance::getRegionOfDefinition() default now returns
       {0, 0, width*PAR, height} instead of raw pixel coords.

  3. Add parameter coordinate system conversion
     - DoubleInstance / Double2DInstance / Double3DInstance now check
       _descriptor.getDefaultCoordinateSystem().
     - For kOfxParamCoordinatesNormalised:
         get: internal pixel value -> normalised (divide by extent)
         set: normalised plugin value -> pixel (multiply by extent)
     - DefaultValueForParam() also converts normalised defaults to
       canonical before storing in Node, keeping Olive internal/UI
       values consistently in pixel space.

  Files: app/pluginSupport/OlivePluginInstance.cpp
         app/pluginSupport/OliveClip.cpp
         app/pluginSupport/paraminstance.h
         app/node/plugins/Plugin.cpp
2026-05-14 21:54:18 +08:00
Mike-Solar bfb1b2fce4 update copyright back 2026-01-16 21:22:05 +08:00
Mike-Solar b8669f6a11 Change project name; 2026-01-05 16:22:26 +08:00
Mike-Solar cad331eb2c Fix compile errors 2026-01-05 01:50:05 +08:00
Mike-Solar f191486375 Implement multi-input OFX clip wiring and texture handling
Store PluginJob input values for lookup
Add per-clip texture inputs on plugin nodes
Map input clips to textures during render (with Source fallback)
2026-01-04 22:30:41 +08:00
Mike Solar 6fdfd03ffd update: update copyright 2025-08-05 17:12:49 +08:00
Mike Solar 74f73ab3be change: change code style to Linux style except indent. 2025-08-03 03:09:40 +08:00
Simran 4de06b2fce Remove unused counter variable [skip-ci]
Compilation fails on macos-13 runner with error: variable 'i' set but not used [-Werror,-Wunused-but-set-variable]
2024-12-04 11:48:38 +01:00
itsmattkc 2c2df99963 name every undo command 2023-03-12 00:49:03 -08:00
itsmattkc 019f095ee4 implement history panel 2023-03-11 22:26:21 -08:00
itsmattkc 43e4e78378 nodes: if an item is pasted without a folder, ensure it is added to a folder 2023-02-28 20:51:33 -08:00
itsmattkc 7ec8a4dd7e serializer: ensure backwards compatibility 2023-02-26 15:42:54 -08:00
itsmattkc 11e4e051c3 move undo files around for better organization 2023-02-20 16:09:22 -08:00
itsmattkc 9745b536f6 nodes: remove graph and merge into project 2023-02-17 14:13:03 -08:00
itsmattkc c1c6893713 various: moved more to core lib 2023-01-19 16:01:31 -08:00
itsmattkc dd9c52ab59 start moving core frameworks to external libraries 2023-01-19 09:51:47 -08:00
itsmattkc 38517c8c31 node: removed slow unrecommended functions 2022-11-05 11:58:38 -07:00
itsmattkc 4d80044d6d upgrade to qt 6 compliance 2022-10-28 19:42:14 -07:00
itsmattkc a3f4ebdb6d node/ui: limit amount of selectable nodes for performance 2022-10-23 21:24:49 -07:00
itsmattkc 54d0a94a20 Merge branch 'master' into cache-update 2022-08-18 08:12:46 -07:00
itsmattkc 402c4e1694 ui: move zoom scrolling option to preferences 2022-08-12 09:16:12 -07:00
itsmattkc 183dc8c48e nodeview: better implementation of larger connector hitboxes 2022-07-27 12:40:27 -07:00
itsmattkc 992f3fd3af nodeview: increase hitbox of node connectors 2022-07-27 12:15:11 -07:00
itsmattkc f2e604c2cb ui: add rename shortcut 2022-07-22 13:25:46 -07:00
itsmattkc 4c71a33b7b node: implement array start offset 2022-07-17 14:48:00 -07:00
itsmattkc e3c3ee9ac4 code: removed unnecessary code 2022-05-30 08:59:25 -07:00
itsmattkc 18d10f6c8d widgets: unset cursor rather than setting arrow 2022-05-12 13:39:59 -07:00
itsmattkc 6613ff3296 nodeview: fix drop regressions 2022-05-11 20:02:32 -07:00
itsmattkc c0ad244397 nodeview: implement dragging items from project explorer into node view 2022-05-11 14:55:07 -07:00
itsmattkc 8b87e376a0 nodeparamview: implement copy/pasting values 2022-05-10 17:20:22 -07:00
itsmattkc 4b366a9b73 update copyright year to 2022 2022-05-10 10:38:56 -07:00
itsmattkc c25960e5af fixed completely pointless compiler warning
Fixes #1921
2022-05-09 08:06:35 -07:00
itsmattkc 677ed38ff9 nodeview: ignore enabled input when dropping 2022-05-07 09:46:13 -07:00
itsmattkc 102ce9aa7b nodeparamview/nodeview: connect selections and enable multi-select in npv 2022-05-04 14:59:51 -07:00
itsmattkc f7396de121 markers: reimplemented copy/paste 2022-05-01 22:33:58 -07:00
itsmattkc 6e08b61ecc nodeview: prevent default behavior when items are attached
Fixes buggy behavior when dropping attached nodes and moving the cursor
2022-04-28 10:44:02 -07:00
itsmattkc 7825d0e16d nodeview: improved drop functionality 2022-04-28 09:54:49 -07:00
itsmattkc fb53931f68 implement "type" for xml node data 2022-04-25 13:16:27 -07:00
itsmattkc e0bfbf12b2 groups: improved functionality
Various improvements and fixes to groups
2022-04-04 23:34:34 -07:00
itsmattkc 38c8bd4b0d paramview: implemented passthrough editing 2022-04-04 22:13:08 -07:00
itsmattkc d7b3c523f4 groups: improved serialization
Introduced new project version with extra customization for groups
2022-04-04 00:03:57 -07:00
itsmattkc afaf6bcf92 groups: started revision
- Removed UUIDs since we already have ptrs
- Changed input passthroughs from map to list so they'll always be added in the same order
- Fixed group copy on duplication
- Fixed group copy on clip split
2022-04-03 19:18:39 -07:00
itsmattkc bc14b0454d nodeview: when new nodes are added from any source, select them 2022-01-21 10:07:37 -08:00
itsmattkc cc4bc91cc3 nodeview: when adding new group, ensure children are added too 2022-01-21 10:07:19 -08:00
itsmattkc 11d0d366eb nodeview: update context rect if node is removed 2022-01-21 10:06:56 -08:00
itsmattkc 576ea8e81f refactored copy/paste code for new serializers
Vastly improves code quality and reusability
2022-01-12 16:34:40 -08:00
itsmattkc 3731b0a4b7 nodeview: null check on block track and sequence 2022-01-10 09:31:10 -08:00
itsmattkc 50b29146f3 nodeview: clear edges first 2022-01-05 11:37:17 -08:00
itsmattkc d4fa9cb906 nodeview: fix issues when deleting nodes while dragging 2022-01-04 11:16:56 -08:00
itsmattkc 2da492f79f declare unused variable (might use it later) 2022-01-02 12:35:55 -08:00