diff options
Diffstat (limited to 'src/include/memory.h')
-rw-r--r-- | src/include/memory.h | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/src/include/memory.h b/src/include/memory.h new file mode 100644 index 0000000..dab6ed4 --- /dev/null +++ b/src/include/memory.h @@ -0,0 +1,71 @@ +enum memory_table_list { + + P_AVInfo, + P_UndoBuffer, + P_MiscCache, + + F_File, + F_Precomps, + F_Layers, + F_Sources, + F_Properties, + F_Bezier, + F_Effects, + F_Strings, + F_PrincipalBitmaps, + + B_Thumbnails, + B_ScratchSpace, + B_CacheEntries, + B_CachedBitmaps, +}; + +struct memory_table { + char *Name; + void *Address; + uint64 Size; + uint32 Block_ElementSize; +}; + +struct global_memory { + void *Address; + uint64 CurrentPosition; + uint64 Size; +}; + +enum history_action_type { + action_type_swap, + action_type_swap_bitmap, + action_type_shift +}; + +struct history_action { + memory_table_list TableName; + history_action_type Type; + uint64 Size; + uint64 ByteOffset; + uint64 ShiftAmount; // Only for type_shift + int16 Direction; // Only for type_shift +}; + +struct history_entry { + char *Name; + uint16 NumberOfActions; +}; + +struct history_entry_list { + history_entry Entry[256]; + history_action Action[1024]; + uint16 NumberOfEntries; + uint16 EntryPlayhead; +}; + +struct memory { + memory_table Slot[16]; + history_entry_list History; + uint64 ScratchPos; + uint32 EntryCount; + bool32 IsFileSaved; + bool32 PurgeCache; +}; + |