summaryrefslogtreecommitdiff
path: root/keyframes.cpp
diff options
context:
space:
mode:
authorFox Caminiti <fox@foxcam.net>2022-08-15 23:03:30 -0400
committerFox Caminiti <fox@foxcam.net>2022-08-15 23:03:30 -0400
commit04b7ccfd87d802e6b9a22b86c8d098979164b8ba (patch)
treeb155fbfb7d4b494bae79073161dfeb36dc8edc49 /keyframes.cpp
parent67898c6505c9180b5a5a31457f11d29b41fa91ba (diff)
undo started
Diffstat (limited to 'keyframes.cpp')
-rw-r--r--keyframes.cpp86
1 files changed, 35 insertions, 51 deletions
diff --git a/keyframes.cpp b/keyframes.cpp
index d2813a9..25c41c0 100644
--- a/keyframes.cpp
+++ b/keyframes.cpp
@@ -6,14 +6,6 @@ KeyframeLookupMemory(property_channel *Property, int16 i) {
}
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;
int16 b = i / MAX_KEYFRAMES_PER_BLOCK;
@@ -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
}
}
}
+ */
}