diff options
Diffstat (limited to 'src/createcalls.cpp')
-rw-r--r-- | src/createcalls.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/createcalls.cpp b/src/createcalls.cpp index cd8f3d5..4334dc8 100644 --- a/src/createcalls.cpp +++ b/src/createcalls.cpp @@ -627,6 +627,18 @@ Project_ShapeLayer_New(project_data *File, project_state *State, memory *Memory) Layer->Frame_End = MainComp->Frame_End; Layer_Select(Memory, State, Memory_Block_LazyIndexAtAddress(Memory, F_Layers, Layer)); + shape_layer *Shape = &File->UI.Shape; + v2 Min = {}, Max = {}; + void *Data = Memory_PushScratch(Memory, sizeof(nvg_point) * 128); + layer_transforms T = {}; + NVG_FlattenPath(Memory, Shape, (nvg_point *)Data, State, T, 0, 0, 0, 0, 0, &Min, &Max); + Memory_PopScratch(Memory, sizeof(nvg_point) * 128); + Shape->Width = Max.x - Min.x; + Shape->Height = Max.y - Min.y; + Layer->x.CurrentValue = Min.x + (Shape->Width / 2); + Layer->y.CurrentValue = Min.y + (Shape->Height / 2); + + /* v2 Min = V2(10000, 10000); v2 Max = V2(-10000, -10000); shape_layer *Shape = &File->UI.Shape; @@ -644,6 +656,7 @@ Project_ShapeLayer_New(project_data *File, project_state *State, memory *Memory) v2 ShapeSize = (Max - Min); Layer->x.CurrentValue = Min.x + (ShapeSize.x / 2); Layer->y.CurrentValue = Min.y + (ShapeSize.y / 2); + */ for (int i = 0; i < Shape->Point_Count; i++) { bezier_point *Point = Bezier_LookupAddress(Memory, Shape->Block_Bezier_Index, i, 1); Point->Pos[0] = Point->Pos[0] - Min; |