+ _ = sfetch.send(.{
+ .path = "img/test.png",
+ .callback = FileCb.img,
+ .buffer = .{ .ptr = &state.img_buf, .size = state.img_buf.len },
+ });
+
+ state.sprites.appendAssumeCapacity(.{});
+ state.lights.appendAssumeCapacity(.{ .pos = [_]f32{ 150, -300 } });
+}
+
+fn ui() void {
+ if (ig.igBegin("Hello Dear ImGui!", null, ig.ImGuiWindowFlags_None)) {
+ _ = ig.igColorEdit3("Background", &state.pass_action.colors[0].clear_value.r, ig.ImGuiColorEditFlags_None);
+ _ = ig.igDragFloat2("cam", &state.cam);
+
+ {
+ ig.igPushIDPtr(state.sprites.items.ptr);
+ if (ig.igButton("+")) {
+ _ = state.sprites.appendAssumeCapacity(.{});
+ }
+
+ var i: u16 = 0;
+ while (i < state.sprites.items.len) {
+ var sprite = &state.sprites.items[i];
+ i += 1;
+ ig.igPushIDInt(i);
+ ig.igPushItemWidth(100);
+ _ = ig.igDragFloat2("pos", &sprite.pos);
+ ig.igSameLine();
+ _ = ig.igDragInt2("size", &sprite.size);
+ ig.igSameLine();
+ if (ig.igButton("-")) {
+ i -= 1;
+ _ = state.sprites.swapRemove(i);
+ }
+ ig.igPopID();
+ }
+ ig.igPopID();
+ }
+
+ {
+ ig.igPushIDPtr(state.lights.items.ptr);
+ if (ig.igButton("+")) {
+ _ = state.lights.appendAssumeCapacity(.{});
+ }
+
+ var i: u16 = 0;
+ while (i < state.lights.items.len) {
+ var light = &state.lights.items[i];
+ i += 1;
+ ig.igPushIDInt(i);
+ ig.igPushItemWidth(100);
+ _ = ig.igDragFloat2("pos", &light.pos);
+ ig.igSameLine();
+ if (ig.igButton("-")) {
+ i -= 1;
+ _ = state.lights.swapRemove(i);
+ }
+ ig.igPopID();
+ }
+ ig.igPopID();
+ }
+
+ ig.igEnd();
+ }