Commit Graph
60 Commits
Author SHA1 Message Date
itsmattkc 7ba5dca4ab renderer: always hash along edges 2021-09-19 23:11:20 -07:00
itsmattkc 67c7c71ca2 implemented "value hints" for choosing output values to use 2021-09-17 20:56:53 -07:00
itsmattkc e08f2f9c34 more missing lines 2021-09-07 23:16:46 -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 df4138e5be node: provide convenience function for signing hashes with ID 2021-07-29 13:22:40 -07:00
itsmattkc 2d17173a38 mathbase: other corrections for gl es 2.0 2021-06-07 00:58:04 +10:00
itsmattkc 8d18a8d9d8 mathbase: replace texture() calls 2021-06-07 00:50:33 +10:00
itsmattkc 445d276cd0 nodes: further optimized merge node to passthrough RGB blend textures 2021-04-23 11:01:08 +10: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 210eb86cd2 nodes: fixed hashing issues 2021-04-11 18:54:22 +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 fb410e7c96 use vectors for sample buffers rather than raw ptr arrays 2021-03-17 11:54:14 +11: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 8497c6589c further merge hash optimizations 2021-01-18 12:04:03 +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 8a869d0393 use QObject property system now that i know how to signal them 2020-11-27 10:10:24 +11:00
itsmattkc a6d382f4d4 further improved gizmos 2020-11-22 18:21:24 +11:00
itsmattkc 54cd244801 nodes: added distort nodes
Adds nodes for cropping and transforming
2020-11-22 11:34:37 +11:00
itsmattkc 065fc9e10e miscellaneous shader changes
Since sequence resolution is provided to the nodes now, it no longer needs to be a global in the shaders
Removed some unused shaders
Added default params to ShaderCode to allow skipping types that aren't used
2020-11-22 10:31:37 +11:00
itsmattkc dcf56781b4 removed version macros from shaders and add automatically in compile step 2020-11-19 14:36:05 +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 1dd7e24920 merge: removed debug line 2020-11-16 02:01:51 +11:00
itsmattkc bb1f16c8e1 merge: don't merge if the blend texture is RGB 2020-11-15 22:47:10 +11:00
itsmattkc 0429e70fe0 merged all drawing functions into a single shader processing function 2020-11-10 15:50:13 +11:00
itsmattkc f9af69ca81 mathbase: use sample indices and copy rather than zeroing out 2020-09-21 04:15:52 +10:00
itsmattkc 6309b8fbb7 math: fixed power function
Corrected shader code and fixed bug in widget bridge that reported an
incorrect index.
2020-07-17 12:33:28 +10:00
itsmattkc ab74c1579e mathnode: temporarily disable identity matrix detection
This code was faulty and needs extra functionality elsewhere to
actually work correctly.
2020-06-19 02:44:26 +10:00
itsmattkc 282824ac49 volume: base off math node
Shares code with math node rather than having it twice.
2020-06-13 18:13:07 +10:00
itsmattkc af5097bf5f nodes: revert shader ID to string
Much easier to manage this way and fixes a compile issue on several
platforms.
2020-06-12 16:02:29 +10:00
itsmattkc 7b9764254d math: generate alpha channel only if multiplying a texture by a matrix 2020-06-12 03:44:23 +10:00
itsmattkc e2e8a6859c renderer: updated audio to work with minor node overhaul 2020-06-12 03:28:43 +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 430561e2ac sequence: made divider a sequence parameter rather than a viewer parameter
Doing this makes the preview resolution an explicit project setting rather
than a temporary UI setting. This will allow more consistency when caching.
2020-06-08 14:41:35 +10:00
itsmattkc c2e47a296c timeline: heavily optimized and improved nearly all timeline optimizations
Features a lot of timeline-related cache optimizations as well as general
optimizations and improvements in timeline behavior. Should improve
usability significantly.
2020-06-01 04:42:59 +10:00
itsmattkc 25b35725f6 nodes: added more default values to nodes 2020-05-09 18:55:42 +10:00
itsmattkc 78e305a593 mergenode: optimize so null textures (gaps, etc.) don't affect the hash 2020-05-06 16:14:27 +10:00
itsmattkc fb625cb76e nodes: removed XML infrastructure 2020-05-06 15:06:37 +10:00
itsmattkc 74d252c5c0 nodes: use defined categories rather than arbitrary string based 2020-05-05 22:12:15 +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
Simran Brucherseifer 5da9848de7 Upgrade shaders from GLSL 110 to 150 (OpenGL 3.2) 2020-04-22 11:28:33 +02:00
itsmattkc db117e0780 mathnode: increased decimal places
Also includes general improvements to the slider widget such as an optional
"autotrim" function to cut off trailing zeroes, a "format" string that's easier
to internationalize, and general tidiness.
2020-04-22 17:49:32 +10:00
itsmattkc 2f80be437a node: fixed issue with "taking" values from input tables
As opposed to simply leaving all values in the table, nodes can now "take"
values that they use to free up memory (e.g. "taking" input buffers if they're
used to produce an output buffer).

This is a fairly large change, expect regressions.
2020-04-16 23:12:05 +10:00
itsmattkc cb6c054b8d trigonometrynode: implemented trigonometry node 2020-04-15 02:41:20 +10:00