Large refactor of Timeline, TimelineBase, ClipBase, and Clip, to allow a Clip access to the parent timeline instance (if available), and thus, certain properties (preview size, timeline FPS, etc...). This allows for a simpler rendering of Clip keyframes (during the Clip::GetFrame method), and a simpler Timeline class, that can change the preview window size dynamically and no longer requires a Singleton Settings class.

- Also removed "crop" from Clip class, as it was never implmeneted correctly, and we have a fully functional "crop" effect when needed
 - Added caching to Clip class, to optimize previewing of cached frames (much faster than previous)
This commit is contained in:
Jonathan Thomas
2020-10-04 16:59:21 -05:00
committed by FeRD (Frank Dana)
parent 6da4e8fded
commit 8387b124ad
35 changed files with 509 additions and 326 deletions

View File

@@ -138,3 +138,13 @@ Json::Value EffectBase::JsonInfo() const {
// return JsonValue
return root;
}
/// Parent clip object of this reader (which can be unparented and NULL)
openshot::ClipBase* EffectBase::ParentClip() {
return clip;
}
/// Set parent clip object of this reader
void EffectBase::ParentClip(openshot::ClipBase* new_clip) {
clip = new_clip;
}