itsmattkc
1b9bf6d92c
switched many QLists for QVectors
...
Minor optimization
2020-11-16 16:17:43 +11:00
itsmattkc
0429e70fe0
merged all drawing functions into a single shader processing function
2020-11-10 15:50:13 +11:00
itsmattkc
ce353ccbed
timeline: various work to improve timeline behavior, particularly when dealing with transitions
2020-07-22 18:09:57 +10:00
itsmattkc
c301f71d1a
Merge branch 'master' of https://github.com/olive-editor/olive
2020-07-19 12:11:47 +10:00
itsmattkc
d54d59fac6
transition: remove alpha channel requirement
2020-07-19 11:33:51 +10:00
Thomas Wilshaw
f4da255b35
Attempt to fix CI build errors.
2020-07-17 17:35:29 +01:00
itsmattkc
662d66ad10
transitions: extended transition logic
...
General code and functionality improvements. Moved more code out of the
OpenGL backend for portability. Implemented audio transitions.
Implemented basic transition animation curve settings.
2020-07-16 00:36:21 +10:00
itsmattkc
ae62750d9d
various: fix broken transition creation
...
It's now possible to create transitions! But they're still broken in
a multitude of other ways so plenty more work to do hahahahahahahahaha
2020-07-14 22:31:11 +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
d49c6a059c
nodes: optimize blocks so they don't unnecessarily change the hash
2020-05-06 16:14:23 +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
aecfa842c3
nodes: moved hashing to nodes so they can override behavior if they wish
2020-04-30 01:56:08 +10:00
itsmattkc
999e841bc7
nodes: implemented short name
...
Nodes can provide "short" names for use in the node graph, distinct from their
full names shown everywhere else.
2020-04-29 14:33:57 +10:00
itsmattkc
a796cb2c13
nodeparamview: separated the NodeParamView body into a separate widget for nesting
...
Will allow display of NodeInputArrays.
2020-04-18 23:28:11 +10:00
itsmattkc
1aa87cbda6
various: encapsulate all code in the olive namespace to avoid name collisions
...
Large-scale code cleanup. Also adds a license to the top of all files that were
missing it.
2020-04-06 15:29:53 +10:00
itsmattkc
7100d00060
nodes: made changes to the node system to allow for context sensitive shader code
...
Primarily implemented for the math node so a new shader can be generated and
compiled based on what inputs the node is receiving.
2020-03-29 03:11:30 +11:00
itsmattkc
16904c976f
serialize rationals correctly and move block name to a node input
...
Since rationals aren't a known Qt format, the QVariant container can't
automatically convert them to and from strings (for XML serialization). We have
to hijack these functions and do the conversion manually for those types.
Also moved the block name type to a node input, which means it's serialized
and copied by default (I'm not sure why it wasn't already like this).
2020-01-14 00:59:49 +11:00
itsmattkc
5d8be03970
implemented support for trimming transitions
2020-01-07 01:47:58 +11:00
itsmattkc
d3ed7f9863
hash the transition's progress
...
Since the transition progress directly affects the resulting image, it's
important to include it in the frame hash.
2020-01-06 17:25:38 +11:00
itsmattkc
8358d7d221
moved progress calculations from openglworker to transitionblock
...
These functions are universal transition functions that have use outside of
the OpenGL workers.
2020-01-06 16:35:45 +11:00
itsmattkc
8391a732b1
automatically store block connections in the transitionblock class
...
Convenience code that automatically returns valid blocks if they're connected.
2020-01-06 16:29:14 +11:00
itsmattkc
dae09abf45
use speed value instead of media out value
...
This functions more or less identically to using a media out value, but the
desired speed is preserved through block length changes, even if the block's
length is reduced to zero (i.e. no rounding errors).
2020-01-06 15:21:27 +11:00
itsmattkc
7a512cc540
set some parameters to not-keyframable
2019-12-27 01:25:52 +11:00
itsmattkc
c62b59965e
updated nodes for new input structure
...
Since all NodeInputs will generally only need their data type and default
value set once, we place it all into the constructor for cleaner and easier
to manage code.
2019-12-26 16:29:56 +11:00
itsmattkc
f616a0d123
ported dip to black transition to external type and reimplemented drop shadow shader
2019-12-18 01:18:31 +11:00
itsmattkc
4e6da87585
ported crossdissolve to external shader
2019-12-17 15:58:16 +11:00
itsmattkc
6a4dcc673a
implemented external xml/shader loading for transitions as well as regular nodes
...
Transitions are nodes but have a few parameters that are programmatic and always
required. This lets people write external code for transitions as well.
2019-12-17 15:44:13 +11:00
itsmattkc
4ba024e3ae
implemented media out value to allow speed changes in clips
2019-12-16 18:29:35 +11:00
itsmattkc
0b7782e129
added support for multiple node iterations
...
Optimizes various effects, particularly blurs.
2019-12-15 00:39:28 +11:00
itsmattkc
526f07ba08
implemented demonstrative dip to black transition
2019-12-12 19:00:49 +11:00
itsmattkc
76c0399b75
implemented base transition support
...
While very much incomplete, transitions can now be created and will render
correctly.
2019-12-12 15:21:39 +11:00
itsmattkc
2fb4047e6f
moved all shader code out of C++ source and into external shader files
...
General code cleanup and easier maintenance.
2019-12-10 00:10:00 +11:00
itsmattkc
26b3993b9d
made vast improvements to rendering engine and node structure
...
This was many changes that were largely fundamentally related. They included:
- More const modifiers to enforce read only node graphs
- Support for fragment and vertex shaders from the nodes
- Support for node code loaded externally (embedded into the binary)
- Fixed issue preventing two textures from being used in a shader
- Removed several unused functions and cleaned up code
- Fixed video media node misreading its matrix input
2019-12-09 23:50:52 +11:00
itsmattkc
5affc37699
added custom category and data types to transition base class
2019-12-09 23:46:50 +11:00
itsmattkc
c1b96927a2
this files were actually renamed in an earlier commit but i forgot to add them
2019-12-09 23:46:15 +11:00
itsmattkc
cc8aeea672
started pair of transition derivatives
...
These will serve as stock transitions and as a reference implementation for
hardware accelerated transitions.
2019-12-09 23:44:27 +11:00
itsmattkc
4bb874a154
fix sigfpe on timecode function if the timebase isn't valid
2019-12-09 23:43:03 +11:00
itsmattkc
0c6ec926b6
started base transition type
...
Like the base "Block" type, the "Transition" type will not be a node used on its
own, it will have to be derived. This type defines some basic behavior for a
transition (e.g. how much it overlaps its "from" and "to" blocks).
2019-12-07 02:49:30 +11:00