@@ -127,9 +127,11 @@ fn zguiMemFree(maybe_ptr: ?*anyopaque, _: ?*anyopaque) callconv(.C) void {
127
127
defer mem_mutex .unlock ();
128
128
129
129
if (mem_allocations != null ) {
130
- const size = mem_allocations .? .fetchRemove (@intFromPtr (ptr )).? .value ;
131
- const mem = @as ([* ]align (mem_alignment ) u8 , @ptrCast (@alignCast (ptr )))[0.. size ];
132
- mem_allocator .? .free (mem );
130
+ if (mem_allocations .? .fetchRemove (@intFromPtr (ptr ))) | kv | {
131
+ const size = kv .value ;
132
+ const mem = @as ([* ]align (mem_alignment ) u8 , @ptrCast (@alignCast (ptr )))[0.. size ];
133
+ mem_allocator .? .free (mem );
134
+ }
133
135
}
134
136
}
135
137
}
@@ -4226,6 +4228,59 @@ pub const DrawList = *opaque {
4226
4228
num_segments : c_int ,
4227
4229
) void ;
4228
4230
//----------------------------------------------------------------------------------------------
4231
+ pub fn addEllipse (draw_list : DrawList , args : struct {
4232
+ p : [2 ]f32 ,
4233
+ r : [2 ]f32 ,
4234
+ col : u32 ,
4235
+ rot : f32 = 0 ,
4236
+ num_segments : i32 = 0 ,
4237
+ thickness : f32 = 1.0 ,
4238
+ }) void {
4239
+ zguiDrawList_AddEllipse (
4240
+ draw_list ,
4241
+ & args .p ,
4242
+ & args .r ,
4243
+ args .col ,
4244
+ args .rot ,
4245
+ args .num_segments ,
4246
+ args .thickness ,
4247
+ );
4248
+ }
4249
+ extern fn zguiDrawList_AddEllipse (
4250
+ draw_list : DrawList ,
4251
+ center : * const [2 ]f32 ,
4252
+ radius : * const [2 ]f32 ,
4253
+ col : u32 ,
4254
+ rot : f32 ,
4255
+ num_segments : c_int ,
4256
+ thickness : f32 ,
4257
+ ) void ;
4258
+ //----------------------------------------------------------------------------------------------
4259
+ pub fn addEllipseFilled (draw_list : DrawList , args : struct {
4260
+ p : [2 ]f32 ,
4261
+ r : [2 ]f32 ,
4262
+ col : u32 ,
4263
+ rot : f32 = 0 ,
4264
+ num_segments : u16 = 0 ,
4265
+ }) void {
4266
+ zguiDrawList_AddEllipseFilled (
4267
+ draw_list ,
4268
+ & args .p ,
4269
+ & args .r ,
4270
+ args .col ,
4271
+ args .rot ,
4272
+ args .num_segments ,
4273
+ );
4274
+ }
4275
+ extern fn zguiDrawList_AddEllipseFilled (
4276
+ draw_list : DrawList ,
4277
+ center : * const [2 ]f32 ,
4278
+ radius : * const [2 ]f32 ,
4279
+ col : u32 ,
4280
+ rot : f32 ,
4281
+ num_segments : c_int ,
4282
+ ) void ;
4283
+ //----------------------------------------------------------------------------------------------
4229
4284
pub fn addNgon (draw_list : DrawList , args : struct {
4230
4285
p : [2 ]f32 ,
4231
4286
r : f32 ,
@@ -4324,6 +4379,25 @@ pub const DrawList = *opaque {
4324
4379
col : u32 ,
4325
4380
) void ;
4326
4381
//----------------------------------------------------------------------------------------------
4382
+ pub fn addConcavePolyFilled (
4383
+ draw_list : DrawList ,
4384
+ points : []const [2 ]f32 ,
4385
+ col : u32 ,
4386
+ ) void {
4387
+ zguiDrawList_AddConcavePolyFilled (
4388
+ draw_list ,
4389
+ points .ptr ,
4390
+ @intCast (points .len ),
4391
+ col ,
4392
+ );
4393
+ }
4394
+ extern fn zguiDrawList_AddConcavePolyFilled (
4395
+ draw_list : DrawList ,
4396
+ points : [* ]const [2 ]f32 ,
4397
+ num_points : c_int ,
4398
+ col : u32 ,
4399
+ ) void ;
4400
+ //----------------------------------------------------------------------------------------------
4327
4401
pub fn addBezierCubic (draw_list : DrawList , args : struct {
4328
4402
p1 : [2 ]f32 ,
4329
4403
p2 : [2 ]f32 ,
@@ -4500,6 +4574,11 @@ pub const DrawList = *opaque {
4500
4574
}
4501
4575
extern fn zguiDrawList_PathFillConvex (draw_list : DrawList , col : c_uint ) void ;
4502
4576
//----------------------------------------------------------------------------------------------
4577
+ pub fn pathFillConcave (draw_list : DrawList , col : u32 ) void {
4578
+ return zguiDrawList_PathFillConcave (draw_list , col );
4579
+ }
4580
+ extern fn zguiDrawList_PathFillConcave (draw_list : DrawList , col : c_uint ) void ;
4581
+ //----------------------------------------------------------------------------------------------
4503
4582
pub fn pathStroke (draw_list : DrawList , args : struct {
4504
4583
col : u32 ,
4505
4584
flags : DrawFlags = .{},
@@ -4550,6 +4629,34 @@ pub const DrawList = *opaque {
4550
4629
a_max_of_12 : c_int ,
4551
4630
) void ;
4552
4631
//----------------------------------------------------------------------------------------------
4632
+ pub fn pathEllipticalArcTo (draw_list : DrawList , args : struct {
4633
+ p : [2 ]f32 ,
4634
+ r : [2 ]f32 ,
4635
+ rot : f32 ,
4636
+ amin : f32 ,
4637
+ amax : f32 ,
4638
+ num_segments : u16 = 0 ,
4639
+ }) void {
4640
+ zguiDrawList_PathEllipticalArcTo (
4641
+ draw_list ,
4642
+ & args .p ,
4643
+ & args .r ,
4644
+ args .rot ,
4645
+ args .amin ,
4646
+ args .amax ,
4647
+ args .num_segments ,
4648
+ );
4649
+ }
4650
+ extern fn zguiDrawList_PathEllipticalArcTo (
4651
+ draw_list : DrawList ,
4652
+ center : * const [2 ]f32 ,
4653
+ radius : * const [2 ]f32 ,
4654
+ rot : f32 ,
4655
+ amin : f32 ,
4656
+ amax : f32 ,
4657
+ num_segments : c_int ,
4658
+ ) void ;
4659
+ //----------------------------------------------------------------------------------------------
4553
4660
pub fn pathBezierCubicCurveTo (draw_list : DrawList , args : struct {
4554
4661
p2 : [2 ]f32 ,
4555
4662
p3 : [2 ]f32 ,
0 commit comments