From 87c3fbb37141827622eeadb89189c267ed4baf87 Mon Sep 17 00:00:00 2001 From: Fox Caminiti Date: Mon, 24 Oct 2022 22:58:07 -0400 Subject: development --- main.cpp | 174 +++++++++++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 131 insertions(+), 43 deletions(-) (limited to 'main.cpp') diff --git a/main.cpp b/main.cpp index d6f9e71..bdd4786 100644 --- a/main.cpp +++ b/main.cpp @@ -82,14 +82,11 @@ static uint32 RandomGlobalIncrement = 0; static void Main_RenderUI(ImGuiIO io, ImVec4 clear_color, SDL_Window *window) { - printf("Call ImGui::Render\n"); ImGui::Render(); glViewport(0, 0, (int)io.DisplaySize.x, (int)io.DisplaySize.y); glClearColor(clear_color.x * clear_color.w, clear_color.y * clear_color.w, clear_color.z * clear_color.w, clear_color.w); glClear(GL_COLOR_BUFFER_BIT); - printf("Call GL renderer\n"); ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData()); - printf("Call window swap\n"); SDL_GL_SwapWindow(window); } @@ -131,7 +128,7 @@ Main_InputTest(project_data *File, project_state *State, memory *Memory, ui *UI, ImGui::DockSpaceOverViewport(); if (!io.WantCaptureKeyboard) - ImGui_ProcessInputs(State, io); + ImGui_ProcessInputs(File, State, Memory, io); #if 0 @@ -147,10 +144,6 @@ Main_InputTest(project_data *File, project_state *State, memory *Memory, ui *UI, #if DEBUG ImGui_DebugUndoTree(&File, &Memory); - if (Debug.ToggleWindow) { - ImGui::ShowDemoWindow(); - ImGui_DebugMemoryViewer(&File, &Memory); - } #endif #endif @@ -159,7 +152,10 @@ Main_InputTest(project_data *File, project_state *State, memory *Memory, ui *UI, ImGui_Timeline(File, State, Memory, UI, io); ImGui_File(File, State, Memory, io); - ImGui_DebugMemoryViewer(State); + if (Debug.ToggleWindow) { + ImGui::ShowDemoWindow(); + ImGui_DebugMemoryViewer(State); + } // ImGui::ShowDemoWindow(); #if DEBUG @@ -305,15 +301,13 @@ int main(int argc, char *argv[]) { Memory_InitTable(&GlobalMemory, &Memory, 40 * 1024 * 1024, P_MiscCache, "Misc persistent"); Memory_InitTable(&GlobalMemory, &Memory, sizeof(project_data), F_File, "File", sizeof(project_data)); - Memory_InitTable(&GlobalMemory, &Memory, 10 * 1024 * 1024, F_Precomps, "Precomps", sizeof(block_composition)); - Memory_InitTable(&GlobalMemory, &Memory, 10 * 1024 * 1024, F_Layers, "Layers", sizeof(block_layer)); - Memory_InitTable(&GlobalMemory, &Memory, 10 * 1024 * 1024, F_Sources, "Sources", sizeof(block_source)); - // Memory_InitTable(&GlobalMemory, &Memory, 10 * 1024 * 1024, F_Effects, "Effects"); - // Memory_InitTable(&GlobalMemory, &Memory, 10 * 1024 * 1024, F_Keyframes, "Keyframe blocks"); + Memory_InitTable(&GlobalMemory, &Memory, 10 * 1024 * 1024, F_Precomps, "Precomps", sizeof(block_composition)); + Memory_InitTable(&GlobalMemory, &Memory, 10 * 1024 * 1024, F_Layers, "Layers", sizeof(block_layer)); + Memory_InitTable(&GlobalMemory, &Memory, 10 * 1024 * 1024, F_Sources, "Sources", sizeof(block_source)); + Memory_InitTable(&GlobalMemory, &Memory, 10 * 1024 * 1024, F_Bezier, "Bezier paths (keyframes, masks)", sizeof(block_bezier)); Memory_InitTable(&GlobalMemory, &Memory, 10 * 1024 * 1024, F_Strings, "Strings", sizeof(block_string)); Memory_InitTable(&GlobalMemory, &Memory, (uint64)64 * 1024 * 1024, B_ScratchSpace, "Scratch"); - // Memory_InitTable(&GlobalMemory, &Memory, (uint64)1 * 1024 * 1024, B_CachedBitmapInfo, "Cached bitmap info"); Memory_InitTable(&GlobalMemory, &Memory, (uint64)50 * 1024 * 1024, B_CachedBitmaps, "Cached bitmap buffer"); #if ARM @@ -367,44 +361,141 @@ int main(int argc, char *argv[]) { uint16 SourceIndex = Source_Generate(File, State, &Memory, (void *)"../asset/a.jpg"); block_source *Source = (block_source *)Memory_Block_AddressAtIndex(&Memory, F_Sources, 0); - Layer_CreateFromSource(File, State, &Memory, SourceIndex, MainComp->Frame_End); + { + Layer_CreateFromSource(File, State, &Memory, SourceIndex, MainComp->Frame_End); + block_layer *Layer = (block_layer *)Memory_Block_AddressAtIndex(&Memory, F_Layers, File->Layer_Count - 1); + Layer->Vertical_Offset = 6; + Layer->Col[0] = 1; + Layer->Col[1] = 0; + Layer->Col[2] = 0; + Layer->Block_Composition_Index = 0; + + property_channel *Property = &Layer->x; + Property->Block_Bezier_Index[0] = Memory_Block_AllocateNew(&Memory, F_Bezier); + Property->Block_Bezier_Count = 1; + + block_bezier *Bezier = (block_bezier *)Memory_Block_AddressAtIndex(&Memory, F_Bezier, Property->Block_Bezier_Index[0]); + Bezier->Occupied = 1; + + Bezier->Point[0].Pos[0] = V2(0, 0); + Bezier->Point[1].Pos[0] = V2(10, 50); + Bezier->Point[2].Pos[0] = V2(20, -50); + Bezier->Point[0].Pos[1] = V2(-4, 0); + Bezier->Point[1].Pos[1] = V2(-4, 0); + Bezier->Point[2].Pos[1] = V2(-4, 0); + Bezier->Point[0].Pos[2] = V2(4, 0); + Bezier->Point[1].Pos[2] = V2(4, 0); + Bezier->Point[2].Pos[2] = V2(4, 0); + Bezier->Point[0].Type = interpolation_type_bezier; + Bezier->Point[1].Type = interpolation_type_bezier; + Bezier->Point[2].Type = interpolation_type_bezier; + Property->Keyframe_Count = 3; + + property_channel *Property2 = &Layer->opacity; + Property2->Block_Bezier_Index[0] = Memory_Block_AllocateNew(&Memory, F_Bezier); + Property2->Block_Bezier_Count = 1; + + block_bezier *Bezier2 = (block_bezier *)Memory_Block_AddressAtIndex(&Memory, F_Bezier, Property2->Block_Bezier_Index[0]); + Bezier2->Occupied = 1; + + Bezier2->Point[0].Pos[0] = V2(0, 0); + Bezier2->Point[1].Pos[0] = V2(20, 1); + Property2->Keyframe_Count = 2; + + /* + property_channel *Property3 = &Layer->y; + Property3->Block_Bezier_Index[0] = Memory_Block_AllocateNew(&Memory, F_Bezier); + Property3->Block_Bezier_Count = 1; + + block_bezier *Bezier3 = (block_bezier *)Memory_Block_AddressAtIndex(&Memory, F_Bezier, Property3->Block_Bezier_Index[0]); + Bezier3->Occupied = 1; + + Bezier3->Point[0].Pos[0] = V2(0, -20); + Bezier3->Point[1].Pos[0] = V2(10, 300); + Bezier3->Point[2].Pos[0] = V2(20, 100); + Bezier3->Point[0].Pos[1] = V2(-4, 0); + Bezier3->Point[1].Pos[1] = V2(-4, 0); + Bezier3->Point[2].Pos[1] = V2(-4, 0); + Bezier3->Point[0].Pos[2] = V2(4, 0); + Bezier3->Point[1].Pos[2] = V2(4, 0); + Bezier3->Point[2].Pos[2] = V2(4, 0); + Bezier3->Point[0].Type = interpolation_type_bezier; + Bezier3->Point[1].Type = interpolation_type_bezier; + Bezier3->Point[2].Type = interpolation_type_bezier; + Property3->Keyframe_Count = 3; + */ + } + // { + // Layer_CreateFromSource(File, State, &Memory, SourceIndex, MainComp->Frame_End); + // block_layer *Layer = (block_layer *)Memory_Block_AddressAtIndex(&Memory, F_Layers, File->Layer_Count - 1); + // Layer->Vertical_Offset = 1; + // Layer->Col[0] = 1; + // Layer->Col[1] = 0; + // Layer->Col[2] = 0; + // Layer->Block_Composition_Index = 1; + // } } - block_layer *Layer = (block_layer *)Memory_Block_AddressAtIndex(&Memory, F_Layers, 0); - { uint16 SourceIndex = Source_Generate(File, State, &Memory, (void *)"../asset/b.jpg"); block_source *Source = (block_source *)Memory_Block_AddressAtIndex(&Memory, F_Sources, 1); - - Layer_CreateFromSource(File, State, &Memory, 1, MainComp->Frame_End); - Layer_CreateFromSource(File, State, &Memory, SourceIndex, MainComp->Frame_End); + // { + // Layer_CreateFromSource(File, State, &Memory, SourceIndex, MainComp->Frame_End); + // block_layer *Layer = (block_layer *)Memory_Block_AddressAtIndex(&Memory, F_Layers, File->Layer_Count - 1); + // Layer->Vertical_Offset = 5; + // Layer->Col[0] = 0; + // Layer->Col[1] = 0; + // Layer->Col[2] = 1; + // Layer->Block_Composition_Index = 0; + // } } { uint16 SourceIndex = Source_Generate(File, State, &Memory, (void *)"../asset/c.jpg"); block_source *Source = (block_source *)Memory_Block_AddressAtIndex(&Memory, F_Sources, 2); - - Layer_CreateFromSource(File, State, &Memory, SourceIndex, MainComp->Frame_End); + // { + // Layer_CreateFromSource(File, State, &Memory, SourceIndex, MainComp->Frame_End); + // block_layer *Layer = (block_layer *)Memory_Block_AddressAtIndex(&Memory, F_Layers, File->Layer_Count - 1); + // Layer->Vertical_Offset = 0; + // Layer->Col[0] = 0; + // Layer->Col[1] = 1; + // Layer->Col[2] = 0; + // Layer->Block_Composition_Index = 1; + // } + // { + // Layer_CreateFromSource(File, State, &Memory, SourceIndex, MainComp->Frame_End); + // block_layer *Layer = (block_layer *)Memory_Block_AddressAtIndex(&Memory, F_Layers, File->Layer_Count - 1); + // Layer->Vertical_Offset = 4; + // Layer->Col[0] = 0; + // Layer->Col[1] = 1; + // Layer->Col[2] = 1; + // Layer->Block_Composition_Index = 1; + // } } - block_layer *Layer1 = (block_layer *)Memory_Block_AddressAtIndex(&Memory, F_Layers, 0); - Layer1->Vertical_Offset = 0; - - block_layer *Layer2 = (block_layer *)Memory_Block_AddressAtIndex(&Memory, F_Layers, 1); - Layer2->IsPrecomp = true; - Layer2->Vertical_Offset = 1; - Layer2->Col[0] = 1; - - block_layer *Layer3 = (block_layer *)Memory_Block_AddressAtIndex(&Memory, F_Layers, 2); - Layer3->Vertical_Offset = 0; - Layer3->Col[1] = 1; - Layer3->Block_Composition_Index = 1; - - block_layer *Layer4 = (block_layer *)Memory_Block_AddressAtIndex(&Memory, F_Layers, 3); - Layer4->Vertical_Offset = 1; - Layer4->Col[2] = 1; - Layer4->Block_Composition_Index = 1; + /* + { + Layer_CreateFromSource(File, State, &Memory, 1, MainComp->Frame_End); + block_layer *Layer = (block_layer *)Memory_Block_AddressAtIndex(&Memory, F_Layers, File->Layer_Count - 1); + Layer->IsPrecomp = true; + Layer->Vertical_Offset = 9; + Layer->Col[0] = 1; + Layer->Col[1] = 1; + Layer->Col[2] = 1; + Layer->Block_Composition_Index = 0; + } + { + Layer_CreateFromSource(File, State, &Memory, 1, MainComp->Frame_End); + block_layer *Layer = (block_layer *)Memory_Block_AddressAtIndex(&Memory, F_Layers, File->Layer_Count - 1); + Layer->IsPrecomp = true; + Layer->Vertical_Offset = 10; + Layer->Col[0] = 1; + Layer->Col[1] = 1; + Layer->Col[2] = 1; + Layer->Block_Composition_Index = 0; + } + */ // History_Undo(&Memory); // History_Redo(&Memory); @@ -516,17 +607,14 @@ int main(int argc, char *argv[]) { while (State->IsRunning) { - printf("Call UI\n"); Main_InputTest(File, State, &Memory, &UI, window, textureID); if (State->UpdateFrame) { - printf("Call renderer\n"); Main_Renderer(File, State, &Memory, window, textureID, io); } Assert(Debug.ScratchState == 0); - printf("Call render UI\n"); Main_RenderUI(io, clear_color, window); // TODO(fox): Fix things that rely on this. -- cgit v1.2.3