chore: update to 1a80092c18ddfeb31ec1252f47f71d344a7fd0ab
This commit is contained in:
74
src/backend_glfw_dx12.zig
Normal file
74
src/backend_glfw_dx12.zig
Normal file
@@ -0,0 +1,74 @@
|
||||
const gui = @import("gui.zig");
|
||||
|
||||
pub fn init(
|
||||
window: *const anyopaque, // zglfw.Window
|
||||
device: *const anyopaque, // ID3D12Device
|
||||
num_frames_in_flight: u32,
|
||||
rtv_format: c_uint, // DXGI_FORMAT
|
||||
cbv_srv_heap: *const anyopaque, // ID3D12DescriptorHeap
|
||||
font_srv_cpu_desc_handle: D3D12_CPU_DESCRIPTOR_HANDLE,
|
||||
font_srv_gpu_desc_handle: D3D12_GPU_DESCRIPTOR_HANDLE,
|
||||
) void {
|
||||
if (!ImGui_ImplGlfw_InitForOther(window, true)) {
|
||||
@panic("failed to init glfw for imgui");
|
||||
}
|
||||
|
||||
if (!ImGui_ImplDX12_Init(
|
||||
device,
|
||||
num_frames_in_flight,
|
||||
rtv_format,
|
||||
cbv_srv_heap,
|
||||
font_srv_cpu_desc_handle,
|
||||
font_srv_gpu_desc_handle,
|
||||
)) {
|
||||
@panic("failed to init d3d12 for imgui");
|
||||
}
|
||||
}
|
||||
|
||||
pub fn deinit() void {
|
||||
ImGui_ImplGlfw_Shutdown();
|
||||
ImGui_ImplDX12_Shutdown();
|
||||
}
|
||||
|
||||
pub fn newFrame(fb_width: u32, fb_height: u32) void {
|
||||
ImGui_ImplGlfw_NewFrame();
|
||||
ImGui_ImplDX12_NewFrame();
|
||||
|
||||
gui.io.setDisplaySize(@as(f32, @floatFromInt(fb_width)), @as(f32, @floatFromInt(fb_height)));
|
||||
gui.io.setDisplayFramebufferScale(1.0, 1.0);
|
||||
|
||||
gui.newFrame();
|
||||
}
|
||||
|
||||
pub fn draw(
|
||||
graphics_command_list: *const anyopaque, // *ID3D12GraphicsCommandList
|
||||
) void {
|
||||
gui.render();
|
||||
ImGui_ImplDX12_RenderDrawData(gui.getDrawData(), graphics_command_list);
|
||||
}
|
||||
|
||||
pub const D3D12_CPU_DESCRIPTOR_HANDLE = extern struct {
|
||||
ptr: c_ulonglong,
|
||||
};
|
||||
|
||||
pub const D3D12_GPU_DESCRIPTOR_HANDLE = extern struct {
|
||||
ptr: c_ulonglong,
|
||||
};
|
||||
|
||||
extern fn ImGui_ImplGlfw_InitForOther(window: *const anyopaque, install_callbacks: bool) bool;
|
||||
extern fn ImGui_ImplGlfw_NewFrame() void;
|
||||
extern fn ImGui_ImplGlfw_Shutdown() void;
|
||||
extern fn ImGui_ImplDX12_Init(
|
||||
device: *const anyopaque, // ID3D12Device
|
||||
num_frames_in_flight: u32,
|
||||
rtv_format: u32, // DXGI_FORMAT
|
||||
cbv_srv_heap: *const anyopaque, // ID3D12DescriptorHeap
|
||||
font_srv_cpu_desc_handle: D3D12_CPU_DESCRIPTOR_HANDLE,
|
||||
font_srv_gpu_desc_handle: D3D12_GPU_DESCRIPTOR_HANDLE,
|
||||
) bool;
|
||||
extern fn ImGui_ImplDX12_Shutdown() void;
|
||||
extern fn ImGui_ImplDX12_NewFrame() void;
|
||||
extern fn ImGui_ImplDX12_RenderDrawData(
|
||||
draw_data: *const anyopaque, // *ImDrawData
|
||||
graphics_command_list: *const anyopaque, // *ID3D12GraphicsCommandList
|
||||
) void;
|
||||
918
src/gui.zig
918
src/gui.zig
File diff suppressed because it is too large
Load Diff
115
src/zgui.cpp
115
src/zgui.cpp
@@ -460,6 +460,51 @@ ZGUI_API bool zguiDragScalarN(
|
||||
return ImGui::DragScalarN(label, data_type, p_data, components, v_speed, p_min, p_max, format, flags);
|
||||
}
|
||||
|
||||
ZGUI_API bool zguiBeginDragDropSource(ImGuiDragDropFlags flags = 0) {
|
||||
return ImGui::BeginDragDropSource(flags);
|
||||
}
|
||||
ZGUI_API bool zguiSetDragDropPayload(
|
||||
const char* type,
|
||||
const void* data,
|
||||
size_t sz,
|
||||
ImGuiCond cond = 0
|
||||
) {
|
||||
return ImGui::SetDragDropPayload(type, data, sz, cond);
|
||||
}
|
||||
ZGUI_API void zguiEndDragDropSource() {
|
||||
return ImGui::EndDragDropSource();
|
||||
}
|
||||
ZGUI_API bool zguiBeginDragDropTarget() {
|
||||
return ImGui::BeginDragDropTarget();
|
||||
}
|
||||
ZGUI_API const ImGuiPayload* zguiAcceptDragDropPayload(
|
||||
const char* type,
|
||||
ImGuiDragDropFlags flags = 0
|
||||
) {
|
||||
return ImGui::AcceptDragDropPayload(type);
|
||||
}
|
||||
ZGUI_API void zguiEndDragDropTarget() {
|
||||
return ImGui::EndDragDropTarget();
|
||||
}
|
||||
ZGUI_API const ImGuiPayload* zguiGetDragDropPayload() {
|
||||
return ImGui::GetDragDropPayload();
|
||||
}
|
||||
|
||||
ZGUI_API void zguiImGuiPayload_Clear(ImGuiPayload* payload) { payload->Clear(); }
|
||||
|
||||
ZGUI_API bool zguiImGuiPayload_IsDataType(const ImGuiPayload* payload, const char* type) {
|
||||
return payload->IsDataType(type);
|
||||
}
|
||||
|
||||
ZGUI_API bool zguiImGuiPayload_IsPreview(const ImGuiPayload* payload) {
|
||||
return payload->IsPreview();
|
||||
}
|
||||
|
||||
ZGUI_API bool zguiImGuiPayload_IsDelivery(const ImGuiPayload* payload) {
|
||||
return payload->IsDelivery();
|
||||
}
|
||||
|
||||
|
||||
ZGUI_API bool zguiCombo(
|
||||
const char* label,
|
||||
int* current_item,
|
||||
@@ -1025,7 +1070,7 @@ ZGUI_API void zguiPushStyleColor4f(ImGuiCol idx, const float col[4]) {
|
||||
ImGui::PushStyleColor(idx, { col[0], col[1], col[2], col[3] });
|
||||
}
|
||||
|
||||
ZGUI_API void zguiPushStyleColor1u(ImGuiCol idx, unsigned int col) {
|
||||
ZGUI_API void zguiPushStyleColor1u(ImGuiCol idx, ImU32 col) {
|
||||
ImGui::PushStyleColor(idx, col);
|
||||
}
|
||||
|
||||
@@ -1257,6 +1302,10 @@ ZGUI_API bool zguiIoGetWantCaptureKeyboard(void) {
|
||||
return ImGui::GetIO().WantCaptureKeyboard;
|
||||
}
|
||||
|
||||
ZGUI_API bool zguiIoGetWantTextInput(void) {
|
||||
return ImGui::GetIO().WantTextInput;
|
||||
}
|
||||
|
||||
ZGUI_API void zguiIoSetIniFilename(const char* filename) {
|
||||
ImGui::GetIO().IniFilename = filename;
|
||||
}
|
||||
@@ -1311,7 +1360,7 @@ ZGUI_API void zguiIoSetKeyEventNativeData(ImGuiKey key, int keycode, int scancod
|
||||
ImGui::GetIO().SetKeyEventNativeData(key, keycode, scancode);
|
||||
}
|
||||
|
||||
ZGUI_API void zguiIoAddCharacterEvent(int c) {
|
||||
ZGUI_API void zguiIoAddCharacterEvent(unsigned int c) {
|
||||
ImGui::GetIO().AddInputCharacter(c);
|
||||
}
|
||||
|
||||
@@ -1579,7 +1628,7 @@ ZGUI_API void zguiTableSetColumnEnabled(int column_n, bool v) {
|
||||
ImGui::TableSetColumnEnabled(column_n, v);
|
||||
}
|
||||
|
||||
ZGUI_API void zguiTableSetBgColor(ImGuiTableBgTarget target, unsigned int color, int column_n) {
|
||||
ZGUI_API void zguiTableSetBgColor(ImGuiTableBgTarget target, ImU32 color, int column_n) {
|
||||
ImGui::TableSetBgColor(target, color, column_n);
|
||||
}
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -1727,7 +1776,7 @@ ZGUI_API void zguiDrawList_AddLine(
|
||||
ImDrawList* draw_list,
|
||||
const float p1[2],
|
||||
const float p2[2],
|
||||
unsigned int col,
|
||||
ImU32 col,
|
||||
float thickness
|
||||
) {
|
||||
draw_list->AddLine({ p1[0], p1[1] }, { p2[0], p2[1] }, col, thickness);
|
||||
@@ -1737,7 +1786,7 @@ ZGUI_API void zguiDrawList_AddRect(
|
||||
ImDrawList* draw_list,
|
||||
const float pmin[2],
|
||||
const float pmax[2],
|
||||
unsigned int col,
|
||||
ImU32 col,
|
||||
float rounding,
|
||||
ImDrawFlags flags,
|
||||
float thickness
|
||||
@@ -1749,7 +1798,7 @@ ZGUI_API void zguiDrawList_AddRectFilled(
|
||||
ImDrawList* draw_list,
|
||||
const float pmin[2],
|
||||
const float pmax[2],
|
||||
unsigned int col,
|
||||
ImU32 col,
|
||||
float rounding,
|
||||
ImDrawFlags flags
|
||||
) {
|
||||
@@ -1760,10 +1809,10 @@ ZGUI_API void zguiDrawList_AddRectFilledMultiColor(
|
||||
ImDrawList* draw_list,
|
||||
const float pmin[2],
|
||||
const float pmax[2],
|
||||
unsigned int col_upr_left,
|
||||
unsigned int col_upr_right,
|
||||
unsigned int col_bot_right,
|
||||
unsigned int col_bot_left
|
||||
ImU32 col_upr_left,
|
||||
ImU32 col_upr_right,
|
||||
ImU32 col_bot_right,
|
||||
ImU32 col_bot_left
|
||||
) {
|
||||
draw_list->AddRectFilledMultiColor(
|
||||
{ pmin[0], pmin[1] },
|
||||
@@ -1781,7 +1830,7 @@ ZGUI_API void zguiDrawList_AddQuad(
|
||||
const float p2[2],
|
||||
const float p3[2],
|
||||
const float p4[2],
|
||||
unsigned int col,
|
||||
ImU32 col,
|
||||
float thickness
|
||||
) {
|
||||
draw_list->AddQuad({ p1[0], p1[1] }, { p2[0], p2[1] }, { p3[0], p3[1] }, { p4[0], p4[1] }, col, thickness);
|
||||
@@ -1793,7 +1842,7 @@ ZGUI_API void zguiDrawList_AddQuadFilled(
|
||||
const float p2[2],
|
||||
const float p3[2],
|
||||
const float p4[2],
|
||||
unsigned int col
|
||||
ImU32 col
|
||||
) {
|
||||
draw_list->AddQuadFilled({ p1[0], p1[1] }, { p2[0], p2[1] }, { p3[0], p3[1] }, { p4[0], p4[1] }, col);
|
||||
}
|
||||
@@ -1803,7 +1852,7 @@ ZGUI_API void zguiDrawList_AddTriangle(
|
||||
const float p1[2],
|
||||
const float p2[2],
|
||||
const float p3[2],
|
||||
unsigned int col,
|
||||
ImU32 col,
|
||||
float thickness
|
||||
) {
|
||||
draw_list->AddTriangle({ p1[0], p1[1] }, { p2[0], p2[1] }, { p3[0], p3[1] }, col, thickness);
|
||||
@@ -1814,7 +1863,7 @@ ZGUI_API void zguiDrawList_AddTriangleFilled(
|
||||
const float p1[2],
|
||||
const float p2[2],
|
||||
const float p3[2],
|
||||
unsigned int col
|
||||
ImU32 col
|
||||
) {
|
||||
draw_list->AddTriangleFilled({ p1[0], p1[1] }, { p2[0], p2[1] }, { p3[0], p3[1] }, col);
|
||||
}
|
||||
@@ -1823,7 +1872,7 @@ ZGUI_API void zguiDrawList_AddCircle(
|
||||
ImDrawList* draw_list,
|
||||
const float center[2],
|
||||
float radius,
|
||||
unsigned int col,
|
||||
ImU32 col,
|
||||
int num_segments,
|
||||
float thickness
|
||||
) {
|
||||
@@ -1834,7 +1883,7 @@ ZGUI_API void zguiDrawList_AddCircleFilled(
|
||||
ImDrawList* draw_list,
|
||||
const float center[2],
|
||||
float radius,
|
||||
unsigned int col,
|
||||
ImU32 col,
|
||||
int num_segments
|
||||
) {
|
||||
draw_list->AddCircleFilled({ center[0], center[1] }, radius, col, num_segments);
|
||||
@@ -1844,7 +1893,7 @@ ZGUI_API void zguiDrawList_AddNgon(
|
||||
ImDrawList* draw_list,
|
||||
const float center[2],
|
||||
float radius,
|
||||
unsigned int col,
|
||||
ImU32 col,
|
||||
int num_segments,
|
||||
float thickness
|
||||
) {
|
||||
@@ -1855,7 +1904,7 @@ ZGUI_API void zguiDrawList_AddNgonFilled(
|
||||
ImDrawList* draw_list,
|
||||
const float center[2],
|
||||
float radius,
|
||||
unsigned int col,
|
||||
ImU32 col,
|
||||
int num_segments
|
||||
) {
|
||||
draw_list->AddNgonFilled({ center[0], center[1] }, radius, col, num_segments);
|
||||
@@ -1864,7 +1913,7 @@ ZGUI_API void zguiDrawList_AddNgonFilled(
|
||||
ZGUI_API void zguiDrawList_AddText(
|
||||
ImDrawList* draw_list,
|
||||
const float pos[2],
|
||||
unsigned int col,
|
||||
ImU32 col,
|
||||
const char* text_begin,
|
||||
const char* text_end
|
||||
) {
|
||||
@@ -1875,7 +1924,7 @@ ZGUI_API void zguiDrawList_AddPolyline(
|
||||
ImDrawList* draw_list,
|
||||
const float points[][2],
|
||||
int num_points,
|
||||
unsigned int col,
|
||||
ImU32 col,
|
||||
ImDrawFlags flags,
|
||||
float thickness
|
||||
) {
|
||||
@@ -1886,7 +1935,7 @@ ZGUI_API void zguiDrawList_AddConvexPolyFilled(
|
||||
ImDrawList* draw_list,
|
||||
const float points[][2],
|
||||
int num_points,
|
||||
unsigned int col
|
||||
ImU32 col
|
||||
) {
|
||||
draw_list->AddConvexPolyFilled((const ImVec2*)&points[0][0], num_points, col);
|
||||
}
|
||||
@@ -1897,7 +1946,7 @@ ZGUI_API void zguiDrawList_AddBezierCubic(
|
||||
const float p2[2],
|
||||
const float p3[2],
|
||||
const float p4[2],
|
||||
unsigned int col,
|
||||
ImU32 col,
|
||||
float thickness,
|
||||
int num_segments
|
||||
) {
|
||||
@@ -1911,7 +1960,7 @@ ZGUI_API void zguiDrawList_AddBezierQuadratic(
|
||||
const float p1[2],
|
||||
const float p2[2],
|
||||
const float p3[2],
|
||||
unsigned int col,
|
||||
ImU32 col,
|
||||
float thickness,
|
||||
int num_segments
|
||||
) {
|
||||
@@ -1927,7 +1976,7 @@ ZGUI_API void zguiDrawList_AddImage(
|
||||
const float pmax[2],
|
||||
const float uvmin[2],
|
||||
const float uvmax[2],
|
||||
unsigned int col
|
||||
ImU32 col
|
||||
) {
|
||||
draw_list->AddImage(
|
||||
user_texture_id,
|
||||
@@ -1950,7 +1999,7 @@ ZGUI_API void zguiDrawList_AddImageQuad(
|
||||
const float uv2[2],
|
||||
const float uv3[2],
|
||||
const float uv4[2],
|
||||
unsigned int col
|
||||
ImU32 col
|
||||
) {
|
||||
draw_list->AddImageQuad(
|
||||
user_texture_id,
|
||||
@@ -1973,7 +2022,7 @@ ZGUI_API void zguiDrawList_AddImageRounded(
|
||||
const float pmax[2],
|
||||
const float uvmin[2],
|
||||
const float uvmax[2],
|
||||
unsigned int col,
|
||||
ImU32 col,
|
||||
float rounding,
|
||||
ImDrawFlags flags
|
||||
) {
|
||||
@@ -2001,11 +2050,11 @@ ZGUI_API void zguiDrawList_PathLineToMergeDuplicate(ImDrawList* draw_list, const
|
||||
draw_list->PathLineToMergeDuplicate({ pos[0], pos[1] });
|
||||
}
|
||||
|
||||
ZGUI_API void zguiDrawList_PathFillConvex(ImDrawList* draw_list, unsigned int col) {
|
||||
ZGUI_API void zguiDrawList_PathFillConvex(ImDrawList* draw_list, ImU32 col) {
|
||||
draw_list->PathFillConvex(col);
|
||||
}
|
||||
|
||||
ZGUI_API void zguiDrawList_PathStroke(ImDrawList* draw_list, unsigned int col, ImDrawFlags flags, float thickness) {
|
||||
ZGUI_API void zguiDrawList_PathStroke(ImDrawList* draw_list, ImU32 col, ImDrawFlags flags, float thickness) {
|
||||
draw_list->PathStroke(col, flags, thickness);
|
||||
}
|
||||
|
||||
@@ -2071,7 +2120,7 @@ ZGUI_API void zguiDrawList_PrimRect(
|
||||
ImDrawList* draw_list,
|
||||
const float a[2],
|
||||
const float b[2],
|
||||
unsigned int col
|
||||
ImU32 col
|
||||
) {
|
||||
draw_list->PrimRect({ a[0], a[1] }, { b[0], b[1] }, col);
|
||||
}
|
||||
@@ -2082,7 +2131,7 @@ ZGUI_API void zguiDrawList_PrimRectUV(
|
||||
const float b[2],
|
||||
const float uv_a[2],
|
||||
const float uv_b[2],
|
||||
unsigned int col
|
||||
ImU32 col
|
||||
) {
|
||||
draw_list->PrimRectUV({ a[0], a[1] }, { b[0], b[1] }, { uv_a[0], uv_a[1] }, { uv_b[0], uv_b[1] }, col);
|
||||
}
|
||||
@@ -2097,7 +2146,7 @@ ZGUI_API void zguiDrawList_PrimQuadUV(
|
||||
const float uv_b[2],
|
||||
const float uv_c[2],
|
||||
const float uv_d[2],
|
||||
unsigned int col
|
||||
ImU32 col
|
||||
) {
|
||||
draw_list->PrimQuadUV(
|
||||
{ a[0], a[1] }, { b[0], b[1] }, { c[0], c[1] }, { d[0], d[1] },
|
||||
@@ -2110,7 +2159,7 @@ ZGUI_API void zguiDrawList_PrimWriteVtx(
|
||||
ImDrawList* draw_list,
|
||||
const float pos[2],
|
||||
const float uv[2],
|
||||
unsigned int col
|
||||
ImU32 col
|
||||
) {
|
||||
draw_list->PrimWriteVtx({ pos[0], pos[1] }, { uv[0], uv[1] }, col);
|
||||
}
|
||||
@@ -2189,7 +2238,7 @@ ZGUI_API void zguiPlot_PushStyleColor4f(ImPlotCol idx, const float col[4]) {
|
||||
ImPlot::PushStyleColor(idx, { col[0], col[1], col[2], col[3] });
|
||||
}
|
||||
|
||||
ZGUI_API void zguiPlot_PushStyleColor1u(ImPlotCol idx, unsigned int col) {
|
||||
ZGUI_API void zguiPlot_PushStyleColor1u(ImPlotCol idx, ImU32 col) {
|
||||
ImPlot::PushStyleColor(idx, col);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user