From 04b7ccfd87d802e6b9a22b86c8d098979164b8ba Mon Sep 17 00:00:00 2001 From: Fox Caminiti Date: Mon, 15 Aug 2022 23:03:30 -0400 Subject: undo started --- keyframes.cpp | 86 ++++++++++++++++++++++++----------------------------------- 1 file changed, 35 insertions(+), 51 deletions(-) (limited to 'keyframes.cpp') diff --git a/keyframes.cpp b/keyframes.cpp index d2813a9..25c41c0 100644 --- a/keyframes.cpp +++ b/keyframes.cpp @@ -5,14 +5,6 @@ KeyframeLookupMemory(property_channel *Property, int16 i) { return &Property->KeyframeBlock[b]->Keyframe[k]; } -static keyframe* -KeyframeLookupIndex(property_channel *Property, int16 a) { - int16 i = Property->SortedIndex[a]; - int16 b = i / MAX_KEYFRAMES_PER_BLOCK; - int16 k = i - b*MAX_KEYFRAMES_PER_BLOCK; - return &Property->KeyframeBlock[b]->Keyframe[k]; -} - static keyframe* PushKeyframe(property_channel *Property) { int16 i = Property->NumberOfTotalKeyframes; @@ -21,7 +13,6 @@ PushKeyframe(property_channel *Property) { return &Property->KeyframeBlock[b]->Keyframe[k]; } -// (extremely bad) static temp_keyframe_list GetSelectedKeyframes(project_data *File) { @@ -42,20 +33,6 @@ GetSelectedKeyframes(project_data *File) return KeyframeList; } -static int32 -KeyframeMemoryToIndex(property_channel *Property, int32 a) -{ - int32 Result = -1; - for (int l = 0; l < Property->NumberOfTotalKeyframes; l++) { - if (Property->SortedIndex[l] == a) { - Result = l; - break; - } - } - Assert(Result > -1); - return Result; -} - static void SelectKeyframe(project_data *File, project_layer *Layer, property_channel *Property, keyframe *Keyframe) { @@ -77,6 +54,7 @@ DeselectKeyframe(project_data *File, project_layer *Layer, property_channel *Pro static void CheckKeyframeSort(property_channel *Property, int32 Increment, int32 b) { + /* int32 i = KeyframeMemoryToIndex(Property, b); if (Increment > 0) { if (i+1 != Property->NumberOfTotalKeyframes) { @@ -99,10 +77,12 @@ CheckKeyframeSort(property_channel *Property, int32 Increment, int32 b) } } } + */ } static void ShiftKeyframeIndex(property_channel *Property, int16 Increment, int16 StopAt) { + /* if (Increment > 0) { int16 i = Property->NumberOfTotalKeyframes - 1; while (i > StopAt) { @@ -116,6 +96,7 @@ ShiftKeyframeIndex(property_channel *Property, int16 Increment, int16 StopAt) { i++; } } + */ } static void @@ -143,6 +124,7 @@ DeleteKeyframeFromMemory(property_channel *Property, int16 Increment, int16 Stop static void ResortPropertyChannel(property_channel *Property) { + /* for (int16 i = 0; i < Property->NumberOfTotalKeyframes; i++) { Property->SortedIndex[i] = i; @@ -163,6 +145,7 @@ ResortPropertyChannel(property_channel *Property) { if (Swaps == 0) break; } + */ } static void @@ -211,10 +194,12 @@ CalculatePropertyMinMax(property_channel *Property) { static void IncrementKeyframes(property_channel *Property, int16 Increment) { + /* for (int i = 0; i < Property->NumberOfTotalKeyframes; i++) { keyframe *Keyframe = KeyframeLookupIndex(Property, i); Keyframe->FrameNumber += Increment; } + */ } static void @@ -235,8 +220,8 @@ static void ClampKeyframeHandles(property_channel *Property, int16 b, int16 dir) { if (dir == 0) { if (b > 0) { - keyframe *Keyframe = KeyframeLookupIndex(Property, b - 1); - keyframe *NextKeyframe = KeyframeLookupIndex(Property, b); + keyframe *Keyframe = KeyframeLookupMemory(Property, b - 1); + keyframe *NextKeyframe = KeyframeLookupMemory(Property, b); real32 XSpan = NextKeyframe->FrameNumber - Keyframe->FrameNumber; // TODO(fox): Fix this! #if WINDOWS @@ -251,8 +236,8 @@ ClampKeyframeHandles(property_channel *Property, int16 b, int16 dir) { } if (dir == 1) { if (b < Property->NumberOfTotalKeyframes - 1) { - keyframe *Keyframe = KeyframeLookupIndex(Property, b); - keyframe *NextKeyframe = KeyframeLookupIndex(Property, b + 1); + keyframe *Keyframe = KeyframeLookupMemory(Property, b); + keyframe *NextKeyframe = KeyframeLookupMemory(Property, b + 1); real32 XSpan = NextKeyframe->FrameNumber - Keyframe->FrameNumber; if (Keyframe->TangentRight.x > XSpan) Keyframe->TangentRight.x = XSpan; @@ -281,55 +266,53 @@ ClampSurroundingKeyframeHandles(property_channel *Property, int16 b) { static void ManualKeyframeInsertF(property_channel *Property, memory *Memory, int32 CurrentFrame, real32 Val) { + /* if (!(Property->NumberOfTotalKeyframes % MAX_KEYFRAMES_PER_BLOCK)) { CreateKeyframeBlock(Property, Memory); } keyframe *Keyframe = NULL; if (Property->NumberOfTotalKeyframes == 0) { Keyframe = &Property->KeyframeBlock[0]->Keyframe[0]; - Property->NumberOfTotalKeyframes++; } else if (Property->NumberOfTotalKeyframes == 1) { - Keyframe = &Property->KeyframeBlock[0]->Keyframe[0]; - if (CurrentFrame != Keyframe->FrameNumber) { - if (CurrentFrame > Keyframe->FrameNumber) { - Property->SortedIndex[1] = 1; - } else { - Property->SortedIndex[0] = 1; - } - Property->NumberOfTotalKeyframes++; - } - Keyframe = &Property->KeyframeBlock[0]->Keyframe[1]; - } else { - keyframe *LastKeyframe = KeyframeLookupIndex(Property, Property->NumberOfTotalKeyframes-1); - if (LastKeyframe->FrameNumber < CurrentFrame) { - Property->SortedIndex[Property->NumberOfTotalKeyframes] = Property->NumberOfTotalKeyframes; + keyframe *FirstKeyframe = &Property->KeyframeBlock[0]->Keyframe[0]; + if (CurrentFrame > FirstKeyframe->FrameNumber) { + Keyframe = &Property->KeyframeBlock[0]->Keyframe[1]; } else { - for (int16 i = 0; i < Property->NumberOfTotalKeyframes; i++) { - keyframe *CurrentKeyframe = KeyframeLookupIndex(Property, i); - if (CurrentKeyframe->FrameNumber > CurrentFrame) { - ShiftKeyframeIndex(Property, 1, i - 1); - Property->SortedIndex[i] = Property->NumberOfTotalKeyframes; - break; - } + Keyframe = &Property->KeyframeBlock[0]->Keyframe[0]; + } + } else { + uint32 Index = Property->NumberOfTotalKeyframes - 1; + bool32 Found = false; + while (!Found) { + keyframe *CurrentKeyframe = KeyframeLookupMemory(Property, Index); + if (CurrentKeyframe->FrameNumber < CurrentFrame) { + ShiftKeyframes(Property, 1, i - 1); + Found = true; + } else { + Index--; } } Keyframe = PushKeyframe(Property); - Property->NumberOfTotalKeyframes++; } + if (Keyframe->FrameNumber != CurrentFrame) + Property->NumberOfTotalKeyframes++; Assert(!(Keyframe == NULL)) + Keyframe->FrameNumber = CurrentFrame; Keyframe->Value.f = Val; Keyframe->Type = bezier; Keyframe->TangentLeft = V2(-1, 0); Keyframe->TangentRight = V2(1, 0); + Keyframe->ImguiID = RandomGlobalIncrement++; CalculatePropertyMinMax(Property); + */ } static void CalculateKeyframesLinearly(uint16 CurrentFrame, struct property_channel *Property) { - + /* keyframe *FirstKeyframe = KeyframeLookupIndex(Property, 0); keyframe *LastKeyframe = KeyframeLookupIndex(Property, Property->NumberOfTotalKeyframes - 1); @@ -385,4 +368,5 @@ CalculateKeyframesLinearly(uint16 CurrentFrame, struct property_channel *Propert } } } + */ } -- cgit v1.2.3