summaryrefslogtreecommitdiff
path: root/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'main.cpp')
-rw-r--r--main.cpp174
1 files changed, 131 insertions, 43 deletions
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.