Commit Graph
127 Commits
Author SHA1 Message Date
Mike-Solar e5eeaddf2f format: reformatting files 2026-07-13 15:30:43 +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 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
itsmattkc 7ecabfa68d valuenode: add boolean type
Fixes #2145
2023-02-21 23:15:03 -08:00
itsmattkc f9cd28a694 node: make convenient input flag setter 2023-02-20 19:13:50 -08:00
itsmattkc 6ce80f4469 multicamnode: use combobox for current source instead of int 2022-10-23 12:31:42 -07:00
itsmattkc ef8996d48f nodes: allow ignoring specific inputs for rendering
Also ignore sequence input on multicam
2022-10-04 21:13:01 -07:00
itsmattkc 42ba84bf5f multicam: finished UI implementation 2022-10-03 17:24:09 -07:00
itsmattkc 2aaf96d55b multicamnode: only push active element if element exists 2022-10-02 11:00:32 -07:00
itsmattkc 6e183fe4be multicam: refactor to heavily optimize multicam monitor retrieval 2022-09-29 17:50:09 -07:00
itsmattkc 80a900d105 multicam: show highlight around selected source 2022-09-27 18:22:47 -07:00
itsmattkc a6b8b7ccbc multicam: finished usable implementation 2022-09-25 20:26:10 -07:00
itsmattkc e4c2f37adc multicamnode: offset 1 and min 0 2022-09-25 18:06:27 -07:00
itsmattkc 2dc2edf3e0 multicam: initial implementation 2022-09-19 08:55:56 -07:00
itsmattkc bfd6a407a5 Merge branch 'master' into hashremoval 2022-05-16 09:12:49 -07:00
itsmattkc 4b366a9b73 update copyright year to 2022 2022-05-10 10:38:56 -07:00
itsmattkc 08f3cb3cc3 remove hashes from nodes 2022-05-09 18:30:36 -07:00
itsmattkc d55d9c820f code: use macros for default node functions
Easier to maintain
2022-05-04 11:01:17 -07:00
itsmattkc 001834cbfa node: implemented bypassing 2022-04-26 15:07:01 -07:00
itsmattkc 3aafb2466d Squashed commit of the following:
commit f05b5b3ff8286f6252c2a3f3c8c367f8a5b821b5
Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com>
Date:   Tue Apr 12 13:05:25 2022 -0700

    final consistency modifications

commit 4f27718d46de9660822eb197b0e900be947ec515
Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com>
Date:   Tue Apr 12 11:40:58 2022 -0700

    opengl: don't set texture options for null texture

commit bb54cfcf4e219e1cbf1ecc6b5552cca75e6e1573
Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com>
Date:   Tue Apr 12 11:40:29 2022 -0700

    rename inputs

commit e5ac8fffa2ac15f5549b6da5f42b05659c6d020f
Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com>
Date:   Tue Apr 12 10:37:23 2022 -0700

    change alpha association formula

commit dee09a88f17552e3f98be8940966822e45d6df4f
Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com>
Date:   Tue Apr 12 10:36:58 2022 -0700

    glsl: use constants to improve readability

commit aedc75ebee11b61198f29c464501a2ddb0506129
Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com>
Date:   Tue Apr 12 10:36:26 2022 -0700

    changed id capitalization

commit 470b2bb85b51c4a57c109d3fb230088a81024277
Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com>
Date:   Tue Apr 12 10:35:53 2022 -0700

    node: update categories

commit c78dacad82051dfbb3e40c92cfaf456dbff2de0d
Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com>
Date:   Tue Apr 12 09:22:57 2022 -0700

    updated shaders to es 3

commit 1e7544be93e55916c94cd91629ec5eef728bfad8
Merge: 1bbb8d7f9 25d019609
Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com>
Date:   Tue Apr 12 09:02:32 2022 -0700

    Merge branch 'master' into pr/1818

commit 1bbb8d7f9acd75cb4498733f105fbe0487c0db9c
Author: brimson <40442071+brimson@users.noreply.github.com>
Date:   Tue Jan 18 18:36:24 2022 -0700

    Simplify colordifferencekey.frag

    Avoiding extra MOV instruction

commit c7cf1021ce5a3d090833e94e4bc212cc51a61a2a
Author: brimson <40442071+brimson@users.noreply.github.com>
Date:   Tue Jan 18 11:43:02 2022 -0700

    Revert switch-case changes

    Thanks Simran, MattKC, and Wilshaw for the clarifications

commit 882ffeede01b81f0cb4dfd885ba05bf66119ac7e
Author: brimson <40442071+brimson@users.noreply.github.com>
Date:   Tue Jan 18 00:06:31 2022 -0700

    Optimize despill shader

    Turn previous averaging from (1 MAD + 1 MUL) to (1 DP2), reuse the result to prevent recalculation.

commit 0c93f519977fa34840ab03d51addcf2456f931d8
Author: Thomas Wilshaw <thomaswilshaw@gmail.com>
Date:   Sat Jan 8 17:23:49 2022 +0000

    Cleanup

commit 222560ce1a4666899b1111854d4d549dd7ba1357
Merge: 96e21c2b4 d3ffeaa35
Author: ThomasWilshaw <thomaswilshaw@gmail.com>
Date:   Tue Jan 4 23:50:39 2022 +0000

    Merge branch 'master' into color_key

commit 96e21c2b43db3bf1051aca696970509292159548
Author: Thomas Wilshaw <thomaswilshaw@gmail.com>
Date:   Tue Jan 4 23:45:26 2022 +0000

    Rename and reoganise keying nodes

commit 6d42ed23a69ebdb1f5b399957f0b37434d0519dd
Author: Thomas Wilshaw <thomaswilshaw@gmail.com>
Date:   Tue Jan 4 23:04:50 2022 +0000

    Move despill code to it's own node

commit e97ab2e16fd1d4e2f2ff145b8c023ff0e1ee451e
Author: Thomas Wilshaw <thomaswilshaw@gmail.com>
Date:   Mon Jan 3 21:39:48 2022 +0000

    Add option for blue screens

commit 2346f44e5af48bb9547c77c4c08ee7abfcb09393
Author: Thomas Wilshaw <thomaswilshaw@gmail.com>
Date:   Mon Jan 3 21:14:55 2022 +0000

    Optimise node slightly

commit 446522edcf63525fafe7a97cf6d59b7ea0385460
Author: Thomas Wilshaw <thomaswilshaw@gmail.com>
Date:   Mon Jan 3 21:10:03 2022 +0000

    Fix GL ES compile error

commit a765ce6c6f3e0c0e996f08e2a3ef1101818098e8
Author: Thomas Wilshaw <thomaswilshaw@gmail.com>
Date:   Sun Jan 2 18:27:24 2022 +0000

    Cleanup

commit d268e0645df34aa306dc391d1dc10bf335524f94
Author: Thomas Wilshaw <thomaswilshaw@gmail.com>
Date:   Sun Jan 2 18:03:26 2022 +0000

    Fix core matte and change Darks start value

commit 30b024dc5f59dd60ffc5012eee7a79201ed4f9c3
Author: Thomas Wilshaw <thomaswilshaw@gmail.com>
Date:   Sun Jan 2 17:26:39 2022 +0000

    Change matte controls and cleanup

commit b742a9ba7ed651785a0781289a4c03fd4fb72e03
Author: Thomas Wilshaw <thomaswilshaw@gmail.com>
Date:   Sun Jan 2 16:31:41 2022 +0000

    Add a core and garbage matte

commit f814d036b61b8de090df4c1f080c124b98b432d6
Author: Thomas Wilshaw <thomaswilshaw@gmail.com>
Date:   Sun Jan 2 03:31:20 2022 +0000

    Improve basic keyer

commit 4995ec3b9b92c9b4cb0dc31a247d585b2a47e408
Author: Thomas Wilshaw <thomaswilshaw@gmail.com>
Date:   Sun Jan 2 00:23:18 2022 +0000

    Start simple color key node
2022-04-12 13:05:45 -07:00
itsmattkc 7ba5dca4ab renderer: always hash along edges 2021-09-19 23:11:20 -07:00
itsmattkc b07bccb7dc nodes: revert to single output 2021-09-07 22:01:36 -07:00
itsmattkc a0706a78d8 nodes: implemented core of manual table value selection 2021-09-07 15:27:07 -07:00
itsmattkc 74ad4110be transform: hash the generated matrix
Making an exception for the transform node, we use a slightly
heavier hash to save more rendering time later.

Fixes #1560
Addresses some of #1360
2021-04-22 18:01:26 +10:00
itsmattkc 77d4b18a60 updated copyright year for 2021 [skip ci] 2021-04-17 18:56:50 +10:00
itsmattkc 3ce693ac16 timeinput: add missing punctuation 2021-04-17 15:04:51 +10:00
itsmattkc 893adc3d72 implemented value node
Also implements changes necessary to support an input data type
that changes. Much of that foundation was built in
`nodearchchanges`, but hadn't been finalized. This commit
finalizes and provides a reference implementation/test with the
"Value" node.

Fixes #1443
2021-04-12 16:37:26 +10:00
itsmattkc cb75e37e77 moved several files around
Mostly moved classes that became node derivatives into the node/ folder.
2021-04-08 12:15:59 +10:00
itsmattkc d7c5ac4b44 implement entire project in nodes
Project items are now represented directly in nodes opening up more versatility and possibilities. This is the first iteration of this and will be buggy. Need to test thoroughly.
2021-02-15 21:31:57 +11:00
itsmattkc 81c1922911 use strings to connect nodes
This makes the node system somewhat more high-level with the intent of making
working with them far more flexible and stable. By making the architecture more
abstracted, it becomes far less rigid which should allow us to do even more
with it and make it much less crash prone.
2021-02-09 15:48:37 +11:00
itsmattkc 181235f6ce began new infrastructure
Yep, this is another one of my "famous" sweeping rewrites. Expect things to break.

Goals for this are:
- Greatly simplify node connections (particularly with arrays) so the code requires less maintenance/is more stable
- Redesign node structure to address issues where UI would stall for lengthy periods of time
- Less reliance on shared ptrs/greater reliance on QObject system for inheritance/memory management
- General code cleanup and improvements
2021-01-05 11:20:38 +11:00
itsmattkc 6cb6407bd8 don't use shared ptrs on streams 2020-12-16 13:46:19 +11:00
itsmattkc b3c3fe0fc8 merged video and audio nodes into a single media node
They performed exactly the same function so I don't think we need the clutter.

Also bumped the project version, but old projects are automatically converted.
2020-11-18 13:48:14 +11:00
itsmattkc 75d4cd899b use hardcoded namespace
The macro defined namespaces confused the hell out of lupdate and more or less broke translations permanently. Looks like the only way we can do it is to have a hardcoded namespace, which goes against my instinct, but honestly how likely is it that we'll change the namespace anyway (I guess forks might want to do it, but that's their problem ;) )
2020-11-17 20:24:42 +11:00
itsmattkc d241090a9f finally updated the copyright year 2020-11-17 20:13:22 +11:00
itsmattkc 15a29288aa added Q_OBJECT macro to classes that were missing it 2020-11-17 19:13:16 +11:00
itsmattkc 1b9bf6d92c switched many QLists for QVectors
Minor optimization
2020-11-16 16:17:43 +11:00
itsmattkc 0d0766e4fb improved render channel count system 2020-11-15 22:16:40 +11:00
Thomas Wilshaw 4ddc659335 MediaInput: Rename streams access methods.
Change MediaInput::footage() to MediaInput::stream() and
MediaInput::SetFootage() to MediaInput::SetStream() as they access
streams not footage.

Also update all instances of access methods to reflect this change.
2020-10-19 15:50:36 +01:00
Thomas Wilshaw 7c7db5c933 Check footage in use before deleteing
Initial very hacky implementation that checks if the footgae is in
use before deleting it and makes sure all refernences to it are
properly cleaned up.

Also added IsMedia() function to Node to simplify things a bit.
2020-09-28 14:33:53 +01:00
itsmattkc 9aabde303e nodeview: added arrows to indicate a node can be expanded
Minor UI detail. Also slightly increases the size of node items and adds
"short names" to the video input and audio input nodes.
2020-08-21 15:15:39 +10:00
itsmattkc dd7af0e6bd nodes: minor overhaul to functionality
The nodes now have more control over how their accelerated shaders/sample
functions are run, as well as how items are popped off the value tables.
This allows for various optimizations that we didn't have access to before.
2020-06-12 00:54:15 +10:00
itsmattkc 71ec148e76 renderer: moved all shader code into one solidified function
Makes texture-based optimizations easier when they're all in one place.
2020-06-10 01:54:02 +10:00
itsmattkc 74d252c5c0 nodes: use defined categories rather than arbitrary string based 2020-05-05 22:12:15 +10:00
itsmattkc aecfa842c3 nodes: moved hashing to nodes so they can override behavior if they wish 2020-04-30 01:56:08 +10:00
itsmattkc ac3f49a845 nodes: moved matrix input on "video input" elsewhere
Rather than plugging a matrix into the video input node, the matrix is now
multiplied by the video input using a math node. This is probably more
sensible from a user perspective.

This also means the renderer is tolerant of texture sizes that are not equal
to the sequence size, however most nodes will downsample the texture to the
sequence size (and if not, it will be downsampled once it is cached). Textures
will still *always* be in reference space and the sequence's format. This seems
like the best compromise between backend and frontend congruity.
2020-04-27 04:11:24 +10:00
itsmattkc 53ae25a7cb nodes: optimize node graph changes by only updating from inputs that changed
A huge optimization that ensures only the parts of a node graph that have
changed get pushed to the renderer. For thread-safety, the node graph is
copied elsewhere so that users can make changes asynchronously and the graph
can update when its threads are ready. Up until now, if an input value changed,
every node's values would be re-copied, or worse, if a connection was changed,
the entire graph would be recopied. This has been negligible in testing since
we've been largely testing with small graphs, but for massive projects, it's
important that this be as optimized as possible.
2020-04-26 04:16:15 +10:00
itsmattkc 9db82ddc2e timeinput: fixed broken ID 2020-04-20 18:55:52 +10:00