From 04b7ccfd87d802e6b9a22b86c8d098979164b8ba Mon Sep 17 00:00:00 2001 From: Fox Caminiti Date: Mon, 15 Aug 2022 23:03:30 -0400 Subject: undo started --- main.h | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) (limited to 'main.h') diff --git a/main.h b/main.h index e77042f..4e48fc5 100644 --- a/main.h +++ b/main.h @@ -29,10 +29,12 @@ enum memory_table_list { // B = cached data, often cleared P_AVInfo, - P_SourceBitmapTable, P_VectorPoints, - P_MiscCache, // don't put this in final + P_UndoBuffer, + P_MiscCache, + // The structs that these four blocks correspond to (project_layer, effect, + // keyframe_block, char[STRING_SIZE]) are guranteed equal size. F_Layers, F_Effects, F_Keyframes, @@ -165,6 +167,17 @@ struct gl_effect_layer { static gl_vertex_shader GL_Vertices; +enum action_change_type { + action_change_u16, + action_change_i16, + action_change_u32, + action_change_i32, + action_change_r32, + action_change_u64, + action_change_ptr, + action_change_string, +}; + union val { real32 f; v4 col; @@ -180,6 +193,9 @@ struct keyframe { // Probably should think of something smarter. v2 TangentLeft; v2 TangentRight; + // NOTE(fox): We need some sort of unique constant to give to ImGui in + // order for dragging to work. + uint32 ImguiID; }; struct keyframe_block { @@ -189,7 +205,6 @@ struct keyframe_block { struct property_channel { char *Name; keyframe_block *KeyframeBlock[MAX_KEYFRAME_BLOCKS]; - uint16 SortedIndex[MAX_KEYFRAME_BLOCKS * MAX_KEYFRAMES_PER_BLOCK]; uint16 NumberOfKeyframeBlocks; uint16 NumberOfSelectedKeyframes; uint16 NumberOfTotalKeyframes; @@ -299,8 +314,6 @@ struct effect { bool32 IsActive = 1; }; - - struct transform_info { real32 XAxisPX; real32 XAxisPY; @@ -323,6 +336,7 @@ struct transform_info { struct mask_point { v2 Pos; bool32 HandleBezier; + bool32 IsSelected; v2 TangentLeft; v2 TangentRight; }; @@ -330,6 +344,7 @@ struct mask_point { struct mask { mask_point Point[16]; uint16 NumberOfPoints; + uint16 NumberOfSelectedPoints; void *TriangulatedPointCache; uint32 NumberOfVerts; }; @@ -435,6 +450,8 @@ enum selection_type selection_layer, selection_effect, selection_keyframe, + selection_maskpoint, + selection_source }; enum tool { -- cgit v1.2.3