Module: ImGui

Extended by:
FFI::Library
Defined in:
lib/imgui.rb,
lib/imgui_impl_sdl3.rb,
lib/imgui_impl_raylib.rb,
lib/imgui_impl_opengl3.rb,
lib/imgui_impl_docking_sdl3.rb,
lib/imgui_impl_sdl3renderer.rb,
lib/imgui_impl_docking_opengl3.rb,
lib/imgui_impl_docking_sdl3renderer.rb

Defined Under Namespace

Classes: ImGui_ImplDockingSDL3_Data, ImGui_ImplDockingSDL3_ViewportData, ImGui_ImplDockingSDLRenderer3_Data, ImGui_ImplDockingSDLRenderer3_RenderState, ImGui_ImplRaylib_Data, ImGui_ImplSDL3_Data, ImGui_ImplSDLRenderer3_Data, ImGui_ImplSDLRenderer3_RenderState

Constant Summary collapse

ImGui_ImplSDL3_MouseCaptureMode_Disabled =
0
ImGui_ImplSDL3_MouseCaptureMode_Enabled =
1
ImGui_ImplSDL3_MouseCaptureMode_EnabledAfterDrag =
2
ImGui_ImplSDL3_GamepadMode_AutoFirst =
0
ImGui_ImplSDL3_GamepadMode_AutoAll =
1
ImGui_ImplSDL3_GamepadMode_Manual =
2
CAMERA_MOVE_SPEED =
5.4
CAMERA_ROTATION_SPEED =
0.03
CAMERA_PAN_SPEED =
2.0
CAMERA_MOUSE_MOVE_SENSITIVITY =
0.003
CAMERA_ORBITAL_SPEED =
0.5
KEY_IDS =

[TODO] Support ClipboardText g_ClipboardTextData ImplRaylib_GetClipboardText ImplRaylib_SetClipboardText

[
  # Alphanumeric keys
  Raylib::KEY_APOSTROPHE,    # Key: '
  Raylib::KEY_COMMA,         # Key: ,
  Raylib::KEY_MINUS,         # Key: -
  Raylib::KEY_PERIOD,        # Key: .
  Raylib::KEY_SLASH,         # Key: /
  Raylib::KEY_ZERO,          # Key: 0
  Raylib::KEY_ONE,           # Key: 1
  Raylib::KEY_TWO,           # Key: 2
  Raylib::KEY_THREE,         # Key: 3
  Raylib::KEY_FOUR,          # Key: 4
  Raylib::KEY_FIVE,          # Key: 5
  Raylib::KEY_SIX,           # Key: 6
  Raylib::KEY_SEVEN,         # Key: 7
  Raylib::KEY_EIGHT,         # Key: 8
  Raylib::KEY_NINE,          # Key: 9
  Raylib::KEY_SEMICOLON,     # Key: ;
  Raylib::KEY_EQUAL,         # Key: =
  Raylib::KEY_A,             # Key: A | a
  Raylib::KEY_B,             # Key: B | b
  Raylib::KEY_C,             # Key: C | c
  Raylib::KEY_D,             # Key: D | d
  Raylib::KEY_E,             # Key: E | e
  Raylib::KEY_F,             # Key: F | f
  Raylib::KEY_G,             # Key: G | g
  Raylib::KEY_H,             # Key: H | h
  Raylib::KEY_I,             # Key: I | i
  Raylib::KEY_J,             # Key: J | j
  Raylib::KEY_K,             # Key: K | k
  Raylib::KEY_L,             # Key: L | l
  Raylib::KEY_M,             # Key: M | m
  Raylib::KEY_N,             # Key: N | n
  Raylib::KEY_O,             # Key: O | o
  Raylib::KEY_P,             # Key: P | p
  Raylib::KEY_Q,             # Key: Q | q
  Raylib::KEY_R,             # Key: R | r
  Raylib::KEY_S,             # Key: S | s
  Raylib::KEY_T,             # Key: T | t
  Raylib::KEY_U,             # Key: U | u
  Raylib::KEY_V,             # Key: V | v
  Raylib::KEY_W,             # Key: W | w
  Raylib::KEY_X,             # Key: X | x
  Raylib::KEY_Y,             # Key: Y | y
  Raylib::KEY_Z,             # Key: Z | z
  Raylib::KEY_LEFT_BRACKET,  # Key: [
  Raylib::KEY_BACKSLASH,     # Key: '\'
  Raylib::KEY_RIGHT_BRACKET, # Key: ]
  Raylib::KEY_GRAVE,         # Key: `
  # Function keys
  Raylib::KEY_SPACE,         # Key: Space
  Raylib::KEY_ESCAPE,        # Key: Esc
  Raylib::KEY_ENTER,         # Key: Enter
  Raylib::KEY_TAB,           # Key: Tab
  Raylib::KEY_BACKSPACE,     # Key: Backspace
  Raylib::KEY_INSERT,        # Key: Ins
  Raylib::KEY_DELETE,        # Key: Del
  Raylib::KEY_RIGHT,         # Key: Cursor right
  Raylib::KEY_LEFT,          # Key: Cursor left
  Raylib::KEY_DOWN,          # Key: Cursor down
  Raylib::KEY_UP,            # Key: Cursor up
  Raylib::KEY_PAGE_UP,       # Key: Page up
  Raylib::KEY_PAGE_DOWN,     # Key: Page down
  Raylib::KEY_HOME,          # Key: Home
  Raylib::KEY_END,           # Key: End
  Raylib::KEY_CAPS_LOCK,     # Key: Caps lock
  Raylib::KEY_SCROLL_LOCK,   # Key: Scroll down
  Raylib::KEY_NUM_LOCK,      # Key: Num lock
  Raylib::KEY_PRINT_SCREEN,  # Key: Print screen
  Raylib::KEY_PAUSE,         # Key: Pause
  Raylib::KEY_F1,            # Key: F1
  Raylib::KEY_F2,            # Key: F2
  Raylib::KEY_F3,            # Key: F3
  Raylib::KEY_F4,            # Key: F4
  Raylib::KEY_F5,            # Key: F5
  Raylib::KEY_F6,            # Key: F6
  Raylib::KEY_F7,            # Key: F7
  Raylib::KEY_F8,            # Key: F8
  Raylib::KEY_F9,            # Key: F9
  Raylib::KEY_F10,           # Key: F10
  Raylib::KEY_F11,           # Key: F11
  Raylib::KEY_F12,           # Key: F12
  Raylib::KEY_LEFT_SHIFT,    # Key: Shift left
  Raylib::KEY_LEFT_CONTROL,  # Key: Control left
  Raylib::KEY_LEFT_ALT,      # Key: Alt left
  Raylib::KEY_LEFT_SUPER,    # Key: Super left
  Raylib::KEY_RIGHT_SHIFT,   # Key: Shift right
  Raylib::KEY_RIGHT_CONTROL, # Key: Control right
  Raylib::KEY_RIGHT_ALT,     # Key: Alt right
  Raylib::KEY_RIGHT_SUPER,   # Key: Super right
  Raylib::KEY_KB_MENU,       # Key: KB menu
  # Keypad keys
  Raylib::KEY_KP_0,          # Key: Keypad 0
  Raylib::KEY_KP_1,          # Key: Keypad 1
  Raylib::KEY_KP_2,          # Key: Keypad 2
  Raylib::KEY_KP_3,          # Key: Keypad 3
  Raylib::KEY_KP_4,          # Key: Keypad 4
  Raylib::KEY_KP_5,          # Key: Keypad 5
  Raylib::KEY_KP_6,          # Key: Keypad 6
  Raylib::KEY_KP_7,          # Key: Keypad 7
  Raylib::KEY_KP_8,          # Key: Keypad 8
  Raylib::KEY_KP_9,          # Key: Keypad 9
  Raylib::KEY_KP_DECIMAL,    # Key: Keypad .
  Raylib::KEY_KP_DIVIDE,     # Key: Keypad /
  Raylib::KEY_KP_MULTIPLY,   # Key: Keypad *
  Raylib::KEY_KP_SUBTRACT,   # Key: Keypad -
  Raylib::KEY_KP_ADD,        # Key: Keypad +
  Raylib::KEY_KP_ENTER,      # Key: Keypad Enter
  Raylib::KEY_KP_EQUAL,      # Key: Keypad =
]
ImGui_ImplDockingSDL3_MouseCaptureMode_Disabled =
0
ImGui_ImplDockingSDL3_MouseCaptureMode_Enabled =
1
ImGui_ImplDockingSDL3_MouseCaptureMode_EnabledAfterDrag =
2
ImGui_ImplDockingSDL3_GamepadMode_AutoFirst =
0
ImGui_ImplDockingSDL3_GamepadMode_AutoAll =
1
ImGui_ImplDockingSDL3_GamepadMode_Manual =
2
@@imgui_import_done =
false
@@g_BackendPlatformName =
FFI::MemoryPointer.from_string("imgui_impl_raylib")
@@g_BackendData =

ImGui::GetCurrentContext().address => ImGui_ImplRaylib_Data

Hash.new
@@g_BackendRendererName =
FFI::MemoryPointer.from_string('imgui_impl_sdlrenderer3')
@@g_GlVersion =
0
@@g_MaxTextureSize =
0
@@g_GlslVersionString =
""
@@g_ShaderHandle =
0
@@g_AttribLocationTex =
0
@@g_AttribLocationProjMtx =
0
@@g_AttribLocationVtxPos =
0
@@g_AttribLocationVtxUV =
0
@@g_AttribLocationVtxColor =
0
@@g_VboHandle =
0
@@g_ElementsHandle =
0
@@g_DockingSDL3BackendPlatformName =
FFI::MemoryPointer.from_string('imgui_impl_docking_sdl3')
@@g_DockingSDL3BackendData =
{}
@@g_DockingSDL3PlatformFunctions =
nil
@@g_BackendRendererUserData =
{}
@@g_SDL3RendererResetRenderStateCallback =
FFI::Function.new(:void, [:pointer, :pointer]) { |_draw_list, _draw_cmd| }
@@g_SDL3RendererSetSamplerLinearCallback =
FFI::Function.new(:void, [:pointer, :pointer]) do |_draw_list, _draw_cmd|
  backend_data = ImGui_ImplSDLRenderer3_GetBackendData()
  backend_data[:current_scale_mode] = SDL::SCALEMODE_LINEAR if backend_data != nil
end
@@g_SDL3RendererSetSamplerNearestCallback =
FFI::Function.new(:void, [:pointer, :pointer]) do |_draw_list, _draw_cmd|
  backend_data = ImGui_ImplSDLRenderer3_GetBackendData()
  backend_data[:current_scale_mode] = SDL::SCALEMODE_NEAREST if backend_data != nil
end
@@g_DockingGL3GlVersion =
0
@@g_DockingGL3MaxTextureSize =
0
@@g_DockingGL3GlslVersionString =
""
@@g_DockingGL3ShaderHandle =
0
@@g_DockingGL3AttribLocationTex =
0
@@g_DockingGL3AttribLocationProjMtx =
0
@@g_DockingGL3AttribLocationVtxPos =
0
@@g_DockingGL3AttribLocationVtxUV =
0
@@g_DockingGL3AttribLocationVtxColor =
0
@@g_DockingGL3VboHandle =
0
@@g_DockingGL3ElementsHandle =
0
@@g_DockingGL3BackendRendererName =
FFI::MemoryPointer.from_string("imgui_impl_docking_opengl3")
@@g_DockingGL3RendererCallbacks =
nil
@@g_DockingSDL3BackendRendererName =
FFI::MemoryPointer.from_string('imgui_impl_docking_sdlrenderer3')
@@g_DockingSDL3BackendRendererUserData =
{}
@@g_DockingSDL3RendererResetRenderStateCallback =
FFI::Function.new(:void, [:pointer, :pointer]) { |_draw_list, _draw_cmd| }
@@g_DockingSDL3RendererSetSamplerLinearCallback =
FFI::Function.new(:void, [:pointer, :pointer]) do |_draw_list, _draw_cmd|
  backend_data = ImGui_ImplDockingSDLRenderer3_GetBackendData
  backend_data[:current_scale_mode] = SDL::SCALEMODE_LINEAR if backend_data != nil
end
@@g_DockingSDL3RendererSetSamplerNearestCallback =
FFI::Function.new(:void, [:pointer, :pointer]) do |_draw_list, _draw_cmd|
  backend_data = ImGui_ImplDockingSDLRenderer3_GetBackendData
  backend_data[:current_scale_mode] = SDL::SCALEMODE_NEAREST if backend_data != nil
end

Class Method Summary collapse

Class Method Details

.AcceptDragDropPayload(type, flags = 0) ⇒ Object

arg: type(const char*), flags(ImGuiDragDropFlags) ret: pointer



8552
8553
8554
# File 'lib/imgui.rb', line 8552

def self.AcceptDragDropPayload(type, flags = 0)
  ImGui_AcceptDragDropPayload(type, flags)
end

.ActivateItemByID(id) ⇒ Object

arg: id(ImGuiID) ret: void



10189
10190
10191
# File 'lib/imgui.rb', line 10189

def self.ActivateItemByID(id)
  ImGui_ActivateItemByID(id)
end

.AddContextHook(ctx, hook) ⇒ Object

arg: ctx(ImGuiContext*), hook(const ImGuiContextHook*) ret: uint



9625
9626
9627
# File 'lib/imgui.rb', line 9625

def self.AddContextHook(ctx, hook)
  ImGui_AddContextHook(ctx, hook)
end

.AddDrawListToDrawDataEx(draw_data, out_list, draw_list) ⇒ Object

arg: draw_data(ImDrawData*), out_list(ImVector_ImDrawListPtr*), draw_list(ImDrawList*) ret: void



9603
9604
9605
# File 'lib/imgui.rb', line 9603

def self.AddDrawListToDrawDataEx(draw_data, out_list, draw_list)
  ImGui_AddDrawListToDrawDataEx(draw_data, out_list, draw_list)
end

.AddSettingsHandler(handler) ⇒ Object

arg: handler(const ImGuiSettingsHandler*) ret: void



9741
9742
9743
# File 'lib/imgui.rb', line 9741

def self.AddSettingsHandler(handler)
  ImGui_AddSettingsHandler(handler)
end

.AlignTextToFramePaddingObject

ret: void



8018
8019
8020
# File 'lib/imgui.rb', line 8018

def self.AlignTextToFramePadding()
  ImGui_AlignTextToFramePadding()
end

.ArrowButton(str_id, dir) ⇒ Object

arg: str_id(const char*), dir(ImGuiDir) ret: bool



8103
8104
8105
# File 'lib/imgui.rb', line 8103

def self.ArrowButton(str_id, dir)
  ImGui_ArrowButton(str_id, dir)
end

.ArrowButtonEx(str_id, dir, size_arg, flags = 0) ⇒ Object

arg: str_id(const char*), dir(ImGuiDir), size_arg(ImVec2), flags(ImGuiButtonFlags) ret: bool



10894
10895
10896
# File 'lib/imgui.rb', line 10894

def self.ArrowButtonEx(str_id, dir, size_arg, flags = 0)
  ImGui_ArrowButtonEx(str_id, dir, size_arg, flags)
end

.Begin(name, p_open = nil, flags = 0) ⇒ Object

arg: name(const char*), p_open(bool*), flags(ImGuiWindowFlags) ret: bool



7695
7696
7697
# File 'lib/imgui.rb', line 7695

def self.Begin(name, p_open = nil, flags = 0)
  ImGui_Begin(name, p_open, flags)
end

.BeginBoxSelect(scope_rect, window, box_select_id, ms_flags) ⇒ Object

arg: scope_rect(ImRect), window(ImGuiWindow*), box_select_id(ImGuiID), ms_flags(ImGuiMultiSelectFlags) ret: bool



10661
10662
10663
# File 'lib/imgui.rb', line 10661

def self.BeginBoxSelect(scope_rect, window, box_select_id, ms_flags)
  ImGui_BeginBoxSelect(scope_rect, window, box_select_id, ms_flags)
end

.BeginChild(*arg) ⇒ Object



11415
11416
11417
11418
11419
11420
11421
11422
11423
11424
11425
11426
11427
11428
11429
# File 'lib/imgui.rb', line 11415

def self.BeginChild(*arg)
  # arg: 0:str_id(const char*), 1:size(ImVec2), 2:child_flags(ImGuiChildFlags), 3:window_flags(ImGuiWindowFlags)
  # ret: bool
  return ImGui_BeginChild(arg[0], arg[1], arg[2], 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer))
  return ImGui_BeginChild(arg[0], arg[1], 0, 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2))
  return ImGui_BeginChild(arg[0], ImVec2.create(0,0), 0, 0) if arg.length == 1 && (arg[0].kind_of?(String))
  return ImGui_BeginChild(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer))
  # arg: 0:id(ImGuiID), 1:size(ImVec2), 2:child_flags(ImGuiChildFlags), 3:window_flags(ImGuiWindowFlags)
  # ret: bool
  return ImGui_BeginChildID(arg[0], arg[1], arg[2], 0) if arg.length == 3 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer))
  return ImGui_BeginChildID(arg[0], arg[1], 0, 0) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(ImVec2))
  return ImGui_BeginChildID(arg[0], ImVec2.create(0,0), 0, 0) if arg.length == 1 && (arg[0].kind_of?(Integer))
  return ImGui_BeginChildID(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::BeginChild : No matching functions found (#{arg})")
end

.BeginChildEx(name, id, size_arg, child_flags, window_flags) ⇒ Object

arg: name(const char*), id(ImGuiID), size_arg(ImVec2), child_flags(ImGuiChildFlags), window_flags(ImGuiWindowFlags) ret: bool



9962
9963
9964
# File 'lib/imgui.rb', line 9962

def self.BeginChildEx(name, id, size_arg, child_flags, window_flags)
  ImGui_BeginChildEx(name, id, size_arg, child_flags, window_flags)
end

.BeginColumns(str_id, count, flags = 0) ⇒ Object

arg: str_id(const char*), count(int), flags(ImGuiOldColumnFlags) ret: void



9313
9314
9315
# File 'lib/imgui.rb', line 9313

def self.BeginColumns(str_id, count, flags = 0)
  ImGui_BeginColumns(str_id, count, flags)
end

.BeginCombo(label, preview_value, flags = 0) ⇒ Object

arg: label(const char*), preview_value(const char*), flags(ImGuiComboFlags) ret: bool



8132
8133
8134
# File 'lib/imgui.rb', line 8132

def self.BeginCombo(label, preview_value, flags = 0)
  ImGui_BeginCombo(label, preview_value, flags)
end

.BeginComboPopup(popup_id, bb, flags) ⇒ Object

arg: popup_id(ImGuiID), bb(ImRect), flags(ImGuiComboFlags) ret: bool



10072
10073
10074
# File 'lib/imgui.rb', line 10072

def self.BeginComboPopup(popup_id, bb, flags)
  ImGui_BeginComboPopup(popup_id, bb, flags)
end

.BeginComboPreviewObject

ret: bool



10077
10078
10079
# File 'lib/imgui.rb', line 10077

def self.BeginComboPreview()
  ImGui_BeginComboPreview()
end

.BeginDisabled(disabled = true) ⇒ Object

arg: disabled(bool) ret: void



8568
8569
8570
# File 'lib/imgui.rb', line 8568

def self.BeginDisabled(disabled = true)
  ImGui_BeginDisabled(disabled)
end

.BeginDisabledOverrideReenableObject

ret: void



9939
9940
9941
# File 'lib/imgui.rb', line 9939

def self.BeginDisabledOverrideReenable()
  ImGui_BeginDisabledOverrideReenable()
end

.BeginDockableDragDropSource(window) ⇒ Object

arg: window(ImGuiWindow*) ret: void



10498
10499
10500
# File 'lib/imgui.rb', line 10498

def self.BeginDockableDragDropSource(window)
  ImGui_BeginDockableDragDropSource(window)
end

.BeginDockableDragDropTarget(window) ⇒ Object

arg: window(ImGuiWindow*) ret: void



10504
10505
10506
# File 'lib/imgui.rb', line 10504

def self.BeginDockableDragDropTarget(window)
  ImGui_BeginDockableDragDropTarget(window)
end

.BeginDocked(window, p_open) ⇒ Object

arg: window(ImGuiWindow*), p_open(bool*) ret: void



10492
10493
10494
# File 'lib/imgui.rb', line 10492

def self.BeginDocked(window, p_open)
  ImGui_BeginDocked(window, p_open)
end

.BeginDragDropSource(flags = 0) ⇒ Object

arg: flags(ImGuiDragDropFlags) ret: bool



8530
8531
8532
# File 'lib/imgui.rb', line 8530

def self.BeginDragDropSource(flags = 0)
  ImGui_BeginDragDropSource(flags)
end

.BeginDragDropTargetObject

ret: bool



8546
8547
8548
# File 'lib/imgui.rb', line 8546

def self.BeginDragDropTarget()
  ImGui_BeginDragDropTarget()
end

.BeginDragDropTargetCustom(bb, id) ⇒ Object

arg: bb(ImRect), id(ImGuiID) ret: bool



10615
10616
10617
# File 'lib/imgui.rb', line 10615

def self.BeginDragDropTargetCustom(bb, id)
  ImGui_BeginDragDropTargetCustom(bb, id)
end

.BeginDragDropTargetViewport(*arg) ⇒ Object



13108
13109
13110
13111
13112
13113
13114
13115
13116
13117
# File 'lib/imgui.rb', line 13108

def self.BeginDragDropTargetViewport(*arg)
  # arg: 0:viewport(ImGuiViewport*)
  # ret: bool
  return ImGui_BeginDragDropTargetViewport(arg[0]) if arg.length == 1 && (arg[0].kind_of?(FFI::Pointer))
  # arg: 0:viewport(ImGuiViewport*), 1:p_bb(const ImRect*)
  # ret: bool
  return ImGui_BeginDragDropTargetViewportEx(arg[0], nil) if arg.length == 1 && (arg[0].kind_of?(FFI::Pointer))
  return ImGui_BeginDragDropTargetViewportEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::BeginDragDropTargetViewport : No matching functions found (#{arg})")
end

.BeginErrorTooltipObject

ret: bool



11171
11172
11173
# File 'lib/imgui.rb', line 11171

def self.BeginErrorTooltip()
  ImGui_BeginErrorTooltip()
end

.BeginGroupObject

ret: void



8008
8009
8010
# File 'lib/imgui.rb', line 8008

def self.BeginGroup()
  ImGui_BeginGroup()
end

.BeginItemTooltipObject

ret: bool



8280
8281
8282
# File 'lib/imgui.rb', line 8280

def self.BeginItemTooltip()
  ImGui_BeginItemTooltip()
end

.BeginListBox(label, size = ImVec2.create(0,0)) ⇒ Object

arg: label(const char*), size(ImVec2) ret: bool



8229
8230
8231
# File 'lib/imgui.rb', line 8229

def self.BeginListBox(label, size = ImVec2.create(0,0))
  ImGui_BeginListBox(label, size)
end

.BeginMainMenuBarObject

ret: bool



8249
8250
8251
# File 'lib/imgui.rb', line 8249

def self.BeginMainMenuBar()
  ImGui_BeginMainMenuBar()
end

.BeginMenu(*arg) ⇒ Object



12474
12475
12476
12477
12478
12479
12480
12481
12482
12483
# File 'lib/imgui.rb', line 12474

def self.BeginMenu(*arg)
  # arg: 0:label(const char*)
  # ret: bool
  return ImGui_BeginMenu(arg[0]) if arg.length == 1 && (arg[0].kind_of?(String))
  # arg: 0:label(const char*), 1:enabled(bool)
  # ret: bool
  return ImGui_BeginMenuEx(arg[0], true) if arg.length == 1 && (arg[0].kind_of?(String))
  return ImGui_BeginMenuEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && (arg[1].is_a?(TrueClass) || arg[1].is_a?(FalseClass)))
  $stderr.puts("[Warning] ImGui::BeginMenu : No matching functions found (#{arg})")
end

.BeginMenuBarObject

ret: bool



8239
8240
8241
# File 'lib/imgui.rb', line 8239

def self.BeginMenuBar()
  ImGui_BeginMenuBar()
end

.BeginMenuEx(*arg) ⇒ Object



13029
13030
13031
13032
13033
13034
13035
13036
13037
13038
# File 'lib/imgui.rb', line 13029

def self.BeginMenuEx(*arg)
  # arg: 0:label(const char*), 1:icon(const char*)
  # ret: bool
  return ImGui_BeginMenuWithIcon(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(String))
  # arg: 0:label(const char*), 1:icon(const char*), 2:enabled(bool)
  # ret: bool
  return ImGui_BeginMenuWithIconEx(arg[0], arg[1], true) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(String))
  return ImGui_BeginMenuWithIconEx(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(String) && (arg[2].is_a?(TrueClass) || arg[2].is_a?(FalseClass)))
  $stderr.puts("[Warning] ImGui::BeginMenuEx : No matching functions found (#{arg})")
end

.BeginMultiSelect(*arg) ⇒ Object



12393
12394
12395
12396
12397
12398
12399
12400
12401
12402
12403
# File 'lib/imgui.rb', line 12393

def self.BeginMultiSelect(*arg)
  # arg: 0:flags(ImGuiMultiSelectFlags)
  # ret: pointer
  return ImGui_BeginMultiSelect(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  # arg: 0:flags(ImGuiMultiSelectFlags), 1:selection_size(int), 2:items_count(int)
  # ret: pointer
  return ImGui_BeginMultiSelectEx(arg[0], arg[1], -1) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer))
  return ImGui_BeginMultiSelectEx(arg[0], -1, -1) if arg.length == 1 && (arg[0].kind_of?(Integer))
  return ImGui_BeginMultiSelectEx(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::BeginMultiSelect : No matching functions found (#{arg})")
end

.BeginPopup(str_id, flags = 0) ⇒ Object

arg: str_id(const char*), flags(ImGuiWindowFlags) ret: bool



8292
8293
8294
# File 'lib/imgui.rb', line 8292

def self.BeginPopup(str_id, flags = 0)
  ImGui_BeginPopup(str_id, flags)
end

.BeginPopupContextItem(*arg) ⇒ Object



12514
12515
12516
12517
12518
12519
12520
12521
12522
12523
12524
# File 'lib/imgui.rb', line 12514

def self.BeginPopupContextItem(*arg)
  # arg: 
  # ret: bool
  return ImGui_BeginPopupContextItem() if arg.empty?
  # arg: 0:str_id(const char*), 1:popup_flags(ImGuiPopupFlags)
  # ret: bool
  return ImGui_BeginPopupContextItemEx(arg[0], 0) if arg.length == 1 && (arg[0].kind_of?(String))
  return ImGui_BeginPopupContextItemEx(nil, 0) if arg.length == 0 && (true)
  return ImGui_BeginPopupContextItemEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::BeginPopupContextItem : No matching functions found (#{arg})")
end

.BeginPopupContextVoid(*arg) ⇒ Object



12538
12539
12540
12541
12542
12543
12544
12545
12546
12547
12548
# File 'lib/imgui.rb', line 12538

def self.BeginPopupContextVoid(*arg)
  # arg: 
  # ret: bool
  return ImGui_BeginPopupContextVoid() if arg.empty?
  # arg: 0:str_id(const char*), 1:popup_flags(ImGuiPopupFlags)
  # ret: bool
  return ImGui_BeginPopupContextVoidEx(arg[0], 0) if arg.length == 1 && (arg[0].kind_of?(String))
  return ImGui_BeginPopupContextVoidEx(nil, 0) if arg.length == 0 && (true)
  return ImGui_BeginPopupContextVoidEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::BeginPopupContextVoid : No matching functions found (#{arg})")
end

.BeginPopupContextWindow(*arg) ⇒ Object



12526
12527
12528
12529
12530
12531
12532
12533
12534
12535
12536
# File 'lib/imgui.rb', line 12526

def self.BeginPopupContextWindow(*arg)
  # arg: 
  # ret: bool
  return ImGui_BeginPopupContextWindow() if arg.empty?
  # arg: 0:str_id(const char*), 1:popup_flags(ImGuiPopupFlags)
  # ret: bool
  return ImGui_BeginPopupContextWindowEx(arg[0], 0) if arg.length == 1 && (arg[0].kind_of?(String))
  return ImGui_BeginPopupContextWindowEx(nil, 0) if arg.length == 0 && (true)
  return ImGui_BeginPopupContextWindowEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::BeginPopupContextWindow : No matching functions found (#{arg})")
end

.BeginPopupEx(id, extra_window_flags) ⇒ Object

arg: id(ImGuiID), extra_window_flags(ImGuiWindowFlags) ret: bool



9974
9975
9976
# File 'lib/imgui.rb', line 9974

def self.BeginPopupEx(id, extra_window_flags)
  ImGui_BeginPopupEx(id, extra_window_flags)
end

.BeginPopupMenuEx(id, label, extra_window_flags) ⇒ Object

arg: id(ImGuiID), label(const char*), extra_window_flags(ImGuiWindowFlags) ret: bool



9980
9981
9982
# File 'lib/imgui.rb', line 9980

def self.BeginPopupMenuEx(id, label, extra_window_flags)
  ImGui_BeginPopupMenuEx(id, label, extra_window_flags)
end

.BeginPopupModal(name, p_open = nil, flags = 0) ⇒ Object

arg: name(const char*), p_open(bool*), flags(ImGuiWindowFlags) ret: bool



8298
8299
8300
# File 'lib/imgui.rb', line 8298

def self.BeginPopupModal(name, p_open = nil, flags = 0)
  ImGui_BeginPopupModal(name, p_open, flags)
end

.BeginTabBar(str_id, flags = 0) ⇒ Object

arg: str_id(const char*), flags(ImGuiTabBarFlags) ret: bool



8440
8441
8442
# File 'lib/imgui.rb', line 8440

def self.BeginTabBar(str_id, flags = 0)
  ImGui_BeginTabBar(str_id, flags)
end

.BeginTabBarEx(tab_bar, bb, flags) ⇒ Object

arg: tab_bar(ImGuiTabBar*), bb(ImRect), flags(ImGuiTabBarFlags) ret: bool



10720
10721
10722
# File 'lib/imgui.rb', line 10720

def self.BeginTabBarEx(tab_bar, bb, flags)
  ImGui_BeginTabBarEx(tab_bar, bb, flags)
end

.BeginTabItem(label, p_open = nil, flags = 0) ⇒ Object

arg: label(const char*), p_open(bool*), flags(ImGuiTabItemFlags) ret: bool



8451
8452
8453
# File 'lib/imgui.rb', line 8451

def self.BeginTabItem(label, p_open = nil, flags = 0)
  ImGui_BeginTabItem(label, p_open, flags)
end

.BeginTable(*arg) ⇒ Object



12561
12562
12563
12564
12565
12566
12567
12568
12569
12570
12571
12572
12573
# File 'lib/imgui.rb', line 12561

def self.BeginTable(*arg)
  # arg: 0:str_id(const char*), 1:columns(int), 2:flags(ImGuiTableFlags)
  # ret: bool
  return ImGui_BeginTable(arg[0], arg[1], 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer))
  return ImGui_BeginTable(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer))
  # arg: 0:str_id(const char*), 1:columns(int), 2:flags(ImGuiTableFlags), 3:outer_size(ImVec2), 4:inner_width(float)
  # ret: bool
  return ImGui_BeginTableEx(arg[0], arg[1], arg[2], arg[3], 0.0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(ImVec2))
  return ImGui_BeginTableEx(arg[0], arg[1], arg[2], ImVec2.create(0.0,0.0), 0.0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer))
  return ImGui_BeginTableEx(arg[0], arg[1], 0, ImVec2.create(0.0,0.0), 0.0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer))
  return ImGui_BeginTableEx(arg[0], arg[1], arg[2], arg[3], arg[4]) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(ImVec2) && arg[4].kind_of?(Float))
  $stderr.puts("[Warning] ImGui::BeginTable : No matching functions found (#{arg})")
end

.BeginTableEx(*arg) ⇒ Object



12911
12912
12913
12914
12915
12916
12917
12918
12919
12920
12921
12922
12923
# File 'lib/imgui.rb', line 12911

def self.BeginTableEx(*arg)
  # arg: 0:name(const char*), 1:id(ImGuiID), 2:columns_count(int), 3:flags(ImGuiTableFlags)
  # ret: bool
  return ImGui_BeginTableWithID(arg[0], arg[1], arg[2], 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer))
  return ImGui_BeginTableWithID(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer))
  # arg: 0:name(const char*), 1:id(ImGuiID), 2:columns_count(int), 3:flags(ImGuiTableFlags), 4:outer_size(ImVec2), 5:inner_width(float)
  # ret: bool
  return ImGui_BeginTableWithIDEx(arg[0], arg[1], arg[2], arg[3], arg[4], 0.0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(ImVec2))
  return ImGui_BeginTableWithIDEx(arg[0], arg[1], arg[2], arg[3], ImVec2.create(0,0), 0.0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer))
  return ImGui_BeginTableWithIDEx(arg[0], arg[1], arg[2], 0, ImVec2.create(0,0), 0.0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer))
  return ImGui_BeginTableWithIDEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(ImVec2) && arg[5].kind_of?(Float))
  $stderr.puts("[Warning] ImGui::BeginTableEx : No matching functions found (#{arg})")
end

.BeginTooltipObject

ret: bool



8264
8265
8266
# File 'lib/imgui.rb', line 8264

def self.BeginTooltip()
  ImGui_BeginTooltip()
end

.BeginTooltipEx(tooltip_flags, extra_window_flags) ⇒ Object

arg: tooltip_flags(ImGuiTooltipFlags), extra_window_flags(ImGuiWindowFlags) ret: bool



10055
10056
10057
# File 'lib/imgui.rb', line 10055

def self.BeginTooltipEx(tooltip_flags, extra_window_flags)
  ImGui_BeginTooltipEx(tooltip_flags, extra_window_flags)
end

.BeginTooltipHiddenObject

ret: bool



10060
10061
10062
# File 'lib/imgui.rb', line 10060

def self.BeginTooltipHidden()
  ImGui_BeginTooltipHidden()
end

.BeginViewportSideBar(name, viewport, dir, size, window_flags) ⇒ Object

arg: name(const char*), viewport(ImGuiViewport*), dir(ImGuiDir), size(float), window_flags(ImGuiWindowFlags) ret: bool



10066
10067
10068
# File 'lib/imgui.rb', line 10066

def self.BeginViewportSideBar(name, viewport, dir, size, window_flags)
  ImGui_BeginViewportSideBar(name, viewport, dir, size, window_flags)
end

.BringWindowToDisplayBack(window) ⇒ Object

arg: window(ImGuiWindow*) ret: void



9505
9506
9507
# File 'lib/imgui.rb', line 9505

def self.BringWindowToDisplayBack(window)
  ImGui_BringWindowToDisplayBack(window)
end

.BringWindowToDisplayBehind(window, above_window) ⇒ Object

arg: window(ImGuiWindow*), above_window(ImGuiWindow*) ret: void



9511
9512
9513
# File 'lib/imgui.rb', line 9511

def self.BringWindowToDisplayBehind(window, above_window)
  ImGui_BringWindowToDisplayBehind(window, above_window)
end

.BringWindowToDisplayFront(window) ⇒ Object

arg: window(ImGuiWindow*) ret: void



9499
9500
9501
# File 'lib/imgui.rb', line 9499

def self.BringWindowToDisplayFront(window)
  ImGui_BringWindowToDisplayFront(window)
end

.BringWindowToFocusFront(window) ⇒ Object

arg: window(ImGuiWindow*) ret: void



9493
9494
9495
# File 'lib/imgui.rb', line 9493

def self.BringWindowToFocusFront(window)
  ImGui_BringWindowToFocusFront(window)
end

.BulletObject

ret: void



8120
8121
8122
# File 'lib/imgui.rb', line 8120

def self.Bullet()
  ImGui_Bullet()
end

.BulletText(fmt, *varargs) ⇒ Object

arg: fmt(const char*), unnamed_arg1(...) ret: void



8079
8080
8081
# File 'lib/imgui.rb', line 8079

def self.BulletText(fmt, *varargs)
  ImGui_BulletText(fmt, *varargs)
end

.Button(*arg) ⇒ Object



11694
11695
11696
11697
11698
11699
11700
11701
11702
11703
# File 'lib/imgui.rb', line 11694

def self.Button(*arg)
  # arg: 0:label(const char*)
  # ret: bool
  return ImGui_Button(arg[0]) if arg.length == 1 && (arg[0].kind_of?(String))
  # arg: 0:label(const char*), 1:size(ImVec2)
  # ret: bool
  return ImGui_ButtonEx(arg[0], ImVec2.create(0,0)) if arg.length == 1 && (arg[0].kind_of?(String))
  return ImGui_ButtonEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2))
  $stderr.puts("[Warning] ImGui::Button : No matching functions found (#{arg})")
end

.ButtonBehavior(bb, id, out_hovered, out_held, flags = 0) ⇒ Object

arg: bb(ImRect), id(ImGuiID), out_hovered(bool*), out_held(bool*), flags(ImGuiButtonFlags) ret: bool



10960
10961
10962
# File 'lib/imgui.rb', line 10960

def self.ButtonBehavior(bb, id, out_hovered, out_held, flags = 0)
  ImGui_ButtonBehavior(bb, id, out_hovered, out_held, flags)
end

.ButtonEx(*arg) ⇒ Object



13289
13290
13291
13292
13293
13294
13295
13296
13297
13298
13299
# File 'lib/imgui.rb', line 13289

def self.ButtonEx(*arg)
  # arg: 0:label(const char*)
  # ret: bool
  return ImGui_ButtonWithFlags(arg[0]) if arg.length == 1 && (arg[0].kind_of?(String))
  # arg: 0:label(const char*), 1:size_arg(ImVec2), 2:flags(ImGuiButtonFlags)
  # ret: bool
  return ImGui_ButtonWithFlagsEx(arg[0], arg[1], 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2))
  return ImGui_ButtonWithFlagsEx(arg[0], ImVec2.create(0,0), 0) if arg.length == 1 && (arg[0].kind_of?(String))
  return ImGui_ButtonWithFlagsEx(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::ButtonEx : No matching functions found (#{arg})")
end

.CalcClipRectVisibleItemsY(clip_rect, pos, items_height, out_visible_start, out_visible_end) ⇒ Object

arg: clip_rect(ImRect), pos(ImVec2), items_height(float), out_visible_start(int*), out_visible_end(int*) ret: void



9928
9929
9930
# File 'lib/imgui.rb', line 9928

def self.CalcClipRectVisibleItemsY(clip_rect, pos, items_height, out_visible_start, out_visible_end)
  ImGui_CalcClipRectVisibleItemsY(clip_rect, pos, items_height, out_visible_start, out_visible_end)
end

.CalcItemSize(size, default_w, default_h) ⇒ Object

arg: size(ImVec2), default_w(float), default_h(float) ret: ImVec2.by_value



9904
9905
9906
# File 'lib/imgui.rb', line 9904

def self.CalcItemSize(size, default_w, default_h)
  ImGui_CalcItemSize(size, default_w, default_h)
end

.CalcItemWidthObject

ret: float



7906
7907
7908
# File 'lib/imgui.rb', line 7906

def self.CalcItemWidth()
  ImGui_CalcItemWidth()
end

.CalcRoundingFlagsForRectInRect(r_in, r_outer, threshold) ⇒ Object

arg: r_in(ImRect), r_outer(ImRect), threshold(float) ret: int



10882
10883
10884
# File 'lib/imgui.rb', line 10882

def self.CalcRoundingFlagsForRectInRect(r_in, r_outer, threshold)
  ImGui_CalcRoundingFlagsForRectInRect(r_in, r_outer, threshold)
end

.CalcTextSize(*arg) ⇒ Object



12721
12722
12723
12724
12725
12726
12727
12728
12729
12730
12731
12732
# File 'lib/imgui.rb', line 12721

def self.CalcTextSize(*arg)
  # arg: 0:text(const char*)
  # ret: ImVec2.by_value
  return ImGui_CalcTextSize(arg[0]) if arg.length == 1 && (arg[0].kind_of?(String))
  # arg: 0:text(const char*), 1:text_end(const char*), 2:hide_text_after_double_hash(bool), 3:wrap_width(float)
  # ret: ImVec2.by_value
  return ImGui_CalcTextSizeEx(arg[0], arg[1], arg[2], -1.0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(String) && (arg[2].is_a?(TrueClass) || arg[2].is_a?(FalseClass)))
  return ImGui_CalcTextSizeEx(arg[0], arg[1], false, -1.0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(String))
  return ImGui_CalcTextSizeEx(arg[0], nil, false, -1.0) if arg.length == 1 && (arg[0].kind_of?(String))
  return ImGui_CalcTextSizeEx(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(String) && (arg[2].is_a?(TrueClass) || arg[2].is_a?(FalseClass)) && arg[3].kind_of?(Float))
  $stderr.puts("[Warning] ImGui::CalcTextSize : No matching functions found (#{arg})")
end

.CalcTypematicRepeatAmount(t0, t1, repeat_delay, repeat_rate) ⇒ Object

arg: t0(float), t1(float), repeat_delay(float), repeat_rate(float) ret: int



10279
10280
10281
# File 'lib/imgui.rb', line 10279

def self.CalcTypematicRepeatAmount(t0, t1, repeat_delay, repeat_rate)
  ImGui_CalcTypematicRepeatAmount(t0, t1, repeat_delay, repeat_rate)
end

.CalcWindowNextAutoFitSize(window) ⇒ Object

arg: window(ImGuiWindow*) ret: ImVec2.by_value



9403
9404
9405
# File 'lib/imgui.rb', line 9403

def self.CalcWindowNextAutoFitSize(window)
  ImGui_CalcWindowNextAutoFitSize(window)
end

.CalcWrapWidthForPos(pos, wrap_pos_x) ⇒ Object

arg: pos(ImVec2), wrap_pos_x(float) ret: float



9910
9911
9912
# File 'lib/imgui.rb', line 9910

def self.CalcWrapWidthForPos(pos, wrap_pos_x)
  ImGui_CalcWrapWidthForPos(pos, wrap_pos_x)
end

.CallContextHooks(ctx, type) ⇒ Object

arg: ctx(ImGuiContext*), type(ImGuiContextHookType) ret: void



9637
9638
9639
# File 'lib/imgui.rb', line 9637

def self.CallContextHooks(ctx, type)
  ImGui_CallContextHooks(ctx, type)
end

.Checkbox(label, v) ⇒ Object

arg: label(const char*), v(bool*) ret: bool



8109
8110
8111
# File 'lib/imgui.rb', line 8109

def self.Checkbox(label, v)
  ImGui_Checkbox(label, v)
end

.CheckboxFlags(*arg) ⇒ Object



11705
11706
11707
11708
11709
11710
11711
11712
11713
11714
11715
11716
11717
11718
11719
# File 'lib/imgui.rb', line 11705

def self.CheckboxFlags(*arg)
  # arg: 0:label(const char*), 1:flags(int*), 2:flags_value(int)
  # ret: bool
  return ImGui_CheckboxFlagsIntPtr(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer))
  # arg: 0:label(const char*), 1:flags(unsigned int*), 2:flags_value(unsigned int)
  # ret: bool
  return ImGui_CheckboxFlagsUintPtr(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer))
  # arg: 0:label(const char*), 1:flags(ImS64*), 2:flags_value(ImS64)
  # ret: bool
  return ImGui_CheckboxFlagsImS64Ptr(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer))
  # arg: 0:label(const char*), 1:flags(ImU64*), 2:flags_value(ImU64)
  # ret: bool
  return ImGui_CheckboxFlagsImU64Ptr(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::CheckboxFlags : No matching functions found (#{arg})")
end

.CleanupIniSettings(args) ⇒ Object

arg: args(ImGuiSettingsCleanupArgs*) ret: void



9735
9736
9737
# File 'lib/imgui.rb', line 9735

def self.CleanupIniSettings(args)
  ImGui_CleanupIniSettings(args)
end

.ClearActiveIDObject

ret: void



9845
9846
9847
# File 'lib/imgui.rb', line 9845

def self.ClearActiveID()
  ImGui_ClearActiveID()
end

.ClearDragDropObject

ret: void



10620
10621
10622
# File 'lib/imgui.rb', line 10620

def self.ClearDragDrop()
  ImGui_ClearDragDrop()
end

.ClearIniSettingsObject

ret: void



9729
9730
9731
# File 'lib/imgui.rb', line 9729

def self.ClearIniSettings()
  ImGui_ClearIniSettings()
end

.ClearWindowSettings(name) ⇒ Object

arg: name(const char*) ret: void



9777
9778
9779
# File 'lib/imgui.rb', line 9777

def self.ClearWindowSettings(name)
  ImGui_ClearWindowSettings(name)
end

.CloseButton(id, pos) ⇒ Object

arg: id(ImGuiID), pos(ImVec2) ret: bool



10912
10913
10914
# File 'lib/imgui.rb', line 10912

def self.CloseButton(id, pos)
  ImGui_CloseButton(id, pos)
end

.CloseCurrentPopupObject

ret: void



8314
8315
8316
# File 'lib/imgui.rb', line 8314

def self.CloseCurrentPopup()
  ImGui_CloseCurrentPopup()
end

.ClosePopupsExceptModalsObject

ret: void



9997
9998
9999
# File 'lib/imgui.rb', line 9997

def self.ClosePopupsExceptModals()
  ImGui_ClosePopupsExceptModals()
end

.ClosePopupsOverWindow(ref_window, restore_focus_to_window_under_popup) ⇒ Object

arg: ref_window(ImGuiWindow*), restore_focus_to_window_under_popup(bool) ret: void



9992
9993
9994
# File 'lib/imgui.rb', line 9992

def self.ClosePopupsOverWindow(ref_window, restore_focus_to_window_under_popup)
  ImGui_ClosePopupsOverWindow(ref_window, restore_focus_to_window_under_popup)
end

.ClosePopupToLevel(remaining, restore_focus_to_window_under_popup) ⇒ Object

arg: remaining(int), restore_focus_to_window_under_popup(bool) ret: void



9986
9987
9988
# File 'lib/imgui.rb', line 9986

def self.ClosePopupToLevel(remaining, restore_focus_to_window_under_popup)
  ImGui_ClosePopupToLevel(remaining, restore_focus_to_window_under_popup)
end

.CollapseButton(id, pos, dock_node) ⇒ Object

arg: id(ImGuiID), pos(ImVec2), dock_node(ImGuiDockNode*) ret: bool



10918
10919
10920
# File 'lib/imgui.rb', line 10918

def self.CollapseButton(id, pos, dock_node)
  ImGui_CollapseButton(id, pos, dock_node)
end

.CollapsingHeader(*arg) ⇒ Object



12359
12360
12361
12362
12363
12364
12365
12366
12367
12368
12369
# File 'lib/imgui.rb', line 12359

def self.CollapsingHeader(*arg)
  # arg: 0:label(const char*), 1:flags(ImGuiTreeNodeFlags)
  # ret: bool
  return ImGui_CollapsingHeader(arg[0], 0) if arg.length == 1 && (arg[0].kind_of?(String))
  return ImGui_CollapsingHeader(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer))
  # arg: 0:label(const char*), 1:p_visible(bool*), 2:flags(ImGuiTreeNodeFlags)
  # ret: bool
  return ImGui_CollapsingHeaderBoolPtr(arg[0], arg[1], 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  return ImGui_CollapsingHeaderBoolPtr(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::CollapsingHeader : No matching functions found (#{arg})")
end

.ColorButton(*arg) ⇒ Object



12309
12310
12311
12312
12313
12314
12315
12316
12317
12318
12319
12320
# File 'lib/imgui.rb', line 12309

def self.ColorButton(*arg)
  # arg: 0:desc_id(const char*), 1:col(ImVec4), 2:flags(ImGuiColorEditFlags)
  # ret: bool
  return ImGui_ColorButton(arg[0], arg[1], 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec4))
  return ImGui_ColorButton(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec4) && arg[2].kind_of?(Integer))
  # arg: 0:desc_id(const char*), 1:col(ImVec4), 2:flags(ImGuiColorEditFlags), 3:size(ImVec2)
  # ret: bool
  return ImGui_ColorButtonEx(arg[0], arg[1], arg[2], ImVec2.create(0,0)) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec4) && arg[2].kind_of?(Integer))
  return ImGui_ColorButtonEx(arg[0], arg[1], 0, ImVec2.create(0,0)) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec4))
  return ImGui_ColorButtonEx(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec4) && arg[2].kind_of?(Integer) && arg[3].kind_of?(ImVec2))
  $stderr.puts("[Warning] ImGui::ColorButton : No matching functions found (#{arg})")
end

.ColorConvertFloat4ToU32(_in_) ⇒ Object

arg: in(ImVec4) ret: uint



8735
8736
8737
# File 'lib/imgui.rb', line 8735

def self.ColorConvertFloat4ToU32(_in_)
  ImGui_ColorConvertFloat4ToU32(_in_)
end

.ColorConvertHSVtoRGB(h, s, v, out_r, out_g, out_b) ⇒ Object

arg: h(float), s(float), v(float), out_r(float*), out_g(float*), out_b(float*) ret: void



8747
8748
8749
# File 'lib/imgui.rb', line 8747

def self.ColorConvertHSVtoRGB(h, s, v, out_r, out_g, out_b)
  ImGui_ColorConvertHSVtoRGB(h, s, v, out_r, out_g, out_b)
end

.ColorConvertRGBtoHSV(r, g, b, out_h, out_s, out_v) ⇒ Object

arg: r(float), g(float), b(float), out_h(float*), out_s(float*), out_v(float*) ret: void



8741
8742
8743
# File 'lib/imgui.rb', line 8741

def self.ColorConvertRGBtoHSV(r, g, b, out_h, out_s, out_v)
  ImGui_ColorConvertRGBtoHSV(r, g, b, out_h, out_s, out_v)
end

.ColorConvertU32ToFloat4(_in_) ⇒ Object

arg: in(ImU32) ret: ImVec4.by_value



8729
8730
8731
# File 'lib/imgui.rb', line 8729

def self.ColorConvertU32ToFloat4(_in_)
  ImGui_ColorConvertU32ToFloat4(_in_)
end

.ColorEdit3(label, col, flags = 0) ⇒ Object

arg: label(const char*), col(float), flags(ImGuiColorEditFlags) ret: bool



8161
8162
8163
# File 'lib/imgui.rb', line 8161

def self.ColorEdit3(label, col, flags = 0)
  ImGui_ColorEdit3(label, col, flags)
end

.ColorEdit4(label, col, flags = 0) ⇒ Object

arg: label(const char*), col(float), flags(ImGuiColorEditFlags) ret: bool



8167
8168
8169
# File 'lib/imgui.rb', line 8167

def self.ColorEdit4(label, col, flags = 0)
  ImGui_ColorEdit4(label, col, flags)
end

.ColorEditOptionsPopup(col, flags) ⇒ Object

arg: col(const float*), flags(ImGuiColorEditFlags) ret: void



11079
11080
11081
# File 'lib/imgui.rb', line 11079

def self.ColorEditOptionsPopup(col, flags)
  ImGui_ColorEditOptionsPopup(col, flags)
end

.ColorPicker3(label, col, flags = 0) ⇒ Object

arg: label(const char*), col(float), flags(ImGuiColorEditFlags) ret: bool



8173
8174
8175
# File 'lib/imgui.rb', line 8173

def self.ColorPicker3(label, col, flags = 0)
  ImGui_ColorPicker3(label, col, flags)
end

.ColorPicker4(label, col, flags = 0, ref_col = nil) ⇒ Object

arg: label(const char*), col(float), flags(ImGuiColorEditFlags), ref_col(const float*) ret: bool



8179
8180
8181
# File 'lib/imgui.rb', line 8179

def self.ColorPicker4(label, col, flags = 0, ref_col = nil)
  ImGui_ColorPicker4(label, col, flags, ref_col)
end

.ColorPickerOptionsPopup(ref_col, flags) ⇒ Object

arg: ref_col(const float*), flags(ImGuiColorEditFlags) ret: void



11085
11086
11087
# File 'lib/imgui.rb', line 11085

def self.ColorPickerOptionsPopup(ref_col, flags)
  ImGui_ColorPickerOptionsPopup(ref_col, flags)
end

.ColorTooltip(text, col, flags) ⇒ Object

arg: text(const char*), col(const float*), flags(ImGuiColorEditFlags) ret: void



11073
11074
11075
# File 'lib/imgui.rb', line 11073

def self.ColorTooltip(text, col, flags)
  ImGui_ColorTooltip(text, col, flags)
end

.Columns(*arg) ⇒ Object



12612
12613
12614
12615
12616
12617
12618
12619
12620
12621
12622
12623
# File 'lib/imgui.rb', line 12612

def self.Columns(*arg)
  # arg: 
  # ret: void
  return ImGui_Columns() if arg.empty?
  # arg: 0:count(int), 1:id(const char*), 2:borders(bool)
  # ret: void
  return ImGui_ColumnsEx(arg[0], arg[1], true) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(String))
  return ImGui_ColumnsEx(arg[0], nil, true) if arg.length == 1 && (arg[0].kind_of?(Integer))
  return ImGui_ColumnsEx(1, nil, true) if arg.length == 0 && (true)
  return ImGui_ColumnsEx(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(String) && (arg[2].is_a?(TrueClass) || arg[2].is_a?(FalseClass)))
  $stderr.puts("[Warning] ImGui::Columns : No matching functions found (#{arg})")
end

.Combo(*arg) ⇒ Object



11785
11786
11787
11788
11789
11790
11791
11792
11793
11794
11795
11796
11797
11798
11799
11800
11801
11802
11803
11804
11805
11806
11807
11808
# File 'lib/imgui.rb', line 11785

def self.Combo(*arg)
  # arg: 0:label(const char*), 1:current_item(int*), 2:items(const char*const[]), 3:items_count(int)
  # ret: bool
  return ImGui_ComboChar(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer))
  # arg: 0:label(const char*), 1:current_item(int*), 2:items(const char*const[]), 3:items_count(int), 4:popup_max_height_in_items(int)
  # ret: bool
  return ImGui_ComboCharEx(arg[0], arg[1], arg[2], arg[3], -1) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer))
  return ImGui_ComboCharEx(arg[0], arg[1], arg[2], arg[3], arg[4]) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer))
  # arg: 0:label(const char*), 1:current_item(int*), 2:items_separated_by_zeros(const char*)
  # ret: bool
  return ImGui_Combo(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(String))
  # arg: 0:label(const char*), 1:current_item(int*), 2:items_separated_by_zeros(const char*), 3:popup_max_height_in_items(int)
  # ret: bool
  return ImGui_ComboEx(arg[0], arg[1], arg[2], -1) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(String))
  return ImGui_ComboEx(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(String) && arg[3].kind_of?(Integer))
  # arg: 0:label(const char*), 1:current_item(int*), 2:getter(const char* (*getter)(void* user_data, int idx)), 3:user_data(void*), 4:items_count(int)
  # ret: bool
  return ImGui_ComboCallback(arg[0], arg[1], arg[2], arg[3], arg[4]) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(Integer))
  # arg: 0:label(const char*), 1:current_item(int*), 2:getter(const char* (*getter)(void* user_data, int idx)), 3:user_data(void*), 4:items_count(int), 5:popup_max_height_in_items(int)
  # ret: bool
  return ImGui_ComboCallbackEx(arg[0], arg[1], arg[2], arg[3], arg[4], -1) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(Integer))
  return ImGui_ComboCallbackEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::Combo : No matching functions found (#{arg})")
end

.ConvertSingleModFlagToKey(key) ⇒ Object

arg: key(ImGuiKey) ret: int



10249
10250
10251
# File 'lib/imgui.rb', line 10249

def self.ConvertSingleModFlagToKey(key)
  ImGui_ConvertSingleModFlagToKey(key)
end

.CreateContext(shared_font_atlas = nil) ⇒ Object

arg: shared_font_atlas(ImFontAtlas*) ret: pointer



7577
7578
7579
# File 'lib/imgui.rb', line 7577

def self.CreateContext(shared_font_atlas = nil)
  ImGui_CreateContext(shared_font_atlas)
end

.CreateNewWindowSettings(name) ⇒ Object

arg: name(const char*) ret: pointer



9759
9760
9761
# File 'lib/imgui.rb', line 9759

def self.CreateNewWindowSettings(name)
  ImGui_CreateNewWindowSettings(name)
end

.DataTypeApplyFromText(*arg) ⇒ Object



13347
13348
13349
13350
13351
13352
13353
13354
13355
13356
# File 'lib/imgui.rb', line 13347

def self.DataTypeApplyFromText(*arg)
  # arg: 0:buf(const char*), 1:data_type(ImGuiDataType), 2:p_data(void*), 3:format(const char*)
  # ret: bool
  return ImGui_DataTypeApplyFromText(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(String))
  # arg: 0:buf(const char*), 1:data_type(ImGuiDataType), 2:p_data(void*), 3:format(const char*), 4:p_data_when_empty(void*)
  # ret: bool
  return ImGui_DataTypeApplyFromTextEx(arg[0], arg[1], arg[2], arg[3], nil) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(String))
  return ImGui_DataTypeApplyFromTextEx(arg[0], arg[1], arg[2], arg[3], arg[4]) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(String) && arg[4].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::DataTypeApplyFromText : No matching functions found (#{arg})")
end

.DataTypeApplyOp(data_type, op, output, arg_1, arg_2) ⇒ Object

arg: data_type(ImGuiDataType), op(int), output(void*), arg_1(const void*), arg_2(const void*) ret: void



11020
11021
11022
# File 'lib/imgui.rb', line 11020

def self.DataTypeApplyOp(data_type, op, output, arg_1, arg_2)
  ImGui_DataTypeApplyOp(data_type, op, output, arg_1, arg_2)
end

.DataTypeClamp(data_type, p_data, p_min, p_max) ⇒ Object

arg: data_type(ImGuiDataType), p_data(void*), p_min(const void*), p_max(const void*) ret: bool



11032
11033
11034
# File 'lib/imgui.rb', line 11032

def self.DataTypeClamp(data_type, p_data, p_min, p_max)
  ImGui_DataTypeClamp(data_type, p_data, p_min, p_max)
end

.DataTypeCompare(data_type, arg_1, arg_2) ⇒ Object

arg: data_type(ImGuiDataType), arg_1(const void*), arg_2(const void*) ret: int



11026
11027
11028
# File 'lib/imgui.rb', line 11026

def self.DataTypeCompare(data_type, arg_1, arg_2)
  ImGui_DataTypeCompare(data_type, arg_1, arg_2)
end

.DataTypeFormatString(buf, buf_size, data_type, p_data, format) ⇒ Object

arg: buf(char*), buf_size(int), data_type(ImGuiDataType), p_data(const void*), format(const char*) ret: int



11014
11015
11016
# File 'lib/imgui.rb', line 11014

def self.DataTypeFormatString(buf, buf_size, data_type, p_data, format)
  ImGui_DataTypeFormatString(buf, buf_size, data_type, p_data, format)
end

.DataTypeGetInfo(data_type) ⇒ Object

arg: data_type(ImGuiDataType) ret: pointer



11008
11009
11010
# File 'lib/imgui.rb', line 11008

def self.DataTypeGetInfo(data_type)
  ImGui_DataTypeGetInfo(data_type)
end

.DataTypeIsZero(data_type, p_data) ⇒ Object

arg: data_type(ImGuiDataType), p_data(const void*) ret: bool



11038
11039
11040
# File 'lib/imgui.rb', line 11038

def self.DataTypeIsZero(data_type, p_data)
  ImGui_DataTypeIsZero(data_type, p_data)
end

.DebugAllocHook(info, frame_count, ptr, size) ⇒ Object

arg: info(ImGuiDebugAllocInfo*), frame_count(int), ptr(void*), size(size_t) ret: void



11188
11189
11190
# File 'lib/imgui.rb', line 11188

def self.DebugAllocHook(info, frame_count, ptr, size)
  ImGui_DebugAllocHook(info, frame_count, ptr, size)
end

.DebugBreakButton(label, description_of_location) ⇒ Object

arg: label(const char*), description_of_location(const char*) ret: bool



11222
11223
11224
# File 'lib/imgui.rb', line 11222

def self.DebugBreakButton(label, description_of_location)
  ImGui_DebugBreakButton(label, description_of_location)
end

.DebugBreakButtonTooltip(keyboard_only, description_of_location) ⇒ Object

arg: keyboard_only(bool), description_of_location(const char*) ret: void



11228
11229
11230
# File 'lib/imgui.rb', line 11228

def self.DebugBreakButtonTooltip(keyboard_only, description_of_location)
  ImGui_DebugBreakButtonTooltip(keyboard_only, description_of_location)
end

.DebugBreakClearDataObject

ret: void



11216
11217
11218
# File 'lib/imgui.rb', line 11216

def self.DebugBreakClearData()
  ImGui_DebugBreakClearData()
end

.DebugCheckVersionAndDataLayout(version_str, sz_io, sz_style, sz_vec2, sz_vec4, sz_drawvert, sz_drawidx) ⇒ Object

arg: version_str(const char*), sz_io(size_t), sz_style(size_t), sz_vec2(size_t), sz_vec4(size_t), sz_drawvert(size_t), sz_drawidx(size_t) ret: bool



8885
8886
8887
# File 'lib/imgui.rb', line 8885

def self.DebugCheckVersionAndDataLayout(version_str, sz_io, sz_style, sz_vec2, sz_vec4, sz_drawvert, sz_drawidx)
  ImGui_DebugCheckVersionAndDataLayout(version_str, sz_io, sz_style, sz_vec2, sz_vec4, sz_drawvert, sz_drawidx)
end

.DebugDrawCursorPos(*arg) ⇒ Object



13396
13397
13398
13399
13400
13401
13402
13403
13404
13405
# File 'lib/imgui.rb', line 13396

def self.DebugDrawCursorPos(*arg)
  # arg: 
  # ret: void
  return ImGui_DebugDrawCursorPos() if arg.empty?
  # arg: 0:col(ImU32)
  # ret: void
  return ImGui_DebugDrawCursorPosEx(IM_COL32(255, 0, 0, 255)) if arg.length == 0 && (true)
  return ImGui_DebugDrawCursorPosEx(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::DebugDrawCursorPos : No matching functions found (#{arg})")
end

.DebugDrawItemRect(*arg) ⇒ Object



13418
13419
13420
13421
13422
13423
13424
13425
13426
13427
# File 'lib/imgui.rb', line 13418

def self.DebugDrawItemRect(*arg)
  # arg: 
  # ret: void
  return ImGui_DebugDrawItemRect() if arg.empty?
  # arg: 0:col(ImU32)
  # ret: void
  return ImGui_DebugDrawItemRectEx(IM_COL32(255, 0, 0, 255)) if arg.length == 0 && (true)
  return ImGui_DebugDrawItemRectEx(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::DebugDrawItemRect : No matching functions found (#{arg})")
end

.DebugDrawLineExtents(*arg) ⇒ Object



13407
13408
13409
13410
13411
13412
13413
13414
13415
13416
# File 'lib/imgui.rb', line 13407

def self.DebugDrawLineExtents(*arg)
  # arg: 
  # ret: void
  return ImGui_DebugDrawLineExtents() if arg.empty?
  # arg: 0:col(ImU32)
  # ret: void
  return ImGui_DebugDrawLineExtentsEx(IM_COL32(255, 0, 0, 255)) if arg.length == 0 && (true)
  return ImGui_DebugDrawLineExtentsEx(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::DebugDrawLineExtents : No matching functions found (#{arg})")
end

.DebugFlashStyleColor(idx) ⇒ Object

arg: idx(ImGuiCol) ret: void



8874
8875
8876
# File 'lib/imgui.rb', line 8874

def self.DebugFlashStyleColor(idx)
  ImGui_DebugFlashStyleColor(idx)
end

.DebugHookIdInfo(id, data_type, data_id, data_id_end) ⇒ Object

arg: id(ImGuiID), data_type(ImGuiDataType), data_id(const void*), data_id_end(const void*) ret: void



11246
11247
11248
# File 'lib/imgui.rb', line 11246

def self.DebugHookIdInfo(id, data_type, data_id, data_id_end)
  ImGui_DebugHookIdInfo(id, data_type, data_id, data_id_end)
end

.DebugLocateItem(target_id) ⇒ Object

arg: target_id(ImGuiID) ret: void



11200
11201
11202
# File 'lib/imgui.rb', line 11200

def self.DebugLocateItem(target_id)
  ImGui_DebugLocateItem(target_id)
end

.DebugLocateItemOnHover(target_id) ⇒ Object

arg: target_id(ImGuiID) ret: void



11206
11207
11208
# File 'lib/imgui.rb', line 11206

def self.DebugLocateItemOnHover(target_id)
  ImGui_DebugLocateItemOnHover(target_id)
end

.DebugLocateItemResolveWithLastItemObject

ret: void



11211
11212
11213
# File 'lib/imgui.rb', line 11211

def self.DebugLocateItemResolveWithLastItem()
  ImGui_DebugLocateItemResolveWithLastItem()
end

.DebugLog(fmt, *varargs) ⇒ Object

arg: fmt(const char*), unnamed_arg1(...) ret: void



8891
8892
8893
# File 'lib/imgui.rb', line 8891

def self.DebugLog(fmt, *varargs)
  ImGui_DebugLog(fmt, *varargs)
end

.DebugNodeColumns(columns) ⇒ Object

arg: columns(ImGuiOldColumns*) ret: void



11252
11253
11254
# File 'lib/imgui.rb', line 11252

def self.DebugNodeColumns(columns)
  ImGui_DebugNodeColumns(columns)
end

.DebugNodeDockNode(node, label) ⇒ Object

arg: node(ImGuiDockNode*), label(const char*) ret: void



11258
11259
11260
# File 'lib/imgui.rb', line 11258

def self.DebugNodeDockNode(node, label)
  ImGui_DebugNodeDockNode(node, label)
end

.DebugNodeDrawCmdShowMeshAndBoundingBox(out_draw_list, draw_list, draw_cmd, show_mesh, show_aabb) ⇒ Object

arg: out_draw_list(ImDrawList*), draw_list(const ImDrawList*), draw_cmd(const ImDrawCmd*), show_mesh(bool), show_aabb(bool) ret: void



11270
11271
11272
# File 'lib/imgui.rb', line 11270

def self.DebugNodeDrawCmdShowMeshAndBoundingBox(out_draw_list, draw_list, draw_cmd, show_mesh, show_aabb)
  ImGui_DebugNodeDrawCmdShowMeshAndBoundingBox(out_draw_list, draw_list, draw_cmd, show_mesh, show_aabb)
end

.DebugNodeDrawList(window, viewport, draw_list, label) ⇒ Object

arg: window(ImGuiWindow*), viewport(ImGuiViewportP*), draw_list(const ImDrawList*), label(const char*) ret: void



11264
11265
11266
# File 'lib/imgui.rb', line 11264

def self.DebugNodeDrawList(window, viewport, draw_list, label)
  ImGui_DebugNodeDrawList(window, viewport, draw_list, label)
end

.DebugNodeFont(font) ⇒ Object

arg: font(ImFont*) ret: void



11276
11277
11278
# File 'lib/imgui.rb', line 11276

def self.DebugNodeFont(font)
  ImGui_DebugNodeFont(font)
end

.DebugNodeFontGlyph(font, glyph) ⇒ Object

arg: font(ImFont*), glyph(const ImFontGlyph*) ret: void



11288
11289
11290
# File 'lib/imgui.rb', line 11288

def self.DebugNodeFontGlyph(font, glyph)
  ImGui_DebugNodeFontGlyph(font, glyph)
end

.DebugNodeFontGlyphsForSrcMask(font, baked, src_mask) ⇒ Object

arg: font(ImFont*), baked(ImFontBaked*), src_mask(int) ret: void



11282
11283
11284
# File 'lib/imgui.rb', line 11282

def self.DebugNodeFontGlyphsForSrcMask(font, baked, src_mask)
  ImGui_DebugNodeFontGlyphsForSrcMask(font, baked, src_mask)
end

.DebugNodeInputTextState(state) ⇒ Object

arg: state(ImGuiInputTextState*) ret: void



11318
11319
11320
# File 'lib/imgui.rb', line 11318

def self.DebugNodeInputTextState(state)
  ImGui_DebugNodeInputTextState(state)
end

.DebugNodeMultiSelectState(state) ⇒ Object

arg: state(ImGuiMultiSelectState*) ret: void



11330
11331
11332
# File 'lib/imgui.rb', line 11330

def self.DebugNodeMultiSelectState(state)
  ImGui_DebugNodeMultiSelectState(state)
end

.DebugNodePlatformMonitor(monitor, label, idx) ⇒ Object

arg: monitor(ImGuiPlatformMonitor*), label(const char*), idx(int) ret: void



11366
11367
11368
# File 'lib/imgui.rb', line 11366

def self.DebugNodePlatformMonitor(monitor, label, idx)
  ImGui_DebugNodePlatformMonitor(monitor, label, idx)
end

.DebugNodeStorage(storage, label) ⇒ Object

arg: storage(ImGuiStorage*), label(const char*) ret: void



11294
11295
11296
# File 'lib/imgui.rb', line 11294

def self.DebugNodeStorage(storage, label)
  ImGui_DebugNodeStorage(storage, label)
end

.DebugNodeTabBar(tab_bar, label) ⇒ Object

arg: tab_bar(ImGuiTabBar*), label(const char*) ret: void



11300
11301
11302
# File 'lib/imgui.rb', line 11300

def self.DebugNodeTabBar(tab_bar, label)
  ImGui_DebugNodeTabBar(tab_bar, label)
end

.DebugNodeTable(table) ⇒ Object

arg: table(ImGuiTable*) ret: void



11306
11307
11308
# File 'lib/imgui.rb', line 11306

def self.DebugNodeTable(table)
  ImGui_DebugNodeTable(table)
end

.DebugNodeTableSettings(settings, table) ⇒ Object

arg: settings(ImGuiTableSettings*), table(ImGuiTable*) ret: void



11312
11313
11314
# File 'lib/imgui.rb', line 11312

def self.DebugNodeTableSettings(settings, table)
  ImGui_DebugNodeTableSettings(settings, table)
end

.DebugNodeTexture(*arg) ⇒ Object



13429
13430
13431
13432
13433
13434
13435
13436
13437
13438
# File 'lib/imgui.rb', line 13429

def self.DebugNodeTexture(*arg)
  # arg: 0:tex(ImTextureData*), 1:int_id(int)
  # ret: void
  return ImGui_DebugNodeTexture(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(Integer))
  # arg: 0:tex(ImTextureData*), 1:int_id(int), 2:highlight_rect(const ImFontAtlasRect*)
  # ret: void
  return ImGui_DebugNodeTextureEx(arg[0], arg[1], nil) if arg.length == 2 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(Integer))
  return ImGui_DebugNodeTextureEx(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::DebugNodeTexture : No matching functions found (#{arg})")
end

.DebugNodeTypingSelectState(state) ⇒ Object

arg: state(ImGuiTypingSelectState*) ret: void



11324
11325
11326
# File 'lib/imgui.rb', line 11324

def self.DebugNodeTypingSelectState(state)
  ImGui_DebugNodeTypingSelectState(state)
end

.DebugNodeViewport(viewport) ⇒ Object

arg: viewport(ImGuiViewportP*) ret: void



11360
11361
11362
# File 'lib/imgui.rb', line 11360

def self.DebugNodeViewport(viewport)
  ImGui_DebugNodeViewport(viewport)
end

.DebugNodeWindow(window, label) ⇒ Object

arg: window(ImGuiWindow*), label(const char*) ret: void



11336
11337
11338
# File 'lib/imgui.rb', line 11336

def self.DebugNodeWindow(window, label)
  ImGui_DebugNodeWindow(window, label)
end

.DebugNodeWindowSettings(settings) ⇒ Object

arg: settings(ImGuiWindowSettings*) ret: void



11342
11343
11344
# File 'lib/imgui.rb', line 11342

def self.DebugNodeWindowSettings(settings)
  ImGui_DebugNodeWindowSettings(settings)
end

.DebugNodeWindowsList(windows, label) ⇒ Object

arg: windows(ImVector_ImGuiWindowPtr*), label(const char*) ret: void



11348
11349
11350
# File 'lib/imgui.rb', line 11348

def self.DebugNodeWindowsList(windows, label)
  ImGui_DebugNodeWindowsList(windows, label)
end

.DebugNodeWindowsListByBeginStackParent(windows, windows_size, parent_in_begin_stack) ⇒ Object

arg: windows(ImGuiWindow**), windows_size(int), parent_in_begin_stack(ImGuiWindow*) ret: void



11354
11355
11356
# File 'lib/imgui.rb', line 11354

def self.DebugNodeWindowsListByBeginStackParent(windows, windows_size, parent_in_begin_stack)
  ImGui_DebugNodeWindowsListByBeginStackParent(windows, windows_size, parent_in_begin_stack)
end

.DebugRenderKeyboardPreview(draw_list) ⇒ Object

arg: draw_list(ImDrawList*) ret: void



11372
11373
11374
# File 'lib/imgui.rb', line 11372

def self.DebugRenderKeyboardPreview(draw_list)
  ImGui_DebugRenderKeyboardPreview(draw_list)
end

.DebugRenderViewportThumbnail(draw_list, viewport, bb) ⇒ Object

arg: draw_list(ImDrawList*), viewport(ImGuiViewportP*), bb(ImRect) ret: void



11378
11379
11380
# File 'lib/imgui.rb', line 11378

def self.DebugRenderViewportThumbnail(draw_list, viewport, bb)
  ImGui_DebugRenderViewportThumbnail(draw_list, viewport, bb)
end

.DebugStartItemPickerObject

ret: void



8879
8880
8881
# File 'lib/imgui.rb', line 8879

def self.DebugStartItemPicker()
  ImGui_DebugStartItemPicker()
end

.DebugTextEncoding(text) ⇒ Object

arg: text(const char*) ret: void



8868
8869
8870
# File 'lib/imgui.rb', line 8868

def self.DebugTextEncoding(text)
  ImGui_DebugTextEncoding(text)
end

.DebugTextUnformattedWithLocateItem(line_begin, line_end) ⇒ Object

arg: line_begin(const char*), line_end(const char*) ret: void



11194
11195
11196
# File 'lib/imgui.rb', line 11194

def self.DebugTextUnformattedWithLocateItem(line_begin, line_end)
  ImGui_DebugTextUnformattedWithLocateItem(line_begin, line_end)
end

.DebugTextureIDToU64(tex_id) ⇒ Object

arg: tex_id(ImTextureID) ret: uint64



11240
11241
11242
# File 'lib/imgui.rb', line 11240

def self.DebugTextureIDToU64(tex_id)
  ImGui_DebugTextureIDToU64(tex_id)
end

.Default(ctx, node, tab_bar) ⇒ Object

arg: ctx(ImGuiContext*), node(ImGuiDockNode*), tab_bar(ImGuiTabBar*) ret: void



10440
10441
10442
# File 'lib/imgui.rb', line 10440

def self.Default(ctx, node, tab_bar)
  ImGui_DockNodeWindowMenuHandler_Default(ctx, node, tab_bar)
end

.DemoMarker(file, line, section) ⇒ Object

arg: file(const char*), line(int), section(const char*) ret: void



11182
11183
11184
# File 'lib/imgui.rb', line 11182

def self.DemoMarker(file, line, section)
  ImGui_DemoMarker(file, line, section)
end

.DestroyContext(ctx = nil) ⇒ Object

arg: ctx(ImGuiContext*) ret: void



7583
7584
7585
# File 'lib/imgui.rb', line 7583

def self.DestroyContext(ctx = nil)
  ImGui_DestroyContext(ctx)
end

.DestroyPlatformWindow(viewport) ⇒ Object

arg: viewport(ImGuiViewportP*) ret: void



9700
9701
9702
# File 'lib/imgui.rb', line 9700

def self.DestroyPlatformWindow(viewport)
  ImGui_DestroyPlatformWindow(viewport)
end

.DestroyPlatformWindowsObject

ret: void



8925
8926
8927
# File 'lib/imgui.rb', line 8925

def self.DestroyPlatformWindows()
  ImGui_DestroyPlatformWindows()
end

.DockBuilderAddNode(*arg) ⇒ Object



13085
13086
13087
13088
13089
13090
13091
13092
13093
13094
13095
# File 'lib/imgui.rb', line 13085

def self.DockBuilderAddNode(*arg)
  # arg: 
  # ret: uint
  return ImGui_DockBuilderAddNode() if arg.empty?
  # arg: 0:node_id(ImGuiID), 1:flags(ImGuiDockNodeFlags)
  # ret: uint
  return ImGui_DockBuilderAddNodeEx(arg[0], 0) if arg.length == 1 && (arg[0].kind_of?(Integer))
  return ImGui_DockBuilderAddNodeEx(0, 0) if arg.length == 0 && (true)
  return ImGui_DockBuilderAddNodeEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::DockBuilderAddNode : No matching functions found (#{arg})")
end

.DockBuilderCopyDockSpace(src_dockspace_id, dst_dockspace_id, in_window_remap_pairs) ⇒ Object

arg: src_dockspace_id(ImGuiID), dst_dockspace_id(ImGuiID), in_window_remap_pairs(ImVector_const_charPtr*) ret: void



10564
10565
10566
# File 'lib/imgui.rb', line 10564

def self.DockBuilderCopyDockSpace(src_dockspace_id, dst_dockspace_id, in_window_remap_pairs)
  ImGui_DockBuilderCopyDockSpace(src_dockspace_id, dst_dockspace_id, in_window_remap_pairs)
end

.DockBuilderCopyNode(src_node_id, dst_node_id, out_node_remap_pairs) ⇒ Object

arg: src_node_id(ImGuiID), dst_node_id(ImGuiID), out_node_remap_pairs(ImVector_ImGuiID*) ret: void



10570
10571
10572
# File 'lib/imgui.rb', line 10570

def self.DockBuilderCopyNode(src_node_id, dst_node_id, out_node_remap_pairs)
  ImGui_DockBuilderCopyNode(src_node_id, dst_node_id, out_node_remap_pairs)
end

.DockBuilderCopyWindowSettings(src_name, dst_name) ⇒ Object

arg: src_name(const char*), dst_name(const char*) ret: void



10576
10577
10578
# File 'lib/imgui.rb', line 10576

def self.DockBuilderCopyWindowSettings(src_name, dst_name)
  ImGui_DockBuilderCopyWindowSettings(src_name, dst_name)
end

.DockBuilderDockWindow(window_name, node_id) ⇒ Object

arg: window_name(const char*), node_id(ImGuiID) ret: void



10516
10517
10518
# File 'lib/imgui.rb', line 10516

def self.DockBuilderDockWindow(window_name, node_id)
  ImGui_DockBuilderDockWindow(window_name, node_id)
end

.DockBuilderFinish(node_id) ⇒ Object

arg: node_id(ImGuiID) ret: void



10582
10583
10584
# File 'lib/imgui.rb', line 10582

def self.DockBuilderFinish(node_id)
  ImGui_DockBuilderFinish(node_id)
end

.DockBuilderGetCentralNode(node_id) ⇒ Object

arg: node_id(ImGuiID) ret: pointer



10528
10529
10530
# File 'lib/imgui.rb', line 10528

def self.DockBuilderGetCentralNode(node_id)
  ImGui_DockBuilderGetCentralNode(node_id)
end

.DockBuilderGetNode(node_id) ⇒ Object

arg: node_id(ImGuiID) ret: pointer



10522
10523
10524
# File 'lib/imgui.rb', line 10522

def self.DockBuilderGetNode(node_id)
  ImGui_DockBuilderGetNode(node_id)
end

.DockBuilderRemoveNode(node_id) ⇒ Object

arg: node_id(ImGuiID) ret: void



10534
10535
10536
# File 'lib/imgui.rb', line 10534

def self.DockBuilderRemoveNode(node_id)
  ImGui_DockBuilderRemoveNode(node_id)
end

.DockBuilderRemoveNodeChildNodes(node_id) ⇒ Object

arg: node_id(ImGuiID) ret: void



10540
10541
10542
# File 'lib/imgui.rb', line 10540

def self.DockBuilderRemoveNodeChildNodes(node_id)
  ImGui_DockBuilderRemoveNodeChildNodes(node_id)
end

.DockBuilderRemoveNodeDockedWindows(*arg) ⇒ Object



13097
13098
13099
13100
13101
13102
13103
13104
13105
13106
# File 'lib/imgui.rb', line 13097

def self.DockBuilderRemoveNodeDockedWindows(*arg)
  # arg: 0:node_id(ImGuiID)
  # ret: void
  return ImGui_DockBuilderRemoveNodeDockedWindows(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  # arg: 0:node_id(ImGuiID), 1:clear_settings_refs(bool)
  # ret: void
  return ImGui_DockBuilderRemoveNodeDockedWindowsEx(arg[0], true) if arg.length == 1 && (arg[0].kind_of?(Integer))
  return ImGui_DockBuilderRemoveNodeDockedWindowsEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && (arg[1].is_a?(TrueClass) || arg[1].is_a?(FalseClass)))
  $stderr.puts("[Warning] ImGui::DockBuilderRemoveNodeDockedWindows : No matching functions found (#{arg})")
end

.DockBuilderSetNodePos(node_id, pos) ⇒ Object

arg: node_id(ImGuiID), pos(ImVec2) ret: void



10546
10547
10548
# File 'lib/imgui.rb', line 10546

def self.DockBuilderSetNodePos(node_id, pos)
  ImGui_DockBuilderSetNodePos(node_id, pos)
end

.DockBuilderSetNodeSize(node_id, size) ⇒ Object

arg: node_id(ImGuiID), size(ImVec2) ret: void



10552
10553
10554
# File 'lib/imgui.rb', line 10552

def self.DockBuilderSetNodeSize(node_id, size)
  ImGui_DockBuilderSetNodeSize(node_id, size)
end

.DockBuilderSplitNode(node_id, split_dir, size_ratio_for_node_at_dir, out_id_at_dir, out_id_at_opposite_dir) ⇒ Object

arg: node_id(ImGuiID), split_dir(ImGuiDir), size_ratio_for_node_at_dir(float), out_id_at_dir(ImGuiID*), out_id_at_opposite_dir(ImGuiID*) ret: uint



10558
10559
10560
# File 'lib/imgui.rb', line 10558

def self.DockBuilderSplitNode(node_id, split_dir, size_ratio_for_node_at_dir, out_id_at_dir, out_id_at_opposite_dir)
  ImGui_DockBuilderSplitNode(node_id, split_dir, size_ratio_for_node_at_dir, out_id_at_dir, out_id_at_opposite_dir)
end

.DockContextCalcDropPosForDocking(target, target_node, payload_window, payload_node, split_dir, split_outer, out_pos) ⇒ Object

arg: target(ImGuiWindow*), target_node(ImGuiDockNode*), payload_window(ImGuiWindow*), payload_node(ImGuiDockNode*), split_dir(ImGuiDir), split_outer(bool), out_pos(ImVec2*) ret: bool



10428
10429
10430
# File 'lib/imgui.rb', line 10428

def self.DockContextCalcDropPosForDocking(target, target_node, payload_window, payload_node, split_dir, split_outer, out_pos)
  ImGui_DockContextCalcDropPosForDocking(target, target_node, payload_window, payload_node, split_dir, split_outer, out_pos)
end

.DockContextClearNodes(ctx, root_id, clear_settings_refs) ⇒ Object

arg: ctx(ImGuiContext*), root_id(ImGuiID), clear_settings_refs(bool) ret: void



10368
10369
10370
# File 'lib/imgui.rb', line 10368

def self.DockContextClearNodes(ctx, root_id, clear_settings_refs)
  ImGui_DockContextClearNodes(ctx, root_id, clear_settings_refs)
end

.DockContextEndFrame(ctx) ⇒ Object

arg: ctx(ImGuiContext*) ret: void



10392
10393
10394
# File 'lib/imgui.rb', line 10392

def self.DockContextEndFrame(ctx)
  ImGui_DockContextEndFrame(ctx)
end

.DockContextFindNodeByID(ctx, id) ⇒ Object

arg: ctx(ImGuiContext*), id(ImGuiID) ret: pointer



10434
10435
10436
# File 'lib/imgui.rb', line 10434

def self.DockContextFindNodeByID(ctx, id)
  ImGui_DockContextFindNodeByID(ctx, id)
end

.DockContextGenNodeID(ctx) ⇒ Object

arg: ctx(ImGuiContext*) ret: uint



10398
10399
10400
# File 'lib/imgui.rb', line 10398

def self.DockContextGenNodeID(ctx)
  ImGui_DockContextGenNodeID(ctx)
end

.DockContextInitialize(ctx) ⇒ Object

arg: ctx(ImGuiContext*) ret: void



10356
10357
10358
# File 'lib/imgui.rb', line 10356

def self.DockContextInitialize(ctx)
  ImGui_DockContextInitialize(ctx)
end

.DockContextNewFrameUpdateDocking(ctx) ⇒ Object

arg: ctx(ImGuiContext*) ret: void



10386
10387
10388
# File 'lib/imgui.rb', line 10386

def self.DockContextNewFrameUpdateDocking(ctx)
  ImGui_DockContextNewFrameUpdateDocking(ctx)
end

.DockContextNewFrameUpdateUndocking(ctx) ⇒ Object

arg: ctx(ImGuiContext*) ret: void



10380
10381
10382
# File 'lib/imgui.rb', line 10380

def self.DockContextNewFrameUpdateUndocking(ctx)
  ImGui_DockContextNewFrameUpdateUndocking(ctx)
end

.DockContextProcessUndockNode(ctx, node) ⇒ Object

arg: ctx(ImGuiContext*), node(ImGuiDockNode*) ret: void



10422
10423
10424
# File 'lib/imgui.rb', line 10422

def self.DockContextProcessUndockNode(ctx, node)
  ImGui_DockContextProcessUndockNode(ctx, node)
end

.DockContextProcessUndockWindow(*arg) ⇒ Object



13074
13075
13076
13077
13078
13079
13080
13081
13082
13083
# File 'lib/imgui.rb', line 13074

def self.DockContextProcessUndockWindow(*arg)
  # arg: 0:ctx(ImGuiContext*), 1:window(ImGuiWindow*)
  # ret: void
  return ImGui_DockContextProcessUndockWindow(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(FFI::Pointer))
  # arg: 0:ctx(ImGuiContext*), 1:window(ImGuiWindow*), 2:clear_persistent_docking_ref(bool)
  # ret: void
  return ImGui_DockContextProcessUndockWindowEx(arg[0], arg[1], true) if arg.length == 2 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(FFI::Pointer))
  return ImGui_DockContextProcessUndockWindowEx(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(FFI::Pointer) && (arg[2].is_a?(TrueClass) || arg[2].is_a?(FalseClass)))
  $stderr.puts("[Warning] ImGui::DockContextProcessUndockWindow : No matching functions found (#{arg})")
end

.DockContextQueueDock(ctx, target, target_node, payload, split_dir, split_ratio, split_outer) ⇒ Object

arg: ctx(ImGuiContext*), target(ImGuiWindow*), target_node(ImGuiDockNode*), payload(ImGuiWindow*), split_dir(ImGuiDir), split_ratio(float), split_outer(bool) ret: void



10404
10405
10406
# File 'lib/imgui.rb', line 10404

def self.DockContextQueueDock(ctx, target, target_node, payload, split_dir, split_ratio, split_outer)
  ImGui_DockContextQueueDock(ctx, target, target_node, payload, split_dir, split_ratio, split_outer)
end

.DockContextQueueUndockNode(ctx, node) ⇒ Object

arg: ctx(ImGuiContext*), node(ImGuiDockNode*) ret: void



10416
10417
10418
# File 'lib/imgui.rb', line 10416

def self.DockContextQueueUndockNode(ctx, node)
  ImGui_DockContextQueueUndockNode(ctx, node)
end

.DockContextQueueUndockWindow(ctx, window) ⇒ Object

arg: ctx(ImGuiContext*), window(ImGuiWindow*) ret: void



10410
10411
10412
# File 'lib/imgui.rb', line 10410

def self.DockContextQueueUndockWindow(ctx, window)
  ImGui_DockContextQueueUndockWindow(ctx, window)
end

.DockContextRebuildNodes(ctx) ⇒ Object

arg: ctx(ImGuiContext*) ret: void



10374
10375
10376
# File 'lib/imgui.rb', line 10374

def self.DockContextRebuildNodes(ctx)
  ImGui_DockContextRebuildNodes(ctx)
end

.DockContextShutdown(ctx) ⇒ Object

arg: ctx(ImGuiContext*) ret: void



10362
10363
10364
# File 'lib/imgui.rb', line 10362

def self.DockContextShutdown(ctx)
  ImGui_DockContextShutdown(ctx)
end

.DockNodeBeginAmendTabBar(node) ⇒ Object

arg: node(ImGuiDockNode*) ret: bool



10446
10447
10448
# File 'lib/imgui.rb', line 10446

def self.DockNodeBeginAmendTabBar(node)
  ImGui_DockNodeBeginAmendTabBar(node)
end

.DockNodeEndAmendTabBarObject

ret: void



10451
10452
10453
# File 'lib/imgui.rb', line 10451

def self.DockNodeEndAmendTabBar()
  ImGui_DockNodeEndAmendTabBar()
end

.DockNodeGetDepth(node) ⇒ Object

arg: node(const ImGuiDockNode*) ret: int



10469
10470
10471
# File 'lib/imgui.rb', line 10469

def self.DockNodeGetDepth(node)
  ImGui_DockNodeGetDepth(node)
end

.DockNodeGetRootNode(node) ⇒ Object

arg: node(ImGuiDockNode*) ret: pointer



10457
10458
10459
# File 'lib/imgui.rb', line 10457

def self.DockNodeGetRootNode(node)
  ImGui_DockNodeGetRootNode(node)
end

.DockNodeGetWindowMenuButtonId(node) ⇒ Object

arg: node(const ImGuiDockNode*) ret: uint



10475
10476
10477
# File 'lib/imgui.rb', line 10475

def self.DockNodeGetWindowMenuButtonId(node)
  ImGui_DockNodeGetWindowMenuButtonId(node)
end

.DockNodeIsInHierarchyOf(node, parent) ⇒ Object

arg: node(ImGuiDockNode*), parent(ImGuiDockNode*) ret: bool



10463
10464
10465
# File 'lib/imgui.rb', line 10463

def self.DockNodeIsInHierarchyOf(node, parent)
  ImGui_DockNodeIsInHierarchyOf(node, parent)
end

.DockSpace(*arg) ⇒ Object



12625
12626
12627
12628
12629
12630
12631
12632
12633
12634
12635
12636
# File 'lib/imgui.rb', line 12625

def self.DockSpace(*arg)
  # arg: 0:dockspace_id(ImGuiID)
  # ret: uint
  return ImGui_DockSpace(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  # arg: 0:dockspace_id(ImGuiID), 1:size(ImVec2), 2:flags(ImGuiDockNodeFlags), 3:window_class(const ImGuiWindowClass*)
  # ret: uint
  return ImGui_DockSpaceEx(arg[0], arg[1], arg[2], nil) if arg.length == 3 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer))
  return ImGui_DockSpaceEx(arg[0], arg[1], 0, nil) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(ImVec2))
  return ImGui_DockSpaceEx(arg[0], ImVec2.create(0,0), 0, nil) if arg.length == 1 && (arg[0].kind_of?(Integer))
  return ImGui_DockSpaceEx(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer) && arg[3].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::DockSpace : No matching functions found (#{arg})")
end

.DockSpaceOverViewport(*arg) ⇒ Object



12638
12639
12640
12641
12642
12643
12644
12645
12646
12647
12648
12649
12650
# File 'lib/imgui.rb', line 12638

def self.DockSpaceOverViewport(*arg)
  # arg: 
  # ret: uint
  return ImGui_DockSpaceOverViewport() if arg.empty?
  # arg: 0:dockspace_id(ImGuiID), 1:viewport(const ImGuiViewport*), 2:flags(ImGuiDockNodeFlags), 3:window_class(const ImGuiWindowClass*)
  # ret: uint
  return ImGui_DockSpaceOverViewportEx(arg[0], arg[1], arg[2], nil) if arg.length == 3 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer))
  return ImGui_DockSpaceOverViewportEx(arg[0], arg[1], 0, nil) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(FFI::Pointer))
  return ImGui_DockSpaceOverViewportEx(arg[0], nil, 0, nil) if arg.length == 1 && (arg[0].kind_of?(Integer))
  return ImGui_DockSpaceOverViewportEx(0, nil, 0, nil) if arg.length == 0 && (true)
  return ImGui_DockSpaceOverViewportEx(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::DockSpaceOverViewport : No matching functions found (#{arg})")
end

.DragBehavior(id, data_type, p_v, v_speed, p_min, p_max, format, flags) ⇒ Object

arg: id(ImGuiID), data_type(ImGuiDataType), p_v(void*), v_speed(float), p_min(const void*), p_max(const void*), format(const char*), flags(ImGuiSliderFlags) ret: bool



10966
10967
10968
# File 'lib/imgui.rb', line 10966

def self.DragBehavior(id, data_type, p_v, v_speed, p_min, p_max, format, flags)
  ImGui_DragBehavior(id, data_type, p_v, v_speed, p_min, p_max, format, flags)
end

.DragFloat(*arg) ⇒ Object



11810
11811
11812
11813
11814
11815
11816
11817
11818
11819
11820
11821
11822
11823
# File 'lib/imgui.rb', line 11810

def self.DragFloat(*arg)
  # arg: 0:label(const char*), 1:v(float*)
  # ret: bool
  return ImGui_DragFloat(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  # arg: 0:label(const char*), 1:v(float*), 2:v_speed(float), 3:v_min(float), 4:v_max(float), 5:format(const char*), 6:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_DragFloatEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], 0) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(Float) && arg[5].kind_of?(String))
  return ImGui_DragFloatEx(arg[0], arg[1], arg[2], arg[3], arg[4], "%.3f", 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(Float))
  return ImGui_DragFloatEx(arg[0], arg[1], arg[2], arg[3], 0.0, "%.3f", 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float))
  return ImGui_DragFloatEx(arg[0], arg[1], arg[2], 0.0, 0.0, "%.3f", 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float))
  return ImGui_DragFloatEx(arg[0], arg[1], 1.0, 0.0, 0.0, "%.3f", 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  return ImGui_DragFloatEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6]) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(Float) && arg[5].kind_of?(String) && arg[6].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::DragFloat : No matching functions found (#{arg})")
end

.DragFloat2(*arg) ⇒ Object



11825
11826
11827
11828
11829
11830
11831
11832
11833
11834
11835
11836
11837
11838
# File 'lib/imgui.rb', line 11825

def self.DragFloat2(*arg)
  # arg: 0:label(const char*), 1:v(float[2])
  # ret: bool
  return ImGui_DragFloat2(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  # arg: 0:label(const char*), 1:v(float[2]), 2:v_speed(float), 3:v_min(float), 4:v_max(float), 5:format(const char*), 6:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_DragFloat2Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], 0) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(Float) && arg[5].kind_of?(String))
  return ImGui_DragFloat2Ex(arg[0], arg[1], arg[2], arg[3], arg[4], "%.3f", 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(Float))
  return ImGui_DragFloat2Ex(arg[0], arg[1], arg[2], arg[3], 0.0, "%.3f", 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float))
  return ImGui_DragFloat2Ex(arg[0], arg[1], arg[2], 0.0, 0.0, "%.3f", 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float))
  return ImGui_DragFloat2Ex(arg[0], arg[1], 1.0, 0.0, 0.0, "%.3f", 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  return ImGui_DragFloat2Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6]) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(Float) && arg[5].kind_of?(String) && arg[6].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::DragFloat2 : No matching functions found (#{arg})")
end

.DragFloat3(*arg) ⇒ Object



11840
11841
11842
11843
11844
11845
11846
11847
11848
11849
11850
11851
11852
11853
# File 'lib/imgui.rb', line 11840

def self.DragFloat3(*arg)
  # arg: 0:label(const char*), 1:v(float[3])
  # ret: bool
  return ImGui_DragFloat3(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  # arg: 0:label(const char*), 1:v(float[3]), 2:v_speed(float), 3:v_min(float), 4:v_max(float), 5:format(const char*), 6:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_DragFloat3Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], 0) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(Float) && arg[5].kind_of?(String))
  return ImGui_DragFloat3Ex(arg[0], arg[1], arg[2], arg[3], arg[4], "%.3f", 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(Float))
  return ImGui_DragFloat3Ex(arg[0], arg[1], arg[2], arg[3], 0.0, "%.3f", 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float))
  return ImGui_DragFloat3Ex(arg[0], arg[1], arg[2], 0.0, 0.0, "%.3f", 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float))
  return ImGui_DragFloat3Ex(arg[0], arg[1], 1.0, 0.0, 0.0, "%.3f", 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  return ImGui_DragFloat3Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6]) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(Float) && arg[5].kind_of?(String) && arg[6].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::DragFloat3 : No matching functions found (#{arg})")
end

.DragFloat4(*arg) ⇒ Object



11855
11856
11857
11858
11859
11860
11861
11862
11863
11864
11865
11866
11867
11868
# File 'lib/imgui.rb', line 11855

def self.DragFloat4(*arg)
  # arg: 0:label(const char*), 1:v(float[4])
  # ret: bool
  return ImGui_DragFloat4(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  # arg: 0:label(const char*), 1:v(float[4]), 2:v_speed(float), 3:v_min(float), 4:v_max(float), 5:format(const char*), 6:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_DragFloat4Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], 0) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(Float) && arg[5].kind_of?(String))
  return ImGui_DragFloat4Ex(arg[0], arg[1], arg[2], arg[3], arg[4], "%.3f", 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(Float))
  return ImGui_DragFloat4Ex(arg[0], arg[1], arg[2], arg[3], 0.0, "%.3f", 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float))
  return ImGui_DragFloat4Ex(arg[0], arg[1], arg[2], 0.0, 0.0, "%.3f", 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float))
  return ImGui_DragFloat4Ex(arg[0], arg[1], 1.0, 0.0, 0.0, "%.3f", 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  return ImGui_DragFloat4Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6]) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(Float) && arg[5].kind_of?(String) && arg[6].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::DragFloat4 : No matching functions found (#{arg})")
end

.DragFloatRange2(*arg) ⇒ Object



11870
11871
11872
11873
11874
11875
11876
11877
11878
11879
11880
11881
11882
11883
11884
# File 'lib/imgui.rb', line 11870

def self.DragFloatRange2(*arg)
  # arg: 0:label(const char*), 1:v_current_min(float*), 2:v_current_max(float*)
  # ret: bool
  return ImGui_DragFloatRange2(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer))
  # arg: 0:label(const char*), 1:v_current_min(float*), 2:v_current_max(float*), 3:v_speed(float), 4:v_min(float), 5:v_max(float), 6:format(const char*), 7:format_max(const char*), 8:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_DragFloatRange2Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], 0) if arg.length == 8 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Float) && arg[4].kind_of?(Float) && arg[5].kind_of?(Float) && arg[6].kind_of?(String) && arg[7].kind_of?(String))
  return ImGui_DragFloatRange2Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], nil, 0) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Float) && arg[4].kind_of?(Float) && arg[5].kind_of?(Float) && arg[6].kind_of?(String))
  return ImGui_DragFloatRange2Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], "%.3f", nil, 0) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Float) && arg[4].kind_of?(Float) && arg[5].kind_of?(Float))
  return ImGui_DragFloatRange2Ex(arg[0], arg[1], arg[2], arg[3], arg[4], 0.0, "%.3f", nil, 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Float) && arg[4].kind_of?(Float))
  return ImGui_DragFloatRange2Ex(arg[0], arg[1], arg[2], arg[3], 0.0, 0.0, "%.3f", nil, 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Float))
  return ImGui_DragFloatRange2Ex(arg[0], arg[1], arg[2], 1.0, 0.0, 0.0, "%.3f", nil, 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer))
  return ImGui_DragFloatRange2Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8]) if arg.length == 9 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Float) && arg[4].kind_of?(Float) && arg[5].kind_of?(Float) && arg[6].kind_of?(String) && arg[7].kind_of?(String) && arg[8].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::DragFloatRange2 : No matching functions found (#{arg})")
end

.DragInt(*arg) ⇒ Object



11886
11887
11888
11889
11890
11891
11892
11893
11894
11895
11896
11897
11898
11899
# File 'lib/imgui.rb', line 11886

def self.DragInt(*arg)
  # arg: 0:label(const char*), 1:v(int*)
  # ret: bool
  return ImGui_DragInt(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  # arg: 0:label(const char*), 1:v(int*), 2:v_speed(float), 3:v_min(int), 4:v_max(int), 5:format(const char*), 6:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_DragIntEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], 0) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(String))
  return ImGui_DragIntEx(arg[0], arg[1], arg[2], arg[3], arg[4], "%d", 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer))
  return ImGui_DragIntEx(arg[0], arg[1], arg[2], arg[3], 0, "%d", 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Integer))
  return ImGui_DragIntEx(arg[0], arg[1], arg[2], 0, 0, "%d", 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float))
  return ImGui_DragIntEx(arg[0], arg[1], 1.0, 0, 0, "%d", 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  return ImGui_DragIntEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6]) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(String) && arg[6].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::DragInt : No matching functions found (#{arg})")
end

.DragInt2(*arg) ⇒ Object



11901
11902
11903
11904
11905
11906
11907
11908
11909
11910
11911
11912
11913
11914
# File 'lib/imgui.rb', line 11901

def self.DragInt2(*arg)
  # arg: 0:label(const char*), 1:v(int[2])
  # ret: bool
  return ImGui_DragInt2(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  # arg: 0:label(const char*), 1:v(int[2]), 2:v_speed(float), 3:v_min(int), 4:v_max(int), 5:format(const char*), 6:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_DragInt2Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], 0) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(String))
  return ImGui_DragInt2Ex(arg[0], arg[1], arg[2], arg[3], arg[4], "%d", 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer))
  return ImGui_DragInt2Ex(arg[0], arg[1], arg[2], arg[3], 0, "%d", 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Integer))
  return ImGui_DragInt2Ex(arg[0], arg[1], arg[2], 0, 0, "%d", 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float))
  return ImGui_DragInt2Ex(arg[0], arg[1], 1.0, 0, 0, "%d", 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  return ImGui_DragInt2Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6]) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(String) && arg[6].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::DragInt2 : No matching functions found (#{arg})")
end

.DragInt3(*arg) ⇒ Object



11916
11917
11918
11919
11920
11921
11922
11923
11924
11925
11926
11927
11928
11929
# File 'lib/imgui.rb', line 11916

def self.DragInt3(*arg)
  # arg: 0:label(const char*), 1:v(int[3])
  # ret: bool
  return ImGui_DragInt3(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  # arg: 0:label(const char*), 1:v(int[3]), 2:v_speed(float), 3:v_min(int), 4:v_max(int), 5:format(const char*), 6:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_DragInt3Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], 0) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(String))
  return ImGui_DragInt3Ex(arg[0], arg[1], arg[2], arg[3], arg[4], "%d", 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer))
  return ImGui_DragInt3Ex(arg[0], arg[1], arg[2], arg[3], 0, "%d", 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Integer))
  return ImGui_DragInt3Ex(arg[0], arg[1], arg[2], 0, 0, "%d", 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float))
  return ImGui_DragInt3Ex(arg[0], arg[1], 1.0, 0, 0, "%d", 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  return ImGui_DragInt3Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6]) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(String) && arg[6].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::DragInt3 : No matching functions found (#{arg})")
end

.DragInt4(*arg) ⇒ Object



11931
11932
11933
11934
11935
11936
11937
11938
11939
11940
11941
11942
11943
11944
# File 'lib/imgui.rb', line 11931

def self.DragInt4(*arg)
  # arg: 0:label(const char*), 1:v(int[4])
  # ret: bool
  return ImGui_DragInt4(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  # arg: 0:label(const char*), 1:v(int[4]), 2:v_speed(float), 3:v_min(int), 4:v_max(int), 5:format(const char*), 6:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_DragInt4Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], 0) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(String))
  return ImGui_DragInt4Ex(arg[0], arg[1], arg[2], arg[3], arg[4], "%d", 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer))
  return ImGui_DragInt4Ex(arg[0], arg[1], arg[2], arg[3], 0, "%d", 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Integer))
  return ImGui_DragInt4Ex(arg[0], arg[1], arg[2], 0, 0, "%d", 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float))
  return ImGui_DragInt4Ex(arg[0], arg[1], 1.0, 0, 0, "%d", 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  return ImGui_DragInt4Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6]) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(String) && arg[6].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::DragInt4 : No matching functions found (#{arg})")
end

.DragIntRange2(*arg) ⇒ Object



11946
11947
11948
11949
11950
11951
11952
11953
11954
11955
11956
11957
11958
11959
11960
# File 'lib/imgui.rb', line 11946

def self.DragIntRange2(*arg)
  # arg: 0:label(const char*), 1:v_current_min(int*), 2:v_current_max(int*)
  # ret: bool
  return ImGui_DragIntRange2(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer))
  # arg: 0:label(const char*), 1:v_current_min(int*), 2:v_current_max(int*), 3:v_speed(float), 4:v_min(int), 5:v_max(int), 6:format(const char*), 7:format_max(const char*), 8:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_DragIntRange2Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], 0) if arg.length == 8 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Float) && arg[4].kind_of?(Integer) && arg[5].kind_of?(Integer) && arg[6].kind_of?(String) && arg[7].kind_of?(String))
  return ImGui_DragIntRange2Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], nil, 0) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Float) && arg[4].kind_of?(Integer) && arg[5].kind_of?(Integer) && arg[6].kind_of?(String))
  return ImGui_DragIntRange2Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], "%d", nil, 0) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Float) && arg[4].kind_of?(Integer) && arg[5].kind_of?(Integer))
  return ImGui_DragIntRange2Ex(arg[0], arg[1], arg[2], arg[3], arg[4], 0, "%d", nil, 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Float) && arg[4].kind_of?(Integer))
  return ImGui_DragIntRange2Ex(arg[0], arg[1], arg[2], arg[3], 0, 0, "%d", nil, 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Float))
  return ImGui_DragIntRange2Ex(arg[0], arg[1], arg[2], 1.0, 0, 0, "%d", nil, 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer))
  return ImGui_DragIntRange2Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8]) if arg.length == 9 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Float) && arg[4].kind_of?(Integer) && arg[5].kind_of?(Integer) && arg[6].kind_of?(String) && arg[7].kind_of?(String) && arg[8].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::DragIntRange2 : No matching functions found (#{arg})")
end

.DragScalar(*arg) ⇒ Object



11962
11963
11964
11965
11966
11967
11968
11969
11970
11971
11972
11973
11974
11975
# File 'lib/imgui.rb', line 11962

def self.DragScalar(*arg)
  # arg: 0:label(const char*), 1:data_type(ImGuiDataType), 2:p_data(void*)
  # ret: bool
  return ImGui_DragScalar(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer))
  # arg: 0:label(const char*), 1:data_type(ImGuiDataType), 2:p_data(void*), 3:v_speed(float), 4:p_min(const void*), 5:p_max(const void*), 6:format(const char*), 7:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_DragScalarEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], 0) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Float) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(FFI::Pointer) && arg[6].kind_of?(String))
  return ImGui_DragScalarEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], nil, 0) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Float) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(FFI::Pointer))
  return ImGui_DragScalarEx(arg[0], arg[1], arg[2], arg[3], arg[4], nil, nil, 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Float) && arg[4].kind_of?(FFI::Pointer))
  return ImGui_DragScalarEx(arg[0], arg[1], arg[2], arg[3], nil, nil, nil, 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Float))
  return ImGui_DragScalarEx(arg[0], arg[1], arg[2], 1.0, nil, nil, nil, 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer))
  return ImGui_DragScalarEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7]) if arg.length == 8 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Float) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(FFI::Pointer) && arg[6].kind_of?(String) && arg[7].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::DragScalar : No matching functions found (#{arg})")
end

.DragScalarN(*arg) ⇒ Object



11977
11978
11979
11980
11981
11982
11983
11984
11985
11986
11987
11988
11989
11990
# File 'lib/imgui.rb', line 11977

def self.DragScalarN(*arg)
  # arg: 0:label(const char*), 1:data_type(ImGuiDataType), 2:p_data(void*), 3:components(int)
  # ret: bool
  return ImGui_DragScalarN(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer))
  # arg: 0:label(const char*), 1:data_type(ImGuiDataType), 2:p_data(void*), 3:components(int), 4:v_speed(float), 5:p_min(const void*), 6:p_max(const void*), 7:format(const char*), 8:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_DragScalarNEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], 0) if arg.length == 8 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Float) && arg[5].kind_of?(FFI::Pointer) && arg[6].kind_of?(FFI::Pointer) && arg[7].kind_of?(String))
  return ImGui_DragScalarNEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], nil, 0) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Float) && arg[5].kind_of?(FFI::Pointer) && arg[6].kind_of?(FFI::Pointer))
  return ImGui_DragScalarNEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], nil, nil, 0) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Float) && arg[5].kind_of?(FFI::Pointer))
  return ImGui_DragScalarNEx(arg[0], arg[1], arg[2], arg[3], arg[4], nil, nil, nil, 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Float))
  return ImGui_DragScalarNEx(arg[0], arg[1], arg[2], arg[3], 1.0, nil, nil, nil, 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer))
  return ImGui_DragScalarNEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8]) if arg.length == 9 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Float) && arg[5].kind_of?(FFI::Pointer) && arg[6].kind_of?(FFI::Pointer) && arg[7].kind_of?(String) && arg[8].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::DragScalarN : No matching functions found (#{arg})")
end

.Dummy(size) ⇒ Object

arg: size(ImVec2) ret: void



8003
8004
8005
# File 'lib/imgui.rb', line 8003

def self.Dummy(size)
  ImGui_Dummy(size)
end

.EndObject

ret: void



7700
7701
7702
# File 'lib/imgui.rb', line 7700

def self.End()
  ImGui_End()
end

.EndBoxSelect(scope_rect, ms_flags) ⇒ Object

arg: scope_rect(ImRect), ms_flags(ImGuiMultiSelectFlags) ret: void



10667
10668
10669
# File 'lib/imgui.rb', line 10667

def self.EndBoxSelect(scope_rect, ms_flags)
  ImGui_EndBoxSelect(scope_rect, ms_flags)
end

.EndChildObject

ret: void



7705
7706
7707
# File 'lib/imgui.rb', line 7705

def self.EndChild()
  ImGui_EndChild()
end

.EndColumnsObject

ret: void



9318
9319
9320
# File 'lib/imgui.rb', line 9318

def self.EndColumns()
  ImGui_EndColumns()
end

.EndComboObject

ret: void



8137
8138
8139
# File 'lib/imgui.rb', line 8137

def self.EndCombo()
  ImGui_EndCombo()
end

.EndComboPreviewObject

ret: void



10082
10083
10084
# File 'lib/imgui.rb', line 10082

def self.EndComboPreview()
  ImGui_EndComboPreview()
end

.EndDisabledObject

ret: void



8573
8574
8575
# File 'lib/imgui.rb', line 8573

def self.EndDisabled()
  ImGui_EndDisabled()
end

.EndDisabledOverrideReenableObject

ret: void



9944
9945
9946
# File 'lib/imgui.rb', line 9944

def self.EndDisabledOverrideReenable()
  ImGui_EndDisabledOverrideReenable()
end

.EndDragDropSourceObject

ret: void



8541
8542
8543
# File 'lib/imgui.rb', line 8541

def self.EndDragDropSource()
  ImGui_EndDragDropSource()
end

.EndDragDropTargetObject

ret: void



8557
8558
8559
# File 'lib/imgui.rb', line 8557

def self.EndDragDropTarget()
  ImGui_EndDragDropTarget()
end

.EndErrorTooltipObject

ret: void



11176
11177
11178
# File 'lib/imgui.rb', line 11176

def self.EndErrorTooltip()
  ImGui_EndErrorTooltip()
end

.EndFrameObject

ret: void



7609
7610
7611
# File 'lib/imgui.rb', line 7609

def self.EndFrame()
  ImGui_EndFrame()
end

.EndGroupObject

ret: void



8013
8014
8015
# File 'lib/imgui.rb', line 8013

def self.EndGroup()
  ImGui_EndGroup()
end

.EndListBoxObject

ret: void



8234
8235
8236
# File 'lib/imgui.rb', line 8234

def self.EndListBox()
  ImGui_EndListBox()
end

.EndMainMenuBarObject

ret: void



8254
8255
8256
# File 'lib/imgui.rb', line 8254

def self.EndMainMenuBar()
  ImGui_EndMainMenuBar()
end

.EndMenuObject

ret: void



8259
8260
8261
# File 'lib/imgui.rb', line 8259

def self.EndMenu()
  ImGui_EndMenu()
end

.EndMenuBarObject

ret: void



8244
8245
8246
# File 'lib/imgui.rb', line 8244

def self.EndMenuBar()
  ImGui_EndMenuBar()
end

.EndMultiSelectObject

ret: pointer



8212
8213
8214
# File 'lib/imgui.rb', line 8212

def self.EndMultiSelect()
  ImGui_EndMultiSelect()
end

.EndPopupObject

ret: void



8303
8304
8305
# File 'lib/imgui.rb', line 8303

def self.EndPopup()
  ImGui_EndPopup()
end

.EndTabBarObject

ret: void



8445
8446
8447
# File 'lib/imgui.rb', line 8445

def self.EndTabBar()
  ImGui_EndTabBar()
end

.EndTabItemObject

ret: void



8456
8457
8458
# File 'lib/imgui.rb', line 8456

def self.EndTabItem()
  ImGui_EndTabItem()
end

.EndTableObject

ret: void



8319
8320
8321
# File 'lib/imgui.rb', line 8319

def self.EndTable()
  ImGui_EndTable()
end

.EndTooltipObject

ret: void



8269
8270
8271
# File 'lib/imgui.rb', line 8269

def self.EndTooltip()
  ImGui_EndTooltip()
end

.ErrorCheckEndFrameFinalizeErrorTooltipObject

ret: void



11166
11167
11168
# File 'lib/imgui.rb', line 11166

def self.ErrorCheckEndFrameFinalizeErrorTooltip()
  ImGui_ErrorCheckEndFrameFinalizeErrorTooltip()
end

.ErrorCheckUsingSetCursorPosToExtendParentBoundariesObject

ret: void



11161
11162
11163
# File 'lib/imgui.rb', line 11161

def self.ErrorCheckUsingSetCursorPosToExtendParentBoundaries()
  ImGui_ErrorCheckUsingSetCursorPosToExtendParentBoundaries()
end

.ErrorLog(msg) ⇒ Object

arg: msg(const char*) ret: bool



11138
11139
11140
# File 'lib/imgui.rb', line 11138

def self.ErrorLog(msg)
  ImGui_ErrorLog(msg)
end

.ErrorRecoveryStoreState(state_out) ⇒ Object

arg: state_out(ImGuiErrorRecoveryState*) ret: void



11144
11145
11146
# File 'lib/imgui.rb', line 11144

def self.ErrorRecoveryStoreState(state_out)
  ImGui_ErrorRecoveryStoreState(state_out)
end

.ErrorRecoveryTryToRecoverState(state_in) ⇒ Object

arg: state_in(const ImGuiErrorRecoveryState*) ret: void



11150
11151
11152
# File 'lib/imgui.rb', line 11150

def self.ErrorRecoveryTryToRecoverState(state_in)
  ImGui_ErrorRecoveryTryToRecoverState(state_in)
end

.ErrorRecoveryTryToRecoverWindowState(state_in) ⇒ Object

arg: state_in(const ImGuiErrorRecoveryState*) ret: void



11156
11157
11158
# File 'lib/imgui.rb', line 11156

def self.ErrorRecoveryTryToRecoverWindowState(state_in)
  ImGui_ErrorRecoveryTryToRecoverWindowState(state_in)
end

.ExtendHitBoxWhenNearViewportEdge(window, bb, threshold, axis) ⇒ Object

arg: window(ImGuiWindow*), bb(ImRect*), threshold(float), axis(ImGuiAxis) ret: void



10954
10955
10956
# File 'lib/imgui.rb', line 10954

def self.ExtendHitBoxWhenNearViewportEdge(window, bb, threshold, axis)
  ImGui_ExtendHitBoxWhenNearViewportEdge(window, bb, threshold, axis)
end

.FindBestWindowPosForPopup(window) ⇒ Object

arg: window(ImGuiWindow*) ret: ImVec2.by_value



10025
10026
10027
# File 'lib/imgui.rb', line 10025

def self.FindBestWindowPosForPopup(window)
  ImGui_FindBestWindowPosForPopup(window)
end

.FindBestWindowPosForPopupEx(ref_pos, size, last_dir, r_outer, r_avoid, policy) ⇒ Object

arg: ref_pos(ImVec2), size(ImVec2), last_dir(ImGuiDir*), r_outer(ImRect), r_avoid(ImRect), policy(ImGuiPopupPositionPolicy) ret: ImVec2.by_value



10031
10032
10033
# File 'lib/imgui.rb', line 10031

def self.FindBestWindowPosForPopupEx(ref_pos, size, last_dir, r_outer, r_avoid, policy)
  ImGui_FindBestWindowPosForPopupEx(ref_pos, size, last_dir, r_outer, r_avoid, policy)
end

.FindBlockingModal(window) ⇒ Object

arg: window(ImGuiWindow*) ret: pointer



10019
10020
10021
# File 'lib/imgui.rb', line 10019

def self.FindBlockingModal(window)
  ImGui_FindBlockingModal(window)
end

.FindBottomMostVisibleWindowWithinBeginStack(window) ⇒ Object

arg: window(ImGuiWindow*) ret: pointer



9523
9524
9525
# File 'lib/imgui.rb', line 9523

def self.FindBottomMostVisibleWindowWithinBeginStack(window)
  ImGui_FindBottomMostVisibleWindowWithinBeginStack(window)
end

.FindFrontMostVisibleChildWindow(window) ⇒ Object

arg: window(ImGuiWindow*) ret: pointer



9968
9969
9970
# File 'lib/imgui.rb', line 9968

def self.FindFrontMostVisibleChildWindow(window)
  ImGui_FindFrontMostVisibleChildWindow(window)
end

.FindHoveredViewportFromPlatformWindowStack(mouse_platform_pos) ⇒ Object

arg: mouse_platform_pos(ImVec2) ret: pointer



9724
9725
9726
# File 'lib/imgui.rb', line 9724

def self.FindHoveredViewportFromPlatformWindowStack(mouse_platform_pos)
  ImGui_FindHoveredViewportFromPlatformWindowStack(mouse_platform_pos)
end

.FindHoveredWindowEx(pos, find_first_and_in_any_viewport, out_hovered_window, out_hovered_window_under_moving_window) ⇒ Object

arg: pos(ImVec2), find_first_and_in_any_viewport(bool), out_hovered_window(ImGuiWindow**), out_hovered_window_under_moving_window(ImGuiWindow**) ret: void



9655
9656
9657
# File 'lib/imgui.rb', line 9655

def self.FindHoveredWindowEx(pos, find_first_and_in_any_viewport, out_hovered_window, out_hovered_window_under_moving_window)
  ImGui_FindHoveredWindowEx(pos, find_first_and_in_any_viewport, out_hovered_window, out_hovered_window_under_moving_window)
end

.FindOrCreateColumns(window, id) ⇒ Object

arg: window(ImGuiWindow*), id(ImGuiID) ret: pointer



9346
9347
9348
# File 'lib/imgui.rb', line 9346

def self.FindOrCreateColumns(window, id)
  ImGui_FindOrCreateColumns(window, id)
end

.FindRenderedTextEnd(*arg) ⇒ Object



13255
13256
13257
13258
13259
13260
13261
13262
13263
13264
# File 'lib/imgui.rb', line 13255

def self.FindRenderedTextEnd(*arg)
  # arg: 0:text(const char*)
  # ret: pointer
  return ImGui_FindRenderedTextEnd(arg[0]) if arg.length == 1 && (arg[0].kind_of?(String))
  # arg: 0:text(const char*), 1:text_end(const char*)
  # ret: pointer
  return ImGui_FindRenderedTextEndEx(arg[0], nil) if arg.length == 1 && (arg[0].kind_of?(String))
  return ImGui_FindRenderedTextEndEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(String))
  $stderr.puts("[Warning] ImGui::FindRenderedTextEnd : No matching functions found (#{arg})")
end

.FindSettingsHandler(type_name) ⇒ Object

arg: type_name(const char*) ret: pointer



9753
9754
9755
# File 'lib/imgui.rb', line 9753

def self.FindSettingsHandler(type_name)
  ImGui_FindSettingsHandler(type_name)
end

.FindViewportByID(viewport_id) ⇒ Object

arg: viewport_id(ImGuiID) ret: pointer



8931
8932
8933
# File 'lib/imgui.rb', line 8931

def self.FindViewportByID(viewport_id)
  ImGui_FindViewportByID(viewport_id)
end

.FindViewportByPlatformHandle(platform_handle) ⇒ Object

arg: platform_handle(void*) ret: pointer



8937
8938
8939
# File 'lib/imgui.rb', line 8937

def self.FindViewportByPlatformHandle(platform_handle)
  ImGui_FindViewportByPlatformHandle(platform_handle)
end

.FindWindowByID(id) ⇒ Object

arg: id(ImGuiID) ret: pointer



9379
9380
9381
# File 'lib/imgui.rb', line 9379

def self.FindWindowByID(id)
  ImGui_FindWindowByID(id)
end

.FindWindowByName(name) ⇒ Object

arg: name(const char*) ret: pointer



9385
9386
9387
# File 'lib/imgui.rb', line 9385

def self.FindWindowByName(name)
  ImGui_FindWindowByName(name)
end

.FindWindowDisplayIndex(window) ⇒ Object

arg: window(ImGuiWindow*) ret: int



9517
9518
9519
# File 'lib/imgui.rb', line 9517

def self.FindWindowDisplayIndex(window)
  ImGui_FindWindowDisplayIndex(window)
end

.FindWindowSettingsByID(id) ⇒ Object

arg: id(ImGuiID) ret: pointer



9765
9766
9767
# File 'lib/imgui.rb', line 9765

def self.FindWindowSettingsByID(id)
  ImGui_FindWindowSettingsByID(id)
end

.FindWindowSettingsByWindow(window) ⇒ Object

arg: window(ImGuiWindow*) ret: pointer



9771
9772
9773
# File 'lib/imgui.rb', line 9771

def self.FindWindowSettingsByWindow(window)
  ImGui_FindWindowSettingsByWindow(window)
end

.FixupKeyChord(key_chord) ⇒ Object

arg: key_chord(ImGuiKeyChord) ret: int



10243
10244
10245
# File 'lib/imgui.rb', line 10243

def self.FixupKeyChord(key_chord)
  ImGui_FixupKeyChord(key_chord)
end

.FocusItemObject

ret: void



10183
10184
10185
# File 'lib/imgui.rb', line 10183

def self.FocusItem()
  ImGui_FocusItem()
end

.FocusTopMostWindowUnderOne(under_this_window, ignore_window, filter_viewport, flags) ⇒ Object

arg: under_this_window(ImGuiWindow*), ignore_window(ImGuiWindow*), filter_viewport(ImGuiViewport*), flags(ImGuiFocusRequestFlags) ret: void



9487
9488
9489
# File 'lib/imgui.rb', line 9487

def self.FocusTopMostWindowUnderOne(under_this_window, ignore_window, filter_viewport, flags)
  ImGui_FocusTopMostWindowUnderOne(under_this_window, ignore_window, filter_viewport, flags)
end

.FocusWindow(window, flags = 0) ⇒ Object

arg: window(ImGuiWindow*), flags(ImGuiFocusRequestFlags) ret: void



9481
9482
9483
# File 'lib/imgui.rb', line 9481

def self.FocusWindow(window, flags = 0)
  ImGui_FocusWindow(window, flags)
end

.GcAwakeTransientWindowBuffers(window) ⇒ Object

arg: window(ImGuiWindow*) ret: void



11132
11133
11134
# File 'lib/imgui.rb', line 11132

def self.GcAwakeTransientWindowBuffers(window)
  ImGui_GcAwakeTransientWindowBuffers(window)
end

.GcCompactTransientMiscBuffersObject

ret: void



11120
11121
11122
# File 'lib/imgui.rb', line 11120

def self.GcCompactTransientMiscBuffers()
  ImGui_GcCompactTransientMiscBuffers()
end

.GcCompactTransientWindowBuffers(window) ⇒ Object

arg: window(ImGuiWindow*) ret: void



11126
11127
11128
# File 'lib/imgui.rb', line 11126

def self.GcCompactTransientWindowBuffers(window)
  ImGui_GcCompactTransientWindowBuffers(window)
end

.GetActiveIDObject

ret: uint



9823
9824
9825
# File 'lib/imgui.rb', line 9823

def self.GetActiveID()
  ImGui_GetActiveID()
end

.GetAllocatorFunctions(p_alloc_func, p_free_func, p_user_data) ⇒ Object

arg: p_alloc_func(ImGuiMemAllocFunc*), p_free_func(ImGuiMemFreeFunc*), p_user_data(void**) ret: void



8903
8904
8905
# File 'lib/imgui.rb', line 8903

def self.GetAllocatorFunctions(p_alloc_func, p_free_func, p_user_data)
  ImGui_GetAllocatorFunctions(p_alloc_func, p_free_func, p_user_data)
end

.GetBackgroundDrawList(*arg) ⇒ Object



12686
12687
12688
12689
12690
12691
12692
12693
12694
12695
# File 'lib/imgui.rb', line 12686

def self.GetBackgroundDrawList(*arg)
  # arg: 
  # ret: pointer
  return ImGui_GetBackgroundDrawList() if arg.empty?
  # arg: 0:viewport(ImGuiViewport*)
  # ret: pointer
  return ImGui_GetBackgroundDrawListEx(nil) if arg.length == 0 && (true)
  return ImGui_GetBackgroundDrawListEx(arg[0]) if arg.length == 1 && (arg[0].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::GetBackgroundDrawList : No matching functions found (#{arg})")
end

.GetBoxSelectState(id) ⇒ Object

arg: id(ImGuiID) ret: pointer



10691
10692
10693
# File 'lib/imgui.rb', line 10691

def self.GetBoxSelectState(id)
  ImGui_GetBoxSelectState(id)
end

.GetClipboardTextObject

ret: pointer



8832
8833
8834
# File 'lib/imgui.rb', line 8832

def self.GetClipboardText()
  ImGui_GetClipboardText()
end

.GetColorU32(*arg) ⇒ Object



11596
11597
11598
11599
11600
11601
11602
11603
11604
11605
11606
11607
11608
11609
11610
11611
11612
11613
11614
11615
# File 'lib/imgui.rb', line 11596

def self.GetColorU32(*arg)
  # arg: 0:idx(ImGuiCol)
  # ret: uint
  return ImGui_GetColorU32(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  # arg: 0:idx(ImGuiCol), 1:alpha_mul(float)
  # ret: uint
  return ImGui_GetColorU32Ex(arg[0], 1.0) if arg.length == 1 && (arg[0].kind_of?(Integer))
  return ImGui_GetColorU32Ex(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Float))
  # arg: 0:col(ImVec4)
  # ret: uint
  return ImGui_GetColorU32ImVec4(arg[0]) if arg.length == 1 && (arg[0].kind_of?(ImVec4))
  # arg: 0:col(ImU32)
  # ret: uint
  return ImGui_GetColorU32ImU32(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  # arg: 0:col(ImU32), 1:alpha_mul(float)
  # ret: uint
  return ImGui_GetColorU32ImU32Ex(arg[0], 1.0) if arg.length == 1 && (arg[0].kind_of?(Integer))
  return ImGui_GetColorU32ImU32Ex(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Float))
  $stderr.puts("[Warning] ImGui::GetColorU32 : No matching functions found (#{arg})")
end

.GetColumnIndexObject

ret: int



8405
8406
8407
# File 'lib/imgui.rb', line 8405

def self.GetColumnIndex()
  ImGui_GetColumnIndex()
end

.GetColumnNormFromOffset(columns, offset) ⇒ Object

arg: columns(const ImGuiOldColumns*), offset(float) ret: float



9358
9359
9360
# File 'lib/imgui.rb', line 9358

def self.GetColumnNormFromOffset(columns, offset)
  ImGui_GetColumnNormFromOffset(columns, offset)
end

.GetColumnOffset(column_index = -1)) ⇒ Object

arg: column_index(int) ret: float



8423
8424
8425
# File 'lib/imgui.rb', line 8423

def self.GetColumnOffset(column_index = -1)
  ImGui_GetColumnOffset(column_index)
end

.GetColumnOffsetFromNorm(columns, offset_norm) ⇒ Object

arg: columns(const ImGuiOldColumns*), offset_norm(float) ret: float



9352
9353
9354
# File 'lib/imgui.rb', line 9352

def self.GetColumnOffsetFromNorm(columns, offset_norm)
  ImGui_GetColumnOffsetFromNorm(columns, offset_norm)
end

.GetColumnsCountObject

ret: int



8434
8435
8436
# File 'lib/imgui.rb', line 8434

def self.GetColumnsCount()
  ImGui_GetColumnsCount()
end

.GetColumnsID(str_id, count) ⇒ Object

arg: str_id(const char*), count(int) ret: uint



9340
9341
9342
# File 'lib/imgui.rb', line 9340

def self.GetColumnsID(str_id, count)
  ImGui_GetColumnsID(str_id, count)
end

.GetColumnWidth(column_index = -1)) ⇒ Object

arg: column_index(int) ret: float



8411
8412
8413
# File 'lib/imgui.rb', line 8411

def self.GetColumnWidth(column_index = -1)
  ImGui_GetColumnWidth(column_index)
end

.GetContentRegionAvailObject

ret: ImVec2.by_value



7944
7945
7946
# File 'lib/imgui.rb', line 7944

def self.GetContentRegionAvail()
  ImGui_GetContentRegionAvail()
end

.GetContentRegionMaxObject

ret: ImVec2.by_value



8976
8977
8978
# File 'lib/imgui.rb', line 8976

def self.GetContentRegionMax()
  ImGui_GetContentRegionMax()
end

.GetCurrentContextObject

ret: pointer



7588
7589
7590
# File 'lib/imgui.rb', line 7588

def self.GetCurrentContext()
  ImGui_GetCurrentContext()
end

.GetCurrentFocusScopeObject

ret: uint



10604
10605
10606
# File 'lib/imgui.rb', line 10604

def self.GetCurrentFocusScope()
  ImGui_GetCurrentFocusScope()
end

.GetCurrentTabBarObject

ret: pointer



10702
10703
10704
# File 'lib/imgui.rb', line 10702

def self.GetCurrentTabBar()
  ImGui_GetCurrentTabBar()
end

.GetCurrentTableObject

ret: pointer



9045
9046
9047
# File 'lib/imgui.rb', line 9045

def self.GetCurrentTable()
  ImGui_GetCurrentTable()
end

.GetCurrentWindowObject

ret: pointer



9373
9374
9375
# File 'lib/imgui.rb', line 9373

def self.GetCurrentWindow()
  ImGui_GetCurrentWindow()
end

.GetCurrentWindowReadObject

ret: pointer



9368
9369
9370
# File 'lib/imgui.rb', line 9368

def self.GetCurrentWindowRead()
  ImGui_GetCurrentWindowRead()
end

.GetCursorPosObject

ret: ImVec2.by_value



7949
7950
7951
# File 'lib/imgui.rb', line 7949

def self.GetCursorPos()
  ImGui_GetCursorPos()
end

.GetCursorPosXObject

ret: float



7954
7955
7956
# File 'lib/imgui.rb', line 7954

def self.GetCursorPosX()
  ImGui_GetCursorPosX()
end

.GetCursorPosYObject

ret: float



7959
7960
7961
# File 'lib/imgui.rb', line 7959

def self.GetCursorPosY()
  ImGui_GetCursorPosY()
end

.GetCursorScreenPosObject

ret: ImVec2.by_value



7933
7934
7935
# File 'lib/imgui.rb', line 7933

def self.GetCursorScreenPos()
  ImGui_GetCursorScreenPos()
end

.GetCursorStartPosObject

ret: ImVec2.by_value



7982
7983
7984
# File 'lib/imgui.rb', line 7982

def self.GetCursorStartPos()
  ImGui_GetCursorStartPos()
end

.GetDefaultFontObject

ret: pointer



9587
9588
9589
# File 'lib/imgui.rb', line 9587

def self.GetDefaultFont()
  ImGui_GetDefaultFont()
end

.GetDragDropPayloadObject

ret: pointer



8562
8563
8564
# File 'lib/imgui.rb', line 8562

def self.GetDragDropPayload()
  ImGui_GetDragDropPayload()
end

.GetDrawDataObject

ret: pointer



7619
7620
7621
# File 'lib/imgui.rb', line 7619

def self.GetDrawData()
  ImGui_GetDrawData()
end

.GetDrawListSharedDataObject

ret: pointer



8706
8707
8708
# File 'lib/imgui.rb', line 8706

def self.GetDrawListSharedData()
  ImGui_GetDrawListSharedData()
end

.GetFocusIDObject

ret: uint



9828
9829
9830
# File 'lib/imgui.rb', line 9828

def self.GetFocusID()
  ImGui_GetFocusID()
end

.GetFontObject

ret: pointer



7851
7852
7853
# File 'lib/imgui.rb', line 7851

def self.GetFont()
  ImGui_GetFont()
end

.GetFontBakedObject

ret: pointer



7861
7862
7863
# File 'lib/imgui.rb', line 7861

def self.GetFontBaked()
  ImGui_GetFontBaked()
end

.GetFontRasterizerDensityObject

ret: float



9576
9577
9578
# File 'lib/imgui.rb', line 9576

def self.GetFontRasterizerDensity()
  ImGui_GetFontRasterizerDensity()
end

.GetFontSizeObject

ret: float



7856
7857
7858
# File 'lib/imgui.rb', line 7856

def self.GetFontSize()
  ImGui_GetFontSize()
end

.GetFontTexUvWhitePixelObject

ret: ImVec2.by_value



7922
7923
7924
# File 'lib/imgui.rb', line 7922

def self.GetFontTexUvWhitePixel()
  ImGui_GetFontTexUvWhitePixel()
end

.GetForegroundDrawList(*arg) ⇒ Object



12697
12698
12699
12700
12701
12702
12703
12704
12705
12706
12707
12708
12709
# File 'lib/imgui.rb', line 12697

def self.GetForegroundDrawList(*arg)
  # arg: 
  # ret: pointer
  return ImGui_GetForegroundDrawList() if arg.empty?
  # arg: 0:viewport(ImGuiViewport*)
  # ret: pointer
  return ImGui_GetForegroundDrawListEx(nil) if arg.length == 0 && (true)
  return ImGui_GetForegroundDrawListEx(arg[0]) if arg.length == 1 && (arg[0].kind_of?(FFI::Pointer))
  # arg: 0:window(ImGuiWindow*)
  # ret: pointer
  return ImGui_GetForegroundDrawListImGuiWindowPtr(arg[0]) if arg.length == 1 && (arg[0].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::GetForegroundDrawList : No matching functions found (#{arg})")
end

.GetFrameCountObject

ret: int



8701
8702
8703
# File 'lib/imgui.rb', line 8701

def self.GetFrameCount()
  ImGui_GetFrameCount()
end

.GetFrameHeightObject

ret: float



8033
8034
8035
# File 'lib/imgui.rb', line 8033

def self.GetFrameHeight()
  ImGui_GetFrameHeight()
end

.GetFrameHeightWithSpacingObject

ret: float



8038
8039
8040
# File 'lib/imgui.rb', line 8038

def self.GetFrameHeightWithSpacing()
  ImGui_GetFrameHeightWithSpacing()
end

.GetHoveredIDObject

ret: uint



9850
9851
9852
# File 'lib/imgui.rb', line 9850

def self.GetHoveredID()
  ImGui_GetHoveredID()
end

.GetID(*arg) ⇒ Object



11667
11668
11669
11670
11671
11672
11673
11674
11675
11676
11677
11678
11679
11680
11681
# File 'lib/imgui.rb', line 11667

def self.GetID(*arg)
  # arg: 0:str_id(const char*)
  # ret: uint
  return ImGui_GetID(arg[0]) if arg.length == 1 && (arg[0].kind_of?(String))
  # arg: 0:str_id_begin(const char*), 1:str_id_end(const char*)
  # ret: uint
  return ImGui_GetIDStr(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(String))
  # arg: 0:ptr_id(const void*)
  # ret: uint
  return ImGui_GetIDPtr(arg[0]) if arg.length == 1 && (arg[0].kind_of?(FFI::Pointer))
  # arg: 0:int_id(int)
  # ret: uint
  return ImGui_GetIDInt(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::GetID : No matching functions found (#{arg})")
end

.GetIDWithSeed(*arg) ⇒ Object



12956
12957
12958
12959
12960
12961
12962
12963
12964
# File 'lib/imgui.rb', line 12956

def self.GetIDWithSeed(*arg)
  # arg: 0:str_id_begin(const char*), 1:str_id_end(const char*), 2:seed(ImGuiID)
  # ret: uint
  return ImGui_GetIDWithSeedStr(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(String) && arg[2].kind_of?(Integer))
  # arg: 0:n(int), 1:seed(ImGuiID)
  # ret: uint
  return ImGui_GetIDWithSeed(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::GetIDWithSeed : No matching functions found (#{arg})")
end

.GetInputTextState(id) ⇒ Object

arg: id(ImGuiID) ret: pointer



11056
11057
11058
# File 'lib/imgui.rb', line 11056

def self.GetInputTextState(id)
  ImGui_GetInputTextState(id)
end

.GetIO(*arg) ⇒ Object

Overload functions



11384
11385
11386
11387
11388
11389
11390
11391
11392
# File 'lib/imgui.rb', line 11384

def self.GetIO(*arg)
  # arg: 
  # ret: pointer
  return ImGui_GetIO() if arg.empty?
  # arg: 0:ctx(ImGuiContext*)
  # ret: pointer
  return ImGui_GetIOImGuiContextPtr(arg[0]) if arg.length == 1 && (arg[0].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::GetIO : No matching functions found (#{arg})")
end

.GetItemClickedCountWithSingleClickDelay(*arg) ⇒ Object



12674
12675
12676
12677
12678
12679
12680
12681
12682
12683
12684
# File 'lib/imgui.rb', line 12674

def self.GetItemClickedCountWithSingleClickDelay(*arg)
  # arg: 
  # ret: int
  return ImGui_GetItemClickedCountWithSingleClickDelay() if arg.empty?
  # arg: 0:mouse_button(ImGuiMouseButton), 1:delay(float)
  # ret: int
  return ImGui_GetItemClickedCountWithSingleClickDelayEx(arg[0], -1.0) if arg.length == 1 && (arg[0].kind_of?(Integer))
  return ImGui_GetItemClickedCountWithSingleClickDelayEx(0, -1.0) if arg.length == 0 && (true)
  return ImGui_GetItemClickedCountWithSingleClickDelayEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Float))
  $stderr.puts("[Warning] ImGui::GetItemClickedCountWithSingleClickDelay : No matching functions found (#{arg})")
end

.GetItemFlagsObject

ret: int



8686
8687
8688
# File 'lib/imgui.rb', line 8686

def self.GetItemFlags()
  ImGui_GetItemFlags()
end

.GetItemIDObject

ret: uint



8666
8667
8668
# File 'lib/imgui.rb', line 8666

def self.GetItemID()
  ImGui_GetItemID()
end

.GetItemRectMaxObject

ret: ImVec2.by_value



8676
8677
8678
# File 'lib/imgui.rb', line 8676

def self.GetItemRectMax()
  ImGui_GetItemRectMax()
end

.GetItemRectMinObject

ret: ImVec2.by_value



8671
8672
8673
# File 'lib/imgui.rb', line 8671

def self.GetItemRectMin()
  ImGui_GetItemRectMin()
end

.GetItemRectSizeObject

ret: ImVec2.by_value



8681
8682
8683
# File 'lib/imgui.rb', line 8681

def self.GetItemRectSize()
  ImGui_GetItemRectSize()
end

.GetItemStatusFlagsObject

ret: int



9818
9819
9820
# File 'lib/imgui.rb', line 9818

def self.GetItemStatusFlags()
  ImGui_GetItemStatusFlags()
end

.GetKeyChordName(key_chord) ⇒ Object

arg: key_chord(ImGuiKeyChord) ret: pointer



10255
10256
10257
# File 'lib/imgui.rb', line 10255

def self.GetKeyChordName(key_chord)
  ImGui_GetKeyChordName(key_chord)
end

.GetKeyData(*arg) ⇒ Object



13053
13054
13055
13056
13057
13058
13059
13060
13061
# File 'lib/imgui.rb', line 13053

def self.GetKeyData(*arg)
  # arg: 0:ctx(ImGuiContext*), 1:key(ImGuiKey)
  # ret: pointer
  return ImGui_GetKeyDataImGuiContextPtr(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(Integer))
  # arg: 0:key(ImGuiKey)
  # ret: pointer
  return ImGui_GetKeyData(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::GetKeyData : No matching functions found (#{arg})")
end

.GetKeyMagnitude2d(key_left, key_right, key_up, key_down) ⇒ Object

arg: key_left(ImGuiKey), key_right(ImGuiKey), key_up(ImGuiKey), key_down(ImGuiKey) ret: ImVec2.by_value



10267
10268
10269
# File 'lib/imgui.rb', line 10267

def self.GetKeyMagnitude2d(key_left, key_right, key_up, key_down)
  ImGui_GetKeyMagnitude2d(key_left, key_right, key_up, key_down)
end

.GetKeyName(key) ⇒ Object

arg: key(ImGuiKey) ret: pointer



8759
8760
8761
# File 'lib/imgui.rb', line 8759

def self.GetKeyName(key)
  ImGui_GetKeyName(key)
end

.GetKeyOwner(key) ⇒ Object

arg: key(ImGuiKey) ret: uint



10308
10309
10310
# File 'lib/imgui.rb', line 10308

def self.GetKeyOwner(key)
  ImGui_GetKeyOwner(key)
end

.GetKeyOwnerData(ctx, key) ⇒ Object

arg: ctx(ImGuiContext*), key(ImGuiKey) ret: pointer



10332
10333
10334
# File 'lib/imgui.rb', line 10332

def self.GetKeyOwnerData(ctx, key)
  ImGui_GetKeyOwnerData(ctx, key)
end

.GetKeyPressedAmount(key, repeat_delay, rate) ⇒ Object

arg: key(ImGuiKey), repeat_delay(float), rate(float) ret: int



8753
8754
8755
# File 'lib/imgui.rb', line 8753

def self.GetKeyPressedAmount(key, repeat_delay, rate)
  ImGui_GetKeyPressedAmount(key, repeat_delay, rate)
end

.GetMainViewportObject

ret: pointer



8691
8692
8693
# File 'lib/imgui.rb', line 8691

def self.GetMainViewport()
  ImGui_GetMainViewport()
end

.GetMouseButtonFromPopupFlags(flags) ⇒ Object

arg: flags(ImGuiPopupFlags) ret: int



10037
10038
10039
# File 'lib/imgui.rb', line 10037

def self.GetMouseButtonFromPopupFlags(flags)
  ImGui_GetMouseButtonFromPopupFlags(flags)
end

.GetMouseClickedCount(button) ⇒ Object

arg: button(ImGuiMouseButton) ret: int



8777
8778
8779
# File 'lib/imgui.rb', line 8777

def self.GetMouseClickedCount(button)
  ImGui_GetMouseClickedCount(button)
end

.GetMouseCursorObject

ret: int



8815
8816
8817
# File 'lib/imgui.rb', line 8815

def self.GetMouseCursor()
  ImGui_GetMouseCursor()
end

.GetMouseDragDelta(button = 0, lock_threshold = -1.0)) ⇒ Object

arg: button(ImGuiMouseButton), lock_threshold(float) ret: ImVec2.by_value



8810
8811
8812
# File 'lib/imgui.rb', line 8810

def self.GetMouseDragDelta(button = 0, lock_threshold = -1.0)
  ImGui_GetMouseDragDelta(button, lock_threshold)
end

.GetMousePosObject

ret: ImVec2.by_value



8793
8794
8795
# File 'lib/imgui.rb', line 8793

def self.GetMousePos()
  ImGui_GetMousePos()
end

.GetMousePosOnOpeningCurrentPopupObject

ret: ImVec2.by_value



8798
8799
8800
# File 'lib/imgui.rb', line 8798

def self.GetMousePosOnOpeningCurrentPopup()
  ImGui_GetMousePosOnOpeningCurrentPopup()
end

.GetMultiSelectState(id) ⇒ Object

arg: id(ImGuiID) ret: pointer



10697
10698
10699
# File 'lib/imgui.rb', line 10697

def self.GetMultiSelectState(id)
  ImGui_GetMultiSelectState(id)
end

.GetNavTweakPressedAmount(axis) ⇒ Object

arg: axis(ImGuiAxis) ret: float



10273
10274
10275
# File 'lib/imgui.rb', line 10273

def self.GetNavTweakPressedAmount(axis)
  ImGui_GetNavTweakPressedAmount(axis)
end

.GetPlatformIO(*arg) ⇒ Object



11394
11395
11396
11397
11398
11399
11400
11401
11402
# File 'lib/imgui.rb', line 11394

def self.GetPlatformIO(*arg)
  # arg: 
  # ret: pointer
  return ImGui_GetPlatformIO() if arg.empty?
  # arg: 0:ctx(ImGuiContext*)
  # ret: pointer
  return ImGui_GetPlatformIOImGuiContextPtr(arg[0]) if arg.length == 1 && (arg[0].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::GetPlatformIO : No matching functions found (#{arg})")
end

.GetPopupAllowedExtentRect(window) ⇒ Object

arg: window(ImGuiWindow*) ret: ImRect.by_value



10003
10004
10005
# File 'lib/imgui.rb', line 10003

def self.GetPopupAllowedExtentRect(window)
  ImGui_GetPopupAllowedExtentRect(window)
end

.GetRoundedFontSize(size) ⇒ Object

arg: size(float) ret: float



9582
9583
9584
# File 'lib/imgui.rb', line 9582

def self.GetRoundedFontSize(size)
  ImGui_GetRoundedFontSize(size)
end

.GetScaleObject

ret: float



9363
9364
9365
# File 'lib/imgui.rb', line 9363

def self.GetScale()
  ImGui_GetScale()
end

.GetScrollMaxXObject

ret: float



7824
7825
7826
# File 'lib/imgui.rb', line 7824

def self.GetScrollMaxX()
  ImGui_GetScrollMaxX()
end

.GetScrollMaxYObject

ret: float



7829
7830
7831
# File 'lib/imgui.rb', line 7829

def self.GetScrollMaxY()
  ImGui_GetScrollMaxY()
end

.GetScrollXObject

ret: float



7814
7815
7816
# File 'lib/imgui.rb', line 7814

def self.GetScrollX()
  ImGui_GetScrollX()
end

.GetScrollYObject

ret: float



7819
7820
7821
# File 'lib/imgui.rb', line 7819

def self.GetScrollY()
  ImGui_GetScrollY()
end

.GetShortcutRoutingData(key_chord) ⇒ Object

arg: key_chord(ImGuiKeyChord) ret: pointer



10350
10351
10352
# File 'lib/imgui.rb', line 10350

def self.GetShortcutRoutingData(key_chord)
  ImGui_GetShortcutRoutingData(key_chord)
end

.GetStateStorageObject

ret: pointer



8723
8724
8725
# File 'lib/imgui.rb', line 8723

def self.GetStateStorage()
  ImGui_GetStateStorage()
end

.GetStyleObject

ret: pointer



7599
7600
7601
# File 'lib/imgui.rb', line 7599

def self.GetStyle()
  ImGui_GetStyle()
end

.GetStyleColorName(idx) ⇒ Object

arg: idx(ImGuiCol) ret: pointer



8712
8713
8714
# File 'lib/imgui.rb', line 8712

def self.GetStyleColorName(idx)
  ImGui_GetStyleColorName(idx)
end

.GetStyleColorVec4(idx) ⇒ Object

arg: idx(ImGuiCol) ret: pointer



7928
7929
7930
# File 'lib/imgui.rb', line 7928

def self.GetStyleColorVec4(idx)
  ImGui_GetStyleColorVec4(idx)
end

.GetStyleVarInfo(idx) ⇒ Object

arg: idx(ImGuiStyleVar) ret: pointer



9934
9935
9936
# File 'lib/imgui.rb', line 9934

def self.GetStyleVarInfo(idx)
  ImGui_GetStyleVarInfo(idx)
end

.GetTextLineHeightObject

ret: float



8023
8024
8025
# File 'lib/imgui.rb', line 8023

def self.GetTextLineHeight()
  ImGui_GetTextLineHeight()
end

.GetTextLineHeightWithSpacingObject

ret: float



8028
8029
8030
# File 'lib/imgui.rb', line 8028

def self.GetTextLineHeightWithSpacing()
  ImGui_GetTextLineHeightWithSpacing()
end

.GetTimeObject

ret: double



8696
8697
8698
# File 'lib/imgui.rb', line 8696

def self.GetTime()
  ImGui_GetTime()
end

.GetTopMostAndVisiblePopupModalObject

ret: pointer



10013
10014
10015
# File 'lib/imgui.rb', line 10013

def self.GetTopMostAndVisiblePopupModal()
  ImGui_GetTopMostAndVisiblePopupModal()
end

.GetTopMostPopupModalObject

ret: pointer



10008
10009
10010
# File 'lib/imgui.rb', line 10008

def self.GetTopMostPopupModal()
  ImGui_GetTopMostPopupModal()
end

.GetTreeNodeToLabelSpacingObject

ret: float



8189
8190
8191
# File 'lib/imgui.rb', line 8189

def self.GetTreeNodeToLabelSpacing()
  ImGui_GetTreeNodeToLabelSpacing()
end

.GetTypematicRepeatRate(flags, repeat_delay, repeat_rate) ⇒ Object

arg: flags(ImGuiInputFlags), repeat_delay(float*), repeat_rate(float*) ret: void



10285
10286
10287
# File 'lib/imgui.rb', line 10285

def self.GetTypematicRepeatRate(flags, repeat_delay, repeat_rate)
  ImGui_GetTypematicRepeatRate(flags, repeat_delay, repeat_rate)
end

.GetTypingSelectRequest(*arg) ⇒ Object



13119
13120
13121
13122
13123
13124
13125
13126
13127
13128
# File 'lib/imgui.rb', line 13119

def self.GetTypingSelectRequest(*arg)
  # arg: 
  # ret: pointer
  return ImGui_GetTypingSelectRequest() if arg.empty?
  # arg: 0:flags(ImGuiTypingSelectFlags)
  # ret: pointer
  return ImGui_GetTypingSelectRequestEx(ImGuiTypingSelectFlags_None) if arg.length == 0 && (true)
  return ImGui_GetTypingSelectRequestEx(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::GetTypingSelectRequest : No matching functions found (#{arg})")
end

.GetVersionObject

ret: pointer



7671
7672
7673
# File 'lib/imgui.rb', line 7671

def self.GetVersion()
  ImGui_GetVersion()
end

.GetViewportPlatformMonitor(viewport) ⇒ Object

arg: viewport(ImGuiViewport*) ret: pointer



9718
9719
9720
# File 'lib/imgui.rb', line 9718

def self.GetViewportPlatformMonitor(viewport)
  ImGui_GetViewportPlatformMonitor(viewport)
end

.GetWindowAlwaysWantOwnTabBar(window) ⇒ Object

arg: window(ImGuiWindow*) ret: bool



10486
10487
10488
# File 'lib/imgui.rb', line 10486

def self.GetWindowAlwaysWantOwnTabBar(window)
  ImGui_GetWindowAlwaysWantOwnTabBar(window)
end

.GetWindowContentRegionMaxObject

ret: ImVec2.by_value



8986
8987
8988
# File 'lib/imgui.rb', line 8986

def self.GetWindowContentRegionMax()
  ImGui_GetWindowContentRegionMax()
end

.GetWindowContentRegionMinObject

ret: ImVec2.by_value



8981
8982
8983
# File 'lib/imgui.rb', line 8981

def self.GetWindowContentRegionMin()
  ImGui_GetWindowContentRegionMin()
end

.GetWindowDockIDObject

ret: uint



8485
8486
8487
# File 'lib/imgui.rb', line 8485

def self.GetWindowDockID()
  ImGui_GetWindowDockID()
end

.GetWindowDockNodeObject

ret: pointer



10480
10481
10482
# File 'lib/imgui.rb', line 10480

def self.GetWindowDockNode()
  ImGui_GetWindowDockNode()
end

.GetWindowDpiScaleObject

ret: float



7737
7738
7739
# File 'lib/imgui.rb', line 7737

def self.GetWindowDpiScale()
  ImGui_GetWindowDpiScale()
end

.GetWindowDrawListObject

ret: pointer



7732
7733
7734
# File 'lib/imgui.rb', line 7732

def self.GetWindowDrawList()
  ImGui_GetWindowDrawList()
end

.GetWindowHeightObject

ret: float



7757
7758
7759
# File 'lib/imgui.rb', line 7757

def self.GetWindowHeight()
  ImGui_GetWindowHeight()
end

.GetWindowPosObject

ret: ImVec2.by_value



7742
7743
7744
# File 'lib/imgui.rb', line 7742

def self.GetWindowPos()
  ImGui_GetWindowPos()
end

.GetWindowResizeBorderID(window, dir) ⇒ Object

arg: window(ImGuiWindow*), dir(ImGuiDir) ret: uint



10948
10949
10950
# File 'lib/imgui.rb', line 10948

def self.GetWindowResizeBorderID(window, dir)
  ImGui_GetWindowResizeBorderID(window, dir)
end

.GetWindowResizeCornerID(window, n) ⇒ Object

arg: window(ImGuiWindow*), n(int) ret: uint



10942
10943
10944
# File 'lib/imgui.rb', line 10942

def self.GetWindowResizeCornerID(window, n)
  ImGui_GetWindowResizeCornerID(window, n)
end

.GetWindowScrollbarID(window, axis) ⇒ Object

arg: window(ImGuiWindow*), axis(ImGuiAxis) ret: uint



10936
10937
10938
# File 'lib/imgui.rb', line 10936

def self.GetWindowScrollbarID(window, axis)
  ImGui_GetWindowScrollbarID(window, axis)
end

.GetWindowScrollbarRect(window, axis) ⇒ Object

arg: window(ImGuiWindow*), axis(ImGuiAxis) ret: ImRect.by_value



10930
10931
10932
# File 'lib/imgui.rb', line 10930

def self.GetWindowScrollbarRect(window, axis)
  ImGui_GetWindowScrollbarRect(window, axis)
end

.GetWindowSizeObject

ret: ImVec2.by_value



7747
7748
7749
# File 'lib/imgui.rb', line 7747

def self.GetWindowSize()
  ImGui_GetWindowSize()
end

.GetWindowViewportObject

ret: pointer



7762
7763
7764
# File 'lib/imgui.rb', line 7762

def self.GetWindowViewport()
  ImGui_GetWindowViewport()
end

.GetWindowWidthObject

ret: float



7752
7753
7754
# File 'lib/imgui.rb', line 7752

def self.GetWindowWidth()
  ImGui_GetWindowWidth()
end

.Image(*arg) ⇒ Object



11742
11743
11744
11745
11746
11747
11748
11749
11750
11751
11752
11753
11754
11755
# File 'lib/imgui.rb', line 11742

def self.Image(*arg)
  # arg: 0:tex_ref(ImTextureRef), 1:image_size(ImVec2)
  # ret: void
  return ImGui_Image(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(ImTextureRef) && arg[1].kind_of?(ImVec2))
  # arg: 0:tex_ref(ImTextureRef), 1:image_size(ImVec2), 2:uv0(ImVec2), 3:uv1(ImVec2)
  # ret: void
  return ImGui_ImageEx(arg[0], arg[1], arg[2], ImVec2.create(1,1)) if arg.length == 3 && (arg[0].kind_of?(ImTextureRef) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(ImVec2))
  return ImGui_ImageEx(arg[0], arg[1], ImVec2.create(0,0), ImVec2.create(1,1)) if arg.length == 2 && (arg[0].kind_of?(ImTextureRef) && arg[1].kind_of?(ImVec2))
  return ImGui_ImageEx(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(ImTextureRef) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(ImVec2) && arg[3].kind_of?(ImVec2))
  # arg: 0:tex_ref(ImTextureRef), 1:image_size(ImVec2), 2:uv0(ImVec2), 3:uv1(ImVec2), 4:tint_col(ImVec4), 5:border_col(ImVec4)
  # ret: void
  return ImGui_ImageImVec4(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(ImTextureRef) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(ImVec2) && arg[3].kind_of?(ImVec2) && arg[4].kind_of?(ImVec4) && arg[5].kind_of?(ImVec4))
  $stderr.puts("[Warning] ImGui::Image : No matching functions found (#{arg})")
end

.ImageButton(*arg) ⇒ Object



11771
11772
11773
11774
11775
11776
11777
11778
11779
11780
11781
11782
11783
# File 'lib/imgui.rb', line 11771

def self.ImageButton(*arg)
  # arg: 0:str_id(const char*), 1:tex_ref(ImTextureRef), 2:image_size(ImVec2)
  # ret: bool
  return ImGui_ImageButton(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImTextureRef) && arg[2].kind_of?(ImVec2))
  # arg: 0:str_id(const char*), 1:tex_ref(ImTextureRef), 2:image_size(ImVec2), 3:uv0(ImVec2), 4:uv1(ImVec2), 5:bg_col(ImVec4), 6:tint_col(ImVec4)
  # ret: bool
  return ImGui_ImageButtonEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], ImVec4.create(1,1,1,1)) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImTextureRef) && arg[2].kind_of?(ImVec2) && arg[3].kind_of?(ImVec2) && arg[4].kind_of?(ImVec2) && arg[5].kind_of?(ImVec4))
  return ImGui_ImageButtonEx(arg[0], arg[1], arg[2], arg[3], arg[4], ImVec4.create(0,0,0,0), ImVec4.create(1,1,1,1)) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImTextureRef) && arg[2].kind_of?(ImVec2) && arg[3].kind_of?(ImVec2) && arg[4].kind_of?(ImVec2))
  return ImGui_ImageButtonEx(arg[0], arg[1], arg[2], arg[3], ImVec2.create(1,1), ImVec4.create(0,0,0,0), ImVec4.create(1,1,1,1)) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImTextureRef) && arg[2].kind_of?(ImVec2) && arg[3].kind_of?(ImVec2))
  return ImGui_ImageButtonEx(arg[0], arg[1], arg[2], ImVec2.create(0,0), ImVec2.create(1,1), ImVec4.create(0,0,0,0), ImVec4.create(1,1,1,1)) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImTextureRef) && arg[2].kind_of?(ImVec2))
  return ImGui_ImageButtonEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6]) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImTextureRef) && arg[2].kind_of?(ImVec2) && arg[3].kind_of?(ImVec2) && arg[4].kind_of?(ImVec2) && arg[5].kind_of?(ImVec4) && arg[6].kind_of?(ImVec4))
  $stderr.puts("[Warning] ImGui::ImageButton : No matching functions found (#{arg})")
end

.ImageButtonWithFlags(id, tex_ref, image_size, uv0, uv1, bg_col, tint_col, flags = 0) ⇒ Object

arg: id(ImGuiID), tex_ref(ImTextureRef), image_size(ImVec2), uv0(ImVec2), uv1(ImVec2), bg_col(ImVec4), tint_col(ImVec4), flags(ImGuiButtonFlags) ret: bool



10900
10901
10902
# File 'lib/imgui.rb', line 10900

def self.ImageButtonWithFlags(id, tex_ref, image_size, uv0, uv1, bg_col, tint_col, flags = 0)
  ImGui_ImageButtonWithFlags(id, tex_ref, image_size, uv0, uv1, bg_col, tint_col, flags)
end

.ImageWithBg(*arg) ⇒ Object



11757
11758
11759
11760
11761
11762
11763
11764
11765
11766
11767
11768
11769
# File 'lib/imgui.rb', line 11757

def self.ImageWithBg(*arg)
  # arg: 0:tex_ref(ImTextureRef), 1:image_size(ImVec2)
  # ret: void
  return ImGui_ImageWithBg(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(ImTextureRef) && arg[1].kind_of?(ImVec2))
  # arg: 0:tex_ref(ImTextureRef), 1:image_size(ImVec2), 2:uv0(ImVec2), 3:uv1(ImVec2), 4:bg_col(ImVec4), 5:tint_col(ImVec4)
  # ret: void
  return ImGui_ImageWithBgEx(arg[0], arg[1], arg[2], arg[3], arg[4], ImVec4.create(1,1,1,1)) if arg.length == 5 && (arg[0].kind_of?(ImTextureRef) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(ImVec2) && arg[3].kind_of?(ImVec2) && arg[4].kind_of?(ImVec4))
  return ImGui_ImageWithBgEx(arg[0], arg[1], arg[2], arg[3], ImVec4.create(0,0,0,0), ImVec4.create(1,1,1,1)) if arg.length == 4 && (arg[0].kind_of?(ImTextureRef) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(ImVec2) && arg[3].kind_of?(ImVec2))
  return ImGui_ImageWithBgEx(arg[0], arg[1], arg[2], ImVec2.create(1,1), ImVec4.create(0,0,0,0), ImVec4.create(1,1,1,1)) if arg.length == 3 && (arg[0].kind_of?(ImTextureRef) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(ImVec2))
  return ImGui_ImageWithBgEx(arg[0], arg[1], ImVec2.create(0,0), ImVec2.create(1,1), ImVec4.create(0,0,0,0), ImVec4.create(1,1,1,1)) if arg.length == 2 && (arg[0].kind_of?(ImTextureRef) && arg[1].kind_of?(ImVec2))
  return ImGui_ImageWithBgEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(ImTextureRef) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(ImVec2) && arg[3].kind_of?(ImVec2) && arg[4].kind_of?(ImVec4) && arg[5].kind_of?(ImVec4))
  $stderr.puts("[Warning] ImGui::ImageWithBg : No matching functions found (#{arg})")
end

.ImGui_ImplDockingOpenGL3_RenderWindow(viewport_raw, _render_arg) ⇒ Object



309
310
311
312
313
314
315
316
317
318
319
# File 'lib/imgui_impl_docking_opengl3.rb', line 309

def self.ImGui_ImplDockingOpenGL3_RenderWindow(viewport_raw, _render_arg)
  viewport = viewport_raw.kind_of?(ImGuiViewport) ? viewport_raw : ImGuiViewport.new(viewport_raw)
  return if viewport[:DrawData] == nil || viewport[:DrawData].address == 0

  if (viewport[:Flags] & ImGuiViewportFlags_NoRendererClear) == 0
    GL.ClearColor(0.0, 0.0, 0.0, 1.0)
    GL.Clear(GL::COLOR_BUFFER_BIT)
  end

  ImplDockingOpenGL3_RenderDrawData(viewport[:DrawData])
end

.ImGui_ImplDockingSDL3_CopyImeData(dst, src) ⇒ Object



270
271
272
273
274
275
276
277
# File 'lib/imgui_impl_docking_sdl3.rb', line 270

def self.ImGui_ImplDockingSDL3_CopyImeData(dst, src)
  dst[:WantVisible] = src[:WantVisible]
  dst[:WantTextInput] = src[:WantTextInput]
  dst[:InputPos][:x] = src[:InputPos][:x]
  dst[:InputPos][:y] = src[:InputPos][:y]
  dst[:InputLineHeight] = src[:InputLineHeight]
  dst[:ViewportId] = src[:ViewportId]
end

.ImGui_ImplDockingSDL3_CreateVkSurface(viewport_raw, vk_instance, vk_allocator, out_vk_surface) ⇒ Object



1086
1087
1088
1089
1090
1091
1092
# File 'lib/imgui_impl_docking_sdl3.rb', line 1086

def self.ImGui_ImplDockingSDL3_CreateVkSurface(viewport_raw, vk_instance, vk_allocator, out_vk_surface)
  viewport = viewport_raw.kind_of?(ImGuiViewport) ? viewport_raw : ImGuiViewport.new(viewport_raw)
  vd = ImGui_ImplDockingSDL3_GetViewportData(viewport)
  return 1 if vd == nil || vd.window == nil

  SDL.Vulkan_CreateSurface(vd.window, FFI::Pointer.new(vk_instance), vk_allocator, out_vk_surface) ? 0 : 1
end

.ImGui_ImplDockingSDL3_CreateWindow(viewport_raw) ⇒ Object



899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
# File 'lib/imgui_impl_docking_sdl3.rb', line 899

def self.ImGui_ImplDockingSDL3_CreateWindow(viewport_raw)
  viewport = viewport_raw.kind_of?(ImGuiViewport) ? viewport_raw : ImGuiViewport.new(viewport_raw)
  bd = ImGui_ImplDockingSDL3_GetBackendData()
  return if bd == nil

  vd = ImGui_ImplDockingSDL3_ViewportData.new
  ImGui_ImplDockingSDL3_SetViewportData(viewport, vd)
  vd.parent_window = ImGui_ImplDockingSDL3_GetSDLWindowFromViewport(viewport[:ParentViewport]) if viewport[:ParentViewport] != nil && viewport[:ParentViewport].address != 0

  main_viewport = ImGuiViewport.new(ImGui::GetMainViewport())
  main_viewport_data = ImGui_ImplDockingSDL3_GetViewportData(main_viewport)

  use_opengl = main_viewport_data != nil && main_viewport_data.gl_context != nil
  backup_context = nil
  if use_opengl
    backup_context = SDL.GL_GetCurrentContext()
    SDL.GL_SetAttribute(SDL::GL_SHARE_WITH_CURRENT_CONTEXT, 1)
    SDL.GL_MakeCurrent(main_viewport_data.window, main_viewport_data.gl_context)
  end

  sdl_flags = 0
  sdl_flags |= SDL::WINDOW_HIDDEN
  sdl_flags |= use_opengl ? SDL::WINDOW_OPENGL : (bd.use_vulkan ? SDL::WINDOW_VULKAN : 0)
  sdl_flags |= SDL.GetWindowFlags(bd.window) & SDL::WINDOW_HIGH_PIXEL_DENSITY
  sdl_flags |= (viewport[:Flags] & ImGuiViewportFlags_NoDecoration) != 0 ? SDL::WINDOW_BORDERLESS : 0
  sdl_flags |= (viewport[:Flags] & ImGuiViewportFlags_NoDecoration) == 0 ? SDL::WINDOW_RESIZABLE : 0
  sdl_flags |= (viewport[:Flags] & ImGuiViewportFlags_NoTaskBarIcon) != 0 ? SDL::WINDOW_UTILITY : 0 if defined?(SDL::WINDOW_UTILITY)
  sdl_flags |= (viewport[:Flags] & ImGuiViewportFlags_TopMost) != 0 ? SDL::WINDOW_ALWAYS_ON_TOP : 0 if defined?(SDL::WINDOW_ALWAYS_ON_TOP)

  vd.window = SDL.CreateWindow('No Title Yet', viewport[:Size][:x].to_i, viewport[:Size][:y].to_i, sdl_flags)
  if !FFI::Platform.mac? && vd.parent_window != nil
    SDL.SetWindowParent(vd.window, vd.parent_window)
  end
  SDL.SetWindowPosition(vd.window, viewport[:Pos][:x].to_i, viewport[:Pos][:y].to_i)
  vd.window_owned = true
  vd.window_id = SDL.GetWindowID(vd.window)
  if use_opengl
    vd.gl_context = SDL.GL_CreateContext(vd.window)
    SDL.GL_SetSwapInterval(0)
  end
  SDL.GL_MakeCurrent(vd.window, backup_context) if use_opengl && backup_context != nil

  ImGui_ImplDockingSDL3_SetupPlatformHandles(viewport, vd.window)
end

.ImGui_ImplDockingSDL3_DestroyWindow(viewport_raw) ⇒ Object



944
945
946
947
948
949
950
951
952
953
# File 'lib/imgui_impl_docking_sdl3.rb', line 944

def self.ImGui_ImplDockingSDL3_DestroyWindow(viewport_raw)
  viewport = viewport_raw.kind_of?(ImGuiViewport) ? viewport_raw : ImGuiViewport.new(viewport_raw)
  vd = ImGui_ImplDockingSDL3_GetViewportData(viewport)
  return if vd == nil

  SDL.GL_DestroyContext(vd.gl_context) if vd.gl_context != nil && vd.window_owned
  SDL.DestroyWindow(vd.window) if vd.window != nil && vd.window_owned
  ImGui_ImplDockingSDL3_SetViewportData(viewport, nil)
  viewport[:PlatformHandle] = nil
end

.ImGui_ImplDockingSDL3_EnsureCallbacksObject



430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
# File 'lib/imgui_impl_docking_sdl3.rb', line 430

def self.ImGui_ImplDockingSDL3_EnsureCallbacks
  return @@g_DockingSDL3PlatformFunctions if @@g_DockingSDL3PlatformFunctions != nil

  @@g_DockingSDL3PlatformFunctions = {
    get_clipboard_text: FFI::Function.new(:pointer, [:pointer]) { |context| ImGui_ImplDockingSDL3_GetClipboardText(context) },
    set_clipboard_text: FFI::Function.new(:void, [:pointer, :pointer]) { |context, text| ImGui_ImplDockingSDL3_SetClipboardText(context, text) },
    set_ime_data: FFI::Function.new(:void, [:pointer, :pointer, :pointer]) { |context, viewport, data| ImGui_ImplDockingSDL3_PlatformSetImeData(context, viewport, data) },
    open_in_shell: FFI::Function.new(:bool, [:pointer, :pointer]) { |_context, url| SDL.OpenURL(url) },
    create_window: FFI::Function.new(:void, [:pointer]) { |viewport| ImGui_ImplDockingSDL3_CreateWindow(ImGuiViewport.new(viewport)) },
    destroy_window: FFI::Function.new(:void, [:pointer]) { |viewport| ImGui_ImplDockingSDL3_DestroyWindow(ImGuiViewport.new(viewport)) },
    show_window: FFI::Function.new(:void, [:pointer]) { |viewport| ImGui_ImplDockingSDL3_ShowWindow(ImGuiViewport.new(viewport)) },
    update_window: FFI::Function.new(:void, [:pointer]) { |viewport| ImGui_ImplDockingSDL3_UpdateWindow(ImGuiViewport.new(viewport)) },
    set_window_pos: FFI::Function.new(:void, [:pointer, ImVec2.by_value]) { |viewport, pos| ImGui_ImplDockingSDL3_SetWindowPos(ImGuiViewport.new(viewport), pos) },
    get_window_pos: FFI::Function.new(ImVec2.by_value, [:pointer]) { |viewport| ImGui_ImplDockingSDL3_GetWindowPos(ImGuiViewport.new(viewport)) },
    set_window_size: FFI::Function.new(:void, [:pointer, ImVec2.by_value]) { |viewport, size| ImGui_ImplDockingSDL3_SetWindowSize(ImGuiViewport.new(viewport), size) },
    get_window_size: FFI::Function.new(ImVec2.by_value, [:pointer]) { |viewport| ImGui_ImplDockingSDL3_GetWindowSize(ImGuiViewport.new(viewport)) },
    get_window_framebuffer_scale: FFI::Function.new(ImVec2.by_value, [:pointer]) { |viewport| ImGui_ImplDockingSDL3_GetWindowFramebufferScale(ImGuiViewport.new(viewport)) },
    set_window_focus: FFI::Function.new(:void, [:pointer]) { |viewport| ImGui_ImplDockingSDL3_SetWindowFocus(ImGuiViewport.new(viewport)) },
    get_window_focus: FFI::Function.new(:bool, [:pointer]) { |viewport| ImGui_ImplDockingSDL3_GetWindowFocus(ImGuiViewport.new(viewport)) },
    get_window_minimized: FFI::Function.new(:bool, [:pointer]) { |viewport| ImGui_ImplDockingSDL3_GetWindowMinimized(ImGuiViewport.new(viewport)) },
    set_window_title: FFI::Function.new(:void, [:pointer, :pointer]) { |viewport, title| ImGui_ImplDockingSDL3_SetWindowTitle(ImGuiViewport.new(viewport), title) },
    render_window: FFI::Function.new(:void, [:pointer, :pointer]) { |viewport, arg| ImGui_ImplDockingSDL3_RenderWindow(ImGuiViewport.new(viewport), arg) },
    swap_buffers: FFI::Function.new(:void, [:pointer, :pointer]) { |viewport, arg| ImGui_ImplDockingSDL3_SwapBuffers(ImGuiViewport.new(viewport), arg) },
    set_window_alpha: FFI::Function.new(:void, [:pointer, :float]) { |viewport, alpha| ImGui_ImplDockingSDL3_SetWindowAlpha(ImGuiViewport.new(viewport), alpha) },
    create_vk_surface: FFI::Function.new(:int, [:pointer, :uint64, :pointer, :pointer]) { |viewport, instance, allocator, out_surface| ImGui_ImplDockingSDL3_CreateVkSurface(ImGuiViewport.new(viewport), instance, allocator, out_surface) }
  }
end

.ImGui_ImplDockingSDL3_GetBackendDataObject



73
74
75
76
77
78
# File 'lib/imgui_impl_docking_sdl3.rb', line 73

def self.ImGui_ImplDockingSDL3_GetBackendData
  context = ImGui::GetCurrentContext()
  return nil if context == nil

  @@g_DockingSDL3BackendData[context.address]
end

.ImGui_ImplDockingSDL3_GetClipboardText(_context) ⇒ Object



279
280
281
282
283
284
285
286
# File 'lib/imgui_impl_docking_sdl3.rb', line 279

def self.ImGui_ImplDockingSDL3_GetClipboardText(_context)
  bd = ImGui_ImplDockingSDL3_GetBackendData()
  return nil if bd == nil

  SDL.free(bd.clipboard_text_data) if bd.clipboard_text_data != nil
  bd.clipboard_text_data = SDL.HasClipboardText() ? SDL.GetClipboardText() : nil
  bd.clipboard_text_data
end

.ImGui_ImplDockingSDL3_GetSDLWindowFromViewport(viewport_raw) ⇒ Object



119
120
121
122
123
124
125
# File 'lib/imgui_impl_docking_sdl3.rb', line 119

def self.ImGui_ImplDockingSDL3_GetSDLWindowFromViewport(viewport_raw)
  viewport = viewport_raw.kind_of?(ImGuiViewport) ? viewport_raw : ImGuiViewport.new(viewport_raw)
  handle = viewport[:PlatformHandle]
  return nil if handle == nil || handle.address == 0

  SDL.GetWindowFromID(handle.address)
end

.ImGui_ImplDockingSDL3_GetViewportData(viewport_raw) ⇒ Object



84
85
86
87
88
89
90
# File 'lib/imgui_impl_docking_sdl3.rb', line 84

def self.ImGui_ImplDockingSDL3_GetViewportData(viewport_raw)
  viewport = viewport_raw.kind_of?(ImGuiViewport) ? viewport_raw : ImGuiViewport.new(viewport_raw)
  bd = ImGui_ImplDockingSDL3_GetBackendData()
  return nil if bd == nil

  bd.viewport_data[viewport.pointer.address]
end

.ImGui_ImplDockingSDL3_GetViewportForWindowID(window_id) ⇒ Object



110
111
112
113
114
115
116
117
# File 'lib/imgui_impl_docking_sdl3.rb', line 110

def self.ImGui_ImplDockingSDL3_GetViewportForWindowID(window_id)
  return nil if window_id == 0

  viewport_ptr = ImGui::FindViewportByPlatformHandle(FFI::Pointer.new(window_id))
  return nil if viewport_ptr == nil || viewport_ptr.address == 0

  ImGuiViewport.new(viewport_ptr)
end

.ImGui_ImplDockingSDL3_GetViewportToken(viewport) ⇒ Object



80
81
82
# File 'lib/imgui_impl_docking_sdl3.rb', line 80

def self.ImGui_ImplDockingSDL3_GetViewportToken(viewport)
  FFI::Pointer.new(viewport.pointer)
end

.ImGui_ImplDockingSDL3_GetWindowFocus(viewport_raw) ⇒ Object



1053
1054
1055
1056
1057
1058
1059
# File 'lib/imgui_impl_docking_sdl3.rb', line 1053

def self.ImGui_ImplDockingSDL3_GetWindowFocus(viewport_raw)
  viewport = viewport_raw.kind_of?(ImGuiViewport) ? viewport_raw : ImGuiViewport.new(viewport_raw)
  vd = ImGui_ImplDockingSDL3_GetViewportData(viewport)
  return false if vd == nil || vd.window == nil

  (SDL.GetWindowFlags(vd.window) & SDL::WINDOW_INPUT_FOCUS) != 0
end

.ImGui_ImplDockingSDL3_GetWindowFramebufferScale(viewport_raw) ⇒ Object



1020
1021
1022
1023
1024
1025
1026
1027
# File 'lib/imgui_impl_docking_sdl3.rb', line 1020

def self.ImGui_ImplDockingSDL3_GetWindowFramebufferScale(viewport_raw)
  viewport = viewport_raw.kind_of?(ImGuiViewport) ? viewport_raw : ImGuiViewport.new(viewport_raw)
  vd = ImGui_ImplDockingSDL3_GetViewportData(viewport)
  return ImVec2.create(1.0, 1.0) if vd == nil || vd.window == nil

  _w, _h, scale_x, scale_y = ImGui_ImplDockingSDL3_GetWindowSizeAndFramebufferScale(vd.window)
  ImVec2.create(scale_x, scale_y)
end

.ImGui_ImplDockingSDL3_GetWindowMinimized(viewport_raw) ⇒ Object



1061
1062
1063
1064
1065
1066
1067
# File 'lib/imgui_impl_docking_sdl3.rb', line 1061

def self.ImGui_ImplDockingSDL3_GetWindowMinimized(viewport_raw)
  viewport = viewport_raw.kind_of?(ImGuiViewport) ? viewport_raw : ImGuiViewport.new(viewport_raw)
  vd = ImGui_ImplDockingSDL3_GetViewportData(viewport)
  return false if vd == nil || vd.window == nil

  (SDL.GetWindowFlags(vd.window) & SDL::WINDOW_MINIMIZED) != 0
end

.ImGui_ImplDockingSDL3_GetWindowPos(viewport_raw) ⇒ Object



982
983
984
985
986
987
988
989
990
991
# File 'lib/imgui_impl_docking_sdl3.rb', line 982

def self.ImGui_ImplDockingSDL3_GetWindowPos(viewport_raw)
  viewport = viewport_raw.kind_of?(ImGuiViewport) ? viewport_raw : ImGuiViewport.new(viewport_raw)
  vd = ImGui_ImplDockingSDL3_GetViewportData(viewport)
  return ImVec2.create(0.0, 0.0) if vd == nil || vd.window == nil

  x_ptr = FFI::MemoryPointer.new(:int)
  y_ptr = FFI::MemoryPointer.new(:int)
  SDL.GetWindowPosition(vd.window, x_ptr, y_ptr)
  ImVec2.create(x_ptr.read_int.to_f, y_ptr.read_int.to_f)
end

.ImGui_ImplDockingSDL3_GetWindowSize(viewport_raw) ⇒ Object



1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
# File 'lib/imgui_impl_docking_sdl3.rb', line 1001

def self.ImGui_ImplDockingSDL3_GetWindowSize(viewport_raw)
  viewport = viewport_raw.kind_of?(ImGuiViewport) ? viewport_raw : ImGuiViewport.new(viewport_raw)
  vd = ImGui_ImplDockingSDL3_GetViewportData(viewport)
  return ImVec2.create(0.0, 0.0) if vd == nil || vd.window == nil

  w_ptr = FFI::MemoryPointer.new(:int)
  h_ptr = FFI::MemoryPointer.new(:int)
  SDL.GetWindowSize(vd.window, w_ptr, h_ptr)
  ImVec2.create(w_ptr.read_int.to_f, h_ptr.read_int.to_f)
end

.ImGui_ImplDockingSDL3_GetWindowSizeAndFramebufferScale(window) ⇒ Object



403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
# File 'lib/imgui_impl_docking_sdl3.rb', line 403

def self.ImGui_ImplDockingSDL3_GetWindowSizeAndFramebufferScale(window)
  w_ptr = FFI::MemoryPointer.new(:int)
  h_ptr = FFI::MemoryPointer.new(:int)
  SDL.GetWindowSize(window, w_ptr, h_ptr)
  w = w_ptr.read_int
  h = h_ptr.read_int
  if (SDL.GetWindowFlags(window) & SDL::WINDOW_MINIMIZED) != 0
    w = 0
    h = 0
  end

  if FFI::Platform.mac?
    scale_x = SDL.GetWindowDisplayScale(window)
    scale_y = scale_x
  else
    display_w_ptr = FFI::MemoryPointer.new(:int)
    display_h_ptr = FFI::MemoryPointer.new(:int)
    SDL.GetWindowSizeInPixels(window, display_w_ptr, display_h_ptr)
    display_w = display_w_ptr.read_int
    display_h = display_h_ptr.read_int
    scale_x = w > 0 ? display_w.to_f / w.to_f : 1.0
    scale_y = h > 0 ? display_h.to_f / h.to_f : 1.0
  end

  [w, h, scale_x, scale_y]
end

.ImGui_ImplDockingSDL3_InitMultiViewportSupport(window, sdl_gl_context) ⇒ Object



1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
# File 'lib/imgui_impl_docking_sdl3.rb', line 1094

def self.ImGui_ImplDockingSDL3_InitMultiViewportSupport(window, sdl_gl_context)
  callbacks = ImGui_ImplDockingSDL3_EnsureCallbacks()
  platform_io = ImGuiPlatformIO.new(ImGui::GetPlatformIO())
  platform_io[:Platform_CreateWindow] = callbacks[:create_window]
  platform_io[:Platform_DestroyWindow] = callbacks[:destroy_window]
  platform_io[:Platform_ShowWindow] = callbacks[:show_window]
  platform_io[:Platform_UpdateWindow] = callbacks[:update_window]
  platform_io[:Platform_SetWindowPos] = callbacks[:set_window_pos]
  platform_io[:Platform_GetWindowPos] = callbacks[:get_window_pos]
  platform_io[:Platform_SetWindowSize] = callbacks[:set_window_size]
  platform_io[:Platform_GetWindowSize] = callbacks[:get_window_size]
  platform_io[:Platform_GetWindowFramebufferScale] = callbacks[:get_window_framebuffer_scale]
  platform_io[:Platform_SetWindowFocus] = callbacks[:set_window_focus]
  platform_io[:Platform_GetWindowFocus] = callbacks[:get_window_focus]
  platform_io[:Platform_GetWindowMinimized] = callbacks[:get_window_minimized]
  platform_io[:Platform_SetWindowTitle] = callbacks[:set_window_title]
  platform_io[:Platform_RenderWindow] = callbacks[:render_window]
  platform_io[:Platform_SwapBuffers] = callbacks[:swap_buffers]
  platform_io[:Platform_SetWindowAlpha] = callbacks[:set_window_alpha]
  platform_io[:Platform_CreateVkSurface] = callbacks[:create_vk_surface]

  main_viewport = ImGuiViewport.new(ImGui::GetMainViewport())
  vd = ImGui_ImplDockingSDL3_ViewportData.new
  vd.window = window
  vd.window_id = SDL.GetWindowID(window)
  vd.window_owned = false
  vd.gl_context = sdl_gl_context
  ImGui_ImplDockingSDL3_SetViewportData(main_viewport, vd)
  main_viewport[:PlatformHandle] = FFI::Pointer.new(vd.window_id)
end

.ImGui_ImplDockingSDL3_IsTouchMouse(which_id) ⇒ Object



106
107
108
# File 'lib/imgui_impl_docking_sdl3.rb', line 106

def self.ImGui_ImplDockingSDL3_IsTouchMouse(which_id)
  which_id == SDL::TOUCH_MOUSEID || which_id == 0xffffffff
end

.ImGui_ImplDockingSDL3_KeyEventToImGuiKey(keycode, scancode) ⇒ Object



127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
# File 'lib/imgui_impl_docking_sdl3.rb', line 127

def self.ImGui_ImplDockingSDL3_KeyEventToImGuiKey(keycode, scancode)
  case scancode
  when SDL::SCANCODE_KP_0 then ImGuiKey_Keypad0
  when SDL::SCANCODE_KP_1 then ImGuiKey_Keypad1
  when SDL::SCANCODE_KP_2 then ImGuiKey_Keypad2
  when SDL::SCANCODE_KP_3 then ImGuiKey_Keypad3
  when SDL::SCANCODE_KP_4 then ImGuiKey_Keypad4
  when SDL::SCANCODE_KP_5 then ImGuiKey_Keypad5
  when SDL::SCANCODE_KP_6 then ImGuiKey_Keypad6
  when SDL::SCANCODE_KP_7 then ImGuiKey_Keypad7
  when SDL::SCANCODE_KP_8 then ImGuiKey_Keypad8
  when SDL::SCANCODE_KP_9 then ImGuiKey_Keypad9
  when SDL::SCANCODE_KP_PERIOD then ImGuiKey_KeypadDecimal
  when SDL::SCANCODE_KP_DIVIDE then ImGuiKey_KeypadDivide
  when SDL::SCANCODE_KP_MULTIPLY then ImGuiKey_KeypadMultiply
  when SDL::SCANCODE_KP_MINUS then ImGuiKey_KeypadSubtract
  when SDL::SCANCODE_KP_PLUS then ImGuiKey_KeypadAdd
  when SDL::SCANCODE_KP_ENTER then ImGuiKey_KeypadEnter
  when SDL::SCANCODE_KP_EQUALS then ImGuiKey_KeypadEqual
  end

  case keycode
  when SDL::SDLK_TAB then ImGuiKey_Tab
  when SDL::SDLK_LEFT then ImGuiKey_LeftArrow
  when SDL::SDLK_RIGHT then ImGuiKey_RightArrow
  when SDL::SDLK_UP then ImGuiKey_UpArrow
  when SDL::SDLK_DOWN then ImGuiKey_DownArrow
  when SDL::SDLK_PAGEUP then ImGuiKey_PageUp
  when SDL::SDLK_PAGEDOWN then ImGuiKey_PageDown
  when SDL::SDLK_HOME then ImGuiKey_Home
  when SDL::SDLK_END then ImGuiKey_End
  when SDL::SDLK_INSERT then ImGuiKey_Insert
  when SDL::SDLK_DELETE then ImGuiKey_Delete
  when SDL::SDLK_BACKSPACE then ImGuiKey_Backspace
  when SDL::SDLK_SPACE then ImGuiKey_Space
  when SDL::SDLK_RETURN then ImGuiKey_Enter
  when SDL::SDLK_ESCAPE then ImGuiKey_Escape
  when SDL::SDLK_COMMA then ImGuiKey_Comma
  when SDL::SDLK_PERIOD then ImGuiKey_Period
  when SDL::SDLK_SEMICOLON then ImGuiKey_Semicolon
  when SDL::SDLK_CAPSLOCK then ImGuiKey_CapsLock
  when SDL::SDLK_SCROLLLOCK then ImGuiKey_ScrollLock
  when SDL::SDLK_NUMLOCKCLEAR then ImGuiKey_NumLock
  when SDL::SDLK_PRINTSCREEN then ImGuiKey_PrintScreen
  when SDL::SDLK_PAUSE then ImGuiKey_Pause
  when SDL::SDLK_LCTRL then ImGuiKey_LeftCtrl
  when SDL::SDLK_LSHIFT then ImGuiKey_LeftShift
  when SDL::SDLK_LALT then ImGuiKey_LeftAlt
  when SDL::SDLK_LGUI then ImGuiKey_LeftSuper
  when SDL::SDLK_RCTRL then ImGuiKey_RightCtrl
  when SDL::SDLK_RSHIFT then ImGuiKey_RightShift
  when SDL::SDLK_RALT then ImGuiKey_RightAlt
  when SDL::SDLK_RGUI then ImGuiKey_RightSuper
  when SDL::SDLK_APPLICATION then ImGuiKey_Menu
  when SDL::SDLK_0 then ImGuiKey_0
  when SDL::SDLK_1 then ImGuiKey_1
  when SDL::SDLK_2 then ImGuiKey_2
  when SDL::SDLK_3 then ImGuiKey_3
  when SDL::SDLK_4 then ImGuiKey_4
  when SDL::SDLK_5 then ImGuiKey_5
  when SDL::SDLK_6 then ImGuiKey_6
  when SDL::SDLK_7 then ImGuiKey_7
  when SDL::SDLK_8 then ImGuiKey_8
  when SDL::SDLK_9 then ImGuiKey_9
  when SDL::SDLK_A then ImGuiKey_A
  when SDL::SDLK_B then ImGuiKey_B
  when SDL::SDLK_C then ImGuiKey_C
  when SDL::SDLK_D then ImGuiKey_D
  when SDL::SDLK_E then ImGuiKey_E
  when SDL::SDLK_F then ImGuiKey_F
  when SDL::SDLK_G then ImGuiKey_G
  when SDL::SDLK_H then ImGuiKey_H
  when SDL::SDLK_I then ImGuiKey_I
  when SDL::SDLK_J then ImGuiKey_J
  when SDL::SDLK_K then ImGuiKey_K
  when SDL::SDLK_L then ImGuiKey_L
  when SDL::SDLK_M then ImGuiKey_M
  when SDL::SDLK_N then ImGuiKey_N
  when SDL::SDLK_O then ImGuiKey_O
  when SDL::SDLK_P then ImGuiKey_P
  when SDL::SDLK_Q then ImGuiKey_Q
  when SDL::SDLK_R then ImGuiKey_R
  when SDL::SDLK_S then ImGuiKey_S
  when SDL::SDLK_T then ImGuiKey_T
  when SDL::SDLK_U then ImGuiKey_U
  when SDL::SDLK_V then ImGuiKey_V
  when SDL::SDLK_W then ImGuiKey_W
  when SDL::SDLK_X then ImGuiKey_X
  when SDL::SDLK_Y then ImGuiKey_Y
  when SDL::SDLK_Z then ImGuiKey_Z
  when SDL::SDLK_F1 then ImGuiKey_F1
  when SDL::SDLK_F2 then ImGuiKey_F2
  when SDL::SDLK_F3 then ImGuiKey_F3
  when SDL::SDLK_F4 then ImGuiKey_F4
  when SDL::SDLK_F5 then ImGuiKey_F5
  when SDL::SDLK_F6 then ImGuiKey_F6
  when SDL::SDLK_F7 then ImGuiKey_F7
  when SDL::SDLK_F8 then ImGuiKey_F8
  when SDL::SDLK_F9 then ImGuiKey_F9
  when SDL::SDLK_F10 then ImGuiKey_F10
  when SDL::SDLK_F11 then ImGuiKey_F11
  when SDL::SDLK_F12 then ImGuiKey_F12
  when SDL::SDLK_F13 then ImGuiKey_F13
  when SDL::SDLK_F14 then ImGuiKey_F14
  when SDL::SDLK_F15 then ImGuiKey_F15
  when SDL::SDLK_F16 then ImGuiKey_F16
  when SDL::SDLK_F17 then ImGuiKey_F17
  when SDL::SDLK_F18 then ImGuiKey_F18
  when SDL::SDLK_F19 then ImGuiKey_F19
  when SDL::SDLK_F20 then ImGuiKey_F20
  when SDL::SDLK_F21 then ImGuiKey_F21
  when SDL::SDLK_F22 then ImGuiKey_F22
  when SDL::SDLK_F23 then ImGuiKey_F23
  when SDL::SDLK_F24 then ImGuiKey_F24
  when SDL::SDLK_AC_BACK then ImGuiKey_AppBack
  when SDL::SDLK_AC_FORWARD then ImGuiKey_AppForward
  else
    case scancode
    when SDL::SCANCODE_GRAVE then ImGuiKey_GraveAccent
    when SDL::SCANCODE_MINUS then ImGuiKey_Minus
    when SDL::SCANCODE_EQUALS then ImGuiKey_Equal
    when SDL::SCANCODE_LEFTBRACKET then ImGuiKey_LeftBracket
    when SDL::SCANCODE_RIGHTBRACKET then ImGuiKey_RightBracket
    when SDL::SCANCODE_NONUSBACKSLASH then ImGuiKey_Oem102
    when SDL::SCANCODE_BACKSLASH then ImGuiKey_Backslash
    when SDL::SCANCODE_SEMICOLON then ImGuiKey_Semicolon
    when SDL::SCANCODE_APOSTROPHE then ImGuiKey_Apostrophe
    when SDL::SCANCODE_COMMA then ImGuiKey_Comma
    when SDL::SCANCODE_PERIOD then ImGuiKey_Period
    when SDL::SCANCODE_SLASH then ImGuiKey_Slash
    else ImGuiKey_None
    end
  end
end

.ImGui_ImplDockingSDL3_PlatformSetImeData(_context, _viewport, data_raw) ⇒ Object



292
293
294
295
296
297
298
299
300
# File 'lib/imgui_impl_docking_sdl3.rb', line 292

def self.ImGui_ImplDockingSDL3_PlatformSetImeData(_context, _viewport, data_raw)
  bd = ImGui_ImplDockingSDL3_GetBackendData()
  return if bd == nil

  data = data_raw.kind_of?(ImGuiPlatformImeData) ? data_raw : ImGuiPlatformImeData.new(data_raw)
  ImGui_ImplDockingSDL3_CopyImeData(bd.ime_data, data)
  bd.ime_dirty = true
  ImGui_ImplDockingSDL3_UpdateIme
end

.ImGui_ImplDockingSDL3_RenderWindow(viewport_raw, _render_arg) ⇒ Object



1069
1070
1071
1072
1073
1074
1075
# File 'lib/imgui_impl_docking_sdl3.rb', line 1069

def self.ImGui_ImplDockingSDL3_RenderWindow(viewport_raw, _render_arg)
  viewport = viewport_raw.kind_of?(ImGuiViewport) ? viewport_raw : ImGuiViewport.new(viewport_raw)
  vd = ImGui_ImplDockingSDL3_GetViewportData(viewport)
  return if vd == nil || vd.window == nil || vd.gl_context == nil

  SDL.GL_MakeCurrent(vd.window, vd.gl_context)
end

.ImGui_ImplDockingSDL3_SetClipboardText(_context, text) ⇒ Object



288
289
290
# File 'lib/imgui_impl_docking_sdl3.rb', line 288

def self.ImGui_ImplDockingSDL3_SetClipboardText(_context, text)
  SDL.SetClipboardText(text)
end

.ImGui_ImplDockingSDL3_SetupPlatformHandles(viewport_raw, window) ⇒ Object



334
335
336
337
338
339
340
341
342
343
344
345
# File 'lib/imgui_impl_docking_sdl3.rb', line 334

def self.ImGui_ImplDockingSDL3_SetupPlatformHandles(viewport_raw, window)
  viewport = viewport_raw.kind_of?(ImGuiViewport) ? viewport_raw : ImGuiViewport.new(viewport_raw)
  viewport[:PlatformHandle] = FFI::Pointer.new(SDL.GetWindowID(window))
  viewport[:PlatformHandleRaw] = nil
  if FFI::Platform.windows?
    props = SDL.GetWindowProperties(window)
    viewport[:PlatformHandleRaw] = SDL.GetPointerProperty(props, SDL::PROP_WINDOW_WIN32_HWND_POINTER, nil)
  elsif FFI::Platform.mac?
    props = SDL.GetWindowProperties(window)
    viewport[:PlatformHandleRaw] = SDL.GetPointerProperty(props, SDL::PROP_WINDOW_COCOA_WINDOW_POINTER, nil)
  end
end

.ImGui_ImplDockingSDL3_SetViewportData(viewport_raw, data) ⇒ Object



92
93
94
95
96
97
98
99
100
101
102
103
104
# File 'lib/imgui_impl_docking_sdl3.rb', line 92

def self.ImGui_ImplDockingSDL3_SetViewportData(viewport_raw, data)
  viewport = viewport_raw.kind_of?(ImGuiViewport) ? viewport_raw : ImGuiViewport.new(viewport_raw)
  bd = ImGui_ImplDockingSDL3_GetBackendData()
  return if bd == nil

  if data == nil
    bd.viewport_data.delete(viewport.pointer.address)
    viewport[:PlatformUserData] = nil
  else
    bd.viewport_data[viewport.pointer.address] = data
    viewport[:PlatformUserData] = ImGui_ImplDockingSDL3_GetViewportToken(viewport)
  end
end

.ImGui_ImplDockingSDL3_SetWindowAlpha(viewport_raw, alpha) ⇒ Object



1037
1038
1039
1040
1041
1042
1043
# File 'lib/imgui_impl_docking_sdl3.rb', line 1037

def self.ImGui_ImplDockingSDL3_SetWindowAlpha(viewport_raw, alpha)
  viewport = viewport_raw.kind_of?(ImGuiViewport) ? viewport_raw : ImGuiViewport.new(viewport_raw)
  vd = ImGui_ImplDockingSDL3_GetViewportData(viewport)
  return if vd == nil || vd.window == nil

  SDL.SetWindowOpacity(vd.window, alpha)
end

.ImGui_ImplDockingSDL3_SetWindowFocus(viewport_raw) ⇒ Object



1045
1046
1047
1048
1049
1050
1051
# File 'lib/imgui_impl_docking_sdl3.rb', line 1045

def self.ImGui_ImplDockingSDL3_SetWindowFocus(viewport_raw)
  viewport = viewport_raw.kind_of?(ImGuiViewport) ? viewport_raw : ImGuiViewport.new(viewport_raw)
  vd = ImGui_ImplDockingSDL3_GetViewportData(viewport)
  return if vd == nil || vd.window == nil

  SDL.RaiseWindow(vd.window)
end

.ImGui_ImplDockingSDL3_SetWindowPos(viewport_raw, pos) ⇒ Object



993
994
995
996
997
998
999
# File 'lib/imgui_impl_docking_sdl3.rb', line 993

def self.ImGui_ImplDockingSDL3_SetWindowPos(viewport_raw, pos)
  viewport = viewport_raw.kind_of?(ImGuiViewport) ? viewport_raw : ImGuiViewport.new(viewport_raw)
  vd = ImGui_ImplDockingSDL3_GetViewportData(viewport)
  return if vd == nil || vd.window == nil

  SDL.SetWindowPosition(vd.window, pos[:x].to_i, pos[:y].to_i)
end

.ImGui_ImplDockingSDL3_SetWindowSize(viewport_raw, size) ⇒ Object



1012
1013
1014
1015
1016
1017
1018
# File 'lib/imgui_impl_docking_sdl3.rb', line 1012

def self.ImGui_ImplDockingSDL3_SetWindowSize(viewport_raw, size)
  viewport = viewport_raw.kind_of?(ImGuiViewport) ? viewport_raw : ImGuiViewport.new(viewport_raw)
  vd = ImGui_ImplDockingSDL3_GetViewportData(viewport)
  return if vd == nil || vd.window == nil

  SDL.SetWindowSize(vd.window, size[:x].to_i, size[:y].to_i)
end

.ImGui_ImplDockingSDL3_SetWindowTitle(viewport_raw, title) ⇒ Object



1029
1030
1031
1032
1033
1034
1035
# File 'lib/imgui_impl_docking_sdl3.rb', line 1029

def self.ImGui_ImplDockingSDL3_SetWindowTitle(viewport_raw, title)
  viewport = viewport_raw.kind_of?(ImGuiViewport) ? viewport_raw : ImGuiViewport.new(viewport_raw)
  vd = ImGui_ImplDockingSDL3_GetViewportData(viewport)
  return if vd == nil || vd.window == nil

  SDL.SetWindowTitle(vd.window, title)
end

.ImGui_ImplDockingSDL3_ShowWindow(viewport_raw) ⇒ Object



955
956
957
958
959
960
961
962
963
964
965
966
967
# File 'lib/imgui_impl_docking_sdl3.rb', line 955

def self.ImGui_ImplDockingSDL3_ShowWindow(viewport_raw)
  viewport = viewport_raw.kind_of?(ImGuiViewport) ? viewport_raw : ImGuiViewport.new(viewport_raw)
  vd = ImGui_ImplDockingSDL3_GetViewportData(viewport)
  return if vd == nil || vd.window == nil

  hint = if FFI::Platform.mac?
    '1'
  else
    (viewport[:Flags] & ImGuiViewportFlags_NoFocusOnAppearing) != 0 ? '0' : '1'
  end
  SDL.SetHint(SDL::HINT_WINDOW_ACTIVATE_WHEN_SHOWN, hint) if defined?(SDL::HINT_WINDOW_ACTIVATE_WHEN_SHOWN)
  SDL.ShowWindow(vd.window)
end

.ImGui_ImplDockingSDL3_ShutdownMultiViewportSupportObject



1125
1126
1127
# File 'lib/imgui_impl_docking_sdl3.rb', line 1125

def self.ImGui_ImplDockingSDL3_ShutdownMultiViewportSupport
  ImGui::DestroyPlatformWindows()
end

.ImGui_ImplDockingSDL3_SwapBuffers(viewport_raw, _render_arg) ⇒ Object



1077
1078
1079
1080
1081
1082
1083
1084
# File 'lib/imgui_impl_docking_sdl3.rb', line 1077

def self.ImGui_ImplDockingSDL3_SwapBuffers(viewport_raw, _render_arg)
  viewport = viewport_raw.kind_of?(ImGuiViewport) ? viewport_raw : ImGuiViewport.new(viewport_raw)
  vd = ImGui_ImplDockingSDL3_GetViewportData(viewport)
  return if vd == nil || vd.window == nil || vd.gl_context == nil

  SDL.GL_MakeCurrent(vd.window, vd.gl_context)
  SDL.GL_SwapWindow(vd.window)
end

.ImGui_ImplDockingSDL3_UpdateImeObject



302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
# File 'lib/imgui_impl_docking_sdl3.rb', line 302

def self.ImGui_ImplDockingSDL3_UpdateIme
  bd = ImGui_ImplDockingSDL3_GetBackendData()
  return if bd == nil

  data = bd.ime_data
  window = SDL.GetKeyboardFocus()

  if (!(data[:WantVisible] || data[:WantTextInput]) || bd.ime_window != window) && bd.ime_window != nil
    SDL.StopTextInput(bd.ime_window)
    bd.ime_window = nil
  end
  return if (!bd.ime_dirty && bd.ime_window == window) || window == nil

  bd.ime_dirty = false
  if data[:WantVisible]
    viewport_pos = ImVec2.create(0.0, 0.0)
    viewport = ImGui_ImplDockingSDL3_GetViewportForWindowID(SDL.GetWindowID(window))
    if viewport != nil
      viewport_pos[:x] = viewport[:Pos][:x]
      viewport_pos[:y] = viewport[:Pos][:y]
    end
    rect = SDL::Rect.new
    rect[:x] = (data[:InputPos][:x] - viewport_pos[:x]).to_i
    rect[:y] = (data[:InputPos][:y] - viewport_pos[:y]).to_i
    rect[:w] = 1
    rect[:h] = data[:InputLineHeight].to_i
    SDL.SetTextInputArea(window, rect, 0)
    bd.ime_window = window
  end
  SDL.StartTextInput(window) if !SDL.TextInputActive(window) && (data[:WantVisible] || data[:WantTextInput])
end

.ImGui_ImplDockingSDL3_UpdateKeyModifiers(sdl_key_mods) ⇒ Object



262
263
264
265
266
267
268
# File 'lib/imgui_impl_docking_sdl3.rb', line 262

def self.ImGui_ImplDockingSDL3_UpdateKeyModifiers(sdl_key_mods)
  io = ImGuiIO.new(ImGui::GetIO())
  io.AddKeyEvent(ImGuiMod_Ctrl, (sdl_key_mods & SDL::KMOD_CTRL) != 0)
  io.AddKeyEvent(ImGuiMod_Shift, (sdl_key_mods & SDL::KMOD_SHIFT) != 0)
  io.AddKeyEvent(ImGuiMod_Alt, (sdl_key_mods & SDL::KMOD_ALT) != 0)
  io.AddKeyEvent(ImGuiMod_Super, (sdl_key_mods & SDL::KMOD_GUI) != 0)
end

.ImGui_ImplDockingSDL3_UpdateMonitorsObject



347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
# File 'lib/imgui_impl_docking_sdl3.rb', line 347

def self.ImGui_ImplDockingSDL3_UpdateMonitors
  bd = ImGui_ImplDockingSDL3_GetBackendData()
  return if bd == nil

  platform_io = ImGuiPlatformIO.new(ImGui::GetPlatformIO())
  monitors = platform_io[:Monitors]
  monitors[:Size] = 0
  bd.want_update_monitors = false

  count_ptr = FFI::MemoryPointer.new(:int)
  displays_ptr = SDL.GetDisplays(count_ptr)
  display_count = count_ptr.read_int

  if displays_ptr == nil || displays_ptr.address == 0 || display_count <= 0
    bd.monitor_memory = nil
    monitors[:Capacity] = 0
    monitors[:Data] = nil
    return
  end

  bd.monitor_memory = FFI::MemoryPointer.new(ImGuiPlatformMonitor, display_count)
  monitors[:Capacity] = display_count
  monitors[:Data] = bd.monitor_memory

  valid_count = 0
  display_count.times do |index|
    display_id = (displays_ptr + index * FFI.type_size(:uint)).read_uint
    monitor = ImGuiPlatformMonitor.new(bd.monitor_memory + valid_count * ImGuiPlatformMonitor.size)
    rect = SDL::Rect.new
    SDL.GetDisplayBounds(display_id, rect)
    monitor[:MainPos][:x] = rect[:x].to_f
    monitor[:MainPos][:y] = rect[:y].to_f
    monitor[:WorkPos][:x] = rect[:x].to_f
    monitor[:WorkPos][:y] = rect[:y].to_f
    monitor[:MainSize][:x] = rect[:w].to_f
    monitor[:MainSize][:y] = rect[:h].to_f
    monitor[:WorkSize][:x] = rect[:w].to_f
    monitor[:WorkSize][:y] = rect[:h].to_f
    if SDL.GetDisplayUsableBounds(display_id, rect) && rect[:w] > 0 && rect[:h] > 0
      monitor[:WorkPos][:x] = rect[:x].to_f
      monitor[:WorkPos][:y] = rect[:y].to_f
      monitor[:WorkSize][:x] = rect[:w].to_f
      monitor[:WorkSize][:y] = rect[:h].to_f
    end
    monitor[:DpiScale] = SDL.GetDisplayContentScale(display_id)
    next if monitor[:DpiScale] <= 0.0

    monitor[:PlatformHandle] = FFI::Pointer.new(index)
    valid_count += 1
  end

  monitors[:Size] = valid_count

  SDL.free(displays_ptr)
end

.ImGui_ImplDockingSDL3_UpdateWindow(viewport_raw) ⇒ Object



969
970
971
972
973
974
975
976
977
978
979
980
# File 'lib/imgui_impl_docking_sdl3.rb', line 969

def self.ImGui_ImplDockingSDL3_UpdateWindow(viewport_raw)
  viewport = viewport_raw.kind_of?(ImGuiViewport) ? viewport_raw : ImGuiViewport.new(viewport_raw)
  vd = ImGui_ImplDockingSDL3_GetViewportData(viewport)
  return if vd == nil || vd.window == nil || FFI::Platform.mac?

  new_parent = nil
  new_parent = ImGui_ImplDockingSDL3_GetSDLWindowFromViewport(viewport[:ParentViewport]) if viewport[:ParentViewport] != nil && viewport[:ParentViewport].address != 0
  if new_parent != vd.parent_window
    vd.parent_window = new_parent
    SDL.SetWindowParent(vd.window, vd.parent_window)
  end
end

.ImGui_ImplDockingSDLRenderer3_GetBackendDataObject



31
32
33
34
35
# File 'lib/imgui_impl_docking_sdl3renderer.rb', line 31

def self.ImGui_ImplDockingSDLRenderer3_GetBackendData
  return nil if ImGui::GetCurrentContext() == nil

  @@g_DockingSDL3BackendRendererUserData[ImGui::GetCurrentContext().address]
end

.ImGui_ImplRaylib_GetBackendDataObject

[INTERNAL]



46
47
48
49
50
51
52
# File 'lib/imgui_impl_raylib.rb', line 46

def self.ImGui_ImplRaylib_GetBackendData()
  if ImGui::GetCurrentContext() != nil
    @@g_BackendData[ImGui::GetCurrentContext().address]
  else
    nil
  end
end

.ImGui_ImplRaylib_KeyToImGuiKey(key) ⇒ Object

[INTERNAL]



257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
# File 'lib/imgui_impl_raylib.rb', line 257

def self.ImGui_ImplRaylib_KeyToImGuiKey(key)
  case key
  when Raylib::KEY_TAB then ImGuiKey_Tab
  when Raylib::KEY_LEFT then ImGuiKey_LeftArrow
  when Raylib::KEY_RIGHT then ImGuiKey_RightArrow
  when Raylib::KEY_UP then ImGuiKey_UpArrow
  when Raylib::KEY_DOWN then ImGuiKey_DownArrow
  when Raylib::KEY_PAGE_UP then ImGuiKey_PageUp
  when Raylib::KEY_PAGE_DOWN then ImGuiKey_PageDown
  when Raylib::KEY_HOME then ImGuiKey_Home
  when Raylib::KEY_END then ImGuiKey_End
  when Raylib::KEY_INSERT then ImGuiKey_Insert
  when Raylib::KEY_DELETE then ImGuiKey_Delete
  when Raylib::KEY_BACKSPACE then ImGuiKey_Backspace
  when Raylib::KEY_SPACE then ImGuiKey_Space
  when Raylib::KEY_ENTER then ImGuiKey_Enter
  when Raylib::KEY_ESCAPE then ImGuiKey_Escape
  when Raylib::KEY_APOSTROPHE then ImGuiKey_Apostrophe
  when Raylib::KEY_COMMA then ImGuiKey_Comma
  when Raylib::KEY_MINUS then ImGuiKey_Minus
  when Raylib::KEY_PERIOD then ImGuiKey_Period
  when Raylib::KEY_SLASH then ImGuiKey_Slash
  when Raylib::KEY_SEMICOLON then ImGuiKey_Semicolon
  when Raylib::KEY_EQUAL then ImGuiKey_Equal
  when Raylib::KEY_LEFT_BRACKET then ImGuiKey_LeftBracket
  when Raylib::KEY_BACKSLASH then ImGuiKey_Backslash
  when Raylib::KEY_RIGHT_BRACKET then ImGuiKey_RightBracket
  when Raylib::KEY_GRAVE then ImGuiKey_GraveAccent
  when Raylib::KEY_CAPS_LOCK then ImGuiKey_CapsLock
  when Raylib::KEY_SCROLL_LOCK then ImGuiKey_ScrollLock
  when Raylib::KEY_NUM_LOCK then ImGuiKey_NumLock
  when Raylib::KEY_PRINT_SCREEN then ImGuiKey_PrintScreen
  when Raylib::KEY_PAUSE then ImGuiKey_Pause
  when Raylib::KEY_KP_0 then ImGuiKey_Keypad0
  when Raylib::KEY_KP_1 then ImGuiKey_Keypad1
  when Raylib::KEY_KP_2 then ImGuiKey_Keypad2
  when Raylib::KEY_KP_3 then ImGuiKey_Keypad3
  when Raylib::KEY_KP_4 then ImGuiKey_Keypad4
  when Raylib::KEY_KP_5 then ImGuiKey_Keypad5
  when Raylib::KEY_KP_6 then ImGuiKey_Keypad6
  when Raylib::KEY_KP_7 then ImGuiKey_Keypad7
  when Raylib::KEY_KP_8 then ImGuiKey_Keypad8
  when Raylib::KEY_KP_9 then ImGuiKey_Keypad9
  when Raylib::KEY_KP_DECIMAL then ImGuiKey_KeypadDecimal
  when Raylib::KEY_KP_DIVIDE then ImGuiKey_KeypadDivide
  when Raylib::KEY_KP_MULTIPLY then ImGuiKey_KeypadMultiply
  when Raylib::KEY_KP_SUBTRACT then ImGuiKey_KeypadSubtract
  when Raylib::KEY_KP_ADD then ImGuiKey_KeypadAdd
  when Raylib::KEY_KP_ENTER then ImGuiKey_KeypadEnter
  when Raylib::KEY_KP_EQUAL then ImGuiKey_KeypadEqual
  when Raylib::KEY_LEFT_CONTROL then ImGuiKey_LeftCtrl
  when Raylib::KEY_LEFT_SHIFT then ImGuiKey_LeftShift
  when Raylib::KEY_LEFT_ALT then ImGuiKey_LeftAlt
  when Raylib::KEY_LEFT_SUPER then ImGuiKey_LeftSuper
  when Raylib::KEY_RIGHT_CONTROL then ImGuiKey_RightCtrl
  when Raylib::KEY_RIGHT_SHIFT then ImGuiKey_RightShift
  when Raylib::KEY_RIGHT_ALT then ImGuiKey_RightAlt
  when Raylib::KEY_RIGHT_SUPER then ImGuiKey_RightSuper
  when Raylib::KEY_KB_MENU then ImGuiKey_Menu
  when Raylib::KEY_ZERO then ImGuiKey_0
  when Raylib::KEY_ONE then ImGuiKey_1
  when Raylib::KEY_TWO then ImGuiKey_2
  when Raylib::KEY_THREE then ImGuiKey_3
  when Raylib::KEY_FOUR then ImGuiKey_4
  when Raylib::KEY_FIVE then ImGuiKey_5
  when Raylib::KEY_SIX then ImGuiKey_6
  when Raylib::KEY_SEVEN then ImGuiKey_7
  when Raylib::KEY_EIGHT then ImGuiKey_8
  when Raylib::KEY_NINE then ImGuiKey_9
  when Raylib::KEY_A then ImGuiKey_A
  when Raylib::KEY_B then ImGuiKey_B
  when Raylib::KEY_C then ImGuiKey_C
  when Raylib::KEY_D then ImGuiKey_D
  when Raylib::KEY_E then ImGuiKey_E
  when Raylib::KEY_F then ImGuiKey_F
  when Raylib::KEY_G then ImGuiKey_G
  when Raylib::KEY_H then ImGuiKey_H
  when Raylib::KEY_I then ImGuiKey_I
  when Raylib::KEY_J then ImGuiKey_J
  when Raylib::KEY_K then ImGuiKey_K
  when Raylib::KEY_L then ImGuiKey_L
  when Raylib::KEY_M then ImGuiKey_M
  when Raylib::KEY_N then ImGuiKey_N
  when Raylib::KEY_O then ImGuiKey_O
  when Raylib::KEY_P then ImGuiKey_P
  when Raylib::KEY_Q then ImGuiKey_Q
  when Raylib::KEY_R then ImGuiKey_R
  when Raylib::KEY_S then ImGuiKey_S
  when Raylib::KEY_T then ImGuiKey_T
  when Raylib::KEY_U then ImGuiKey_U
  when Raylib::KEY_V then ImGuiKey_V
  when Raylib::KEY_W then ImGuiKey_W
  when Raylib::KEY_X then ImGuiKey_X
  when Raylib::KEY_Y then ImGuiKey_Y
  when Raylib::KEY_Z then ImGuiKey_Z
  when Raylib::KEY_F1 then ImGuiKey_F1
  when Raylib::KEY_F2 then ImGuiKey_F2
  when Raylib::KEY_F3 then ImGuiKey_F3
  when Raylib::KEY_F4 then ImGuiKey_F4
  when Raylib::KEY_F5 then ImGuiKey_F5
  when Raylib::KEY_F6 then ImGuiKey_F6
  when Raylib::KEY_F7 then ImGuiKey_F7
  when Raylib::KEY_F8 then ImGuiKey_F8
  when Raylib::KEY_F9 then ImGuiKey_F9
  when Raylib::KEY_F10 then ImGuiKey_F10
  when Raylib::KEY_F11 then ImGuiKey_F11
  when Raylib::KEY_F12 then ImGuiKey_F12
  else ImGuiKey_None
  end
end

.ImGui_ImplRaylib_UpdateKeyModifiersObject

[INTERNAL]



369
370
371
372
373
374
375
# File 'lib/imgui_impl_raylib.rb', line 369

def self.ImGui_ImplRaylib_UpdateKeyModifiers()
  io = ImGuiIO.new(ImGui::GetIO())
  io.AddKeyEvent(ImGuiMod_Ctrl, Raylib.IsKeyDown(Raylib::KEY_RIGHT_CONTROL) || Raylib.IsKeyDown(Raylib::KEY_LEFT_CONTROL))
  io.AddKeyEvent(ImGuiMod_Shift, Raylib.IsKeyDown(Raylib::KEY_RIGHT_SHIFT) || Raylib.IsKeyDown(Raylib::KEY_LEFT_SHIFT))
  io.AddKeyEvent(ImGuiMod_Alt, Raylib.IsKeyDown(Raylib::KEY_RIGHT_ALT) || Raylib.IsKeyDown(Raylib::KEY_LEFT_ALT))
  io.AddKeyEvent(ImGuiMod_Super, Raylib.IsKeyDown(Raylib::KEY_RIGHT_SUPER) || Raylib.IsKeyDown(Raylib::KEY_LEFT_SUPER))
end

.ImGui_ImplSDL3_GetBackendDataObject



44
45
46
47
# File 'lib/imgui_impl_sdl3.rb', line 44

def self.ImGui_ImplSDL3_GetBackendData()
  return nil if ImGui::GetCurrentContext() == nil
  @@g_BackendData[ImGui::GetCurrentContext().address]
end

.ImGui_ImplSDL3_GetViewportForWindowID(window_id) ⇒ Object



53
54
55
56
57
# File 'lib/imgui_impl_sdl3.rb', line 53

def self.ImGui_ImplSDL3_GetViewportForWindowID(window_id)
  bd = ImGui_ImplSDL3_GetBackendData()
  return nil if bd == nil
  window_id == bd.window_id ? ImGuiViewport.new(ImGui::GetMainViewport()) : nil
end

.ImGui_ImplSDL3_IsTouchMouse(which_id) ⇒ Object



49
50
51
# File 'lib/imgui_impl_sdl3.rb', line 49

def self.ImGui_ImplSDL3_IsTouchMouse(which_id)
  which_id == SDL::TOUCH_MOUSEID || which_id == 0xffffffff
end

.ImGui_ImplSDL3_KeyEventToImGuiKey(keycode, scancode) ⇒ Object



59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
# File 'lib/imgui_impl_sdl3.rb', line 59

def self.ImGui_ImplSDL3_KeyEventToImGuiKey(keycode, scancode)
  case scancode
  when SDL::SCANCODE_KP_0 then ImGuiKey_Keypad0
  when SDL::SCANCODE_KP_1 then ImGuiKey_Keypad1
  when SDL::SCANCODE_KP_2 then ImGuiKey_Keypad2
  when SDL::SCANCODE_KP_3 then ImGuiKey_Keypad3
  when SDL::SCANCODE_KP_4 then ImGuiKey_Keypad4
  when SDL::SCANCODE_KP_5 then ImGuiKey_Keypad5
  when SDL::SCANCODE_KP_6 then ImGuiKey_Keypad6
  when SDL::SCANCODE_KP_7 then ImGuiKey_Keypad7
  when SDL::SCANCODE_KP_8 then ImGuiKey_Keypad8
  when SDL::SCANCODE_KP_9 then ImGuiKey_Keypad9
  when SDL::SCANCODE_KP_PERIOD then ImGuiKey_KeypadDecimal
  when SDL::SCANCODE_KP_DIVIDE then ImGuiKey_KeypadDivide
  when SDL::SCANCODE_KP_MULTIPLY then ImGuiKey_KeypadMultiply
  when SDL::SCANCODE_KP_MINUS then ImGuiKey_KeypadSubtract
  when SDL::SCANCODE_KP_PLUS then ImGuiKey_KeypadAdd
  when SDL::SCANCODE_KP_ENTER then ImGuiKey_KeypadEnter
  when SDL::SCANCODE_KP_EQUALS then ImGuiKey_KeypadEqual
  end

  case keycode
  when SDL::SDLK_TAB then ImGuiKey_Tab
  when SDL::SDLK_LEFT then ImGuiKey_LeftArrow
  when SDL::SDLK_RIGHT then ImGuiKey_RightArrow
  when SDL::SDLK_UP then ImGuiKey_UpArrow
  when SDL::SDLK_DOWN then ImGuiKey_DownArrow
  when SDL::SDLK_PAGEUP then ImGuiKey_PageUp
  when SDL::SDLK_PAGEDOWN then ImGuiKey_PageDown
  when SDL::SDLK_HOME then ImGuiKey_Home
  when SDL::SDLK_END then ImGuiKey_End
  when SDL::SDLK_INSERT then ImGuiKey_Insert
  when SDL::SDLK_DELETE then ImGuiKey_Delete
  when SDL::SDLK_BACKSPACE then ImGuiKey_Backspace
  when SDL::SDLK_SPACE then ImGuiKey_Space
  when SDL::SDLK_RETURN then ImGuiKey_Enter
  when SDL::SDLK_ESCAPE then ImGuiKey_Escape
  when SDL::SDLK_COMMA then ImGuiKey_Comma
  when SDL::SDLK_PERIOD then ImGuiKey_Period
  when SDL::SDLK_SEMICOLON then ImGuiKey_Semicolon
  when SDL::SDLK_CAPSLOCK then ImGuiKey_CapsLock
  when SDL::SDLK_SCROLLLOCK then ImGuiKey_ScrollLock
  when SDL::SDLK_NUMLOCKCLEAR then ImGuiKey_NumLock
  when SDL::SDLK_PRINTSCREEN then ImGuiKey_PrintScreen
  when SDL::SDLK_PAUSE then ImGuiKey_Pause
  when SDL::SDLK_LCTRL then ImGuiKey_LeftCtrl
  when SDL::SDLK_LSHIFT then ImGuiKey_LeftShift
  when SDL::SDLK_LALT then ImGuiKey_LeftAlt
  when SDL::SDLK_LGUI then ImGuiKey_LeftSuper
  when SDL::SDLK_RCTRL then ImGuiKey_RightCtrl
  when SDL::SDLK_RSHIFT then ImGuiKey_RightShift
  when SDL::SDLK_RALT then ImGuiKey_RightAlt
  when SDL::SDLK_RGUI then ImGuiKey_RightSuper
  when SDL::SDLK_APPLICATION then ImGuiKey_Menu
  when SDL::SDLK_0 then ImGuiKey_0
  when SDL::SDLK_1 then ImGuiKey_1
  when SDL::SDLK_2 then ImGuiKey_2
  when SDL::SDLK_3 then ImGuiKey_3
  when SDL::SDLK_4 then ImGuiKey_4
  when SDL::SDLK_5 then ImGuiKey_5
  when SDL::SDLK_6 then ImGuiKey_6
  when SDL::SDLK_7 then ImGuiKey_7
  when SDL::SDLK_8 then ImGuiKey_8
  when SDL::SDLK_9 then ImGuiKey_9
  when SDL::SDLK_A then ImGuiKey_A
  when SDL::SDLK_B then ImGuiKey_B
  when SDL::SDLK_C then ImGuiKey_C
  when SDL::SDLK_D then ImGuiKey_D
  when SDL::SDLK_E then ImGuiKey_E
  when SDL::SDLK_F then ImGuiKey_F
  when SDL::SDLK_G then ImGuiKey_G
  when SDL::SDLK_H then ImGuiKey_H
  when SDL::SDLK_I then ImGuiKey_I
  when SDL::SDLK_J then ImGuiKey_J
  when SDL::SDLK_K then ImGuiKey_K
  when SDL::SDLK_L then ImGuiKey_L
  when SDL::SDLK_M then ImGuiKey_M
  when SDL::SDLK_N then ImGuiKey_N
  when SDL::SDLK_O then ImGuiKey_O
  when SDL::SDLK_P then ImGuiKey_P
  when SDL::SDLK_Q then ImGuiKey_Q
  when SDL::SDLK_R then ImGuiKey_R
  when SDL::SDLK_S then ImGuiKey_S
  when SDL::SDLK_T then ImGuiKey_T
  when SDL::SDLK_U then ImGuiKey_U
  when SDL::SDLK_V then ImGuiKey_V
  when SDL::SDLK_W then ImGuiKey_W
  when SDL::SDLK_X then ImGuiKey_X
  when SDL::SDLK_Y then ImGuiKey_Y
  when SDL::SDLK_Z then ImGuiKey_Z
  when SDL::SDLK_F1 then ImGuiKey_F1
  when SDL::SDLK_F2 then ImGuiKey_F2
  when SDL::SDLK_F3 then ImGuiKey_F3
  when SDL::SDLK_F4 then ImGuiKey_F4
  when SDL::SDLK_F5 then ImGuiKey_F5
  when SDL::SDLK_F6 then ImGuiKey_F6
  when SDL::SDLK_F7 then ImGuiKey_F7
  when SDL::SDLK_F8 then ImGuiKey_F8
  when SDL::SDLK_F9 then ImGuiKey_F9
  when SDL::SDLK_F10 then ImGuiKey_F10
  when SDL::SDLK_F11 then ImGuiKey_F11
  when SDL::SDLK_F12 then ImGuiKey_F12
  when SDL::SDLK_F13 then ImGuiKey_F13
  when SDL::SDLK_F14 then ImGuiKey_F14
  when SDL::SDLK_F15 then ImGuiKey_F15
  when SDL::SDLK_F16 then ImGuiKey_F16
  when SDL::SDLK_F17 then ImGuiKey_F17
  when SDL::SDLK_F18 then ImGuiKey_F18
  when SDL::SDLK_F19 then ImGuiKey_F19
  when SDL::SDLK_F20 then ImGuiKey_F20
  when SDL::SDLK_F21 then ImGuiKey_F21
  when SDL::SDLK_F22 then ImGuiKey_F22
  when SDL::SDLK_F23 then ImGuiKey_F23
  when SDL::SDLK_F24 then ImGuiKey_F24
  when SDL::SDLK_AC_BACK then ImGuiKey_AppBack
  when SDL::SDLK_AC_FORWARD then ImGuiKey_AppForward
  else
    case scancode
    when SDL::SCANCODE_GRAVE then ImGuiKey_GraveAccent
    when SDL::SCANCODE_MINUS then ImGuiKey_Minus
    when SDL::SCANCODE_EQUALS then ImGuiKey_Equal
    when SDL::SCANCODE_LEFTBRACKET then ImGuiKey_LeftBracket
    when SDL::SCANCODE_RIGHTBRACKET then ImGuiKey_RightBracket
    when SDL::SCANCODE_NONUSBACKSLASH then ImGuiKey_Oem102
    when SDL::SCANCODE_BACKSLASH then ImGuiKey_Backslash
    when SDL::SCANCODE_SEMICOLON then ImGuiKey_Semicolon
    when SDL::SCANCODE_APOSTROPHE then ImGuiKey_Apostrophe
    when SDL::SCANCODE_COMMA then ImGuiKey_Comma
    when SDL::SCANCODE_PERIOD then ImGuiKey_Period
    when SDL::SCANCODE_SLASH then ImGuiKey_Slash
    else ImGuiKey_None
    end
  end
end

.ImGui_ImplSDL3_UpdateKeyModifiers(sdl_key_mods) ⇒ Object



194
195
196
197
198
199
200
# File 'lib/imgui_impl_sdl3.rb', line 194

def self.ImGui_ImplSDL3_UpdateKeyModifiers(sdl_key_mods)
  io = ImGuiIO.new(ImGui::GetIO())
  io.AddKeyEvent(ImGuiMod_Ctrl, (sdl_key_mods & SDL::KMOD_CTRL) != 0)
  io.AddKeyEvent(ImGuiMod_Shift, (sdl_key_mods & SDL::KMOD_SHIFT) != 0)
  io.AddKeyEvent(ImGuiMod_Alt, (sdl_key_mods & SDL::KMOD_ALT) != 0)
  io.AddKeyEvent(ImGuiMod_Super, (sdl_key_mods & SDL::KMOD_GUI) != 0)
end

.ImGui_ImplSDLRenderer3_GetBackendDataObject



31
32
33
34
35
# File 'lib/imgui_impl_sdl3renderer.rb', line 31

def self.ImGui_ImplSDLRenderer3_GetBackendData()
  return nil if ImGui::GetCurrentContext() == nil

  @@g_BackendRendererUserData[ImGui::GetCurrentContext().address]
end

.ImplDockingOpenGL3_AsGLPointer(pointer) ⇒ Object



361
362
363
364
365
# File 'lib/imgui_impl_docking_opengl3.rb', line 361

def self.ImplDockingOpenGL3_AsGLPointer(pointer)
  return nil if pointer.nil? || pointer.null?

  Fiddle::Pointer.new(pointer.to_i)
end

.ImplDockingOpenGL3_CreateDeviceObjectsObject



442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
# File 'lib/imgui_impl_docking_opengl3.rb', line 442

def self.ImplDockingOpenGL3_CreateDeviceObjects()
  last_texture = ' ' * 4
  last_array_buffer = ' ' * 4
  GL.GetIntegerv(GL::TEXTURE_BINDING_2D, last_texture)
  GL.GetIntegerv(GL::ARRAY_BUFFER_BINDING, last_array_buffer)

  last_vertex_array = ' ' * 4
  GL.GetIntegerv(GL::VERTEX_ARRAY_BINDING, last_vertex_array)

  glsl_version = @@g_DockingGL3GlslVersionString.split[1].to_i

  vertex_shader_glsl_120 = <<-'SRC'
  uniform mat4 ProjMtx;
  attribute vec2 Position;
  attribute vec2 UV;
  attribute vec4 Color;
  varying vec2 Frag_UV;
  varying vec4 Frag_Color;
  void main()
  {
      Frag_UV = UV;
      Frag_Color = Color;
      gl_Position = ProjMtx * vec4(Position.xy,0,1);
  }
  SRC

  vertex_shader_glsl_130 = <<-'SRC'
  uniform mat4 ProjMtx;
  in vec2 Position;
  in vec2 UV;
  in vec4 Color;
  out vec2 Frag_UV;
  out vec4 Frag_Color;
  void main()
  {
      Frag_UV = UV;
      Frag_Color = Color;
      gl_Position = ProjMtx * vec4(Position.xy,0,1);
  }
  SRC

  vertex_shader_glsl_300_es = <<-'SRC'
  precision highp float;
  layout (location = 0) in vec2 Position;
  layout (location = 1) in vec2 UV;
  layout (location = 2) in vec4 Color;
  uniform mat4 ProjMtx;
  out vec2 Frag_UV;
  out vec4 Frag_Color;
  void main()
  {
      Frag_UV = UV;
      Frag_Color = Color;
      gl_Position = ProjMtx * vec4(Position.xy,0,1);
  }
  SRC

  vertex_shader_glsl_410_core = <<-'SRC'
  layout (location = 0) in vec2 Position;
  layout (location = 1) in vec2 UV;
  layout (location = 2) in vec4 Color;
  uniform mat4 ProjMtx;
  out vec2 Frag_UV;
  out vec4 Frag_Color;
  void main()
  {
      Frag_UV = UV;
      Frag_Color = Color;
      gl_Position = ProjMtx * vec4(Position.xy,0,1);
  }
  SRC

  fragment_shader_glsl_120 = <<-'SRC'
  #ifdef GL_ES
      precision mediump float;
  #endif
  uniform sampler2D Texture;
  varying vec2 Frag_UV;
  varying vec4 Frag_Color;
  void main()
  {
      gl_FragColor = Frag_Color * texture2D(Texture, Frag_UV.st);
  }
  SRC

  fragment_shader_glsl_130 = <<-'SRC'
  uniform sampler2D Texture;
  in vec2 Frag_UV;
  in vec4 Frag_Color;
  out vec4 Out_Color;
  void main()
  {
      Out_Color = Frag_Color * texture(Texture, Frag_UV.st);
  }
  SRC

  fragment_shader_glsl_300_es = <<-'SRC'
  precision mediump float;
  uniform sampler2D Texture;
  in vec2 Frag_UV;
  in vec4 Frag_Color;
  layout (location = 0) out vec4 Out_Color;
  void main()
  {
      Out_Color = Frag_Color * texture(Texture, Frag_UV.st);
  }
  SRC

  fragment_shader_glsl_410_core = <<-'SRC'
  in vec2 Frag_UV;
  in vec4 Frag_Color;
  uniform sampler2D Texture;
  layout (location = 0) out vec4 Out_Color;
  void main()
  {
      Out_Color = Frag_Color * texture(Texture, Frag_UV.st);
  }
  SRC

  vertex_shader, fragment_shader = if glsl_version < 130
                                     [vertex_shader_glsl_120, fragment_shader_glsl_120]
                                   elsif glsl_version >= 410
                                     [vertex_shader_glsl_410_core, fragment_shader_glsl_410_core]
                                   elsif glsl_version == 300
                                     [vertex_shader_glsl_300_es, fragment_shader_glsl_300_es]
                                   else
                                     [vertex_shader_glsl_130, fragment_shader_glsl_130]
                                   end

  vert_handle = GL.CreateShader(GL::VERTEX_SHADER)
  GL.ShaderSource(vert_handle, 2, [@@g_DockingGL3GlslVersionString, vertex_shader].pack('p*'), nil)
  GL.CompileShader(vert_handle)
  return false unless ImplDockingOpenGL3_PrintShaderCompileStatus(vert_handle)

  frag_handle = GL.CreateShader(GL::FRAGMENT_SHADER)
  GL.ShaderSource(frag_handle, 2, [@@g_DockingGL3GlslVersionString, fragment_shader].pack('p*'), nil)
  GL.CompileShader(frag_handle)
  return false unless ImplDockingOpenGL3_PrintShaderCompileStatus(frag_handle)

  @@g_DockingGL3ShaderHandle = GL.CreateProgram()
  GL.AttachShader(@@g_DockingGL3ShaderHandle, vert_handle)
  GL.AttachShader(@@g_DockingGL3ShaderHandle, frag_handle)
  GL.LinkProgram(@@g_DockingGL3ShaderHandle)
  return false unless ImplDockingOpenGL3_PrintProgramLinkStatus(@@g_DockingGL3ShaderHandle)

  GL.DetachShader(@@g_DockingGL3ShaderHandle, vert_handle)
  GL.DetachShader(@@g_DockingGL3ShaderHandle, frag_handle)
  GL.DeleteShader(vert_handle)
  GL.DeleteShader(frag_handle)

  @@g_DockingGL3AttribLocationTex = GL.GetUniformLocation(@@g_DockingGL3ShaderHandle, 'Texture')
  @@g_DockingGL3AttribLocationProjMtx = GL.GetUniformLocation(@@g_DockingGL3ShaderHandle, 'ProjMtx')
  @@g_DockingGL3AttribLocationVtxPos = GL.GetAttribLocation(@@g_DockingGL3ShaderHandle, 'Position')
  @@g_DockingGL3AttribLocationVtxUV = GL.GetAttribLocation(@@g_DockingGL3ShaderHandle, 'UV')
  @@g_DockingGL3AttribLocationVtxColor = GL.GetAttribLocation(@@g_DockingGL3ShaderHandle, 'Color')

  vbo_mem = ' ' * 4
  elem_mem = ' ' * 4
  GL.GenBuffers(1, vbo_mem)
  GL.GenBuffers(1, elem_mem)
  @@g_DockingGL3VboHandle = vbo_mem.unpack1('L')
  @@g_DockingGL3ElementsHandle = elem_mem.unpack1('L')

  GL.BindTexture(GL::TEXTURE_2D, last_texture.unpack1('L'))
  GL.BindBuffer(GL::ARRAY_BUFFER, last_array_buffer.unpack1('L'))
  GL.BindVertexArray(last_vertex_array.unpack1('L'))

  true
end

.ImplDockingOpenGL3_CreateFontsTextureObject

Compatibility wrapper retained for older caller code.



300
301
302
# File 'lib/imgui_impl_docking_opengl3.rb', line 300

def self.ImplDockingOpenGL3_CreateFontsTexture()
  true
end

.ImplDockingOpenGL3_DestroyDeviceObjectsObject



612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
# File 'lib/imgui_impl_docking_opengl3.rb', line 612

def self.ImplDockingOpenGL3_DestroyDeviceObjects()
  if @@g_DockingGL3VboHandle != 0
    GL.DeleteBuffers(1, [@@g_DockingGL3VboHandle].pack('L'))
    @@g_DockingGL3VboHandle = 0
  end

  if @@g_DockingGL3ElementsHandle != 0
    GL.DeleteBuffers(1, [@@g_DockingGL3ElementsHandle].pack('L'))
    @@g_DockingGL3ElementsHandle = 0
  end

  if @@g_DockingGL3ShaderHandle != 0
    GL.DeleteProgram(@@g_DockingGL3ShaderHandle)
    @@g_DockingGL3ShaderHandle = 0
  end

  # Destroy textures retained only by the renderer backend.
  platform_io = ImGuiPlatformIO.new(ImGui::GetPlatformIO())
  textures = platform_io[:Textures]
  tex_data = textures[:Data]

  if !tex_data.nil? && !tex_data.null?
    pointer_stride = FFI::Pointer.size
    textures[:Size].times do |i|
      tex_ptr = (tex_data + pointer_stride * i).read_pointer
      next if tex_ptr.nil? || tex_ptr.null?

      tex = ImTextureData.new(tex_ptr)
      ImplDockingOpenGL3_DestroyTexture(tex) if tex[:RefCount] == 1
    end
  end
end

.ImplDockingOpenGL3_DestroyFontsTextureObject

Compatibility wrapper retained for older caller code.



305
306
307
# File 'lib/imgui_impl_docking_opengl3.rb', line 305

def self.ImplDockingOpenGL3_DestroyFontsTexture()
  nil
end

.ImplDockingOpenGL3_DestroyTexture(tex) ⇒ Object



351
352
353
354
355
356
357
358
359
# File 'lib/imgui_impl_docking_opengl3.rb', line 351

def self.ImplDockingOpenGL3_DestroyTexture(tex)
  gl_tex_id = tex.GetTexID()
  if gl_tex_id != 0
    GL.DeleteTextures(1, [gl_tex_id].pack('L'))
  end

  tex.SetTexID(0)
  tex.SetStatus(ImTextureStatus_Destroyed)
end

.ImplDockingOpenGL3_Init(glsl_version = nil) ⇒ Object



64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# File 'lib/imgui_impl_docking_opengl3.rb', line 64

def self.ImplDockingOpenGL3_Init(glsl_version = nil)
  major, minor = ' ' * 4, ' ' * 4
  GL.GetIntegerv(GL::MAJOR_VERSION, major)
  GL.GetIntegerv(GL::MINOR_VERSION, minor)
  major = major.unpack1('L')
  minor = minor.unpack1('L')

  # OpenGL 2.x fallback when GL_MAJOR_VERSION/GL_MINOR_VERSION are unavailable.
  if major == 0 && minor == 0 && GL.respond_to?(:GetString)
    version_string = GL.GetString(GL::VERSION).to_s
    parts = version_string.split(/[ .]/)
    major = parts[0].to_i
    minor = parts[1].to_i
  end

  @@g_DockingGL3GlVersion = major * 100 + minor * 10

  max_texture_size = ' ' * 4
  GL.GetIntegerv(GL::MAX_TEXTURE_SIZE, max_texture_size)
  @@g_DockingGL3MaxTextureSize = max_texture_size.unpack1('L')

  io = ImGuiIO.new(ImGui::GetIO())
  io[:BackendRendererName] = @@g_DockingGL3BackendRendererName
  io[:BackendFlags] |= ImGuiBackendFlags_RendererHasVtxOffset if @@g_DockingGL3GlVersion >= 320
  io[:BackendFlags] |= ImGuiBackendFlags_RendererHasTextures
  io[:BackendFlags] |= ImGuiBackendFlags_RendererHasViewports

  platform_io = ImGuiPlatformIO.new(ImGui::GetPlatformIO())
  platform_io[:Renderer_TextureMaxWidth] = @@g_DockingGL3MaxTextureSize
  platform_io[:Renderer_TextureMaxHeight] = @@g_DockingGL3MaxTextureSize

  if glsl_version.nil?
    if GL.get_platform() == :OPENGL_PLATFORM_MACOSX
      glsl_version = '#version 150'
    else
      glsl_version = '#version 130'
    end
  end

  @@g_DockingGL3GlslVersionString = glsl_version.end_with?("\n") ? glsl_version.dup : "#{glsl_version}\n"

  ImplDockingOpenGL3_InitMultiViewportSupport()

  true
end

.ImplDockingOpenGL3_InitMultiViewportSupportObject



321
322
323
324
325
326
327
328
329
330
# File 'lib/imgui_impl_docking_opengl3.rb', line 321

def self.ImplDockingOpenGL3_InitMultiViewportSupport()
  if @@g_DockingGL3RendererCallbacks == nil
    @@g_DockingGL3RendererCallbacks = {
      render_window: FFI::Function.new(:void, [:pointer, :pointer]) { |viewport, arg| ImGui_ImplDockingOpenGL3_RenderWindow(viewport, arg) }
    }
  end

  platform_io = ImGuiPlatformIO.new(ImGui::GetPlatformIO())
  platform_io[:Renderer_RenderWindow] = @@g_DockingGL3RendererCallbacks[:render_window]
end

.ImplDockingOpenGL3_NewFrameObject



125
126
127
# File 'lib/imgui_impl_docking_opengl3.rb', line 125

def self.ImplDockingOpenGL3_NewFrame()
  ImplDockingOpenGL3_CreateDeviceObjects() if @@g_DockingGL3ShaderHandle == 0
end

.ImplDockingOpenGL3_PrintProgramLinkStatus(handle) ⇒ Object



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/imgui_impl_docking_opengl3.rb', line 46

def self.ImplDockingOpenGL3_PrintProgramLinkStatus(handle)
  rvalue = ' ' * 4
  GL.GetProgramiv(handle, GL::LINK_STATUS, rvalue)
  ok = rvalue.unpack1('L')
  return true if ok == GL::TRUE

  $stderr.puts "Error in linking program"
  log_length = ' ' * 4
  GL.GetProgramiv(handle, GL::INFO_LOG_LENGTH, log_length)
  log_length = log_length.unpack1('L')
  if log_length > 0
    buf = ' ' * log_length
    GL.GetProgramInfoLog(handle, log_length, nil, buf)
    $stderr.puts(buf)
  end
  false
end

.ImplDockingOpenGL3_PrintShaderCompileStatus(handle) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/imgui_impl_docking_opengl3.rb', line 28

def self.ImplDockingOpenGL3_PrintShaderCompileStatus(handle)
  rvalue = ' ' * 4
  GL.GetShaderiv(handle, GL::COMPILE_STATUS, rvalue)
  ok = rvalue.unpack1('L')
  return true if ok == GL::TRUE

  $stderr.puts "Error in compiling shader"
  log_length = ' ' * 4
  GL.GetShaderiv(handle, GL::INFO_LOG_LENGTH, log_length)
  log_length = log_length.unpack1('L')
  if log_length > 0
    buf = ' ' * log_length
    GL.GetShaderInfoLog(handle, log_length, nil, buf)
    $stderr.puts(buf)
  end
  false
end

.ImplDockingOpenGL3_ProcessTextureUpdates(draw_data) ⇒ Object



332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
# File 'lib/imgui_impl_docking_opengl3.rb', line 332

def self.ImplDockingOpenGL3_ProcessTextureUpdates(draw_data)
  textures_ptr = draw_data[:Textures]
  return if textures_ptr.nil? || textures_ptr.null?

  textures = ImVector.new(textures_ptr)
  data_ptr = textures[:Data]
  return if data_ptr.nil? || data_ptr.null?

  pointer_stride = FFI::Pointer.size

  textures[:Size].times do |i|
    tex_ptr = (data_ptr + pointer_stride * i).read_pointer
    next if tex_ptr.nil? || tex_ptr.null?

    tex = ImTextureData.new(tex_ptr)
    ImplDockingOpenGL3_UpdateTexture(tex) if tex[:Status] != ImTextureStatus_OK
  end
end

.ImplDockingOpenGL3_RenderDrawData(draw_data_raw) ⇒ Object



129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
# File 'lib/imgui_impl_docking_opengl3.rb', line 129

def self.ImplDockingOpenGL3_RenderDrawData(draw_data_raw)
  draw_data = ImDrawData.new(draw_data_raw)

  # Avoid rendering when minimized, scale coordinates for retina displays.
  fb_width = (draw_data[:DisplaySize][:x] * draw_data[:FramebufferScale][:x]).to_i
  fb_height = (draw_data[:DisplaySize][:y] * draw_data[:FramebufferScale][:y]).to_i
  return if fb_width <= 0 || fb_height <= 0

  ImplDockingOpenGL3_ProcessTextureUpdates(draw_data)

  last_active_texture = ' ' * 4; GL.GetIntegerv(GL::ACTIVE_TEXTURE, last_active_texture)
  GL.ActiveTexture(GL::TEXTURE0)

  last_program = ' ' * 4; GL.GetIntegerv(GL::CURRENT_PROGRAM, last_program)
  last_texture = ' ' * 4; GL.GetIntegerv(GL::TEXTURE_BINDING_2D, last_texture)

  has_sampler = defined?(GL::SAMPLER_BINDING)
  last_sampler = ' ' * 4
  GL.GetIntegerv(GL::SAMPLER_BINDING, last_sampler) if has_sampler

  last_array_buffer = ' ' * 4; GL.GetIntegerv(GL::ARRAY_BUFFER_BINDING, last_array_buffer)
  last_vertex_array_object = ' ' * 4; GL.GetIntegerv(GL::VERTEX_ARRAY_BINDING, last_vertex_array_object)

  last_polygon_mode = ' ' * 8; GL.GetIntegerv(GL::POLYGON_MODE, last_polygon_mode)
  last_viewport = ' ' * 16; GL.GetIntegerv(GL::VIEWPORT, last_viewport)
  last_scissor_box = ' ' * 16; GL.GetIntegerv(GL::SCISSOR_BOX, last_scissor_box)

  last_blend_src_rgb = ' ' * 4; GL.GetIntegerv(GL::BLEND_SRC_RGB, last_blend_src_rgb)
  last_blend_dst_rgb = ' ' * 4; GL.GetIntegerv(GL::BLEND_DST_RGB, last_blend_dst_rgb)
  last_blend_src_alpha = ' ' * 4; GL.GetIntegerv(GL::BLEND_SRC_ALPHA, last_blend_src_alpha)
  last_blend_dst_alpha = ' ' * 4; GL.GetIntegerv(GL::BLEND_DST_ALPHA, last_blend_dst_alpha)
  last_blend_equation_rgb = ' ' * 4; GL.GetIntegerv(GL::BLEND_EQUATION_RGB, last_blend_equation_rgb)
  last_blend_equation_alpha = ' ' * 4; GL.GetIntegerv(GL::BLEND_EQUATION_ALPHA, last_blend_equation_alpha)

  last_enable_blend = GL.IsEnabled(GL::BLEND)
  last_enable_cull_face = GL.IsEnabled(GL::CULL_FACE)
  last_enable_depth_test = GL.IsEnabled(GL::DEPTH_TEST)
  last_enable_stencil_test = GL.IsEnabled(GL::STENCIL_TEST)
  last_enable_scissor_test = GL.IsEnabled(GL::SCISSOR_TEST)

  # Recreate VAO every frame so this works across multiple GL contexts.
  vao_mem = ' ' * 4
  GL.GenVertexArrays(1, vao_mem)
  vertex_array_object = vao_mem.unpack1('L')
  ImplDockingOpenGL3_SetupRenderState(draw_data, fb_width, fb_height, vertex_array_object)

  clip_off = draw_data[:DisplayPos]
  clip_scale = draw_data[:FramebufferScale]

  cmd_lists = draw_data[:CmdLists]
  cmd_list_data = cmd_lists[:Data]
  pointer_stride = FFI::Pointer.size

  if !cmd_list_data.nil? && !cmd_list_data.null?
    cmd_lists[:Size].times do |n|
      cmd_list_ptr = (cmd_list_data + pointer_stride * n).read_pointer
      next if cmd_list_ptr.nil? || cmd_list_ptr.null?

      cmd_list = ImDrawList.new(cmd_list_ptr)

      vtx_size = cmd_list[:VtxBuffer][:Size] * ImDrawVert.size
      idx_size = cmd_list[:IdxBuffer][:Size] * 2 # ImDrawIdx is currently ushort in generated bindings.

      GL.BufferData(GL::ARRAY_BUFFER, vtx_size, Fiddle::Pointer.new(cmd_list[:VtxBuffer][:Data]), GL::STREAM_DRAW)
      GL.BufferData(GL::ELEMENT_ARRAY_BUFFER, idx_size, Fiddle::Pointer.new(cmd_list[:IdxBuffer][:Data]), GL::STREAM_DRAW)

      cmd_list[:CmdBuffer][:Size].times do |cmd_i|
        pcmd = ImDrawCmd.new(cmd_list[:CmdBuffer][:Data] + ImDrawCmd.size * cmd_i)
        if pcmd[:UserCallback] != nil
          # Reset callback token is not exposed cleanly in current bindings, so keep old behavior.
          ImplDockingOpenGL3_SetupRenderState(draw_data, fb_width, fb_height, vertex_array_object)
          next
        end

        clip_min_x = (pcmd[:ClipRect][:x] - clip_off[:x]) * clip_scale[:x]
        clip_min_y = (pcmd[:ClipRect][:y] - clip_off[:y]) * clip_scale[:y]
        clip_max_x = (pcmd[:ClipRect][:z] - clip_off[:x]) * clip_scale[:x]
        clip_max_y = (pcmd[:ClipRect][:w] - clip_off[:y]) * clip_scale[:y]

        next if clip_max_x <= clip_min_x || clip_max_y <= clip_min_y

        GL.Scissor(clip_min_x.to_i, (fb_height - clip_max_y).to_i, (clip_max_x - clip_min_x).to_i, (clip_max_y - clip_min_y).to_i)

        GL.BindTexture(GL::TEXTURE_2D, pcmd.GetTexID())
        if @@g_DockingGL3GlVersion >= 320
          GL.DrawElementsBaseVertex(GL::TRIANGLES, pcmd[:ElemCount], GL::UNSIGNED_SHORT, Fiddle::Pointer.new(pcmd[:IdxOffset] * 2), pcmd[:VtxOffset])
        else
          GL.DrawElements(GL::TRIANGLES, pcmd[:ElemCount], GL::UNSIGNED_SHORT, Fiddle::Pointer.new(pcmd[:IdxOffset] * 2))
        end
      end
    end
  end

  GL.DeleteVertexArrays(1, [vertex_array_object].pack('L'))

  GL.UseProgram(last_program.unpack1('L'))
  GL.BindTexture(GL::TEXTURE_2D, last_texture.unpack1('L'))
  GL.BindSampler(0, last_sampler.unpack1('L')) if has_sampler
  GL.ActiveTexture(last_active_texture.unpack1('L'))
  GL.BindVertexArray(last_vertex_array_object.unpack1('L'))
  GL.BindBuffer(GL::ARRAY_BUFFER, last_array_buffer.unpack1('L'))

  GL.BlendEquationSeparate(last_blend_equation_rgb.unpack1('L'), last_blend_equation_alpha.unpack1('L'))
  GL.BlendFuncSeparate(
    last_blend_src_rgb.unpack1('L'),
    last_blend_dst_rgb.unpack1('L'),
    last_blend_src_alpha.unpack1('L'),
    last_blend_dst_alpha.unpack1('L')
  )

  if last_enable_blend then GL.Enable(GL::BLEND) else GL.Disable(GL::BLEND) end
  if last_enable_cull_face then GL.Enable(GL::CULL_FACE) else GL.Disable(GL::CULL_FACE) end
  if last_enable_depth_test then GL.Enable(GL::DEPTH_TEST) else GL.Disable(GL::DEPTH_TEST) end
  if last_enable_stencil_test then GL.Enable(GL::STENCIL_TEST) else GL.Disable(GL::STENCIL_TEST) end
  if last_enable_scissor_test then GL.Enable(GL::SCISSOR_TEST) else GL.Disable(GL::SCISSOR_TEST) end

  last_polygon_mode = last_polygon_mode.unpack('L2')
  GL.PolygonMode(GL::FRONT_AND_BACK, last_polygon_mode[0])

  last_viewport = last_viewport.unpack('L4')
  GL.Viewport(last_viewport[0], last_viewport[1], last_viewport[2], last_viewport[3])

  last_scissor_box = last_scissor_box.unpack('L4')
  GL.Scissor(last_scissor_box[0], last_scissor_box[1], last_scissor_box[2], last_scissor_box[3])
end

.ImplDockingOpenGL3_SetupRenderState(draw_data, fb_width, fb_height, vertex_array_object) ⇒ Object



255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
# File 'lib/imgui_impl_docking_opengl3.rb', line 255

def self.ImplDockingOpenGL3_SetupRenderState(draw_data, fb_width, fb_height, vertex_array_object)
  GL.Enable(GL::BLEND)
  GL.BlendEquation(GL::FUNC_ADD)
  GL.BlendFuncSeparate(GL::SRC_ALPHA, GL::ONE_MINUS_SRC_ALPHA, GL::ONE, GL::ONE_MINUS_SRC_ALPHA)
  GL.Disable(GL::CULL_FACE)
  GL.Disable(GL::DEPTH_TEST)
  GL.Disable(GL::STENCIL_TEST)
  GL.Enable(GL::SCISSOR_TEST)
  GL.PolygonMode(GL::FRONT_AND_BACK, GL::FILL)

  GL.Viewport(0, 0, fb_width, fb_height)
  l = draw_data[:DisplayPos][:x]
  r = draw_data[:DisplayPos][:x] + draw_data[:DisplaySize][:x]
  t = draw_data[:DisplayPos][:y]
  b = draw_data[:DisplayPos][:y] + draw_data[:DisplaySize][:y]

  ortho_projection = [
    2.0 / (r - l), 0.0, 0.0, 0.0,
    0.0, 2.0 / (t - b), 0.0, 0.0,
    0.0, 0.0, -1.0, 0.0,
    (r + l) / (l - r), (t + b) / (b - t), 0.0, 1.0,
  ]

  GL.UseProgram(@@g_DockingGL3ShaderHandle)
  GL.Uniform1i(@@g_DockingGL3AttribLocationTex, 0)
  GL.UniformMatrix4fv(@@g_DockingGL3AttribLocationProjMtx, 1, GL::FALSE, ortho_projection.pack('F16'))

  if defined?(GL::SAMPLER_BINDING)
    GL.BindSampler(0, 0)
  end

  GL.BindVertexArray(vertex_array_object)
  GL.BindBuffer(GL::ARRAY_BUFFER, @@g_DockingGL3VboHandle)
  GL.BindBuffer(GL::ELEMENT_ARRAY_BUFFER, @@g_DockingGL3ElementsHandle)

  GL.EnableVertexAttribArray(@@g_DockingGL3AttribLocationVtxPos)
  GL.EnableVertexAttribArray(@@g_DockingGL3AttribLocationVtxUV)
  GL.EnableVertexAttribArray(@@g_DockingGL3AttribLocationVtxColor)

  GL.VertexAttribPointer(@@g_DockingGL3AttribLocationVtxPos, 2, GL::FLOAT, GL::FALSE, ImDrawVert.size, ImDrawVert.offset_of(:pos))
  GL.VertexAttribPointer(@@g_DockingGL3AttribLocationVtxUV, 2, GL::FLOAT, GL::FALSE, ImDrawVert.size, ImDrawVert.offset_of(:uv))
  GL.VertexAttribPointer(@@g_DockingGL3AttribLocationVtxColor, 4, GL::UNSIGNED_BYTE, GL::TRUE, ImDrawVert.size, ImDrawVert.offset_of(:col))
end

.ImplDockingOpenGL3_ShutdownObject



110
111
112
113
114
115
116
117
118
119
120
121
122
123
# File 'lib/imgui_impl_docking_opengl3.rb', line 110

def self.ImplDockingOpenGL3_Shutdown()
  ImplDockingOpenGL3_DestroyDeviceObjects()

  io = ImGuiIO.new(ImGui::GetIO())
  io[:BackendRendererName] = nil
  io[:BackendFlags] &= ~(ImGuiBackendFlags_RendererHasVtxOffset | ImGuiBackendFlags_RendererHasTextures)

  begin
    platform_io = ImGuiPlatformIO.new(ImGui::GetPlatformIO())
    platform_io.ClearRendererHandlers()
  rescue StandardError
    # Older generated bindings may not expose all platform IO helpers.
  end
end

.ImplDockingOpenGL3_UpdateTexture(tex) ⇒ Object



367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
# File 'lib/imgui_impl_docking_opengl3.rb', line 367

def self.ImplDockingOpenGL3_UpdateTexture(tex)
  status = tex[:Status]

  if status == ImTextureStatus_WantCreate || status == ImTextureStatus_WantUpdates
    GL.PixelStorei(GL::UNPACK_ROW_LENGTH, 0) if defined?(GL::UNPACK_ROW_LENGTH)
    GL.PixelStorei(GL::UNPACK_ALIGNMENT, 1) if defined?(GL::UNPACK_ALIGNMENT)
  end

  if status == ImTextureStatus_WantCreate
    return unless tex[:Format] == ImTextureFormat_RGBA32

    last_texture = ' ' * 4
    GL.GetIntegerv(GL::TEXTURE_BINDING_2D, last_texture)

    texture_mem = ' ' * 4
    GL.GenTextures(1, texture_mem)
    gl_texture_id = texture_mem.unpack1('L')

    GL.BindTexture(GL::TEXTURE_2D, gl_texture_id)
    GL.TexParameteri(GL::TEXTURE_2D, GL::TEXTURE_MIN_FILTER, GL::LINEAR)
    GL.TexParameteri(GL::TEXTURE_2D, GL::TEXTURE_MAG_FILTER, GL::LINEAR)
    GL.TexParameteri(GL::TEXTURE_2D, GL::TEXTURE_WRAP_S, GL::CLAMP_TO_EDGE)
    GL.TexParameteri(GL::TEXTURE_2D, GL::TEXTURE_WRAP_T, GL::CLAMP_TO_EDGE)

    pixels_ptr = ImplDockingOpenGL3_AsGLPointer(tex[:Pixels])
    GL.TexImage2D(GL::TEXTURE_2D, 0, GL::RGBA, tex[:Width], tex[:Height], 0, GL::RGBA, GL::UNSIGNED_BYTE, pixels_ptr)

    tex.SetTexID(gl_texture_id)
    tex.SetStatus(ImTextureStatus_OK)

    GL.BindTexture(GL::TEXTURE_2D, last_texture.unpack1('L'))
    return
  end

  if status == ImTextureStatus_WantUpdates
    last_texture = ' ' * 4
    GL.GetIntegerv(GL::TEXTURE_BINDING_2D, last_texture)

    GL.BindTexture(GL::TEXTURE_2D, tex.GetTexID())

    updates = tex[:Updates]
    updates_ptr = updates[:Data]

    if !updates_ptr.nil? && !updates_ptr.null?
      if defined?(GL::UNPACK_ROW_LENGTH)
        GL.PixelStorei(GL::UNPACK_ROW_LENGTH, tex[:Width])

        updates[:Size].times do |i|
          rect = ImTextureRect.new(updates_ptr + i * ImTextureRect.size)
          pixels_ptr = ImplDockingOpenGL3_AsGLPointer(tex.GetPixelsAt(rect[:x], rect[:y]))
          GL.TexSubImage2D(GL::TEXTURE_2D, 0, rect[:x], rect[:y], rect[:w], rect[:h], GL::RGBA, GL::UNSIGNED_BYTE, pixels_ptr)
        end

        GL.PixelStorei(GL::UNPACK_ROW_LENGTH, 0)
      else
        updates[:Size].times do |i|
          rect = ImTextureRect.new(updates_ptr + i * ImTextureRect.size)
          rect[:h].times do |line|
            pixels_ptr = ImplDockingOpenGL3_AsGLPointer(tex.GetPixelsAt(rect[:x], rect[:y] + line))
            GL.TexSubImage2D(GL::TEXTURE_2D, 0, rect[:x], rect[:y] + line, rect[:w], 1, GL::RGBA, GL::UNSIGNED_BYTE, pixels_ptr)
          end
        end
      end
    end

    tex.SetStatus(ImTextureStatus_OK)
    GL.BindTexture(GL::TEXTURE_2D, last_texture.unpack1('L'))
    return
  end

  if status == ImTextureStatus_WantDestroy && tex[:UnusedFrames] > 0
    ImplDockingOpenGL3_DestroyTexture(tex)
  end
end

.ImplDockingRaylib_InitObject

Docking-compatible wrapper API (single viewport only)



770
771
772
# File 'lib/imgui_impl_raylib.rb', line 770

def self.ImplDockingRaylib_Init()
  ImplRaylib_Init()
end

.ImplDockingRaylib_NewFrameObject

Docking-compatible wrapper API (single viewport only)



780
781
782
# File 'lib/imgui_impl_raylib.rb', line 780

def self.ImplDockingRaylib_NewFrame()
  ImplRaylib_NewFrame()
end

.ImplDockingRaylib_RenderDrawData(draw_data_raw) ⇒ Object

Docking-compatible wrapper API (single viewport only)



785
786
787
# File 'lib/imgui_impl_raylib.rb', line 785

def self.ImplDockingRaylib_RenderDrawData(draw_data_raw)
  ImplRaylib_RenderDrawData(draw_data_raw)
end

.ImplDockingRaylib_ShutdownObject

Docking-compatible wrapper API (single viewport only)



775
776
777
# File 'lib/imgui_impl_raylib.rb', line 775

def self.ImplDockingRaylib_Shutdown()
  ImplRaylib_Shutdown()
end

.ImplDockingRaylib_UpdateCamera(camera, mode) ⇒ Object

Docking-compatible wrapper API (single viewport only)



790
791
792
# File 'lib/imgui_impl_raylib.rb', line 790

def self.ImplDockingRaylib_UpdateCamera(camera, mode)
  ImplRaylib_UpdateCamera(camera, mode)
end

.ImplDockingSDL3_CloseGamepadsObject



658
659
660
661
662
663
664
665
666
# File 'lib/imgui_impl_docking_sdl3.rb', line 658

def self.ImplDockingSDL3_CloseGamepads
  bd = ImGui_ImplDockingSDL3_GetBackendData()
  return if bd == nil

  if bd.gamepad_mode != ImGui_ImplDockingSDL3_GamepadMode_Manual
    bd.gamepads.each { |gamepad| SDL.CloseGamepad(gamepad) if gamepad != nil }
  end
  bd.gamepads = []
end

.ImplDockingSDL3_Init(window, renderer = nil, sdl_gl_context = nil) ⇒ Object



563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
# File 'lib/imgui_impl_docking_sdl3.rb', line 563

def self.ImplDockingSDL3_Init(window, renderer = nil, sdl_gl_context = nil)
  io = ImGuiIO.new(ImGui::GetIO())
  raise 'Already initialized a platform backend!' if io[:BackendPlatformUserData] != nil && io[:BackendPlatformUserData].address != 0

  bd = ImGui_ImplDockingSDL3_Data.new
  bd.window = window
  bd.window_id = SDL.GetWindowID(window)
  bd.renderer = renderer

  sdl_backend = SDL.GetCurrentVideoDriver()
  sdl_backend_name = sdl_backend == nil ? '' : sdl_backend.read_string
  %w[windows cocoa x11 DIVE VMAN].each do |platform|
    next unless sdl_backend_name.start_with?(platform)

    bd.mouse_can_use_global_state = true
    bd.mouse_capture_mode = platform == 'x11' ? ImGui_ImplDockingSDL3_MouseCaptureMode_EnabledAfterDrag : ImGui_ImplDockingSDL3_MouseCaptureMode_Enabled
    break
  end
  bd.mouse_can_report_hovered_viewport = !FFI::Platform.mac? && bd.mouse_can_use_global_state

  @@g_DockingSDL3BackendData[ImGui::GetCurrentContext().address] = bd

  io[:BackendPlatformUserData] = FFI::Pointer.new(ImGui::GetCurrentContext().address)
  io[:BackendPlatformName] = @@g_DockingSDL3BackendPlatformName
  io[:BackendFlags] |= ImGuiBackendFlags_HasMouseCursors
  io[:BackendFlags] |= ImGuiBackendFlags_HasSetMousePos
  if bd.mouse_can_use_global_state
    io[:BackendFlags] |= ImGuiBackendFlags_PlatformHasViewports
    io[:BackendFlags] |= ImGuiBackendFlags_HasParentViewport
  end

  callbacks = ImGui_ImplDockingSDL3_EnsureCallbacks()
  platform_io = ImGuiPlatformIO.new(ImGui::GetPlatformIO())
  platform_io[:Platform_SetClipboardTextFn] = callbacks[:set_clipboard_text]
  platform_io[:Platform_GetClipboardTextFn] = callbacks[:get_clipboard_text]
  platform_io[:Platform_SetImeDataFn] = callbacks[:set_ime_data]
  platform_io[:Platform_OpenInShellFn] = callbacks[:open_in_shell]

  bd.want_update_monitors = true
  ImGui_ImplDockingSDL3_UpdateMonitors()

  bd.mouse_cursors[ImGuiMouseCursor_Arrow] = SDL.CreateSystemCursor(SDL::SYSTEM_CURSOR_DEFAULT)
  bd.mouse_cursors[ImGuiMouseCursor_TextInput] = SDL.CreateSystemCursor(SDL::SYSTEM_CURSOR_TEXT)
  bd.mouse_cursors[ImGuiMouseCursor_ResizeAll] = SDL.CreateSystemCursor(SDL::SYSTEM_CURSOR_MOVE)
  bd.mouse_cursors[ImGuiMouseCursor_ResizeNS] = SDL.CreateSystemCursor(SDL::SYSTEM_CURSOR_NS_RESIZE)
  bd.mouse_cursors[ImGuiMouseCursor_ResizeEW] = SDL.CreateSystemCursor(SDL::SYSTEM_CURSOR_EW_RESIZE)
  bd.mouse_cursors[ImGuiMouseCursor_ResizeNESW] = SDL.CreateSystemCursor(SDL::SYSTEM_CURSOR_NESW_RESIZE)
  bd.mouse_cursors[ImGuiMouseCursor_ResizeNWSE] = SDL.CreateSystemCursor(SDL::SYSTEM_CURSOR_NWSE_RESIZE)
  bd.mouse_cursors[ImGuiMouseCursor_Hand] = SDL.CreateSystemCursor(SDL::SYSTEM_CURSOR_POINTER)
  bd.mouse_cursors[ImGuiMouseCursor_Wait] = SDL.CreateSystemCursor(SDL::SYSTEM_CURSOR_WAIT)
  bd.mouse_cursors[ImGuiMouseCursor_Progress] = SDL.CreateSystemCursor(SDL::SYSTEM_CURSOR_PROGRESS)
  bd.mouse_cursors[ImGuiMouseCursor_NotAllowed] = SDL.CreateSystemCursor(SDL::SYSTEM_CURSOR_NOT_ALLOWED)

  main_viewport = ImGuiViewport.new(ImGui::GetMainViewport())
  ImGui_ImplDockingSDL3_SetupPlatformHandles(main_viewport, window)

  SDL.SetHint(SDL::HINT_MOUSE_FOCUS_CLICKTHROUGH, '1') if defined?(SDL::HINT_MOUSE_FOCUS_CLICKTHROUGH)
  SDL.SetHint(SDL::HINT_MOUSE_AUTO_CAPTURE, '0') if defined?(SDL::HINT_MOUSE_AUTO_CAPTURE)
  SDL.SetHint('SDL_BORDERLESS_WINDOWED_STYLE', '0')

  ImGui_ImplDockingSDL3_InitMultiViewportSupport(window, sdl_gl_context) if (io[:BackendFlags] & ImGuiBackendFlags_PlatformHasViewports) != 0
  true
end

.ImplDockingSDL3_InitForD3D(window) ⇒ Object



638
639
640
# File 'lib/imgui_impl_docking_sdl3.rb', line 638

def self.ImplDockingSDL3_InitForD3D(window)
  ImplDockingSDL3_Init(window, nil, nil)
end

.ImplDockingSDL3_InitForMetal(window) ⇒ Object



642
643
644
# File 'lib/imgui_impl_docking_sdl3.rb', line 642

def self.ImplDockingSDL3_InitForMetal(window)
  ImplDockingSDL3_Init(window, nil, nil)
end

.ImplDockingSDL3_InitForOpenGL(window, sdl_gl_context = nil) ⇒ Object



627
628
629
# File 'lib/imgui_impl_docking_sdl3.rb', line 627

def self.ImplDockingSDL3_InitForOpenGL(window, sdl_gl_context = nil)
  ImplDockingSDL3_Init(window, nil, sdl_gl_context)
end

.ImplDockingSDL3_InitForOther(window) ⇒ Object



654
655
656
# File 'lib/imgui_impl_docking_sdl3.rb', line 654

def self.ImplDockingSDL3_InitForOther(window)
  ImplDockingSDL3_Init(window, nil, nil)
end

.ImplDockingSDL3_InitForSDLGPU(window) ⇒ Object



650
651
652
# File 'lib/imgui_impl_docking_sdl3.rb', line 650

def self.ImplDockingSDL3_InitForSDLGPU(window)
  ImplDockingSDL3_Init(window, nil, nil)
end

.ImplDockingSDL3_InitForSDLRenderer(window, renderer) ⇒ Object



646
647
648
# File 'lib/imgui_impl_docking_sdl3.rb', line 646

def self.ImplDockingSDL3_InitForSDLRenderer(window, renderer)
  ImplDockingSDL3_Init(window, renderer, nil)
end

.ImplDockingSDL3_InitForVulkan(window) ⇒ Object



631
632
633
634
635
636
# File 'lib/imgui_impl_docking_sdl3.rb', line 631

def self.ImplDockingSDL3_InitForVulkan(window)
  result = ImplDockingSDL3_Init(window, nil, nil)
  bd = ImGui_ImplDockingSDL3_GetBackendData()
  bd.use_vulkan = true if result && bd != nil
  result
end

.ImplDockingSDL3_NewFrameObject



860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
# File 'lib/imgui_impl_docking_sdl3.rb', line 860

def self.ImplDockingSDL3_NewFrame
  bd = ImGui_ImplDockingSDL3_GetBackendData()
  raise 'Context or backend not initialized! Did you call ImGui::ImplDockingSDL3_Init()?' if bd == nil

  io = ImGuiIO.new(ImGui::GetIO())

  w, h, scale_x, scale_y = ImGui_ImplDockingSDL3_GetWindowSizeAndFramebufferScale(bd.window)
  io[:DisplaySize] = ImVec2.create(w.to_f, h.to_f)
  io[:DisplayFramebufferScale][:x] = scale_x
  io[:DisplayFramebufferScale][:y] = scale_y

  bd.want_update_monitors = true if FFI::Platform.windows?
  ImGui_ImplDockingSDL3_UpdateMonitors() if bd.want_update_monitors

  frequency = SDL.GetPerformanceFrequency()
  current_time = SDL.GetPerformanceCounter()
  current_time = bd.time + 1 if current_time <= bd.time
  io[:DeltaTime] = bd.time > 0 ? (current_time - bd.time).to_f / frequency.to_f : (1.0 / 60.0)
  bd.time = current_time

  if bd.mouse_pending_leave_frame != 0 && bd.mouse_pending_leave_frame >= ImGui::GetFrameCount() && bd.mouse_buttons_down == 0
    bd.mouse_window_id = 0
    bd.mouse_pending_leave_frame = 0
    io.AddMousePosEvent(-Float::MAX, -Float::MAX)
  end

  payload = ImGui::GetDragDropPayload()
  if bd.mouse_can_report_hovered_viewport && (payload == nil || payload.address == 0)
    io[:BackendFlags] |= ImGuiBackendFlags_HasMouseHoveredViewport
  else
    io[:BackendFlags] &= ~ImGuiBackendFlags_HasMouseHoveredViewport
  end

  ImplDockingSDL3_UpdateMouseData()
  ImplDockingSDL3_UpdateMouseCursor()
  ImGui_ImplDockingSDL3_UpdateIme()
  ImplDockingSDL3_UpdateGamepads()
end

.ImplDockingSDL3_ProcessEvent(event) ⇒ Object



458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
# File 'lib/imgui_impl_docking_sdl3.rb', line 458

def self.ImplDockingSDL3_ProcessEvent(event)
  io = ImGuiIO.new(ImGui::GetIO())
  bd = ImGui_ImplDockingSDL3_GetBackendData()
  return false if bd == nil

  event_type = event[:type]

  case event_type
  when SDL::EVENT_MOUSE_MOTION
    return false if ImGui_ImplDockingSDL3_GetViewportForWindowID(event[:motion][:windowID]) == nil
    mouse_x = event[:motion][:x].to_f
    mouse_y = event[:motion][:y].to_f
    if (io[:ConfigFlags] & ImGuiConfigFlags_ViewportsEnable) != 0
      window = SDL.GetWindowFromID(event[:motion][:windowID])
      if window != nil
        wx = FFI::MemoryPointer.new(:int)
        wy = FFI::MemoryPointer.new(:int)
        SDL.GetWindowPosition(window, wx, wy)
        mouse_x += wx.read_int
        mouse_y += wy.read_int
      end
    end
    io.AddMouseSourceEvent(ImGui_ImplDockingSDL3_IsTouchMouse(event[:motion][:which]) ? ImGuiMouseSource_TouchScreen : ImGuiMouseSource_Mouse)
    io.AddMousePosEvent(mouse_x, mouse_y)
    true

  when SDL::EVENT_MOUSE_WHEEL
    return false if ImGui_ImplDockingSDL3_GetViewportForWindowID(event[:wheel][:windowID]) == nil
    io.AddMouseSourceEvent(ImGui_ImplDockingSDL3_IsTouchMouse(event[:wheel][:which]) ? ImGuiMouseSource_TouchScreen : ImGuiMouseSource_Mouse)
    io.AddMouseWheelEvent(-event[:wheel][:x].to_f, event[:wheel][:y].to_f)
    true

  when SDL::EVENT_MOUSE_BUTTON_DOWN, SDL::EVENT_MOUSE_BUTTON_UP
    return false if ImGui_ImplDockingSDL3_GetViewportForWindowID(event[:button][:windowID]) == nil
    mouse_button = -1
    mouse_button = 0 if event[:button][:button] == SDL::BUTTON_LEFT
    mouse_button = 1 if event[:button][:button] == SDL::BUTTON_RIGHT
    mouse_button = 2 if event[:button][:button] == SDL::BUTTON_MIDDLE
    mouse_button = 3 if event[:button][:button] == SDL::BUTTON_X1
    mouse_button = 4 if event[:button][:button] == SDL::BUTTON_X2
    return false if mouse_button == -1

    is_down = event_type == SDL::EVENT_MOUSE_BUTTON_DOWN
    io.AddMouseSourceEvent(ImGui_ImplDockingSDL3_IsTouchMouse(event[:button][:which]) ? ImGuiMouseSource_TouchScreen : ImGuiMouseSource_Mouse)
    io.AddMouseButtonEvent(mouse_button, is_down)
    bd.mouse_buttons_down = is_down ? (bd.mouse_buttons_down | (1 << mouse_button)) : (bd.mouse_buttons_down & ~(1 << mouse_button))
    true

  when SDL::EVENT_TEXT_INPUT
    return false if ImGui_ImplDockingSDL3_GetViewportForWindowID(event[:text][:windowID]) == nil
    io.AddInputCharactersUTF8(event[:text][:text].read_string)
    true

  when SDL::EVENT_KEY_DOWN, SDL::EVENT_KEY_UP
    viewport = ImGui_ImplDockingSDL3_GetViewportForWindowID(event[:key][:windowID])
    return false if viewport == nil
    ImGui_ImplDockingSDL3_UpdateKeyModifiers(event[:key][:mod])
    key = ImGui_ImplDockingSDL3_KeyEventToImGuiKey(event[:key][:key], event[:key][:scancode])
    io.AddKeyEvent(key, event_type == SDL::EVENT_KEY_DOWN)
    io.SetKeyEventNativeDataEx(key, event[:key][:key], event[:key][:scancode], event[:key][:scancode])
    true

  when SDL::EVENT_DISPLAY_ORIENTATION, SDL::EVENT_DISPLAY_ADDED, SDL::EVENT_DISPLAY_REMOVED,
       SDL::EVENT_DISPLAY_MOVED, SDL::EVENT_DISPLAY_CONTENT_SCALE_CHANGED
    bd.want_update_monitors = true
    true

  when SDL::EVENT_WINDOW_MOUSE_ENTER
    return false if ImGui_ImplDockingSDL3_GetViewportForWindowID(event[:window][:windowID]) == nil
    bd.mouse_window_id = event[:window][:windowID]
    bd.mouse_pending_leave_frame = 0
    true

  when SDL::EVENT_WINDOW_MOUSE_LEAVE
    return false if ImGui_ImplDockingSDL3_GetViewportForWindowID(event[:window][:windowID]) == nil
    bd.mouse_pending_leave_frame = ImGui::GetFrameCount() + 1
    true

  when SDL::EVENT_WINDOW_FOCUS_GAINED, SDL::EVENT_WINDOW_FOCUS_LOST
    return false if ImGui_ImplDockingSDL3_GetViewportForWindowID(event[:window][:windowID]) == nil
    io.AddFocusEvent(event_type == SDL::EVENT_WINDOW_FOCUS_GAINED)
    true

  when SDL::EVENT_WINDOW_CLOSE_REQUESTED, SDL::EVENT_WINDOW_MOVED, SDL::EVENT_WINDOW_RESIZED
    viewport = ImGui_ImplDockingSDL3_GetViewportForWindowID(event[:window][:windowID])
    return false if viewport == nil
    viewport[:PlatformRequestClose] = true if event_type == SDL::EVENT_WINDOW_CLOSE_REQUESTED
    viewport[:PlatformRequestMove] = true if event_type == SDL::EVENT_WINDOW_MOVED
    viewport[:PlatformRequestResize] = true if event_type == SDL::EVENT_WINDOW_RESIZED
    true

  when SDL::EVENT_GAMEPAD_ADDED, SDL::EVENT_GAMEPAD_REMOVED
    bd.want_update_gamepads_list = true
    true

  else
    if defined?(SDL::EVENT_DISPLAY_USABLE_BOUNDS_CHANGED) && event_type == SDL::EVENT_DISPLAY_USABLE_BOUNDS_CHANGED
      bd.want_update_monitors = true
      true
    else
      false
    end
  end
end

.ImplDockingSDL3_Saturate(v) ⇒ Object



783
784
785
786
787
788
# File 'lib/imgui_impl_docking_sdl3.rb', line 783

def self.ImplDockingSDL3_Saturate(v)
  return 0.0 if v < 0.0
  return 1.0 if v > 1.0

  v
end

.ImplDockingSDL3_SetGamepadMode(mode, manual_gamepads_array = nil) ⇒ Object



668
669
670
671
672
673
674
675
676
677
678
679
# File 'lib/imgui_impl_docking_sdl3.rb', line 668

def self.ImplDockingSDL3_SetGamepadMode(mode, manual_gamepads_array = nil)
  bd = ImGui_ImplDockingSDL3_GetBackendData()
  return if bd == nil

  ImplDockingSDL3_CloseGamepads()
  if mode == ImGui_ImplDockingSDL3_GamepadMode_Manual()
    bd.gamepads = manual_gamepads_array ? manual_gamepads_array.compact : []
  else
    bd.want_update_gamepads_list = true
  end
  bd.gamepad_mode = mode
end

.ImplDockingSDL3_SetMouseCaptureMode(mode) ⇒ Object



699
700
701
702
703
704
705
# File 'lib/imgui_impl_docking_sdl3.rb', line 699

def self.ImplDockingSDL3_SetMouseCaptureMode(mode)
  bd = ImGui_ImplDockingSDL3_GetBackendData()
  return if bd == nil

  SDL.CaptureMouse(false) if mode == ImGui_ImplDockingSDL3_MouseCaptureMode_Disabled && bd.mouse_capture_mode != ImGui_ImplDockingSDL3_MouseCaptureMode_Disabled
  bd.mouse_capture_mode = mode
end

.ImplDockingSDL3_ShutdownObject



681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
# File 'lib/imgui_impl_docking_sdl3.rb', line 681

def self.ImplDockingSDL3_Shutdown
  io = ImGuiIO.new(ImGui::GetIO())
  platform_io = ImGuiPlatformIO.new(ImGui::GetPlatformIO())
  bd = ImGui_ImplDockingSDL3_GetBackendData()
  return if bd == nil

  ImGui_ImplDockingSDL3_ShutdownMultiViewportSupport()
  SDL.free(bd.clipboard_text_data) if bd.clipboard_text_data != nil
  bd.mouse_cursors.each { |cursor| SDL.DestroyCursor(cursor) if cursor != nil }
  ImplDockingSDL3_CloseGamepads()

  io[:BackendPlatformName] = nil
  io[:BackendPlatformUserData] = nil
  io[:BackendFlags] &= ~(ImGuiBackendFlags_HasMouseCursors | ImGuiBackendFlags_HasSetMousePos | ImGuiBackendFlags_HasGamepad | ImGuiBackendFlags_PlatformHasViewports | ImGuiBackendFlags_HasMouseHoveredViewport | ImGuiBackendFlags_HasParentViewport)
  platform_io.ClearPlatformHandlers
  @@g_DockingSDL3BackendData.delete(ImGui::GetCurrentContext().address)
end

.ImplDockingSDL3_UpdateGamepadAnalog(bd, io, key, axis_no, v0, v1) ⇒ Object



798
799
800
801
802
803
804
805
# File 'lib/imgui_impl_docking_sdl3.rb', line 798

def self.ImplDockingSDL3_UpdateGamepadAnalog(bd, io, key, axis_no, v0, v1)
  merged_value = 0.0
  bd.gamepads.each do |gamepad|
    vn = ImplDockingSDL3_Saturate((SDL.GetGamepadAxis(gamepad, axis_no) - v0).to_f / (v1 - v0).to_f)
    merged_value = vn if merged_value < vn
  end
  io.AddKeyAnalogEvent(key, merged_value > 0.1, merged_value)
end

.ImplDockingSDL3_UpdateGamepadButton(bd, io, key, button_no) ⇒ Object



790
791
792
793
794
795
796
# File 'lib/imgui_impl_docking_sdl3.rb', line 790

def self.ImplDockingSDL3_UpdateGamepadButton(bd, io, key, button_no)
  merged_value = false
  bd.gamepads.each do |gamepad|
    merged_value ||= SDL.GetGamepadButton(gamepad, button_no)
  end
  io.AddKeyEvent(key, merged_value)
end

.ImplDockingSDL3_UpdateGamepadsObject



807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
# File 'lib/imgui_impl_docking_sdl3.rb', line 807

def self.ImplDockingSDL3_UpdateGamepads
  io = ImGuiIO.new(ImGui::GetIO())
  bd = ImGui_ImplDockingSDL3_GetBackendData()
  return if bd == nil

  if bd.want_update_gamepads_list && bd.gamepad_mode != ImGui_ImplDockingSDL3_GamepadMode_Manual
    ImplDockingSDL3_CloseGamepads()
    count_ptr = FFI::MemoryPointer.new(:int)
    gamepads_ptr = SDL.GetGamepads(count_ptr)
    count = count_ptr.read_int
    count.times do |n|
      joystick_id = (gamepads_ptr + n * FFI.type_size(:uint)).read_uint
      gamepad = SDL.OpenGamepad(joystick_id)
      next if gamepad == nil

      bd.gamepads << gamepad
      break if bd.gamepad_mode == ImGui_ImplDockingSDL3_GamepadMode_AutoFirst
    end
    bd.want_update_gamepads_list = false
    SDL.free(gamepads_ptr) if gamepads_ptr != nil
  end

  io[:BackendFlags] &= ~ImGuiBackendFlags_HasGamepad
  return if bd.gamepads.empty?

  io[:BackendFlags] |= ImGuiBackendFlags_HasGamepad
  dead_zone = 8000
  ImplDockingSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadStart, SDL::GAMEPAD_BUTTON_START)
  ImplDockingSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadBack, SDL::GAMEPAD_BUTTON_BACK)
  ImplDockingSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadFaceLeft, SDL::GAMEPAD_BUTTON_WEST)
  ImplDockingSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadFaceRight, SDL::GAMEPAD_BUTTON_EAST)
  ImplDockingSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadFaceUp, SDL::GAMEPAD_BUTTON_NORTH)
  ImplDockingSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadFaceDown, SDL::GAMEPAD_BUTTON_SOUTH)
  ImplDockingSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadDpadLeft, SDL::GAMEPAD_BUTTON_DPAD_LEFT)
  ImplDockingSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadDpadRight, SDL::GAMEPAD_BUTTON_DPAD_RIGHT)
  ImplDockingSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadDpadUp, SDL::GAMEPAD_BUTTON_DPAD_UP)
  ImplDockingSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadDpadDown, SDL::GAMEPAD_BUTTON_DPAD_DOWN)
  ImplDockingSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadL1, SDL::GAMEPAD_BUTTON_LEFT_SHOULDER)
  ImplDockingSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadR1, SDL::GAMEPAD_BUTTON_RIGHT_SHOULDER)
  ImplDockingSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadL2, SDL::GAMEPAD_AXIS_LEFT_TRIGGER, 0.0, 32767.0)
  ImplDockingSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadR2, SDL::GAMEPAD_AXIS_RIGHT_TRIGGER, 0.0, 32767.0)
  ImplDockingSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadL3, SDL::GAMEPAD_BUTTON_LEFT_STICK)
  ImplDockingSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadR3, SDL::GAMEPAD_BUTTON_RIGHT_STICK)
  ImplDockingSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadLStickLeft, SDL::GAMEPAD_AXIS_LEFTX, -dead_zone, -32768.0)
  ImplDockingSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadLStickRight, SDL::GAMEPAD_AXIS_LEFTX, dead_zone, 32767.0)
  ImplDockingSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadLStickUp, SDL::GAMEPAD_AXIS_LEFTY, -dead_zone, -32768.0)
  ImplDockingSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadLStickDown, SDL::GAMEPAD_AXIS_LEFTY, dead_zone, 32767.0)
  ImplDockingSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadRStickLeft, SDL::GAMEPAD_AXIS_RIGHTX, -dead_zone, -32768.0)
  ImplDockingSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadRStickRight, SDL::GAMEPAD_AXIS_RIGHTX, dead_zone, 32767.0)
  ImplDockingSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadRStickUp, SDL::GAMEPAD_AXIS_RIGHTY, -dead_zone, -32768.0)
  ImplDockingSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadRStickDown, SDL::GAMEPAD_AXIS_RIGHTY, dead_zone, 32767.0)
end

.ImplDockingSDL3_UpdateMouseCursorObject



763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
# File 'lib/imgui_impl_docking_sdl3.rb', line 763

def self.ImplDockingSDL3_UpdateMouseCursor
  io = ImGuiIO.new(ImGui::GetIO())
  return if (io[:ConfigFlags] & ImGuiConfigFlags_NoMouseCursorChange) != 0

  bd = ImGui_ImplDockingSDL3_GetBackendData()
  return if bd == nil

  imgui_cursor = ImGui::GetMouseCursor()
  if io[:MouseDrawCursor] || imgui_cursor == ImGuiMouseCursor_None
    SDL.HideCursor
  else
    expected_cursor = bd.mouse_cursors[imgui_cursor] || bd.mouse_cursors[ImGuiMouseCursor_Arrow]
    if bd.mouse_last_cursor != expected_cursor
      SDL.SetCursor(expected_cursor)
      bd.mouse_last_cursor = expected_cursor
    end
    SDL.ShowCursor
  end
end

.ImplDockingSDL3_UpdateMouseDataObject



707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
# File 'lib/imgui_impl_docking_sdl3.rb', line 707

def self.ImplDockingSDL3_UpdateMouseData
  bd = ImGui_ImplDockingSDL3_GetBackendData()
  io = ImGuiIO.new(ImGui::GetIO())
  return if bd == nil

  if bd.mouse_capture_mode == ImGui_ImplDockingSDL3_MouseCaptureMode_Enabled
    SDL.CaptureMouse(bd.mouse_buttons_down != 0)
  elsif bd.mouse_capture_mode == ImGui_ImplDockingSDL3_MouseCaptureMode_EnabledAfterDrag
    want_capture = false
    ImGuiMouseButton_COUNT.times do |button_n|
      if ImGui::IsMouseDragging(button_n, 1.0)
        want_capture = true
        break
      end
    end
    SDL.CaptureMouse(want_capture)
  end

  focused_window = SDL.GetKeyboardFocus()
  is_app_focused = focused_window != nil && (bd.window == focused_window || ImGui_ImplDockingSDL3_GetViewportForWindowID(SDL.GetWindowID(focused_window)) != nil)
  return unless is_app_focused

  if io[:WantSetMousePos]
    if (io[:ConfigFlags] & ImGuiConfigFlags_ViewportsEnable) != 0
      SDL.WarpMouseGlobal(io[:MousePos][:x], io[:MousePos][:y])
    else
      SDL.WarpMouseInWindow(bd.window, io[:MousePos][:x], io[:MousePos][:y])
    end
  end

  hovered_window = SDL.GetMouseFocus()
  is_relative_mouse_mode = SDL.GetWindowRelativeMouseMode(bd.window)
  if hovered_window == nil && bd.mouse_can_use_global_state && bd.mouse_buttons_down == 0 && !is_relative_mouse_mode
    mx = FFI::MemoryPointer.new(:float)
    my = FFI::MemoryPointer.new(:float)
    SDL.GetGlobalMouseState(mx, my)
    mouse_x = mx.read_float
    mouse_y = my.read_float
    if (io[:ConfigFlags] & ImGuiConfigFlags_ViewportsEnable) == 0
      wx = FFI::MemoryPointer.new(:int)
      wy = FFI::MemoryPointer.new(:int)
      SDL.GetWindowPosition(focused_window, wx, wy)
      mouse_x -= wx.read_int
      mouse_y -= wy.read_int
    end
    io.AddMousePosEvent(mouse_x, mouse_y)
  end

  if (io[:BackendFlags] & ImGuiBackendFlags_HasMouseHoveredViewport) != 0
    mouse_viewport_id = 0
    mouse_viewport = ImGui_ImplDockingSDL3_GetViewportForWindowID(bd.mouse_window_id)
    mouse_viewport_id = mouse_viewport[:ID] if mouse_viewport != nil
    io.AddMouseViewportEvent(mouse_viewport_id)
  end
end

.ImplDockingSDL3Renderer_CreateDeviceObjectsObject



285
286
# File 'lib/imgui_impl_docking_sdl3renderer.rb', line 285

def self.ImplDockingSDL3Renderer_CreateDeviceObjects
end

.ImplDockingSDL3Renderer_DestroyDeviceObjectsObject



288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
# File 'lib/imgui_impl_docking_sdl3renderer.rb', line 288

def self.ImplDockingSDL3Renderer_DestroyDeviceObjects
  platform_io = ImGuiPlatformIO.new(ImGui::GetPlatformIO())
  textures = platform_io[:Textures]
  textures_data = textures[:Data]
  if textures_data != nil && textures_data.address != 0
    textures[:Size].times do |i|
      tex_ptr = (textures_data + FFI.type_size(:pointer) * i).read_pointer
      next if tex_ptr == nil || tex_ptr.address == 0

      tex = ImTextureData.new(tex_ptr)
      if tex[:RefCount] == 1
        tex.SetStatus(ImTextureStatus_WantDestroy)
        ImplDockingSDL3Renderer_UpdateTexture(tex)
      end
    end
  end
end

.ImplDockingSDL3Renderer_EnsureColorBuffer(backend_data, num_vertices) ⇒ Object



92
93
94
95
96
97
98
# File 'lib/imgui_impl_docking_sdl3renderer.rb', line 92

def self.ImplDockingSDL3Renderer_EnsureColorBuffer(backend_data, num_vertices)
  if backend_data[:color_buffer] == nil || backend_data[:color_buffer_capacity] < num_vertices
    backend_data[:color_buffer] = FFI::MemoryPointer.new(SDL::FColor, num_vertices)
    backend_data[:color_buffer_capacity] = num_vertices
  end
  backend_data[:color_buffer]
end

.ImplDockingSDL3Renderer_Init(renderer) ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/imgui_impl_docking_sdl3renderer.rb', line 37

def self.ImplDockingSDL3Renderer_Init(renderer)
  io = ImGuiIO.new(ImGui::GetIO())

  backend_data = {
    bd: ImGui_ImplDockingSDLRenderer3_Data.new,
    color_buffer: nil,
    color_buffer_capacity: 0,
    render_state: nil,
    current_scale_mode: SDL::SCALEMODE_LINEAR
  }
  backend_data[:bd][:Renderer] = renderer

  @@g_DockingSDL3BackendRendererUserData[ImGui::GetCurrentContext().address] = backend_data

  io[:BackendRendererUserData] = backend_data[:bd]
  io[:BackendRendererName] = @@g_DockingSDL3BackendRendererName
  io[:BackendFlags] |= ImGuiBackendFlags_RendererHasVtxOffset
  io[:BackendFlags] |= ImGuiBackendFlags_RendererHasTextures

  platform_io = ImGuiPlatformIO.new(ImGui::GetPlatformIO())
  platform_io[:DrawCallback_ResetRenderState] = @@g_DockingSDL3RendererResetRenderStateCallback
  platform_io[:DrawCallback_SetSamplerLinear] = @@g_DockingSDL3RendererSetSamplerLinearCallback
  platform_io[:DrawCallback_SetSamplerNearest] = @@g_DockingSDL3RendererSetSamplerNearestCallback
  true
end

.ImplDockingSDL3Renderer_NewFrameObject



87
88
89
90
# File 'lib/imgui_impl_docking_sdl3renderer.rb', line 87

def self.ImplDockingSDL3Renderer_NewFrame
  backend_data = ImGui_ImplDockingSDLRenderer3_GetBackendData
  raise 'Context or backend not initialized! Did you call ImGui::ImplDockingSDL3Renderer_Init()?' if backend_data == nil
end

.ImplDockingSDL3Renderer_RenderDrawData(draw_data_raw, renderer = nil) ⇒ Object



158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
# File 'lib/imgui_impl_docking_sdl3renderer.rb', line 158

def self.ImplDockingSDL3Renderer_RenderDrawData(draw_data_raw, renderer = nil)
  draw_data = draw_data_raw.kind_of?(ImDrawData) ? draw_data_raw : ImDrawData.new(draw_data_raw)
  backend_data = ImGui_ImplDockingSDLRenderer3_GetBackendData
  return if backend_data == nil

  renderer = backend_data[:bd][:Renderer] if renderer == nil
  return if renderer == nil

  rsx = FFI::MemoryPointer.new(:float)
  rsy = FFI::MemoryPointer.new(:float)
  SDL.GetRenderScale(renderer, rsx, rsy)
  render_scale = ImVec2.create(0.0, 0.0)
  render_scale[:x] = rsx.read_float == 1.0 ? draw_data[:FramebufferScale][:x] : 1.0
  render_scale[:y] = rsy.read_float == 1.0 ? draw_data[:FramebufferScale][:y] : 1.0

  fb_width = (draw_data[:DisplaySize][:x] * render_scale[:x]).to_i
  fb_height = (draw_data[:DisplaySize][:y] * render_scale[:y]).to_i
  return if fb_width == 0 || fb_height == 0

  if draw_data[:Textures] != nil && draw_data[:Textures].address != 0
    textures = ImVector_ImTextureDataPtr.new(draw_data[:Textures])
    textures_data = textures[:Data]
    if textures_data != nil && textures_data.address != 0
      textures[:Size].times do |i|
        tex_ptr = (textures_data + FFI.type_size(:pointer) * i).read_pointer
        next if tex_ptr == nil || tex_ptr.address == 0

        tex = ImTextureData.new(tex_ptr)
        ImplDockingSDL3Renderer_UpdateTexture(tex) if tex[:Status] != ImTextureStatus_OK
      end
    end
  end

  old_viewport_enabled = SDL.RenderViewportSet(renderer)
  old_clip_enabled = SDL.RenderClipEnabled(renderer)
  old_viewport = SDL::Rect.new
  old_clip_rect = SDL::Rect.new
  SDL.GetRenderViewport(renderer, old_viewport)
  SDL.GetRenderClipRect(renderer, old_clip_rect)

  ImplDockingSDL3Renderer_SetupRenderState(renderer)

  platform_io = ImGuiPlatformIO.new(ImGui::GetPlatformIO())
  backend_data[:render_state] = ImGui_ImplDockingSDLRenderer3_RenderState.new
  backend_data[:render_state][:Renderer] = renderer
  platform_io[:Renderer_RenderState] = backend_data[:render_state]

  clip_off = draw_data[:DisplayPos]
  clip_scale = render_scale
  last_scale_mode = backend_data[:current_scale_mode]

  cmd_lists = draw_data[:CmdLists]
  cmd_lists_data = cmd_lists[:Data]
  if cmd_lists_data != nil && cmd_lists_data.address != 0
    cmd_lists[:Size].times do |n|
      cmd_list_ptr = (cmd_lists_data + FFI.type_size(:pointer) * n).read_pointer
      next if cmd_list_ptr == nil || cmd_list_ptr.address == 0

      cmd_list = ImDrawList.new(cmd_list_ptr)
      vtx_buffer = cmd_list[:VtxBuffer][:Data]
      idx_buffer = cmd_list[:IdxBuffer][:Data]

      cmd_list[:CmdBuffer][:Size].times do |cmd_i|
        pcmd = ImDrawCmd.new(cmd_list[:CmdBuffer][:Data] + ImDrawCmd.size * cmd_i)
        callback_ptr = pcmd[:UserCallback]
        if callback_ptr != nil && callback_ptr.address != 0
          callback_addr = callback_ptr.address
          if callback_addr == @@g_DockingSDL3RendererResetRenderStateCallback.address
            ImplDockingSDL3Renderer_SetupRenderState(renderer)
          elsif callback_addr == @@g_DockingSDL3RendererSetSamplerLinearCallback.address
            backend_data[:current_scale_mode] = SDL::SCALEMODE_LINEAR
          elsif callback_addr == @@g_DockingSDL3RendererSetSamplerNearestCallback.address
            backend_data[:current_scale_mode] = SDL::SCALEMODE_NEAREST
          else
            FFI::Function.new(:void, [:pointer, :pointer], callback_ptr).call(cmd_list.pointer, pcmd.pointer)
          end
          next
        end

        clip_min = ImVec2.create((pcmd[:ClipRect][:x] - clip_off[:x]) * clip_scale[:x], (pcmd[:ClipRect][:y] - clip_off[:y]) * clip_scale[:y])
        clip_max = ImVec2.create((pcmd[:ClipRect][:z] - clip_off[:x]) * clip_scale[:x], (pcmd[:ClipRect][:w] - clip_off[:y]) * clip_scale[:y])
        clip_min[:x] = 0.0 if clip_min[:x] < 0.0
        clip_min[:y] = 0.0 if clip_min[:y] < 0.0
        clip_max[:x] = fb_width.to_f if clip_max[:x] > fb_width
        clip_max[:y] = fb_height.to_f if clip_max[:y] > fb_height
        next if clip_max[:x] <= clip_min[:x] || clip_max[:y] <= clip_min[:y]

        sdl_rect = SDL::Rect.new
        sdl_rect[:x] = clip_min[:x].to_i
        sdl_rect[:y] = clip_min[:y].to_i
        sdl_rect[:w] = (clip_max[:x] - clip_min[:x]).to_i
        sdl_rect[:h] = (clip_max[:y] - clip_min[:y]).to_i
        SDL.SetRenderClipRect(renderer, sdl_rect)

        vtx_base = pcmd[:VtxOffset] * ImDrawVert.size
        xy = vtx_buffer + vtx_base + ImDrawVert.offset_of(:pos)
        uv = vtx_buffer + vtx_base + ImDrawVert.offset_of(:uv)
        color_src = vtx_buffer + vtx_base + ImDrawVert.offset_of(:col)

        num_vertices = cmd_list[:VtxBuffer][:Size] - pcmd[:VtxOffset]
        color_f = ImplDockingSDL3Renderer_UpdateColorBuffer(backend_data, color_src, ImDrawVert.size, num_vertices)

        tex_id = pcmd.GetTexID
        tex_ptr = tex_id == 0 ? nil : FFI::Pointer.new(tex_id)
        if last_scale_mode != backend_data[:current_scale_mode]
          SDL.FlushRenderer(renderer)
          last_scale_mode = backend_data[:current_scale_mode]
        end
        SDL.SetTextureScaleMode(tex_ptr, backend_data[:current_scale_mode]) if tex_ptr != nil
        SDL.RenderGeometryRaw(renderer,
                              tex_ptr,
                              xy, ImDrawVert.size,
                              color_f, SDL::FColor.size,
                              uv, ImDrawVert.size,
                              num_vertices,
                              idx_buffer + FFI.type_size(:ImDrawIdx) * pcmd[:IdxOffset], pcmd[:ElemCount], FFI.type_size(:ImDrawIdx))
      end
    end
  end

  platform_io[:Renderer_RenderState] = nil
  backend_data[:render_state] = nil

  SDL.SetRenderViewport(renderer, old_viewport_enabled ? old_viewport : nil)
  SDL.SetRenderClipRect(renderer, old_clip_enabled ? old_clip_rect : nil)
end

.ImplDockingSDL3Renderer_SetupRenderState(renderer) ⇒ Object



79
80
81
82
83
84
85
# File 'lib/imgui_impl_docking_sdl3renderer.rb', line 79

def self.ImplDockingSDL3Renderer_SetupRenderState(renderer)
  backend_data = ImGui_ImplDockingSDLRenderer3_GetBackendData

  SDL.SetRenderViewport(renderer, nil)
  SDL.SetRenderClipRect(renderer, nil)
  backend_data[:current_scale_mode] = SDL::SCALEMODE_LINEAR if backend_data != nil
end

.ImplDockingSDL3Renderer_ShutdownObject



63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/imgui_impl_docking_sdl3renderer.rb', line 63

def self.ImplDockingSDL3Renderer_Shutdown
  io = ImGuiIO.new(ImGui::GetIO())
  platform_io = ImGuiPlatformIO.new(ImGui::GetPlatformIO())

  self.ImplDockingSDL3Renderer_DestroyDeviceObjects

  if ImGui::GetCurrentContext() != nil
    @@g_DockingSDL3BackendRendererUserData.delete(ImGui::GetCurrentContext().address)
  end

  io[:BackendRendererName] = nil
  io[:BackendRendererUserData] = nil
  io[:BackendFlags] &= ~(ImGuiBackendFlags_RendererHasVtxOffset | ImGuiBackendFlags_RendererHasTextures)
  platform_io.ClearRendererHandlers
end

.ImplDockingSDL3Renderer_UpdateColorBuffer(backend_data, color_src, color_stride, num_vertices) ⇒ Object



100
101
102
103
104
105
106
107
108
109
110
111
# File 'lib/imgui_impl_docking_sdl3renderer.rb', line 100

def self.ImplDockingSDL3Renderer_UpdateColorBuffer(backend_data, color_src, color_stride, num_vertices)
  color_dst = ImplDockingSDL3Renderer_EnsureColorBuffer(backend_data, num_vertices)
  num_vertices.times do |i|
    packed = (color_src + i * color_stride).read_uint
    color = SDL::FColor.new(color_dst + i * SDL::FColor.size)
    color[:r] = ((packed >> 0) & 0xff) / 255.0
    color[:g] = ((packed >> 8) & 0xff) / 255.0
    color[:b] = ((packed >> 16) & 0xff) / 255.0
    color[:a] = ((packed >> 24) & 0xff) / 255.0
  end
  color_dst
end

.ImplDockingSDL3Renderer_UpdateTexture(tex_raw) ⇒ Object



113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
# File 'lib/imgui_impl_docking_sdl3renderer.rb', line 113

def self.ImplDockingSDL3Renderer_UpdateTexture(tex_raw)
  backend_data = ImGui_ImplDockingSDLRenderer3_GetBackendData
  return if backend_data == nil

  tex = tex_raw.kind_of?(ImTextureData) ? tex_raw : ImTextureData.new(tex_raw)

  case tex[:Status]
  when ImTextureStatus_WantCreate
    return if tex[:Format] != ImTextureFormat_RGBA32

    sdl_texture = SDL.CreateTexture(backend_data[:bd][:Renderer], SDL::PIXELFORMAT_RGBA32, SDL::TEXTUREACCESS_STATIC, tex[:Width], tex[:Height])
    raise 'Backend failed to create SDL texture!' if sdl_texture == nil

    SDL.UpdateTexture(sdl_texture, nil, tex.GetPixels, tex.GetPitch)
    SDL.SetTextureBlendMode(sdl_texture, SDL::BLENDMODE_BLEND)
    SDL.SetTextureScaleMode(sdl_texture, SDL::SCALEMODE_LINEAR)
    tex[:BackendUserData] = sdl_texture
    tex.SetTexID(sdl_texture.address)
    tex.SetStatus(ImTextureStatus_OK)

  when ImTextureStatus_WantUpdates
    sdl_texture = tex[:BackendUserData]
    return if sdl_texture == nil || sdl_texture.address == 0

    updates = tex[:Updates]
    updates[:Size].times do |i|
      rect = ImTextureRect.new(updates[:Data] + ImTextureRect.size * i)
      sdl_rect = SDL::Rect.new
      sdl_rect[:x] = rect[:x]
      sdl_rect[:y] = rect[:y]
      sdl_rect[:w] = rect[:w]
      sdl_rect[:h] = rect[:h]
      SDL.UpdateTexture(sdl_texture, sdl_rect, tex.GetPixelsAt(rect[:x], rect[:y]), tex.GetPitch)
    end
    tex.SetStatus(ImTextureStatus_OK)

  when ImTextureStatus_WantDestroy
    sdl_texture = tex[:BackendUserData]
    SDL.DestroyTexture(sdl_texture) if sdl_texture != nil && sdl_texture.address != 0
    tex[:BackendUserData] = nil
    tex.SetTexID(0)
    tex.SetStatus(ImTextureStatus_Destroyed)
  end
end

.ImplOpenGL3_AsGLPointer(pointer) ⇒ Object



334
335
336
337
338
# File 'lib/imgui_impl_opengl3.rb', line 334

def self.ImplOpenGL3_AsGLPointer(pointer)
  return nil if pointer.nil? || pointer.null?

  Fiddle::Pointer.new(pointer.to_i)
end

.ImplOpenGL3_CreateDeviceObjectsObject



415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
# File 'lib/imgui_impl_opengl3.rb', line 415

def self.ImplOpenGL3_CreateDeviceObjects()
  last_texture = ' ' * 4
  last_array_buffer = ' ' * 4
  GL.GetIntegerv(GL::TEXTURE_BINDING_2D, last_texture)
  GL.GetIntegerv(GL::ARRAY_BUFFER_BINDING, last_array_buffer)

  last_vertex_array = ' ' * 4
  GL.GetIntegerv(GL::VERTEX_ARRAY_BINDING, last_vertex_array)

  glsl_version = @@g_GlslVersionString.split[1].to_i

  vertex_shader_glsl_120 = <<-'SRC'
  uniform mat4 ProjMtx;
  attribute vec2 Position;
  attribute vec2 UV;
  attribute vec4 Color;
  varying vec2 Frag_UV;
  varying vec4 Frag_Color;
  void main()
  {
      Frag_UV = UV;
      Frag_Color = Color;
      gl_Position = ProjMtx * vec4(Position.xy,0,1);
  }
  SRC

  vertex_shader_glsl_130 = <<-'SRC'
  uniform mat4 ProjMtx;
  in vec2 Position;
  in vec2 UV;
  in vec4 Color;
  out vec2 Frag_UV;
  out vec4 Frag_Color;
  void main()
  {
      Frag_UV = UV;
      Frag_Color = Color;
      gl_Position = ProjMtx * vec4(Position.xy,0,1);
  }
  SRC

  vertex_shader_glsl_300_es = <<-'SRC'
  precision highp float;
  layout (location = 0) in vec2 Position;
  layout (location = 1) in vec2 UV;
  layout (location = 2) in vec4 Color;
  uniform mat4 ProjMtx;
  out vec2 Frag_UV;
  out vec4 Frag_Color;
  void main()
  {
      Frag_UV = UV;
      Frag_Color = Color;
      gl_Position = ProjMtx * vec4(Position.xy,0,1);
  }
  SRC

  vertex_shader_glsl_410_core = <<-'SRC'
  layout (location = 0) in vec2 Position;
  layout (location = 1) in vec2 UV;
  layout (location = 2) in vec4 Color;
  uniform mat4 ProjMtx;
  out vec2 Frag_UV;
  out vec4 Frag_Color;
  void main()
  {
      Frag_UV = UV;
      Frag_Color = Color;
      gl_Position = ProjMtx * vec4(Position.xy,0,1);
  }
  SRC

  fragment_shader_glsl_120 = <<-'SRC'
  #ifdef GL_ES
      precision mediump float;
  #endif
  uniform sampler2D Texture;
  varying vec2 Frag_UV;
  varying vec4 Frag_Color;
  void main()
  {
      gl_FragColor = Frag_Color * texture2D(Texture, Frag_UV.st);
  }
  SRC

  fragment_shader_glsl_130 = <<-'SRC'
  uniform sampler2D Texture;
  in vec2 Frag_UV;
  in vec4 Frag_Color;
  out vec4 Out_Color;
  void main()
  {
      Out_Color = Frag_Color * texture(Texture, Frag_UV.st);
  }
  SRC

  fragment_shader_glsl_300_es = <<-'SRC'
  precision mediump float;
  uniform sampler2D Texture;
  in vec2 Frag_UV;
  in vec4 Frag_Color;
  layout (location = 0) out vec4 Out_Color;
  void main()
  {
      Out_Color = Frag_Color * texture(Texture, Frag_UV.st);
  }
  SRC

  fragment_shader_glsl_410_core = <<-'SRC'
  in vec2 Frag_UV;
  in vec4 Frag_Color;
  uniform sampler2D Texture;
  layout (location = 0) out vec4 Out_Color;
  void main()
  {
      Out_Color = Frag_Color * texture(Texture, Frag_UV.st);
  }
  SRC

  vertex_shader, fragment_shader = if glsl_version < 130
                                     [vertex_shader_glsl_120, fragment_shader_glsl_120]
                                   elsif glsl_version >= 410
                                     [vertex_shader_glsl_410_core, fragment_shader_glsl_410_core]
                                   elsif glsl_version == 300
                                     [vertex_shader_glsl_300_es, fragment_shader_glsl_300_es]
                                   else
                                     [vertex_shader_glsl_130, fragment_shader_glsl_130]
                                   end

  vert_handle = GL.CreateShader(GL::VERTEX_SHADER)
  GL.ShaderSource(vert_handle, 2, [@@g_GlslVersionString, vertex_shader].pack('p*'), nil)
  GL.CompileShader(vert_handle)
  return false unless PrintShaderCompileStatus(vert_handle)

  frag_handle = GL.CreateShader(GL::FRAGMENT_SHADER)
  GL.ShaderSource(frag_handle, 2, [@@g_GlslVersionString, fragment_shader].pack('p*'), nil)
  GL.CompileShader(frag_handle)
  return false unless PrintShaderCompileStatus(frag_handle)

  @@g_ShaderHandle = GL.CreateProgram()
  GL.AttachShader(@@g_ShaderHandle, vert_handle)
  GL.AttachShader(@@g_ShaderHandle, frag_handle)
  GL.LinkProgram(@@g_ShaderHandle)
  return false unless PrintProgramLinkStatus(@@g_ShaderHandle)

  GL.DetachShader(@@g_ShaderHandle, vert_handle)
  GL.DetachShader(@@g_ShaderHandle, frag_handle)
  GL.DeleteShader(vert_handle)
  GL.DeleteShader(frag_handle)

  @@g_AttribLocationTex = GL.GetUniformLocation(@@g_ShaderHandle, 'Texture')
  @@g_AttribLocationProjMtx = GL.GetUniformLocation(@@g_ShaderHandle, 'ProjMtx')
  @@g_AttribLocationVtxPos = GL.GetAttribLocation(@@g_ShaderHandle, 'Position')
  @@g_AttribLocationVtxUV = GL.GetAttribLocation(@@g_ShaderHandle, 'UV')
  @@g_AttribLocationVtxColor = GL.GetAttribLocation(@@g_ShaderHandle, 'Color')

  vbo_mem = ' ' * 4
  elem_mem = ' ' * 4
  GL.GenBuffers(1, vbo_mem)
  GL.GenBuffers(1, elem_mem)
  @@g_VboHandle = vbo_mem.unpack1('L')
  @@g_ElementsHandle = elem_mem.unpack1('L')

  GL.BindTexture(GL::TEXTURE_2D, last_texture.unpack1('L'))
  GL.BindBuffer(GL::ARRAY_BUFFER, last_array_buffer.unpack1('L'))
  GL.BindVertexArray(last_vertex_array.unpack1('L'))

  true
end

.ImplOpenGL3_CreateFontsTextureObject

Compatibility wrapper retained for older caller code.



296
297
298
# File 'lib/imgui_impl_opengl3.rb', line 296

def self.ImplOpenGL3_CreateFontsTexture()
  true
end

.ImplOpenGL3_DestroyDeviceObjectsObject



585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
# File 'lib/imgui_impl_opengl3.rb', line 585

def self.ImplOpenGL3_DestroyDeviceObjects()
  if @@g_VboHandle != 0
    GL.DeleteBuffers(1, [@@g_VboHandle].pack('L'))
    @@g_VboHandle = 0
  end

  if @@g_ElementsHandle != 0
    GL.DeleteBuffers(1, [@@g_ElementsHandle].pack('L'))
    @@g_ElementsHandle = 0
  end

  if @@g_ShaderHandle != 0
    GL.DeleteProgram(@@g_ShaderHandle)
    @@g_ShaderHandle = 0
  end

  # Destroy textures retained only by the renderer backend.
  platform_io = ImGuiPlatformIO.new(ImGui::GetPlatformIO())
  textures = platform_io[:Textures]
  tex_data = textures[:Data]

  if !tex_data.nil? && !tex_data.null?
    pointer_stride = FFI::Pointer.size
    textures[:Size].times do |i|
      tex_ptr = (tex_data + pointer_stride * i).read_pointer
      next if tex_ptr.nil? || tex_ptr.null?

      tex = ImTextureData.new(tex_ptr)
      ImplOpenGL3_DestroyTexture(tex) if tex[:RefCount] == 1
    end
  end
end

.ImplOpenGL3_DestroyFontsTextureObject

Compatibility wrapper retained for older caller code.



301
302
303
# File 'lib/imgui_impl_opengl3.rb', line 301

def self.ImplOpenGL3_DestroyFontsTexture()
  nil
end

.ImplOpenGL3_DestroyTexture(tex) ⇒ Object



324
325
326
327
328
329
330
331
332
# File 'lib/imgui_impl_opengl3.rb', line 324

def self.ImplOpenGL3_DestroyTexture(tex)
  gl_tex_id = tex.GetTexID()
  if gl_tex_id != 0
    GL.DeleteTextures(1, [gl_tex_id].pack('L'))
  end

  tex.SetTexID(0)
  tex.SetStatus(ImTextureStatus_Destroyed)
end

.ImplOpenGL3_Init(glsl_version = nil) ⇒ Object



63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# File 'lib/imgui_impl_opengl3.rb', line 63

def self.ImplOpenGL3_Init(glsl_version = nil)
  major, minor = ' ' * 4, ' ' * 4
  GL.GetIntegerv(GL::MAJOR_VERSION, major)
  GL.GetIntegerv(GL::MINOR_VERSION, minor)
  major = major.unpack1('L')
  minor = minor.unpack1('L')

  # OpenGL 2.x fallback when GL_MAJOR_VERSION/GL_MINOR_VERSION are unavailable.
  if major == 0 && minor == 0 && GL.respond_to?(:GetString)
    version_string = GL.GetString(GL::VERSION).to_s
    parts = version_string.split(/[ .]/)
    major = parts[0].to_i
    minor = parts[1].to_i
  end

  @@g_GlVersion = major * 100 + minor * 10

  max_texture_size = ' ' * 4
  GL.GetIntegerv(GL::MAX_TEXTURE_SIZE, max_texture_size)
  @@g_MaxTextureSize = max_texture_size.unpack1('L')

  io = ImGuiIO.new(ImGui::GetIO())
  io[:BackendRendererName] = @@g_BackendRendererName
  io[:BackendFlags] |= ImGuiBackendFlags_RendererHasVtxOffset if @@g_GlVersion >= 320
  io[:BackendFlags] |= ImGuiBackendFlags_RendererHasTextures

  platform_io = ImGuiPlatformIO.new(ImGui::GetPlatformIO())
  platform_io[:Renderer_TextureMaxWidth] = @@g_MaxTextureSize
  platform_io[:Renderer_TextureMaxHeight] = @@g_MaxTextureSize

  if glsl_version.nil?
    if GL.get_platform() == :OPENGL_PLATFORM_MACOSX
      glsl_version = '#version 150'
    else
      glsl_version = '#version 130'
    end
  end

  @@g_GlslVersionString = glsl_version.end_with?("\n") ? glsl_version.dup : "#{glsl_version}\n"

  true
end

.ImplOpenGL3_NewFrameObject



121
122
123
# File 'lib/imgui_impl_opengl3.rb', line 121

def self.ImplOpenGL3_NewFrame()
  ImplOpenGL3_CreateDeviceObjects() if @@g_ShaderHandle == 0
end

.ImplOpenGL3_ProcessTextureUpdates(draw_data) ⇒ Object



305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
# File 'lib/imgui_impl_opengl3.rb', line 305

def self.ImplOpenGL3_ProcessTextureUpdates(draw_data)
  textures_ptr = draw_data[:Textures]
  return if textures_ptr.nil? || textures_ptr.null?

  textures = ImVector.new(textures_ptr)
  data_ptr = textures[:Data]
  return if data_ptr.nil? || data_ptr.null?

  pointer_stride = FFI::Pointer.size

  textures[:Size].times do |i|
    tex_ptr = (data_ptr + pointer_stride * i).read_pointer
    next if tex_ptr.nil? || tex_ptr.null?

    tex = ImTextureData.new(tex_ptr)
    ImplOpenGL3_UpdateTexture(tex) if tex[:Status] != ImTextureStatus_OK
  end
end

.ImplOpenGL3_RenderDrawData(draw_data_raw) ⇒ Object



125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
# File 'lib/imgui_impl_opengl3.rb', line 125

def self.ImplOpenGL3_RenderDrawData(draw_data_raw)
  draw_data = ImDrawData.new(draw_data_raw)

  # Avoid rendering when minimized, scale coordinates for retina displays.
  fb_width = (draw_data[:DisplaySize][:x] * draw_data[:FramebufferScale][:x]).to_i
  fb_height = (draw_data[:DisplaySize][:y] * draw_data[:FramebufferScale][:y]).to_i
  return if fb_width <= 0 || fb_height <= 0

  ImplOpenGL3_ProcessTextureUpdates(draw_data)

  last_active_texture = ' ' * 4; GL.GetIntegerv(GL::ACTIVE_TEXTURE, last_active_texture)
  GL.ActiveTexture(GL::TEXTURE0)

  last_program = ' ' * 4; GL.GetIntegerv(GL::CURRENT_PROGRAM, last_program)
  last_texture = ' ' * 4; GL.GetIntegerv(GL::TEXTURE_BINDING_2D, last_texture)

  has_sampler = defined?(GL::SAMPLER_BINDING)
  last_sampler = ' ' * 4
  GL.GetIntegerv(GL::SAMPLER_BINDING, last_sampler) if has_sampler

  last_array_buffer = ' ' * 4; GL.GetIntegerv(GL::ARRAY_BUFFER_BINDING, last_array_buffer)
  last_vertex_array_object = ' ' * 4; GL.GetIntegerv(GL::VERTEX_ARRAY_BINDING, last_vertex_array_object)

  last_polygon_mode = ' ' * 8; GL.GetIntegerv(GL::POLYGON_MODE, last_polygon_mode)
  last_viewport = ' ' * 16; GL.GetIntegerv(GL::VIEWPORT, last_viewport)
  last_scissor_box = ' ' * 16; GL.GetIntegerv(GL::SCISSOR_BOX, last_scissor_box)

  last_blend_src_rgb = ' ' * 4; GL.GetIntegerv(GL::BLEND_SRC_RGB, last_blend_src_rgb)
  last_blend_dst_rgb = ' ' * 4; GL.GetIntegerv(GL::BLEND_DST_RGB, last_blend_dst_rgb)
  last_blend_src_alpha = ' ' * 4; GL.GetIntegerv(GL::BLEND_SRC_ALPHA, last_blend_src_alpha)
  last_blend_dst_alpha = ' ' * 4; GL.GetIntegerv(GL::BLEND_DST_ALPHA, last_blend_dst_alpha)
  last_blend_equation_rgb = ' ' * 4; GL.GetIntegerv(GL::BLEND_EQUATION_RGB, last_blend_equation_rgb)
  last_blend_equation_alpha = ' ' * 4; GL.GetIntegerv(GL::BLEND_EQUATION_ALPHA, last_blend_equation_alpha)

  last_enable_blend = GL.IsEnabled(GL::BLEND)
  last_enable_cull_face = GL.IsEnabled(GL::CULL_FACE)
  last_enable_depth_test = GL.IsEnabled(GL::DEPTH_TEST)
  last_enable_stencil_test = GL.IsEnabled(GL::STENCIL_TEST)
  last_enable_scissor_test = GL.IsEnabled(GL::SCISSOR_TEST)

  # Recreate VAO every frame so this works across multiple GL contexts.
  vao_mem = ' ' * 4
  GL.GenVertexArrays(1, vao_mem)
  vertex_array_object = vao_mem.unpack1('L')
  ImplOpenGL3_SetupRenderState(draw_data, fb_width, fb_height, vertex_array_object)

  clip_off = draw_data[:DisplayPos]
  clip_scale = draw_data[:FramebufferScale]

  cmd_lists = draw_data[:CmdLists]
  cmd_list_data = cmd_lists[:Data]
  pointer_stride = FFI::Pointer.size

  if !cmd_list_data.nil? && !cmd_list_data.null?
    cmd_lists[:Size].times do |n|
      cmd_list_ptr = (cmd_list_data + pointer_stride * n).read_pointer
      next if cmd_list_ptr.nil? || cmd_list_ptr.null?

      cmd_list = ImDrawList.new(cmd_list_ptr)

      vtx_size = cmd_list[:VtxBuffer][:Size] * ImDrawVert.size
      idx_size = cmd_list[:IdxBuffer][:Size] * 2 # ImDrawIdx is currently ushort in generated bindings.

      GL.BufferData(GL::ARRAY_BUFFER, vtx_size, Fiddle::Pointer.new(cmd_list[:VtxBuffer][:Data]), GL::STREAM_DRAW)
      GL.BufferData(GL::ELEMENT_ARRAY_BUFFER, idx_size, Fiddle::Pointer.new(cmd_list[:IdxBuffer][:Data]), GL::STREAM_DRAW)

      cmd_list[:CmdBuffer][:Size].times do |cmd_i|
        pcmd = ImDrawCmd.new(cmd_list[:CmdBuffer][:Data] + ImDrawCmd.size * cmd_i)
        if pcmd[:UserCallback] != nil
          # Reset callback token is not exposed cleanly in current bindings, so keep old behavior.
          ImplOpenGL3_SetupRenderState(draw_data, fb_width, fb_height, vertex_array_object)
          next
        end

        clip_min_x = (pcmd[:ClipRect][:x] - clip_off[:x]) * clip_scale[:x]
        clip_min_y = (pcmd[:ClipRect][:y] - clip_off[:y]) * clip_scale[:y]
        clip_max_x = (pcmd[:ClipRect][:z] - clip_off[:x]) * clip_scale[:x]
        clip_max_y = (pcmd[:ClipRect][:w] - clip_off[:y]) * clip_scale[:y]

        next if clip_max_x <= clip_min_x || clip_max_y <= clip_min_y

        GL.Scissor(clip_min_x.to_i, (fb_height - clip_max_y).to_i, (clip_max_x - clip_min_x).to_i, (clip_max_y - clip_min_y).to_i)

        GL.BindTexture(GL::TEXTURE_2D, pcmd.GetTexID())
        if @@g_GlVersion >= 320
          GL.DrawElementsBaseVertex(GL::TRIANGLES, pcmd[:ElemCount], GL::UNSIGNED_SHORT, Fiddle::Pointer.new(pcmd[:IdxOffset] * 2), pcmd[:VtxOffset])
        else
          GL.DrawElements(GL::TRIANGLES, pcmd[:ElemCount], GL::UNSIGNED_SHORT, Fiddle::Pointer.new(pcmd[:IdxOffset] * 2))
        end
      end
    end
  end

  GL.DeleteVertexArrays(1, [vertex_array_object].pack('L'))

  GL.UseProgram(last_program.unpack1('L'))
  GL.BindTexture(GL::TEXTURE_2D, last_texture.unpack1('L'))
  GL.BindSampler(0, last_sampler.unpack1('L')) if has_sampler
  GL.ActiveTexture(last_active_texture.unpack1('L'))
  GL.BindVertexArray(last_vertex_array_object.unpack1('L'))
  GL.BindBuffer(GL::ARRAY_BUFFER, last_array_buffer.unpack1('L'))

  GL.BlendEquationSeparate(last_blend_equation_rgb.unpack1('L'), last_blend_equation_alpha.unpack1('L'))
  GL.BlendFuncSeparate(
    last_blend_src_rgb.unpack1('L'),
    last_blend_dst_rgb.unpack1('L'),
    last_blend_src_alpha.unpack1('L'),
    last_blend_dst_alpha.unpack1('L')
  )

  if last_enable_blend then GL.Enable(GL::BLEND) else GL.Disable(GL::BLEND) end
  if last_enable_cull_face then GL.Enable(GL::CULL_FACE) else GL.Disable(GL::CULL_FACE) end
  if last_enable_depth_test then GL.Enable(GL::DEPTH_TEST) else GL.Disable(GL::DEPTH_TEST) end
  if last_enable_stencil_test then GL.Enable(GL::STENCIL_TEST) else GL.Disable(GL::STENCIL_TEST) end
  if last_enable_scissor_test then GL.Enable(GL::SCISSOR_TEST) else GL.Disable(GL::SCISSOR_TEST) end

  last_polygon_mode = last_polygon_mode.unpack('L2')
  GL.PolygonMode(GL::FRONT_AND_BACK, last_polygon_mode[0])

  last_viewport = last_viewport.unpack('L4')
  GL.Viewport(last_viewport[0], last_viewport[1], last_viewport[2], last_viewport[3])

  last_scissor_box = last_scissor_box.unpack('L4')
  GL.Scissor(last_scissor_box[0], last_scissor_box[1], last_scissor_box[2], last_scissor_box[3])
end

.ImplOpenGL3_SetupRenderState(draw_data, fb_width, fb_height, vertex_array_object) ⇒ Object



251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
# File 'lib/imgui_impl_opengl3.rb', line 251

def self.ImplOpenGL3_SetupRenderState(draw_data, fb_width, fb_height, vertex_array_object)
  GL.Enable(GL::BLEND)
  GL.BlendEquation(GL::FUNC_ADD)
  GL.BlendFuncSeparate(GL::SRC_ALPHA, GL::ONE_MINUS_SRC_ALPHA, GL::ONE, GL::ONE_MINUS_SRC_ALPHA)
  GL.Disable(GL::CULL_FACE)
  GL.Disable(GL::DEPTH_TEST)
  GL.Disable(GL::STENCIL_TEST)
  GL.Enable(GL::SCISSOR_TEST)
  GL.PolygonMode(GL::FRONT_AND_BACK, GL::FILL)

  GL.Viewport(0, 0, fb_width, fb_height)
  l = draw_data[:DisplayPos][:x]
  r = draw_data[:DisplayPos][:x] + draw_data[:DisplaySize][:x]
  t = draw_data[:DisplayPos][:y]
  b = draw_data[:DisplayPos][:y] + draw_data[:DisplaySize][:y]

  ortho_projection = [
    2.0 / (r - l), 0.0, 0.0, 0.0,
    0.0, 2.0 / (t - b), 0.0, 0.0,
    0.0, 0.0, -1.0, 0.0,
    (r + l) / (l - r), (t + b) / (b - t), 0.0, 1.0,
  ]

  GL.UseProgram(@@g_ShaderHandle)
  GL.Uniform1i(@@g_AttribLocationTex, 0)
  GL.UniformMatrix4fv(@@g_AttribLocationProjMtx, 1, GL::FALSE, ortho_projection.pack('F16'))

  if defined?(GL::SAMPLER_BINDING)
    GL.BindSampler(0, 0)
  end

  GL.BindVertexArray(vertex_array_object)
  GL.BindBuffer(GL::ARRAY_BUFFER, @@g_VboHandle)
  GL.BindBuffer(GL::ELEMENT_ARRAY_BUFFER, @@g_ElementsHandle)

  GL.EnableVertexAttribArray(@@g_AttribLocationVtxPos)
  GL.EnableVertexAttribArray(@@g_AttribLocationVtxUV)
  GL.EnableVertexAttribArray(@@g_AttribLocationVtxColor)

  GL.VertexAttribPointer(@@g_AttribLocationVtxPos, 2, GL::FLOAT, GL::FALSE, ImDrawVert.size, ImDrawVert.offset_of(:pos))
  GL.VertexAttribPointer(@@g_AttribLocationVtxUV, 2, GL::FLOAT, GL::FALSE, ImDrawVert.size, ImDrawVert.offset_of(:uv))
  GL.VertexAttribPointer(@@g_AttribLocationVtxColor, 4, GL::UNSIGNED_BYTE, GL::TRUE, ImDrawVert.size, ImDrawVert.offset_of(:col))
end

.ImplOpenGL3_ShutdownObject



106
107
108
109
110
111
112
113
114
115
116
117
118
119
# File 'lib/imgui_impl_opengl3.rb', line 106

def self.ImplOpenGL3_Shutdown()
  ImplOpenGL3_DestroyDeviceObjects()

  io = ImGuiIO.new(ImGui::GetIO())
  io[:BackendRendererName] = nil
  io[:BackendFlags] &= ~(ImGuiBackendFlags_RendererHasVtxOffset | ImGuiBackendFlags_RendererHasTextures)

  begin
    platform_io = ImGuiPlatformIO.new(ImGui::GetPlatformIO())
    platform_io.ClearRendererHandlers()
  rescue StandardError
    # Older generated bindings may not expose all platform IO helpers.
  end
end

.ImplOpenGL3_UpdateTexture(tex) ⇒ Object



340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
# File 'lib/imgui_impl_opengl3.rb', line 340

def self.ImplOpenGL3_UpdateTexture(tex)
  status = tex[:Status]

  if status == ImTextureStatus_WantCreate || status == ImTextureStatus_WantUpdates
    GL.PixelStorei(GL::UNPACK_ROW_LENGTH, 0) if defined?(GL::UNPACK_ROW_LENGTH)
    GL.PixelStorei(GL::UNPACK_ALIGNMENT, 1) if defined?(GL::UNPACK_ALIGNMENT)
  end

  if status == ImTextureStatus_WantCreate
    return unless tex[:Format] == ImTextureFormat_RGBA32

    last_texture = ' ' * 4
    GL.GetIntegerv(GL::TEXTURE_BINDING_2D, last_texture)

    texture_mem = ' ' * 4
    GL.GenTextures(1, texture_mem)
    gl_texture_id = texture_mem.unpack1('L')

    GL.BindTexture(GL::TEXTURE_2D, gl_texture_id)
    GL.TexParameteri(GL::TEXTURE_2D, GL::TEXTURE_MIN_FILTER, GL::LINEAR)
    GL.TexParameteri(GL::TEXTURE_2D, GL::TEXTURE_MAG_FILTER, GL::LINEAR)
    GL.TexParameteri(GL::TEXTURE_2D, GL::TEXTURE_WRAP_S, GL::CLAMP_TO_EDGE)
    GL.TexParameteri(GL::TEXTURE_2D, GL::TEXTURE_WRAP_T, GL::CLAMP_TO_EDGE)

    pixels_ptr = ImplOpenGL3_AsGLPointer(tex[:Pixels])
    GL.TexImage2D(GL::TEXTURE_2D, 0, GL::RGBA, tex[:Width], tex[:Height], 0, GL::RGBA, GL::UNSIGNED_BYTE, pixels_ptr)

    tex.SetTexID(gl_texture_id)
    tex.SetStatus(ImTextureStatus_OK)

    GL.BindTexture(GL::TEXTURE_2D, last_texture.unpack1('L'))
    return
  end

  if status == ImTextureStatus_WantUpdates
    last_texture = ' ' * 4
    GL.GetIntegerv(GL::TEXTURE_BINDING_2D, last_texture)

    GL.BindTexture(GL::TEXTURE_2D, tex.GetTexID())

    updates = tex[:Updates]
    updates_ptr = updates[:Data]

    if !updates_ptr.nil? && !updates_ptr.null?
      if defined?(GL::UNPACK_ROW_LENGTH)
        GL.PixelStorei(GL::UNPACK_ROW_LENGTH, tex[:Width])

        updates[:Size].times do |i|
          rect = ImTextureRect.new(updates_ptr + i * ImTextureRect.size)
          pixels_ptr = ImplOpenGL3_AsGLPointer(tex.GetPixelsAt(rect[:x], rect[:y]))
          GL.TexSubImage2D(GL::TEXTURE_2D, 0, rect[:x], rect[:y], rect[:w], rect[:h], GL::RGBA, GL::UNSIGNED_BYTE, pixels_ptr)
        end

        GL.PixelStorei(GL::UNPACK_ROW_LENGTH, 0)
      else
        updates[:Size].times do |i|
          rect = ImTextureRect.new(updates_ptr + i * ImTextureRect.size)
          rect[:h].times do |line|
            pixels_ptr = ImplOpenGL3_AsGLPointer(tex.GetPixelsAt(rect[:x], rect[:y] + line))
            GL.TexSubImage2D(GL::TEXTURE_2D, 0, rect[:x], rect[:y] + line, rect[:w], 1, GL::RGBA, GL::UNSIGNED_BYTE, pixels_ptr)
          end
        end
      end
    end

    tex.SetStatus(ImTextureStatus_OK)
    GL.BindTexture(GL::TEXTURE_2D, last_texture.unpack1('L'))
    return
  end

  if status == ImTextureStatus_WantDestroy && tex[:UnusedFrames] > 0
    ImplOpenGL3_DestroyTexture(tex)
  end
end

.ImplRaylib_CameraPointer(camera) ⇒ Object

[INTERNAL]



447
448
449
450
451
452
453
454
455
# File 'lib/imgui_impl_raylib.rb', line 447

def self.ImplRaylib_CameraPointer(camera)
  if camera.kind_of?(FFI::Pointer)
    camera
  elsif camera.respond_to?(:pointer)
    camera.pointer
  else
    raise ArgumentError, 'camera must be Raylib::Camera (FFI::Struct) or FFI::Pointer'
  end
end

.ImplRaylib_DisableUnsupportedViewports(io = nil) ⇒ Object

[INTERNAL]



32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/imgui_impl_raylib.rb', line 32

def self.ImplRaylib_DisableUnsupportedViewports(io = nil)
  io = ImGuiIO.new(ImGui::GetIO()) if io == nil
  return if (io[:ConfigFlags] & ImGuiConfigFlags_ViewportsEnable) == 0

  io[:ConfigFlags] &= ~ImGuiConfigFlags_ViewportsEnable
  bd = ImGui_ImplRaylib_GetBackendData()
  if bd != nil && !bd.warned_viewports_unsupported
    # raylib backend currently supports docking in a single OS window only.
    $stderr.puts('[imgui_impl_raylib] ImGuiConfigFlags_ViewportsEnable is not supported and was disabled.')
    bd.warned_viewports_unsupported = true
  end
end

.ImplRaylib_InitObject



593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
# File 'lib/imgui_impl_raylib.rb', line 593

def self.ImplRaylib_Init()
  # Setup backend capabilities flags
  bd = ImGui_ImplRaylib_Data.new
  @@g_BackendData[ImGui::GetCurrentContext().address] = bd

  io = ImGuiIO.new(ImGui::GetIO())
  platform_io = ImGuiPlatformIO.new(ImGui::GetPlatformIO())

  io[:BackendPlatformUserData] = nil
  io[:BackendPlatformName] = @@g_BackendPlatformName
  io[:BackendRendererUserData] = nil
  io[:BackendRendererName] = @@g_BackendRendererName
  io[:BackendFlags] |= ImGuiBackendFlags_HasMouseCursors # We can honor GetMouseCursor() values (optional)
  io[:BackendFlags] |= ImGuiBackendFlags_HasSetMousePos  # We can honor io.WantSetMousePos requests (optional, rarely used)
  io[:BackendFlags] |= ImGuiBackendFlags_RendererHasVtxOffset
  io[:BackendFlags] |= ImGuiBackendFlags_RendererHasTextures
  io[:BackendFlags] &= ~(ImGuiBackendFlags_PlatformHasViewports | ImGuiBackendFlags_RendererHasViewports)

  ImplRaylib_DisableUnsupportedViewports(io)

  # Conservative limit suitable for most GL backends used by raylib.
  platform_io[:Renderer_TextureMaxWidth] = 8192
  platform_io[:Renderer_TextureMaxHeight] = 8192

  bd.time = 0.0

  return true
end

.ImplRaylib_NewFrameObject



651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
# File 'lib/imgui_impl_raylib.rb', line 651

def self.ImplRaylib_NewFrame()
  bd = ImGui_ImplRaylib_GetBackendData()
  io = ImGuiIO.new(ImGui::GetIO())

  #  Setup display size (every frame to accommodate for window resizing)
  io[:DisplaySize][:x] = Raylib.GetScreenWidth()
  io[:DisplaySize][:y] = Raylib.GetScreenHeight()

  # Setup time step
  current_time = Raylib.GetTime()

  io[:DeltaTime] = bd.time > 0 ? (current_time - bd.time).to_f : 1.0 / 60.0
  bd.time = current_time

  ImplRaylib_DisableUnsupportedViewports(io)

  ImplRaylib_ProcessKeyboard()
  ImplRaylib_UpdateMouseData()
  ImplRaylib_UpdateMouseCursor()

  # [TODO] update gamepads
end

.ImplRaylib_ProcessKeyboardObject



377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
# File 'lib/imgui_impl_raylib.rb', line 377

def self.ImplRaylib_ProcessKeyboard()
  io = ImGuiIO.new(ImGui::GetIO())

  ImGui_ImplRaylib_UpdateKeyModifiers()

  KEY_IDS.each do |raylib_key|
    if Raylib.IsKeyPressed(raylib_key)
      key = ImGui_ImplRaylib_KeyToImGuiKey(raylib_key)
      io.AddKeyEvent(key, true)
    elsif Raylib.IsKeyReleased(raylib_key)
      key = ImGui_ImplRaylib_KeyToImGuiKey(raylib_key)
      io.AddKeyEvent(key, false)
    end
  end

  while (charPressed = Raylib.GetCharPressed()) != 0
    io.AddInputCharacter(charPressed)
  end

  return true
end

.ImplRaylib_ProcessTextureUpdates(draw_data) ⇒ Object

[INTERNAL]



124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
# File 'lib/imgui_impl_raylib.rb', line 124

def self.ImplRaylib_ProcessTextureUpdates(draw_data)
  return if draw_data[:Textures] == nil || draw_data[:Textures].address == 0

  textures = ImVector_ImTextureDataPtr.new(draw_data[:Textures])
  textures_data = textures[:Data]
  return if textures_data == nil || textures_data.address == 0

  textures[:Size].times do |i|
    tex_ptr = (textures_data + FFI.type_size(:pointer) * i).read_pointer
    next if tex_ptr == nil || tex_ptr.address == 0

    tex = ImTextureData.new(tex_ptr)
    ImplRaylib_UpdateTexture(tex) if tex[:Status] != ImTextureStatus_OK
  end
end

.ImplRaylib_RenderDrawData(draw_data_raw) ⇒ Object



681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
# File 'lib/imgui_impl_raylib.rb', line 681

def self.ImplRaylib_RenderDrawData(draw_data_raw)
  draw_data = ImDrawData.new(draw_data_raw)

  fb_width = (draw_data[:DisplaySize][:x] * draw_data[:FramebufferScale][:x]).to_i
  fb_height = (draw_data[:DisplaySize][:y] * draw_data[:FramebufferScale][:y]).to_i
  return if fb_width <= 0 || fb_height <= 0

  ImplRaylib_ProcessTextureUpdates(draw_data)

  Raylib.rlDisableBackfaceCulling()

  clip_offset = draw_data[:DisplayPos]
  clip_scale = draw_data[:FramebufferScale]
  cmd_lists = draw_data[:CmdLists]
  cmd_lists_data = cmd_lists[:Data]

  if cmd_lists_data != nil && cmd_lists_data.address != 0
    cmd_lists[:Size].times do |n|
      cmd_list_ptr = (cmd_lists_data + FFI.type_size(:pointer) * n).read_pointer
      next if cmd_list_ptr == nil || cmd_list_ptr.address == 0

      cmd_list = ImDrawList.new(cmd_list_ptr)
      vtx_buffer = cmd_list[:VtxBuffer][:Data] # const ImDrawVert*
      idx_buffer = cmd_list[:IdxBuffer][:Data] # const ImDrawIdx*

      cmd_list[:CmdBuffer][:Size].times do |cmd_i|
        pcmd = ImDrawCmd.new(cmd_list[:CmdBuffer][:Data] + ImDrawCmd.size * cmd_i) # const ImDrawCmd*
        callback_ptr = pcmd[:UserCallback]
        if callback_ptr != nil && callback_ptr.address != 0
          # [TODO] Handle user callback (Ref.: https://github.com/ffi/ffi/wiki/Callbacks )
          next
        end

        rect_min_x = (pcmd[:ClipRect][:x] - clip_offset[:x]) * clip_scale[:x]
        rect_min_y = (pcmd[:ClipRect][:y] - clip_offset[:y]) * clip_scale[:y]
        rect_max_x = (pcmd[:ClipRect][:z] - clip_offset[:x]) * clip_scale[:x]
        rect_max_y = (pcmd[:ClipRect][:w] - clip_offset[:y]) * clip_scale[:y]

        rect_min_x = 0.0 if rect_min_x < 0.0
        rect_min_y = 0.0 if rect_min_y < 0.0
        rect_max_x = fb_width.to_f if rect_max_x > fb_width
        rect_max_y = fb_height.to_f if rect_max_y > fb_height
        next if rect_max_x <= rect_min_x || rect_max_y <= rect_min_y

        rect_w = rect_max_x - rect_min_x
        rect_h = rect_max_y - rect_min_y

        Raylib.BeginScissorMode(rect_min_x.to_i, rect_min_y.to_i, rect_w.to_i, rect_h.to_i)

        # Render triangles
        indices = idx_buffer + FFI.type_size(:ImDrawIdx) * pcmd[:IdxOffset]
        vertices = vtx_buffer + ImDrawVert.size * pcmd[:VtxOffset]
        0.step(pcmd[:ElemCount] - 3, 3) do |i|
          Raylib.rlPushMatrix()
          Raylib.rlBegin(Raylib::RL_TRIANGLES)
          Raylib.rlSetTexture(pcmd.GetTexID())

          index = indices.get_array_of_uint16(i * FFI::type_size(:ImDrawIdx), 3)

          base_offset = ImDrawVert.size * index[0]
          xy = vertices + (base_offset + ImDrawVert.offset_of(:pos))
          uv = vertices + (base_offset + ImDrawVert.offset_of(:uv))
          color = vertices + (base_offset + ImDrawVert.offset_of(:col))
          set_vertex(xy.read_array_of_float(2), uv.read_array_of_float(2), color.read_array_of_uint8(4))

          base_offset = ImDrawVert.size * index[2]
          xy = vertices + (base_offset + ImDrawVert.offset_of(:pos))
          uv = vertices + (base_offset + ImDrawVert.offset_of(:uv))
          color = vertices + (base_offset + ImDrawVert.offset_of(:col))
          set_vertex(xy.read_array_of_float(2), uv.read_array_of_float(2), color.read_array_of_uint8(4))

          base_offset = ImDrawVert.size * index[1]
          xy = vertices + (base_offset + ImDrawVert.offset_of(:pos))
          uv = vertices + (base_offset + ImDrawVert.offset_of(:uv))
          color = vertices + (base_offset + ImDrawVert.offset_of(:col))
          set_vertex(xy.read_array_of_float(2), uv.read_array_of_float(2), color.read_array_of_uint8(4))

          Raylib.rlSetTexture(0)
          Raylib.rlEnd()
          Raylib.rlPopMatrix()
        end
        Raylib.EndScissorMode()
      end
    end
  end
  Raylib.rlEnableBackfaceCulling()
end

.ImplRaylib_ShutdownObject



622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
# File 'lib/imgui_impl_raylib.rb', line 622

def self.ImplRaylib_Shutdown()
  bd = ImGui_ImplRaylib_GetBackendData()
  io = ImGuiIO.new(ImGui::GetIO())
  platform_io = ImGuiPlatformIO.new(ImGui::GetPlatformIO())

  if bd != nil
    bd.textures.each_value do |texture|
      Raylib.UnloadTexture(texture) if texture != nil && texture[:id] != 0
    end
    bd.textures.clear
  end

  io[:BackendPlatformName] = nil
  io[:BackendPlatformUserData] = nil
  io[:BackendRendererName] = nil
  io[:BackendRendererUserData] = nil
  io[:BackendFlags] &= ~(ImGuiBackendFlags_HasMouseCursors | ImGuiBackendFlags_HasSetMousePos | ImGuiBackendFlags_RendererHasVtxOffset | ImGuiBackendFlags_RendererHasTextures | ImGuiBackendFlags_PlatformHasViewports | ImGuiBackendFlags_RendererHasViewports)

  begin
    platform_io.ClearRendererHandlers()
  rescue StandardError
    # Older generated bindings may not expose this helper.
  end

  if ImGui::GetCurrentContext() != nil
    @@g_BackendData.delete(ImGui::GetCurrentContext().address)
  end
end

.ImplRaylib_UpdateCamera(camera, mode) ⇒ Object

ImGui-aware UpdateCamera implementation in Ruby. Unlike Raylib.UpdateCamera(), this checks io/io and avoids camera control while ImGui is consuming corresponding inputs.



460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
# File 'lib/imgui_impl_raylib.rb', line 460

def self.ImplRaylib_UpdateCamera(camera, mode)
  camera_ptr = ImplRaylib_CameraPointer(camera)
  io = ImGuiIO.new(ImGui::GetIO())

  mouse_position_delta = Raylib.GetMouseDelta()

  move_in_world_plane = (mode == Raylib::CAMERA_FIRST_PERSON) || (mode == Raylib::CAMERA_THIRD_PERSON)
  rotate_around_target = (mode == Raylib::CAMERA_THIRD_PERSON) || (mode == Raylib::CAMERA_ORBITAL)
  lock_view = (mode == Raylib::CAMERA_FREE) || (mode == Raylib::CAMERA_FIRST_PERSON) || (mode == Raylib::CAMERA_THIRD_PERSON) || (mode == Raylib::CAMERA_ORBITAL)
  rotate_up = false

  frame_time = Raylib.GetFrameTime()
  camera_move_speed = CAMERA_MOVE_SPEED * frame_time
  camera_rotation_speed = CAMERA_ROTATION_SPEED * frame_time
  camera_pan_speed = CAMERA_PAN_SPEED * frame_time
  camera_orbital_speed = CAMERA_ORBITAL_SPEED * frame_time

  wants_mouse = io[:WantCaptureMouse]
  wants_keyboard = io[:WantCaptureKeyboard]
  any_imgui_window_focused = false
  begin
    any_imgui_window_focused = ImGui.IsWindowFocused(ImGuiFocusedFlags_AnyWindow)
  rescue StandardError
    # Keep backward compatibility with older bindings.
    any_imgui_window_focused = false
  end
  block_keyboard_controls = wants_keyboard || any_imgui_window_focused

  if mode == Raylib::CAMERA_CUSTOM
    # no-op
  elsif mode == Raylib::CAMERA_ORBITAL
    rotation = Raylib.MatrixRotate(Raylib.GetCameraUp(camera_ptr), camera_orbital_speed)
    view = Raylib.Vector3Subtract(Raylib::Camera.new(camera_ptr)[:position], Raylib::Camera.new(camera_ptr)[:target])
    view = Raylib.Vector3Transform(view, rotation)
    camera_data = Raylib::Camera.new(camera_ptr)
    camera_data[:position] = Raylib.Vector3Add(camera_data[:target], view)
  else
    if !block_keyboard_controls
      if Raylib.IsKeyDown(Raylib::KEY_DOWN)
        Raylib.CameraPitch(camera_ptr, -camera_rotation_speed, lock_view, rotate_around_target, rotate_up)
      end
      if Raylib.IsKeyDown(Raylib::KEY_UP)
        Raylib.CameraPitch(camera_ptr, camera_rotation_speed, lock_view, rotate_around_target, rotate_up)
      end
      if Raylib.IsKeyDown(Raylib::KEY_RIGHT)
        Raylib.CameraYaw(camera_ptr, -camera_rotation_speed, rotate_around_target)
      end
      if Raylib.IsKeyDown(Raylib::KEY_LEFT)
        Raylib.CameraYaw(camera_ptr, camera_rotation_speed, rotate_around_target)
      end
      if Raylib.IsKeyDown(Raylib::KEY_Q)
        Raylib.CameraRoll(camera_ptr, -camera_rotation_speed)
      end
      if Raylib.IsKeyDown(Raylib::KEY_E)
        Raylib.CameraRoll(camera_ptr, camera_rotation_speed)
      end
    end

    if !wants_mouse
      if (mode == Raylib::CAMERA_FREE) && Raylib.IsMouseButtonDown(Raylib::MOUSE_BUTTON_MIDDLE)
        mouse_delta = Raylib.GetMouseDelta()
        if mouse_delta[:x] > 0.0
          Raylib.CameraMoveRight(camera_ptr, camera_pan_speed, move_in_world_plane)
        end
        if mouse_delta[:x] < 0.0
          Raylib.CameraMoveRight(camera_ptr, -camera_pan_speed, move_in_world_plane)
        end
        if mouse_delta[:y] > 0.0
          Raylib.CameraMoveUp(camera_ptr, -camera_pan_speed)
        end
        if mouse_delta[:y] < 0.0
          Raylib.CameraMoveUp(camera_ptr, camera_pan_speed)
        end
      else
        Raylib.CameraYaw(camera_ptr, -mouse_position_delta[:x] * CAMERA_MOUSE_MOVE_SENSITIVITY, rotate_around_target)
        Raylib.CameraPitch(camera_ptr, -mouse_position_delta[:y] * CAMERA_MOUSE_MOVE_SENSITIVITY, lock_view, rotate_around_target, rotate_up)
      end
    end

    if !block_keyboard_controls
      if Raylib.IsKeyDown(Raylib::KEY_W)
        Raylib.CameraMoveForward(camera_ptr, camera_move_speed, move_in_world_plane)
      end
      if Raylib.IsKeyDown(Raylib::KEY_A)
        Raylib.CameraMoveRight(camera_ptr, -camera_move_speed, move_in_world_plane)
      end
      if Raylib.IsKeyDown(Raylib::KEY_S)
        Raylib.CameraMoveForward(camera_ptr, -camera_move_speed, move_in_world_plane)
      end
      if Raylib.IsKeyDown(Raylib::KEY_D)
        Raylib.CameraMoveRight(camera_ptr, camera_move_speed, move_in_world_plane)
      end
    end

    if Raylib.IsGamepadAvailable(0)
      Raylib.CameraYaw(camera_ptr, -(Raylib.GetGamepadAxisMovement(0, Raylib::GAMEPAD_AXIS_RIGHT_X) * 2.0) * CAMERA_MOUSE_MOVE_SENSITIVITY, rotate_around_target)
      Raylib.CameraPitch(camera_ptr, -(Raylib.GetGamepadAxisMovement(0, Raylib::GAMEPAD_AXIS_RIGHT_Y) * 2.0) * CAMERA_MOUSE_MOVE_SENSITIVITY, lock_view, rotate_around_target, rotate_up)

      if Raylib.GetGamepadAxisMovement(0, Raylib::GAMEPAD_AXIS_LEFT_Y) <= -0.25
        Raylib.CameraMoveForward(camera_ptr, camera_move_speed, move_in_world_plane)
      end
      if Raylib.GetGamepadAxisMovement(0, Raylib::GAMEPAD_AXIS_LEFT_X) <= -0.25
        Raylib.CameraMoveRight(camera_ptr, -camera_move_speed, move_in_world_plane)
      end
      if Raylib.GetGamepadAxisMovement(0, Raylib::GAMEPAD_AXIS_LEFT_Y) >= 0.25
        Raylib.CameraMoveForward(camera_ptr, -camera_move_speed, move_in_world_plane)
      end
      if Raylib.GetGamepadAxisMovement(0, Raylib::GAMEPAD_AXIS_LEFT_X) >= 0.25
        Raylib.CameraMoveRight(camera_ptr, camera_move_speed, move_in_world_plane)
      end
    end

    if mode == Raylib::CAMERA_FREE && !block_keyboard_controls
      if Raylib.IsKeyDown(Raylib::KEY_SPACE)
        Raylib.CameraMoveUp(camera_ptr, camera_move_speed)
      end
      if Raylib.IsKeyDown(Raylib::KEY_LEFT_CONTROL)
        Raylib.CameraMoveUp(camera_ptr, -camera_move_speed)
      end
    end
  end

  if ((mode == Raylib::CAMERA_THIRD_PERSON) || (mode == Raylib::CAMERA_ORBITAL) || (mode == Raylib::CAMERA_FREE)) && !wants_mouse
    Raylib.CameraMoveToTarget(camera_ptr, -Raylib.GetMouseWheelMove())
    if Raylib.IsKeyPressed(Raylib::KEY_KP_SUBTRACT)
      Raylib.CameraMoveToTarget(camera_ptr, 2.0)
    end
    if Raylib.IsKeyPressed(Raylib::KEY_KP_ADD)
      Raylib.CameraMoveToTarget(camera_ptr, -2.0)
    end
  end
end

.ImplRaylib_UpdateMouseCursorObject

[INTERNAL]



431
432
433
434
435
436
437
438
439
440
# File 'lib/imgui_impl_raylib.rb', line 431

def self.ImplRaylib_UpdateMouseCursor()
  io = ImGuiIO.new(ImGui::GetIO())
  return if (io[:ConfigFlags] & ImGuiConfigFlags_NoMouseCursorChange)

  if io[:MouseDrawCursor] || ImGui::GetMouseCursor() == ImGuiMouseCursor_None
    Raylib.HideCursor() # Hide OS mouse cursor if imgui is drawing it or if it wants no cursor
  else
    Raylib.ShowCursor() # Show OS mouse cursor
  end
end

.ImplRaylib_UpdateMouseDataObject

[INTERNAL]



400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
# File 'lib/imgui_impl_raylib.rb', line 400

def self.ImplRaylib_UpdateMouseData()
  io = ImGuiIO.new(ImGui::GetIO())

  # Set OS mouse position if requested (rarely used, only when ImGuiConfigFlags_NavEnableSetMousePos is enabled by user)
  if io[:WantSetMousePos]
    Raylib.SetMousePosition(io[:MousePos][:x].to_i, io[:MousePos][:y].to_i)
  end

  wheel_move = Raylib.GetMouseWheelMove()
  wheel_y = if wheel_move > 0
              1.0
            elsif wheel_move < 0
              -1.0
            else
              0.0
            end
  io.AddMouseWheelEvent(0, wheel_y) # [TODO] Get wheel tilt from Raylib

  [Raylib::MOUSE_BUTTON_LEFT, Raylib::MOUSE_BUTTON_RIGHT, Raylib::MOUSE_BUTTON_MIDDLE].each_with_index do |button, mouse_button|
    pressed = Raylib.IsMouseButtonPressed(button)
    released = Raylib.IsMouseButtonReleased(button)
    if pressed || released
      io.AddMouseButtonEvent(mouse_button, pressed)
    end
  end

  mouse_pos = Raylib.GetMousePosition()
  io.AddMousePosEvent(mouse_pos[:x].to_f, mouse_pos[:y].to_f)
end

.ImplRaylib_UpdateTexture(tex_raw) ⇒ Object

[INTERNAL]



55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
# File 'lib/imgui_impl_raylib.rb', line 55

def self.ImplRaylib_UpdateTexture(tex_raw)
  bd = ImGui_ImplRaylib_GetBackendData()
  return if bd == nil

  tex = tex_raw.kind_of?(ImTextureData) ? tex_raw : ImTextureData.new(tex_raw)

  case tex[:Status]
  when ImTextureStatus_WantCreate
    return if tex[:Format] != ImTextureFormat_RGBA32

    image = Raylib::Image.new
    image[:data] = tex.GetPixels()
    image[:width] = tex[:Width]
    image[:height] = tex[:Height]
    image[:mipmaps] = 1
    image[:format] = Raylib::PIXELFORMAT_UNCOMPRESSED_R8G8B8A8

    texture = Raylib.LoadTextureFromImage(image)
    raise 'Backend failed to create Raylib texture!' if texture[:id] == 0

    Raylib.SetTextureFilter(texture, Raylib::TEXTURE_FILTER_BILINEAR)
    Raylib.SetTextureWrap(texture, Raylib::TEXTURE_WRAP_CLAMP)

    bd.textures[texture[:id]] = texture

    tex.SetTexID(texture[:id])
    tex.SetStatus(ImTextureStatus_OK)

  when ImTextureStatus_WantUpdates
    tex_id = tex.GetTexID()
    return if tex_id == 0

    texture = bd.textures[tex_id]
    if texture == nil
      texture = Raylib::Texture.new
      texture[:id] = tex_id
      texture[:width] = tex[:Width]
      texture[:height] = tex[:Height]
      texture[:mipmaps] = 1
      texture[:format] = Raylib::PIXELFORMAT_UNCOMPRESSED_R8G8B8A8
    end

    # Raylib.UpdateTextureRec has no row-pitch argument, so sub-rect updates
    # sourced from a larger atlas can sample incorrect rows and corrupt glyphs.
    # Uploading the full atlas keeps texture data consistent across backends.
    Raylib.UpdateTexture(texture, tex.GetPixels())
    tex.SetStatus(ImTextureStatus_OK)

  when ImTextureStatus_WantDestroy
    tex_id = tex.GetTexID()
    if tex_id != 0 && tex[:UnusedFrames] > 0
      texture = bd.textures.delete(tex_id)
      if texture == nil
        texture = Raylib::Texture.new
        texture[:id] = tex_id
        texture[:width] = tex[:Width]
        texture[:height] = tex[:Height]
        texture[:mipmaps] = 1
        texture[:format] = Raylib::PIXELFORMAT_UNCOMPRESSED_R8G8B8A8
      end

      Raylib.UnloadTexture(texture)
      tex.SetTexID(0)
      tex.SetStatus(ImTextureStatus_Destroyed)
    end
  end
end

.ImplSDL3_CloseGamepadsObject



348
349
350
351
352
353
354
355
# File 'lib/imgui_impl_sdl3.rb', line 348

def self.ImplSDL3_CloseGamepads()
  bd = ImGui_ImplSDL3_GetBackendData()
  return if bd == nil
  if bd.gamepad_mode != ImGui_ImplSDL3_GamepadMode_Manual
    bd.gamepads.each { |g| SDL.CloseGamepad(g) if g != nil }
  end
  bd.gamepads = []
end

.ImplSDL3_GetWindowSizeAndFramebufferScale(window) ⇒ Object



549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
# File 'lib/imgui_impl_sdl3.rb', line 549

def self.ImplSDL3_GetWindowSizeAndFramebufferScale(window)
  w_ptr = FFI::MemoryPointer.new(:int)
  h_ptr = FFI::MemoryPointer.new(:int)
  SDL.GetWindowSize(window, w_ptr, h_ptr)
  w = w_ptr.read_int
  h = h_ptr.read_int
  if (SDL.GetWindowFlags(window) & SDL::WINDOW_MINIMIZED) != 0
    w = h = 0
  end

  display_w_ptr = FFI::MemoryPointer.new(:int)
  display_h_ptr = FFI::MemoryPointer.new(:int)
  SDL.GetWindowSizeInPixels(window, display_w_ptr, display_h_ptr)
  display_w = display_w_ptr.read_int
  display_h = display_h_ptr.read_int

  scale_x = (w > 0) ? (display_w.to_f / w.to_f) : 1.0
  scale_y = (h > 0) ? (display_h.to_f / h.to_f) : 1.0
  [w, h, scale_x, scale_y]
end

.ImplSDL3_Init(window, renderer = nil) ⇒ Object



276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
# File 'lib/imgui_impl_sdl3.rb', line 276

def self.ImplSDL3_Init(window, renderer = nil)
  io = ImGuiIO.new(ImGui::GetIO())

  bd = ImGui_ImplSDL3_Data.new
  bd.window = window
  bd.renderer = renderer
  bd.window_id = SDL.GetWindowID(window)

  sdl_backend = SDL.GetCurrentVideoDriver()
  sdl_backend_name = sdl_backend == nil ? '' : sdl_backend.read_string
  ['windows', 'cocoa', 'x11', 'DIVE', 'VMAN'].each do |platform|
    next unless sdl_backend_name.start_with?(platform)
    bd.mouse_can_use_global_state = true
    bd.mouse_capture_mode = (platform == 'x11') ? ImGui_ImplSDL3_MouseCaptureMode_EnabledAfterDrag : ImGui_ImplSDL3_MouseCaptureMode_Enabled
  end

  @@g_BackendData[ImGui::GetCurrentContext().address] = bd

  io[:BackendPlatformUserData] = FFI::Pointer.new(ImGui::GetCurrentContext().address)
  io[:BackendPlatformName] = @@g_BackendPlatformName
  io[:BackendFlags] |= ImGuiBackendFlags_HasMouseCursors
  io[:BackendFlags] |= ImGuiBackendFlags_HasSetMousePos

  bd.mouse_cursors[ImGuiMouseCursor_Arrow] = SDL.CreateSystemCursor(SDL::SYSTEM_CURSOR_DEFAULT)
  bd.mouse_cursors[ImGuiMouseCursor_TextInput] = SDL.CreateSystemCursor(SDL::SYSTEM_CURSOR_TEXT)
  bd.mouse_cursors[ImGuiMouseCursor_ResizeAll] = SDL.CreateSystemCursor(SDL::SYSTEM_CURSOR_MOVE)
  bd.mouse_cursors[ImGuiMouseCursor_ResizeNS] = SDL.CreateSystemCursor(SDL::SYSTEM_CURSOR_NS_RESIZE)
  bd.mouse_cursors[ImGuiMouseCursor_ResizeEW] = SDL.CreateSystemCursor(SDL::SYSTEM_CURSOR_EW_RESIZE)
  bd.mouse_cursors[ImGuiMouseCursor_ResizeNESW] = SDL.CreateSystemCursor(SDL::SYSTEM_CURSOR_NESW_RESIZE)
  bd.mouse_cursors[ImGuiMouseCursor_ResizeNWSE] = SDL.CreateSystemCursor(SDL::SYSTEM_CURSOR_NWSE_RESIZE)
  bd.mouse_cursors[ImGuiMouseCursor_Hand] = SDL.CreateSystemCursor(SDL::SYSTEM_CURSOR_POINTER)
  bd.mouse_cursors[ImGuiMouseCursor_Wait] = SDL.CreateSystemCursor(SDL::SYSTEM_CURSOR_WAIT)
  bd.mouse_cursors[ImGuiMouseCursor_Progress] = SDL.CreateSystemCursor(SDL::SYSTEM_CURSOR_PROGRESS)
  bd.mouse_cursors[ImGuiMouseCursor_NotAllowed] = SDL.CreateSystemCursor(SDL::SYSTEM_CURSOR_NOT_ALLOWED)

  main_viewport = ImGuiViewport.new(ImGui::GetMainViewport())
  main_viewport[:PlatformHandle] = FFI::Pointer.new(bd.window_id)

  SDL.SetHint(SDL::HINT_MOUSE_FOCUS_CLICKTHROUGH, '1') if defined?(SDL::HINT_MOUSE_FOCUS_CLICKTHROUGH)
  SDL.SetHint(SDL::HINT_MOUSE_AUTO_CAPTURE, '0') if defined?(SDL::HINT_MOUSE_AUTO_CAPTURE)

  true
end

.ImplSDL3_InitForD3D(window) ⇒ Object



328
329
330
# File 'lib/imgui_impl_sdl3.rb', line 328

def self.ImplSDL3_InitForD3D(window)
  ImplSDL3_Init(window, nil)
end

.ImplSDL3_InitForMetal(window) ⇒ Object



332
333
334
# File 'lib/imgui_impl_sdl3.rb', line 332

def self.ImplSDL3_InitForMetal(window)
  ImplSDL3_Init(window, nil)
end

.ImplSDL3_InitForOpenGL(window, sdl_gl_context = nil) ⇒ Object



320
321
322
# File 'lib/imgui_impl_sdl3.rb', line 320

def self.ImplSDL3_InitForOpenGL(window, sdl_gl_context = nil)
  ImplSDL3_Init(window, nil)
end

.ImplSDL3_InitForOther(window) ⇒ Object



344
345
346
# File 'lib/imgui_impl_sdl3.rb', line 344

def self.ImplSDL3_InitForOther(window)
  ImplSDL3_Init(window, nil)
end

.ImplSDL3_InitForSDLGPU(window) ⇒ Object



340
341
342
# File 'lib/imgui_impl_sdl3.rb', line 340

def self.ImplSDL3_InitForSDLGPU(window)
  ImplSDL3_Init(window, nil)
end

.ImplSDL3_InitForSDLRenderer(window, renderer) ⇒ Object



336
337
338
# File 'lib/imgui_impl_sdl3.rb', line 336

def self.ImplSDL3_InitForSDLRenderer(window, renderer)
  ImplSDL3_Init(window, renderer)
end

.ImplSDL3_InitForVulkan(window) ⇒ Object



324
325
326
# File 'lib/imgui_impl_sdl3.rb', line 324

def self.ImplSDL3_InitForVulkan(window)
  ImplSDL3_Init(window, nil)
end

.ImplSDL3_NewFrameObject



570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
# File 'lib/imgui_impl_sdl3.rb', line 570

def self.ImplSDL3_NewFrame()
  bd = ImGui_ImplSDL3_GetBackendData()
  raise 'Context or backend not initialized! Did you call ImGui::ImplSDL3_Init()?' if bd == nil

  io = ImGuiIO.new(ImGui::GetIO())

  w, h, scale_x, scale_y = ImplSDL3_GetWindowSizeAndFramebufferScale(bd.window)
  io[:DisplaySize] = ImVec2.create(w.to_f, h.to_f)
  io[:DisplayFramebufferScale][:x] = scale_x
  io[:DisplayFramebufferScale][:y] = scale_y

  frequency = SDL.GetPerformanceFrequency()
  current_time = SDL.GetPerformanceCounter()
  current_time = bd.time + 1 if current_time <= bd.time
  io[:DeltaTime] = bd.time > 0 ? (current_time - bd.time).to_f / frequency.to_f : (1.0 / 60.0)
  bd.time = current_time

  if bd.mouse_pending_leave_frame != 0 && bd.mouse_pending_leave_frame >= ImGui::GetFrameCount() && bd.mouse_buttons_down == 0
    bd.mouse_window_id = 0
    bd.mouse_pending_leave_frame = 0
    io.AddMousePosEvent(-Float::MAX, -Float::MAX)
  end

  ImplSDL3_UpdateMouseData()
  ImplSDL3_UpdateMouseCursor()
  ImplSDL3_UpdateImeFromIO()
  ImplSDL3_UpdateGamepads()
end

.ImplSDL3_ProcessEvent(event) ⇒ Object



202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
# File 'lib/imgui_impl_sdl3.rb', line 202

def self.ImplSDL3_ProcessEvent(event)
  io = ImGuiIO.new(ImGui::GetIO())
  bd = ImGui_ImplSDL3_GetBackendData()
  return false if bd == nil

  event_type = event[:type]

  case event_type
  when SDL::EVENT_MOUSE_MOTION
    return false if ImGui_ImplSDL3_GetViewportForWindowID(event[:motion][:windowID]) == nil
    io.AddMouseSourceEvent(ImGui_ImplSDL3_IsTouchMouse(event[:motion][:which]) ? ImGuiMouseSource_TouchScreen : ImGuiMouseSource_Mouse)
    io.AddMousePosEvent(event[:motion][:x].to_f, event[:motion][:y].to_f)
    true

  when SDL::EVENT_MOUSE_WHEEL
    return false if ImGui_ImplSDL3_GetViewportForWindowID(event[:wheel][:windowID]) == nil
    io.AddMouseSourceEvent(ImGui_ImplSDL3_IsTouchMouse(event[:wheel][:which]) ? ImGuiMouseSource_TouchScreen : ImGuiMouseSource_Mouse)
    io.AddMouseWheelEvent(-event[:wheel][:x].to_f, event[:wheel][:y].to_f)
    true

  when SDL::EVENT_MOUSE_BUTTON_DOWN, SDL::EVENT_MOUSE_BUTTON_UP
    return false if ImGui_ImplSDL3_GetViewportForWindowID(event[:button][:windowID]) == nil
    mouse_button = -1
    mouse_button = 0 if event[:button][:button] == SDL::BUTTON_LEFT
    mouse_button = 1 if event[:button][:button] == SDL::BUTTON_RIGHT
    mouse_button = 2 if event[:button][:button] == SDL::BUTTON_MIDDLE
    mouse_button = 3 if event[:button][:button] == SDL::BUTTON_X1
    mouse_button = 4 if event[:button][:button] == SDL::BUTTON_X2
    return false if mouse_button == -1

    is_down = event_type == SDL::EVENT_MOUSE_BUTTON_DOWN
    io.AddMouseSourceEvent(ImGui_ImplSDL3_IsTouchMouse(event[:button][:which]) ? ImGuiMouseSource_TouchScreen : ImGuiMouseSource_Mouse)
    io.AddMouseButtonEvent(mouse_button, is_down)
    bd.mouse_buttons_down = is_down ? (bd.mouse_buttons_down | (1 << mouse_button)) : (bd.mouse_buttons_down & ~(1 << mouse_button))
    true

  when SDL::EVENT_TEXT_INPUT
    return false if ImGui_ImplSDL3_GetViewportForWindowID(event[:text][:windowID]) == nil
    io.AddInputCharactersUTF8(event[:text][:text].read_string)
    true

  when SDL::EVENT_KEY_DOWN, SDL::EVENT_KEY_UP
    return false if ImGui_ImplSDL3_GetViewportForWindowID(event[:key][:windowID]) == nil
    ImGui_ImplSDL3_UpdateKeyModifiers(event[:key][:mod])
    key = ImGui_ImplSDL3_KeyEventToImGuiKey(event[:key][:key], event[:key][:scancode])
    io.AddKeyEvent(key, event_type == SDL::EVENT_KEY_DOWN)
    io.SetKeyEventNativeDataEx(key, event[:key][:key], event[:key][:scancode], event[:key][:scancode])
    true

  when SDL::EVENT_WINDOW_MOUSE_ENTER
    return false if ImGui_ImplSDL3_GetViewportForWindowID(event[:window][:windowID]) == nil
    bd.mouse_window_id = event[:window][:windowID]
    bd.mouse_pending_leave_frame = 0
    true

  when SDL::EVENT_WINDOW_MOUSE_LEAVE
    return false if ImGui_ImplSDL3_GetViewportForWindowID(event[:window][:windowID]) == nil
    bd.mouse_pending_leave_frame = ImGui::GetFrameCount() + 1
    true

  when SDL::EVENT_WINDOW_FOCUS_GAINED, SDL::EVENT_WINDOW_FOCUS_LOST
    return false if ImGui_ImplSDL3_GetViewportForWindowID(event[:window][:windowID]) == nil
    io.AddFocusEvent(event_type == SDL::EVENT_WINDOW_FOCUS_GAINED)
    true

  when SDL::EVENT_GAMEPAD_ADDED, SDL::EVENT_GAMEPAD_REMOVED
    bd.want_update_gamepads_list = true
    true

  else
    false
  end
end

.ImplSDL3_Saturate(v) ⇒ Object



457
458
459
460
461
# File 'lib/imgui_impl_sdl3.rb', line 457

def self.ImplSDL3_Saturate(v)
  return 0.0 if v < 0.0
  return 1.0 if v > 1.0
  v
end

.ImplSDL3_SetGamepadMode(mode, manual_gamepads_array = nil) ⇒ Object



357
358
359
360
361
362
363
364
365
366
367
368
# File 'lib/imgui_impl_sdl3.rb', line 357

def self.ImplSDL3_SetGamepadMode(mode, manual_gamepads_array = nil)
  bd = ImGui_ImplSDL3_GetBackendData()
  return if bd == nil

  ImplSDL3_CloseGamepads()
  if mode == ImGui_ImplSDL3_GamepadMode_Manual
    bd.gamepads = manual_gamepads_array ? manual_gamepads_array.compact : []
  else
    bd.want_update_gamepads_list = true
  end
  bd.gamepad_mode = mode
end

.ImplSDL3_SetMouseCaptureMode(mode) ⇒ Object



391
392
393
394
395
396
# File 'lib/imgui_impl_sdl3.rb', line 391

def self.ImplSDL3_SetMouseCaptureMode(mode)
  bd = ImGui_ImplSDL3_GetBackendData()
  return if bd == nil
  SDL.CaptureMouse(false) if mode == ImGui_ImplSDL3_MouseCaptureMode_Disabled && bd.mouse_capture_mode != ImGui_ImplSDL3_MouseCaptureMode_Disabled
  bd.mouse_capture_mode = mode
end

.ImplSDL3_ShutdownObject



370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
# File 'lib/imgui_impl_sdl3.rb', line 370

def self.ImplSDL3_Shutdown()
  io = ImGuiIO.new(ImGui::GetIO())
  platform_io = ImGuiPlatformIO.new(ImGui::GetPlatformIO())
  bd = ImGui_ImplSDL3_GetBackendData()
  return if bd == nil

  # Docking branch requires viewport platform handles to be cleared before DestroyContext().
  main_viewport = ImGuiViewport.new(ImGui::GetMainViewport())
  main_viewport[:PlatformHandle] = nil
  main_viewport[:PlatformHandleRaw] = nil

  bd.mouse_cursors.each { |cursor| SDL.DestroyCursor(cursor) if cursor != nil }
  ImplSDL3_CloseGamepads()

  io[:BackendPlatformName] = nil
  io[:BackendPlatformUserData] = nil
  io[:BackendFlags] &= ~(ImGuiBackendFlags_HasMouseCursors | ImGuiBackendFlags_HasSetMousePos | ImGuiBackendFlags_HasGamepad)
  platform_io.ClearPlatformHandlers()
  @@g_BackendData.delete(ImGui::GetCurrentContext().address)
end

.ImplSDL3_UpdateGamepadAnalog(bd, io, key, axis_no, v0, v1) ⇒ Object



471
472
473
474
475
476
477
478
# File 'lib/imgui_impl_sdl3.rb', line 471

def self.ImplSDL3_UpdateGamepadAnalog(bd, io, key, axis_no, v0, v1)
  merged_value = 0.0
  bd.gamepads.each do |gamepad|
    vn = ImplSDL3_Saturate((SDL.GetGamepadAxis(gamepad, axis_no) - v0).to_f / (v1 - v0).to_f)
    merged_value = vn if merged_value < vn
  end
  io.AddKeyAnalogEvent(key, merged_value > 0.1, merged_value)
end

.ImplSDL3_UpdateGamepadButton(bd, io, key, button_no) ⇒ Object



463
464
465
466
467
468
469
# File 'lib/imgui_impl_sdl3.rb', line 463

def self.ImplSDL3_UpdateGamepadButton(bd, io, key, button_no)
  merged_value = false
  bd.gamepads.each do |gamepad|
    merged_value ||= SDL.GetGamepadButton(gamepad, button_no)
  end
  io.AddKeyEvent(key, merged_value)
end

.ImplSDL3_UpdateGamepadsObject



480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
# File 'lib/imgui_impl_sdl3.rb', line 480

def self.ImplSDL3_UpdateGamepads()
  io = ImGuiIO.new(ImGui::GetIO())
  bd = ImGui_ImplSDL3_GetBackendData()
  return if bd == nil

  if bd.want_update_gamepads_list && bd.gamepad_mode != ImGui_ImplSDL3_GamepadMode_Manual
    ImplSDL3_CloseGamepads()
    count_ptr = FFI::MemoryPointer.new(:int)
    gamepads_ptr = SDL.GetGamepads(count_ptr)
    count = count_ptr.read_int
    count.times do |n|
      joystick_id = (gamepads_ptr + n * FFI.type_size(:uint)).read_uint
      gamepad = SDL.OpenGamepad(joystick_id)
      next if gamepad == nil
      bd.gamepads << gamepad
      break if bd.gamepad_mode == ImGui_ImplSDL3_GamepadMode_AutoFirst
    end
    bd.want_update_gamepads_list = false
    SDL.free(gamepads_ptr) if gamepads_ptr != nil
  end

  io[:BackendFlags] &= ~ImGuiBackendFlags_HasGamepad
  return if bd.gamepads.empty?
  io[:BackendFlags] |= ImGuiBackendFlags_HasGamepad

  dead_zone = 8000
  ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadStart, SDL::GAMEPAD_BUTTON_START)
  ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadBack, SDL::GAMEPAD_BUTTON_BACK)
  ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadFaceLeft, SDL::GAMEPAD_BUTTON_WEST)
  ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadFaceRight, SDL::GAMEPAD_BUTTON_EAST)
  ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadFaceUp, SDL::GAMEPAD_BUTTON_NORTH)
  ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadFaceDown, SDL::GAMEPAD_BUTTON_SOUTH)
  ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadDpadLeft, SDL::GAMEPAD_BUTTON_DPAD_LEFT)
  ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadDpadRight, SDL::GAMEPAD_BUTTON_DPAD_RIGHT)
  ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadDpadUp, SDL::GAMEPAD_BUTTON_DPAD_UP)
  ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadDpadDown, SDL::GAMEPAD_BUTTON_DPAD_DOWN)
  ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadL1, SDL::GAMEPAD_BUTTON_LEFT_SHOULDER)
  ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadR1, SDL::GAMEPAD_BUTTON_RIGHT_SHOULDER)
  ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadL2, SDL::GAMEPAD_AXIS_LEFT_TRIGGER, 0.0, 32767.0)
  ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadR2, SDL::GAMEPAD_AXIS_RIGHT_TRIGGER, 0.0, 32767.0)
  ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadL3, SDL::GAMEPAD_BUTTON_LEFT_STICK)
  ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadR3, SDL::GAMEPAD_BUTTON_RIGHT_STICK)
  ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadLStickLeft, SDL::GAMEPAD_AXIS_LEFTX, -dead_zone, -32768.0)
  ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadLStickRight, SDL::GAMEPAD_AXIS_LEFTX, dead_zone, 32767.0)
  ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadLStickUp, SDL::GAMEPAD_AXIS_LEFTY, -dead_zone, -32768.0)
  ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadLStickDown, SDL::GAMEPAD_AXIS_LEFTY, dead_zone, 32767.0)
  ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadRStickLeft, SDL::GAMEPAD_AXIS_RIGHTX, -dead_zone, -32768.0)
  ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadRStickRight, SDL::GAMEPAD_AXIS_RIGHTX, dead_zone, 32767.0)
  ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadRStickUp, SDL::GAMEPAD_AXIS_RIGHTY, -dead_zone, -32768.0)
  ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadRStickDown, SDL::GAMEPAD_AXIS_RIGHTY, dead_zone, 32767.0)
end

.ImplSDL3_UpdateImeFromIOObject



532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
# File 'lib/imgui_impl_sdl3.rb', line 532

def self.ImplSDL3_UpdateImeFromIO()
  io = ImGuiIO.new(ImGui::GetIO())
  bd = ImGui_ImplSDL3_GetBackendData()
  return if bd == nil

  window = SDL.GetKeyboardFocus()
  return if window == nil

  if io[:WantTextInput]
    unless SDL.TextInputActive(window)
      SDL.StartTextInput(window)
    end
  else
    SDL.StopTextInput(window) if SDL.TextInputActive(window)
  end
end

.ImplSDL3_UpdateMouseCursorObject



437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
# File 'lib/imgui_impl_sdl3.rb', line 437

def self.ImplSDL3_UpdateMouseCursor()
  io = ImGuiIO.new(ImGui::GetIO())
  return if (io[:ConfigFlags] & ImGuiConfigFlags_NoMouseCursorChange) != 0

  bd = ImGui_ImplSDL3_GetBackendData()
  return if bd == nil

  imgui_cursor = ImGui::GetMouseCursor()
  if io[:MouseDrawCursor] || imgui_cursor == ImGuiMouseCursor_None
    SDL.HideCursor()
  else
    expected_cursor = bd.mouse_cursors[imgui_cursor] || bd.mouse_cursors[ImGuiMouseCursor_Arrow]
    if bd.mouse_last_cursor != expected_cursor
      SDL.SetCursor(expected_cursor)
      bd.mouse_last_cursor = expected_cursor
    end
    SDL.ShowCursor()
  end
end

.ImplSDL3_UpdateMouseDataObject



398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
# File 'lib/imgui_impl_sdl3.rb', line 398

def self.ImplSDL3_UpdateMouseData()
  bd = ImGui_ImplSDL3_GetBackendData()
  io = ImGuiIO.new(ImGui::GetIO())
  return if bd == nil

  if bd.mouse_capture_mode == ImGui_ImplSDL3_MouseCaptureMode_Enabled
    SDL.CaptureMouse(bd.mouse_buttons_down != 0)
  elsif bd.mouse_capture_mode == ImGui_ImplSDL3_MouseCaptureMode_EnabledAfterDrag
    want_capture = false
    ImGuiMouseButton_COUNT.times do |button_n|
      if ImGui::IsMouseDragging(button_n, 1.0)
        want_capture = true
        break
      end
    end
    SDL.CaptureMouse(want_capture)
  end

  focused_window = SDL.GetKeyboardFocus()
  is_app_focused = (focused_window == bd.window)
  return unless is_app_focused

  if io[:WantSetMousePos]
    SDL.WarpMouseInWindow(bd.window, io[:MousePos][:x], io[:MousePos][:y])
  end

  hovered_window = SDL.GetMouseFocus()
  is_relative_mouse_mode = SDL.GetWindowRelativeMouseMode(bd.window)
  if hovered_window == nil && bd.mouse_can_use_global_state && bd.mouse_buttons_down == 0 && !is_relative_mouse_mode
    mx = FFI::MemoryPointer.new(:float)
    my = FFI::MemoryPointer.new(:float)
    wx = FFI::MemoryPointer.new(:int)
    wy = FFI::MemoryPointer.new(:int)
    SDL.GetGlobalMouseState(mx, my)
    SDL.GetWindowPosition(focused_window, wx, wy)
    io.AddMousePosEvent(mx.read_float - wx.read_int, my.read_float - wy.read_int)
  end
end

.ImplSDL3Renderer_CreateDeviceObjectsObject



297
298
# File 'lib/imgui_impl_sdl3renderer.rb', line 297

def self.ImplSDL3Renderer_CreateDeviceObjects()
end

.ImplSDL3Renderer_DestroyDeviceObjectsObject



300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
# File 'lib/imgui_impl_sdl3renderer.rb', line 300

def self.ImplSDL3Renderer_DestroyDeviceObjects()
  platform_io = ImGuiPlatformIO.new(ImGui::GetPlatformIO())
  textures = platform_io[:Textures]
  textures_data = textures[:Data]
  if textures_data != nil && textures_data.address != 0
    textures[:Size].times do |i|
      tex_ptr = (textures_data + FFI.type_size(:pointer) * i).read_pointer
      next if tex_ptr == nil || tex_ptr.address == 0

      tex = ImTextureData.new(tex_ptr)
      if tex[:RefCount] == 1
        tex.SetStatus(ImTextureStatus_WantDestroy)
        ImplSDL3Renderer_UpdateTexture(tex)
      end
    end
  end
end

.ImplSDL3Renderer_EnsureColorBuffer(backend_data, num_vertices) ⇒ Object



99
100
101
102
103
104
105
# File 'lib/imgui_impl_sdl3renderer.rb', line 99

def self.ImplSDL3Renderer_EnsureColorBuffer(backend_data, num_vertices)
  if backend_data[:color_buffer] == nil || backend_data[:color_buffer_capacity] < num_vertices
    backend_data[:color_buffer] = FFI::MemoryPointer.new(SDL::FColor, num_vertices)
    backend_data[:color_buffer_capacity] = num_vertices
  end
  backend_data[:color_buffer]
end

.ImplSDL3Renderer_Init(renderer) ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/imgui_impl_sdl3renderer.rb', line 37

def self.ImplSDL3Renderer_Init(renderer)
  io = ImGuiIO.new(ImGui::GetIO())
  platform_io = ImGuiPlatformIO.new(ImGui::GetPlatformIO())

  backend_data = {
    bd: ImGui_ImplSDLRenderer3_Data.new,
    color_buffer: nil,
    color_buffer_capacity: 0,
    render_state: nil,
    current_scale_mode: SDL::SCALEMODE_LINEAR
  }
  backend_data[:bd][:Renderer] = renderer

  @@g_BackendRendererUserData[ImGui::GetCurrentContext().address] = backend_data

  io[:BackendRendererUserData] = backend_data[:bd]
  io[:BackendRendererName] = @@g_BackendRendererName
  io[:BackendFlags] |= ImGuiBackendFlags_RendererHasVtxOffset
  io[:BackendFlags] |= ImGuiBackendFlags_RendererHasTextures

  platform_io[:DrawCallback_ResetRenderState] = @@g_SDL3RendererResetRenderStateCallback
  platform_io[:DrawCallback_SetSamplerLinear] = @@g_SDL3RendererSetSamplerLinearCallback
  platform_io[:DrawCallback_SetSamplerNearest] = @@g_SDL3RendererSetSamplerNearestCallback

  true
end

.ImplSDL3Renderer_NewFrameObject



94
95
96
97
# File 'lib/imgui_impl_sdl3renderer.rb', line 94

def self.ImplSDL3Renderer_NewFrame()
  backend_data = ImGui_ImplSDLRenderer3_GetBackendData()
  raise 'Context or backend not initialized! Did you call ImGui::ImplSDL3Renderer_Init()?' if backend_data == nil
end

.ImplSDL3Renderer_RenderDrawData(draw_data_raw, renderer = nil) ⇒ Object



168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
# File 'lib/imgui_impl_sdl3renderer.rb', line 168

def self.ImplSDL3Renderer_RenderDrawData(draw_data_raw, renderer = nil)
  draw_data = draw_data_raw.kind_of?(ImDrawData) ? draw_data_raw : ImDrawData.new(draw_data_raw)
  backend_data = ImGui_ImplSDLRenderer3_GetBackendData()
  return if backend_data == nil

  renderer = backend_data[:bd][:Renderer] if renderer == nil
  return if renderer == nil

  rsx = FFI::MemoryPointer.new(:float)
  rsy = FFI::MemoryPointer.new(:float)
  SDL.GetRenderScale(renderer, rsx, rsy)
  render_scale = ImVec2.create(0, 0)
  render_scale[:x] = (rsx.read_float == 1.0) ? draw_data[:FramebufferScale][:x] : 1.0
  render_scale[:y] = (rsy.read_float == 1.0) ? draw_data[:FramebufferScale][:y] : 1.0

  fb_width = (draw_data[:DisplaySize][:x] * render_scale[:x]).to_i
  fb_height = (draw_data[:DisplaySize][:y] * render_scale[:y]).to_i
  return if fb_width == 0 || fb_height == 0

  if draw_data[:Textures] != nil && draw_data[:Textures].address != 0
    textures = ImVector_ImTextureDataPtr.new(draw_data[:Textures])
    textures_data = textures[:Data]
    if textures_data != nil && textures_data.address != 0
      textures[:Size].times do |i|
        tex_ptr = (textures_data + FFI.type_size(:pointer) * i).read_pointer
        next if tex_ptr == nil || tex_ptr.address == 0

        tex = ImTextureData.new(tex_ptr)
        ImplSDL3Renderer_UpdateTexture(tex) if tex[:Status] != ImTextureStatus_OK
      end
    end
  end

  old_viewport_enabled = SDL.RenderViewportSet(renderer)
  old_clip_enabled = SDL.RenderClipEnabled(renderer)
  old_viewport = SDL::Rect.new
  old_clip_rect = SDL::Rect.new
  SDL.GetRenderViewport(renderer, old_viewport)
  SDL.GetRenderClipRect(renderer, old_clip_rect)

  ImplSDL3Renderer_SetupRenderState(renderer)

  platform_io = ImGuiPlatformIO.new(ImGui::GetPlatformIO())
  backend_data[:render_state] = ImGui_ImplSDLRenderer3_RenderState.new
  backend_data[:render_state][:Renderer] = renderer
  platform_io[:Renderer_RenderState] = backend_data[:render_state]

  clip_off = draw_data[:DisplayPos]
  clip_scale = render_scale
  last_scale_mode = backend_data[:current_scale_mode]

  cmd_lists = draw_data[:CmdLists]
  cmd_lists_data = cmd_lists[:Data]

  if cmd_lists_data != nil && cmd_lists_data.address != 0
    cmd_lists[:Size].times do |n|
      cmd_list_ptr = (cmd_lists_data + FFI.type_size(:pointer) * n).read_pointer
      next if cmd_list_ptr == nil || cmd_list_ptr.address == 0

      cmd_list = ImDrawList.new(cmd_list_ptr)
      vtx_buffer = cmd_list[:VtxBuffer][:Data]
      idx_buffer = cmd_list[:IdxBuffer][:Data]

      cmd_list[:CmdBuffer][:Size].times do |cmd_i|
        pcmd = ImDrawCmd.new(cmd_list[:CmdBuffer][:Data] + ImDrawCmd.size * cmd_i)
        callback_ptr = pcmd[:UserCallback]
        if callback_ptr != nil && callback_ptr.address != 0
          callback_addr = callback_ptr.address
          if callback_addr == @@g_SDL3RendererResetRenderStateCallback.address
            ImplSDL3Renderer_SetupRenderState(renderer)
          elsif callback_addr == @@g_SDL3RendererSetSamplerLinearCallback.address
            backend_data[:current_scale_mode] = SDL::SCALEMODE_LINEAR
          elsif callback_addr == @@g_SDL3RendererSetSamplerNearestCallback.address
            backend_data[:current_scale_mode] = SDL::SCALEMODE_NEAREST
          else
            FFI::Function.new(:void, [:pointer, :pointer], callback_ptr).call(cmd_list.pointer, pcmd.pointer)
          end
          next
        end

        clip_min = ImVec2.create((pcmd[:ClipRect][:x] - clip_off[:x]) * clip_scale[:x], (pcmd[:ClipRect][:y] - clip_off[:y]) * clip_scale[:y])
        clip_max = ImVec2.create((pcmd[:ClipRect][:z] - clip_off[:x]) * clip_scale[:x], (pcmd[:ClipRect][:w] - clip_off[:y]) * clip_scale[:y])

        clip_min[:x] = 0.0 if clip_min[:x] < 0.0
        clip_min[:y] = 0.0 if clip_min[:y] < 0.0
        clip_max[:x] = fb_width.to_f if clip_max[:x] > fb_width
        clip_max[:y] = fb_height.to_f if clip_max[:y] > fb_height
        next if clip_max[:x] <= clip_min[:x] || clip_max[:y] <= clip_min[:y]

        sdl_rect = SDL::Rect.new
        sdl_rect[:x] = clip_min[:x].to_i
        sdl_rect[:y] = clip_min[:y].to_i
        sdl_rect[:w] = (clip_max[:x] - clip_min[:x]).to_i
        sdl_rect[:h] = (clip_max[:y] - clip_min[:y]).to_i
        SDL.SetRenderClipRect(renderer, sdl_rect)

        vtx_base = pcmd[:VtxOffset] * ImDrawVert.size
        xy = vtx_buffer + vtx_base + ImDrawVert.offset_of(:pos)
        uv = vtx_buffer + vtx_base + ImDrawVert.offset_of(:uv)
        color_src = vtx_buffer + vtx_base + ImDrawVert.offset_of(:col)

        num_vertices = cmd_list[:VtxBuffer][:Size] - pcmd[:VtxOffset]
        color_f = ImplSDL3Renderer_UpdateColorBuffer(backend_data, color_src, ImDrawVert.size, num_vertices)

        tex_id = pcmd.GetTexID()
        tex_ptr = ImplSDL3Renderer_TextureIdToPointer(tex_id)
        if last_scale_mode != backend_data[:current_scale_mode]
          SDL.FlushRenderer(renderer)
          last_scale_mode = backend_data[:current_scale_mode]
        end
        SDL.SetTextureScaleMode(tex_ptr, backend_data[:current_scale_mode]) if tex_ptr != nil

        SDL.RenderGeometryRaw(renderer, tex_ptr,
                              xy, ImDrawVert.size,
                              color_f, SDL::FColor.size,
                              uv, ImDrawVert.size,
                              num_vertices,
                              idx_buffer + FFI.type_size(:ImDrawIdx) * pcmd[:IdxOffset], pcmd[:ElemCount], FFI.type_size(:ImDrawIdx))
      end
    end
  end

  platform_io[:Renderer_RenderState] = nil
  backend_data[:render_state] = nil

  SDL.SetRenderViewport(renderer, old_viewport_enabled ? old_viewport : nil)
  SDL.SetRenderClipRect(renderer, old_clip_enabled ? old_clip_rect : nil)
end

.ImplSDL3Renderer_SetupRenderState(renderer) ⇒ Object



80
81
82
83
84
85
86
# File 'lib/imgui_impl_sdl3renderer.rb', line 80

def self.ImplSDL3Renderer_SetupRenderState(renderer)
  backend_data = ImGui_ImplSDLRenderer3_GetBackendData()

  SDL.SetRenderViewport(renderer, nil)
  SDL.SetRenderClipRect(renderer, nil)
  backend_data[:current_scale_mode] = SDL::SCALEMODE_LINEAR if backend_data != nil
end

.ImplSDL3Renderer_ShutdownObject



64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/imgui_impl_sdl3renderer.rb', line 64

def self.ImplSDL3Renderer_Shutdown()
  io = ImGuiIO.new(ImGui::GetIO())
  platform_io = ImGuiPlatformIO.new(ImGui::GetPlatformIO())

  ImplSDL3Renderer_DestroyDeviceObjects()

  if ImGui::GetCurrentContext() != nil
    @@g_BackendRendererUserData.delete(ImGui::GetCurrentContext().address)
  end

  io[:BackendRendererName] = nil
  io[:BackendRendererUserData] = nil
  io[:BackendFlags] &= ~(ImGuiBackendFlags_RendererHasVtxOffset | ImGuiBackendFlags_RendererHasTextures)
  platform_io.ClearRendererHandlers()
end

.ImplSDL3Renderer_TextureIdToPointer(tex_id) ⇒ Object



88
89
90
91
92
# File 'lib/imgui_impl_sdl3renderer.rb', line 88

def self.ImplSDL3Renderer_TextureIdToPointer(tex_id)
  return nil if tex_id == nil || tex_id == 0

  FFI::Pointer.new(tex_id)
end

.ImplSDL3Renderer_UpdateColorBuffer(backend_data, color_src, color_stride, num_vertices) ⇒ Object



107
108
109
110
111
112
113
114
115
116
117
118
# File 'lib/imgui_impl_sdl3renderer.rb', line 107

def self.ImplSDL3Renderer_UpdateColorBuffer(backend_data, color_src, color_stride, num_vertices)
  color_dst = ImplSDL3Renderer_EnsureColorBuffer(backend_data, num_vertices)
  num_vertices.times do |i|
    packed = (color_src + i * color_stride).read_uint
    c = SDL::FColor.new(color_dst + i * SDL::FColor.size)
    c[:r] = ((packed >> 0) & 0xff) / 255.0
    c[:g] = ((packed >> 8) & 0xff) / 255.0
    c[:b] = ((packed >> 16) & 0xff) / 255.0
    c[:a] = ((packed >> 24) & 0xff) / 255.0
  end
  color_dst
end

.ImplSDL3Renderer_UpdateTexture(tex_raw) ⇒ Object



120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
# File 'lib/imgui_impl_sdl3renderer.rb', line 120

def self.ImplSDL3Renderer_UpdateTexture(tex_raw)
  backend_data = ImGui_ImplSDLRenderer3_GetBackendData()
  return if backend_data == nil

  tex = tex_raw.kind_of?(ImTextureData) ? tex_raw : ImTextureData.new(tex_raw)

  case tex[:Status]
  when ImTextureStatus_WantCreate
    return if tex[:Format] != ImTextureFormat_RGBA32

    sdl_texture = SDL.CreateTexture(backend_data[:bd][:Renderer], SDL::PIXELFORMAT_RGBA32, SDL::TEXTUREACCESS_STATIC, tex[:Width], tex[:Height])
    if sdl_texture == nil
        error = SDL.GetError()
        puts "SDL_CreateTexture failed: #{error.read_string}"
    end
    raise 'Backend failed to create SDL texture!' if sdl_texture == nil

    SDL.UpdateTexture(sdl_texture, nil, tex.GetPixels(), tex.GetPitch())
    SDL.SetTextureBlendMode(sdl_texture, SDL::BLENDMODE_BLEND)
    SDL.SetTextureScaleMode(sdl_texture, SDL::SCALEMODE_LINEAR)

    tex.SetTexID(sdl_texture.address)
    tex.SetStatus(ImTextureStatus_OK)

  when ImTextureStatus_WantUpdates
    sdl_texture = ImplSDL3Renderer_TextureIdToPointer(tex.GetTexID())
    return if sdl_texture == nil

    updates = tex[:Updates]
    updates[:Size].times do |i|
      r = ImTextureRect.new(updates[:Data] + ImTextureRect.size * i)
      sdl_rect = SDL::Rect.new
      sdl_rect[:x] = r[:x]
      sdl_rect[:y] = r[:y]
      sdl_rect[:w] = r[:w]
      sdl_rect[:h] = r[:h]
      SDL.UpdateTexture(sdl_texture, sdl_rect, tex.GetPixelsAt(r[:x], r[:y]), tex.GetPitch())
    end
    tex.SetStatus(ImTextureStatus_OK)

  when ImTextureStatus_WantDestroy
    sdl_texture = ImplSDL3Renderer_TextureIdToPointer(tex.GetTexID())
    SDL.DestroyTexture(sdl_texture) if sdl_texture != nil
    tex.SetTexID(0)
    tex.SetStatus(ImTextureStatus_Destroyed)
  end
end

.import_symbols(output_error = false) ⇒ Object



5993
5994
5995
5996
5997
5998
5999
6000
6001
6002
6003
6004
6005
6006
6007
6008
6009
6010
6011
6012
6013
6014
6015
6016
6017
6018
6019
6020
6021
6022
6023
6024
6025
6026
6027
6028
6029
6030
6031
6032
6033
6034
6035
6036
6037
6038
6039
6040
6041
6042
6043
6044
6045
6046
6047
6048
6049
6050
6051
6052
6053
6054
6055
6056
6057
6058
6059
6060
6061
6062
6063
6064
6065
6066
6067
6068
6069
6070
6071
6072
6073
6074
6075
6076
6077
6078
6079
6080
6081
6082
6083
6084
6085
6086
6087
6088
6089
6090
6091
6092
6093
6094
6095
6096
6097
6098
6099
6100
6101
6102
6103
6104
6105
6106
6107
6108
6109
6110
6111
6112
6113
6114
6115
6116
6117
6118
6119
6120
6121
6122
6123
6124
6125
6126
6127
6128
6129
6130
6131
6132
6133
6134
6135
6136
6137
6138
6139
6140
6141
6142
6143
6144
6145
6146
6147
6148
6149
6150
6151
6152
6153
6154
6155
6156
6157
6158
6159
6160
6161
6162
6163
6164
6165
6166
6167
6168
6169
6170
6171
6172
6173
6174
6175
6176
6177
6178
6179
6180
6181
6182
6183
6184
6185
6186
6187
6188
6189
6190
6191
6192
6193
6194
6195
6196
6197
6198
6199
6200
6201
6202
6203
6204
6205
6206
6207
6208
6209
6210
6211
6212
6213
6214
6215
6216
6217
6218
6219
6220
6221
6222
6223
6224
6225
6226
6227
6228
6229
6230
6231
6232
6233
6234
6235
6236
6237
6238
6239
6240
6241
6242
6243
6244
6245
6246
6247
6248
6249
6250
6251
6252
6253
6254
6255
6256
6257
6258
6259
6260
6261
6262
6263
6264
6265
6266
6267
6268
6269
6270
6271
6272
6273
6274
6275
6276
6277
6278
6279
6280
6281
6282
6283
6284
6285
6286
6287
6288
6289
6290
6291
6292
6293
6294
6295
6296
6297
6298
6299
6300
6301
6302
6303
6304
6305
6306
6307
6308
6309
6310
6311
6312
6313
6314
6315
6316
6317
6318
6319
6320
6321
6322
6323
6324
6325
6326
6327
6328
6329
6330
6331
6332
6333
6334
6335
6336
6337
6338
6339
6340
6341
6342
6343
6344
6345
6346
6347
6348
6349
6350
6351
6352
6353
6354
6355
6356
6357
6358
6359
6360
6361
6362
6363
6364
6365
6366
6367
6368
6369
6370
6371
6372
6373
6374
6375
6376
6377
6378
6379
6380
6381
6382
6383
6384
6385
6386
6387
6388
6389
6390
6391
6392
6393
6394
6395
6396
6397
6398
6399
6400
6401
6402
6403
6404
6405
6406
6407
6408
6409
6410
6411
6412
6413
6414
6415
6416
6417
6418
6419
6420
6421
6422
6423
6424
6425
6426
6427
6428
6429
6430
6431
6432
6433
6434
6435
6436
6437
6438
6439
6440
6441
6442
6443
6444
6445
6446
6447
6448
6449
6450
6451
6452
6453
6454
6455
6456
6457
6458
6459
6460
6461
6462
6463
6464
6465
6466
6467
6468
6469
6470
6471
6472
6473
6474
6475
6476
6477
6478
6479
6480
6481
6482
6483
6484
6485
6486
6487
6488
6489
6490
6491
6492
6493
6494
6495
6496
6497
6498
6499
6500
6501
6502
6503
6504
6505
6506
6507
6508
6509
6510
6511
6512
6513
6514
6515
6516
6517
6518
6519
6520
6521
6522
6523
6524
6525
6526
6527
6528
6529
6530
6531
6532
6533
6534
6535
6536
6537
6538
6539
6540
6541
6542
6543
6544
6545
6546
6547
6548
6549
6550
6551
6552
6553
6554
6555
6556
6557
6558
6559
6560
6561
6562
6563
6564
6565
6566
6567
6568
6569
6570
6571
6572
6573
6574
6575
6576
6577
6578
6579
6580
6581
6582
6583
6584
6585
6586
6587
6588
6589
6590
6591
6592
6593
6594
6595
6596
6597
6598
6599
6600
6601
6602
6603
6604
6605
6606
6607
6608
6609
6610
6611
6612
6613
6614
6615
6616
6617
6618
6619
6620
6621
6622
6623
6624
6625
6626
6627
6628
6629
6630
6631
6632
6633
6634
6635
6636
6637
6638
6639
6640
6641
6642
6643
6644
6645
6646
6647
6648
6649
6650
6651
6652
6653
6654
6655
6656
6657
6658
6659
6660
6661
6662
6663
6664
6665
6666
6667
6668
6669
6670
6671
6672
6673
6674
6675
6676
6677
6678
6679
6680
6681
6682
6683
6684
6685
6686
6687
6688
6689
6690
6691
6692
6693
6694
6695
6696
6697
6698
6699
6700
6701
6702
6703
6704
6705
6706
6707
6708
6709
6710
6711
6712
6713
6714
6715
6716
6717
6718
6719
6720
6721
6722
6723
6724
6725
6726
6727
6728
6729
6730
6731
6732
6733
6734
6735
6736
6737
6738
6739
6740
6741
6742
6743
6744
6745
6746
6747
6748
6749
6750
6751
6752
6753
6754
6755
6756
6757
6758
6759
6760
6761
6762
6763
6764
6765
6766
6767
6768
6769
6770
6771
6772
6773
6774
6775
6776
6777
6778
6779
6780
6781
6782
6783
6784
6785
6786
6787
6788
6789
6790
6791
6792
6793
6794
6795
6796
6797
6798
6799
6800
6801
6802
6803
6804
6805
6806
6807
6808
6809
6810
6811
6812
6813
6814
6815
6816
6817
6818
6819
6820
6821
6822
6823
6824
6825
6826
6827
6828
6829
6830
6831
6832
6833
6834
6835
6836
6837
6838
6839
6840
6841
6842
6843
6844
6845
6846
6847
6848
6849
6850
6851
6852
6853
6854
6855
6856
6857
6858
6859
6860
6861
6862
6863
6864
6865
6866
6867
6868
6869
6870
6871
6872
6873
6874
6875
6876
6877
6878
6879
6880
6881
6882
6883
6884
6885
6886
6887
6888
6889
6890
6891
6892
6893
6894
6895
6896
6897
6898
6899
6900
6901
6902
6903
6904
6905
6906
6907
6908
6909
6910
6911
6912
6913
6914
6915
6916
6917
6918
6919
6920
6921
6922
6923
6924
6925
6926
6927
6928
6929
6930
6931
6932
6933
6934
6935
6936
6937
6938
6939
6940
6941
6942
6943
6944
6945
6946
6947
6948
6949
6950
6951
6952
6953
6954
6955
6956
6957
6958
6959
6960
6961
6962
6963
6964
6965
6966
6967
6968
6969
6970
6971
6972
6973
6974
6975
6976
6977
6978
6979
6980
6981
6982
6983
6984
6985
6986
6987
6988
6989
6990
6991
6992
6993
6994
6995
6996
6997
6998
6999
7000
7001
7002
7003
7004
7005
7006
7007
7008
7009
7010
7011
7012
7013
7014
7015
7016
7017
7018
7019
7020
7021
7022
7023
7024
7025
7026
7027
7028
7029
7030
7031
7032
7033
7034
7035
7036
7037
7038
7039
7040
7041
7042
7043
7044
7045
7046
7047
7048
7049
7050
7051
7052
7053
7054
7055
7056
7057
7058
7059
7060
7061
7062
7063
7064
7065
7066
7067
7068
7069
7070
7071
7072
7073
7074
7075
7076
7077
7078
7079
7080
7081
7082
7083
7084
7085
7086
7087
7088
7089
7090
7091
7092
7093
7094
7095
7096
7097
7098
7099
7100
7101
7102
7103
7104
7105
7106
7107
7108
7109
7110
7111
7112
7113
7114
7115
7116
7117
7118
7119
7120
7121
7122
7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
7141
7142
7143
7144
7145
7146
7147
7148
7149
7150
7151
7152
7153
7154
7155
7156
7157
7158
7159
7160
7161
7162
7163
7164
7165
7166
7167
7168
7169
7170
7171
7172
7173
7174
7175
7176
7177
7178
7179
7180
7181
7182
7183
7184
7185
7186
7187
7188
7189
7190
7191
7192
7193
7194
7195
7196
7197
7198
7199
7200
7201
7202
7203
7204
7205
7206
7207
7208
7209
7210
7211
7212
7213
7214
7215
7216
7217
7218
7219
7220
7221
7222
7223
7224
7225
7226
7227
7228
7229
7230
7231
7232
7233
7234
7235
7236
7237
7238
7239
7240
7241
7242
7243
7244
7245
7246
7247
7248
7249
7250
7251
7252
7253
7254
7255
7256
7257
7258
7259
7260
7261
7262
7263
7264
7265
7266
7267
7268
7269
7270
7271
7272
7273
7274
7275
7276
7277
7278
7279
7280
7281
7282
7283
7284
7285
7286
7287
7288
7289
7290
7291
7292
7293
7294
7295
7296
7297
7298
7299
7300
7301
7302
7303
7304
7305
7306
7307
7308
7309
7310
7311
7312
7313
7314
7315
7316
7317
7318
7319
7320
7321
7322
7323
7324
7325
7326
7327
7328
7329
7330
7331
7332
7333
7334
7335
7336
7337
7338
7339
7340
7341
7342
7343
7344
7345
7346
7347
7348
7349
7350
7351
7352
7353
7354
7355
7356
7357
7358
7359
7360
7361
7362
7363
7364
7365
7366
7367
7368
7369
7370
7371
7372
7373
7374
7375
7376
7377
7378
7379
7380
7381
7382
7383
7384
7385
7386
7387
7388
7389
7390
7391
7392
7393
7394
7395
7396
7397
7398
7399
7400
7401
7402
7403
7404
7405
7406
7407
7408
7409
7410
7411
7412
7413
7414
7415
7416
7417
7418
7419
7420
7421
7422
7423
7424
7425
7426
7427
7428
7429
7430
7431
7432
7433
7434
7435
7436
7437
7438
7439
7440
7441
7442
7443
7444
7445
7446
7447
7448
7449
7450
7451
7452
7453
7454
7455
7456
7457
7458
7459
7460
7461
7462
7463
7464
7465
7466
7467
7468
7469
7470
7471
7472
7473
7474
7475
7476
7477
7478
7479
7480
7481
7482
7483
7484
7485
7486
7487
7488
7489
7490
7491
7492
7493
7494
7495
7496
7497
7498
7499
7500
7501
7502
7503
7504
7505
7506
7507
7508
7509
7510
7511
7512
7513
7514
7515
7516
7517
7518
7519
7520
7521
7522
7523
7524
7525
7526
7527
7528
7529
7530
7531
7532
7533
7534
7535
7536
7537
7538
7539
7540
7541
7542
7543
7544
7545
7546
7547
7548
7549
7550
7551
7552
7553
7554
7555
7556
7557
7558
7559
7560
7561
7562
7563
7564
7565
7566
7567
7568
7569
7570
7571
7572
7573
# File 'lib/imgui.rb', line 5993

def self.import_symbols(output_error = false)
  callback :ImGuiInputTextCallback, [:pointer], :int
  callback :ImGuiSizeCallback, [:pointer], :void
  callback :ImGuiMemAllocFunc, [:size_t, :pointer], :pointer
  callback :ImGuiMemFreeFunc, [:pointer, :pointer], :void
  callback :ImDrawCallback, [:pointer, :pointer], :void
  callback :ImGuiErrorCallback, [:pointer, :pointer, :pointer], :void
  callback :ImGuiContextHookCallback, [:pointer, :pointer], :void
  callback :ImGuiDemoMarkerCallback, [:pointer, :int, :pointer], :void

  entries = [
    [:ImTextureRef_GetTexID, :ImTextureRef_GetTexID, [:pointer], :uint64],
    [:ImGui_CreateContext, :ImGui_CreateContext, [:pointer], :pointer],
    [:ImGui_DestroyContext, :ImGui_DestroyContext, [:pointer], :void],
    [:ImGui_GetCurrentContext, :ImGui_GetCurrentContext, [], :pointer],
    [:ImGui_SetCurrentContext, :ImGui_SetCurrentContext, [:pointer], :void],
    [:ImGui_GetIO, :ImGui_GetIO, [], :pointer],
    [:ImGui_GetPlatformIO, :ImGui_GetPlatformIO, [], :pointer],
    [:ImGui_GetStyle, :ImGui_GetStyle, [], :pointer],
    [:ImGui_NewFrame, :ImGui_NewFrame, [], :void],
    [:ImGui_EndFrame, :ImGui_EndFrame, [], :void],
    [:ImGui_Render, :ImGui_Render, [], :void],
    [:ImGui_GetDrawData, :ImGui_GetDrawData, [], :pointer],
    [:ImGui_ShowDemoWindow, :ImGui_ShowDemoWindow, [:pointer], :void],
    [:ImGui_ShowMetricsWindow, :ImGui_ShowMetricsWindow, [:pointer], :void],
    [:ImGui_ShowDebugLogWindow, :ImGui_ShowDebugLogWindow, [:pointer], :void],
    [:ImGui_ShowIDStackToolWindow, :ImGui_ShowIDStackToolWindow, [], :void],
    [:ImGui_ShowIDStackToolWindowEx, :ImGui_ShowIDStackToolWindowEx, [:pointer], :void],
    [:ImGui_ShowAboutWindow, :ImGui_ShowAboutWindow, [:pointer], :void],
    [:ImGui_ShowStyleEditor, :ImGui_ShowStyleEditor, [:pointer], :void],
    [:ImGui_ShowStyleSelector, :ImGui_ShowStyleSelector, [:pointer], :bool],
    [:ImGui_ShowFontSelector, :ImGui_ShowFontSelector, [:pointer], :void],
    [:ImGui_ShowUserGuide, :ImGui_ShowUserGuide, [], :void],
    [:ImGui_GetVersion, :ImGui_GetVersion, [], :pointer],
    [:ImGui_StyleColorsDark, :ImGui_StyleColorsDark, [:pointer], :void],
    [:ImGui_StyleColorsLight, :ImGui_StyleColorsLight, [:pointer], :void],
    [:ImGui_StyleColorsClassic, :ImGui_StyleColorsClassic, [:pointer], :void],
    [:ImGui_Begin, :ImGui_Begin, [:pointer, :pointer, :int], :bool],
    [:ImGui_End, :ImGui_End, [], :void],
    [:ImGui_BeginChild, :ImGui_BeginChild, [:pointer, ImVec2.by_value, :int, :int], :bool],
    [:ImGui_BeginChildID, :ImGui_BeginChildID, [:uint, ImVec2.by_value, :int, :int], :bool],
    [:ImGui_EndChild, :ImGui_EndChild, [], :void],
    [:ImGui_IsWindowAppearing, :ImGui_IsWindowAppearing, [], :bool],
    [:ImGui_IsWindowCollapsed, :ImGui_IsWindowCollapsed, [], :bool],
    [:ImGui_IsWindowFocused, :ImGui_IsWindowFocused, [:int], :bool],
    [:ImGui_IsWindowHovered, :ImGui_IsWindowHovered, [:int], :bool],
    [:ImGui_GetWindowDrawList, :ImGui_GetWindowDrawList, [], :pointer],
    [:ImGui_GetWindowDpiScale, :ImGui_GetWindowDpiScale, [], :float],
    [:ImGui_GetWindowPos, :ImGui_GetWindowPos, [], ImVec2.by_value],
    [:ImGui_GetWindowSize, :ImGui_GetWindowSize, [], ImVec2.by_value],
    [:ImGui_GetWindowWidth, :ImGui_GetWindowWidth, [], :float],
    [:ImGui_GetWindowHeight, :ImGui_GetWindowHeight, [], :float],
    [:ImGui_GetWindowViewport, :ImGui_GetWindowViewport, [], :pointer],
    [:ImGui_SetNextWindowPos, :ImGui_SetNextWindowPos, [ImVec2.by_value, :int], :void],
    [:ImGui_SetNextWindowPosEx, :ImGui_SetNextWindowPosEx, [ImVec2.by_value, :int, ImVec2.by_value], :void],
    [:ImGui_SetNextWindowSize, :ImGui_SetNextWindowSize, [ImVec2.by_value, :int], :void],
    [:ImGui_SetNextWindowSizeConstraints, :ImGui_SetNextWindowSizeConstraints, [ImVec2.by_value, ImVec2.by_value, :ImGuiSizeCallback, :pointer], :void],
    [:ImGui_SetNextWindowContentSize, :ImGui_SetNextWindowContentSize, [ImVec2.by_value], :void],
    [:ImGui_SetNextWindowCollapsed, :ImGui_SetNextWindowCollapsed, [:bool, :int], :void],
    [:ImGui_SetNextWindowFocus, :ImGui_SetNextWindowFocus, [], :void],
    [:ImGui_SetNextWindowScroll, :ImGui_SetNextWindowScroll, [ImVec2.by_value], :void],
    [:ImGui_SetNextWindowBgAlpha, :ImGui_SetNextWindowBgAlpha, [:float], :void],
    [:ImGui_SetNextWindowViewport, :ImGui_SetNextWindowViewport, [:uint], :void],
    [:ImGui_SetWindowPos, :ImGui_SetWindowPos, [ImVec2.by_value, :int], :void],
    [:ImGui_SetWindowSize, :ImGui_SetWindowSize, [ImVec2.by_value, :int], :void],
    [:ImGui_SetWindowCollapsed, :ImGui_SetWindowCollapsed, [:bool, :int], :void],
    [:ImGui_SetWindowFocus, :ImGui_SetWindowFocus, [], :void],
    [:ImGui_SetWindowPosStr, :ImGui_SetWindowPosStr, [:pointer, ImVec2.by_value, :int], :void],
    [:ImGui_SetWindowSizeStr, :ImGui_SetWindowSizeStr, [:pointer, ImVec2.by_value, :int], :void],
    [:ImGui_SetWindowCollapsedStr, :ImGui_SetWindowCollapsedStr, [:pointer, :bool, :int], :void],
    [:ImGui_SetWindowFocusStr, :ImGui_SetWindowFocusStr, [:pointer], :void],
    [:ImGui_GetScrollX, :ImGui_GetScrollX, [], :float],
    [:ImGui_GetScrollY, :ImGui_GetScrollY, [], :float],
    [:ImGui_SetScrollX, :ImGui_SetScrollX, [:float], :void],
    [:ImGui_SetScrollY, :ImGui_SetScrollY, [:float], :void],
    [:ImGui_GetScrollMaxX, :ImGui_GetScrollMaxX, [], :float],
    [:ImGui_GetScrollMaxY, :ImGui_GetScrollMaxY, [], :float],
    [:ImGui_SetScrollHereX, :ImGui_SetScrollHereX, [:float], :void],
    [:ImGui_SetScrollHereY, :ImGui_SetScrollHereY, [:float], :void],
    [:ImGui_SetScrollFromPosX, :ImGui_SetScrollFromPosX, [:float, :float], :void],
    [:ImGui_SetScrollFromPosY, :ImGui_SetScrollFromPosY, [:float, :float], :void],
    [:ImGui_PushFontFloat, :ImGui_PushFontFloat, [:pointer, :float], :void],
    [:ImGui_PopFont, :ImGui_PopFont, [], :void],
    [:ImGui_GetFont, :ImGui_GetFont, [], :pointer],
    [:ImGui_GetFontSize, :ImGui_GetFontSize, [], :float],
    [:ImGui_GetFontBaked, :ImGui_GetFontBaked, [], :pointer],
    [:ImGui_PushStyleColor, :ImGui_PushStyleColor, [:int, :uint], :void],
    [:ImGui_PushStyleColorImVec4, :ImGui_PushStyleColorImVec4, [:int, ImVec4.by_value], :void],
    [:ImGui_PopStyleColor, :ImGui_PopStyleColor, [], :void],
    [:ImGui_PopStyleColorEx, :ImGui_PopStyleColorEx, [:int], :void],
    [:ImGui_PushStyleVar, :ImGui_PushStyleVar, [:int, :float], :void],
    [:ImGui_PushStyleVarImVec2, :ImGui_PushStyleVarImVec2, [:int, ImVec2.by_value], :void],
    [:ImGui_PushStyleVarX, :ImGui_PushStyleVarX, [:int, :float], :void],
    [:ImGui_PushStyleVarY, :ImGui_PushStyleVarY, [:int, :float], :void],
    [:ImGui_PopStyleVar, :ImGui_PopStyleVar, [], :void],
    [:ImGui_PopStyleVarEx, :ImGui_PopStyleVarEx, [:int], :void],
    [:ImGui_PushItemFlag, :ImGui_PushItemFlag, [:int, :bool], :void],
    [:ImGui_PopItemFlag, :ImGui_PopItemFlag, [], :void],
    [:ImGui_PushItemWidth, :ImGui_PushItemWidth, [:float], :void],
    [:ImGui_PopItemWidth, :ImGui_PopItemWidth, [], :void],
    [:ImGui_SetNextItemWidth, :ImGui_SetNextItemWidth, [:float], :void],
    [:ImGui_CalcItemWidth, :ImGui_CalcItemWidth, [], :float],
    [:ImGui_PushTextWrapPos, :ImGui_PushTextWrapPos, [:float], :void],
    [:ImGui_PopTextWrapPos, :ImGui_PopTextWrapPos, [], :void],
    [:ImGui_GetFontTexUvWhitePixel, :ImGui_GetFontTexUvWhitePixel, [], ImVec2.by_value],
    [:ImGui_GetColorU32, :ImGui_GetColorU32, [:int], :uint],
    [:ImGui_GetColorU32Ex, :ImGui_GetColorU32Ex, [:int, :float], :uint],
    [:ImGui_GetColorU32ImVec4, :ImGui_GetColorU32ImVec4, [ImVec4.by_value], :uint],
    [:ImGui_GetColorU32ImU32, :ImGui_GetColorU32ImU32, [:uint], :uint],
    [:ImGui_GetColorU32ImU32Ex, :ImGui_GetColorU32ImU32Ex, [:uint, :float], :uint],
    [:ImGui_GetStyleColorVec4, :ImGui_GetStyleColorVec4, [:int], :pointer],
    [:ImGui_GetCursorScreenPos, :ImGui_GetCursorScreenPos, [], ImVec2.by_value],
    [:ImGui_SetCursorScreenPos, :ImGui_SetCursorScreenPos, [ImVec2.by_value], :void],
    [:ImGui_GetContentRegionAvail, :ImGui_GetContentRegionAvail, [], ImVec2.by_value],
    [:ImGui_GetCursorPos, :ImGui_GetCursorPos, [], ImVec2.by_value],
    [:ImGui_GetCursorPosX, :ImGui_GetCursorPosX, [], :float],
    [:ImGui_GetCursorPosY, :ImGui_GetCursorPosY, [], :float],
    [:ImGui_SetCursorPos, :ImGui_SetCursorPos, [ImVec2.by_value], :void],
    [:ImGui_SetCursorPosX, :ImGui_SetCursorPosX, [:float], :void],
    [:ImGui_SetCursorPosY, :ImGui_SetCursorPosY, [:float], :void],
    [:ImGui_GetCursorStartPos, :ImGui_GetCursorStartPos, [], ImVec2.by_value],
    [:ImGui_Separator, :ImGui_Separator, [], :void],
    [:ImGui_SameLine, :ImGui_SameLine, [], :void],
    [:ImGui_SameLineEx, :ImGui_SameLineEx, [:float, :float], :void],
    [:ImGui_NewLine, :ImGui_NewLine, [], :void],
    [:ImGui_Spacing, :ImGui_Spacing, [], :void],
    [:ImGui_Dummy, :ImGui_Dummy, [ImVec2.by_value], :void],
    [:ImGui_Indent, :ImGui_Indent, [], :void],
    [:ImGui_IndentEx, :ImGui_IndentEx, [:float], :void],
    [:ImGui_Unindent, :ImGui_Unindent, [], :void],
    [:ImGui_UnindentEx, :ImGui_UnindentEx, [:float], :void],
    [:ImGui_BeginGroup, :ImGui_BeginGroup, [], :void],
    [:ImGui_EndGroup, :ImGui_EndGroup, [], :void],
    [:ImGui_AlignTextToFramePadding, :ImGui_AlignTextToFramePadding, [], :void],
    [:ImGui_GetTextLineHeight, :ImGui_GetTextLineHeight, [], :float],
    [:ImGui_GetTextLineHeightWithSpacing, :ImGui_GetTextLineHeightWithSpacing, [], :float],
    [:ImGui_GetFrameHeight, :ImGui_GetFrameHeight, [], :float],
    [:ImGui_GetFrameHeightWithSpacing, :ImGui_GetFrameHeightWithSpacing, [], :float],
    [:ImGui_PushID, :ImGui_PushID, [:pointer], :void],
    [:ImGui_PushIDStr, :ImGui_PushIDStr, [:pointer, :pointer], :void],
    [:ImGui_PushIDPtr, :ImGui_PushIDPtr, [:pointer], :void],
    [:ImGui_PushIDInt, :ImGui_PushIDInt, [:int], :void],
    [:ImGui_PopID, :ImGui_PopID, [], :void],
    [:ImGui_GetID, :ImGui_GetID, [:pointer], :uint],
    [:ImGui_GetIDStr, :ImGui_GetIDStr, [:pointer, :pointer], :uint],
    [:ImGui_GetIDPtr, :ImGui_GetIDPtr, [:pointer], :uint],
    [:ImGui_GetIDInt, :ImGui_GetIDInt, [:int], :uint],
    [:ImGui_TextUnformatted, :ImGui_TextUnformatted, [:pointer], :void],
    [:ImGui_TextUnformattedEx, :ImGui_TextUnformattedEx, [:pointer, :pointer], :void],
    [:ImGui_Text, :ImGui_Text, [:pointer, :varargs], :void],
    [:ImGui_TextColored, :ImGui_TextColored, [ImVec4.by_value, :pointer, :varargs], :void],
    [:ImGui_TextDisabled, :ImGui_TextDisabled, [:pointer, :varargs], :void],
    [:ImGui_TextWrapped, :ImGui_TextWrapped, [:pointer, :varargs], :void],
    [:ImGui_LabelText, :ImGui_LabelText, [:pointer, :pointer, :varargs], :void],
    [:ImGui_BulletText, :ImGui_BulletText, [:pointer, :varargs], :void],
    [:ImGui_SeparatorText, :ImGui_SeparatorText, [:pointer], :void],
    [:ImGui_Button, :ImGui_Button, [:pointer], :bool],
    [:ImGui_ButtonEx, :ImGui_ButtonEx, [:pointer, ImVec2.by_value], :bool],
    [:ImGui_SmallButton, :ImGui_SmallButton, [:pointer], :bool],
    [:ImGui_InvisibleButton, :ImGui_InvisibleButton, [:pointer, ImVec2.by_value, :int], :bool],
    [:ImGui_ArrowButton, :ImGui_ArrowButton, [:pointer, :int], :bool],
    [:ImGui_Checkbox, :ImGui_Checkbox, [:pointer, :pointer], :bool],
    [:ImGui_CheckboxFlagsIntPtr, :ImGui_CheckboxFlagsIntPtr, [:pointer, :pointer, :int], :bool],
    [:ImGui_CheckboxFlagsUintPtr, :ImGui_CheckboxFlagsUintPtr, [:pointer, :pointer, :uint], :bool],
    [:ImGui_RadioButton, :ImGui_RadioButton, [:pointer, :bool], :bool],
    [:ImGui_RadioButtonIntPtr, :ImGui_RadioButtonIntPtr, [:pointer, :pointer, :int], :bool],
    [:ImGui_ProgressBar, :ImGui_ProgressBar, [:float, ImVec2.by_value, :pointer], :void],
    [:ImGui_Bullet, :ImGui_Bullet, [], :void],
    [:ImGui_TextLink, :ImGui_TextLink, [:pointer], :bool],
    [:ImGui_TextLinkOpenURL, :ImGui_TextLinkOpenURL, [:pointer], :bool],
    [:ImGui_TextLinkOpenURLEx, :ImGui_TextLinkOpenURLEx, [:pointer, :pointer], :bool],
    [:ImGui_Image, :ImGui_Image, [ImTextureRef.by_value, ImVec2.by_value], :void],
    [:ImGui_ImageEx, :ImGui_ImageEx, [ImTextureRef.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value], :void],
    [:ImGui_ImageWithBg, :ImGui_ImageWithBg, [ImTextureRef.by_value, ImVec2.by_value], :void],
    [:ImGui_ImageWithBgEx, :ImGui_ImageWithBgEx, [ImTextureRef.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec4.by_value, ImVec4.by_value], :void],
    [:ImGui_ImageButton, :ImGui_ImageButton, [:pointer, ImTextureRef.by_value, ImVec2.by_value], :bool],
    [:ImGui_ImageButtonEx, :ImGui_ImageButtonEx, [:pointer, ImTextureRef.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec4.by_value, ImVec4.by_value], :bool],
    [:ImGui_BeginCombo, :ImGui_BeginCombo, [:pointer, :pointer, :int], :bool],
    [:ImGui_EndCombo, :ImGui_EndCombo, [], :void],
    [:ImGui_ComboChar, :ImGui_ComboChar, [:pointer, :pointer, :pointer, :int], :bool],
    [:ImGui_ComboCharEx, :ImGui_ComboCharEx, [:pointer, :pointer, :pointer, :int, :int], :bool],
    [:ImGui_Combo, :ImGui_Combo, [:pointer, :pointer, :pointer], :bool],
    [:ImGui_ComboEx, :ImGui_ComboEx, [:pointer, :pointer, :pointer, :int], :bool],
    [:ImGui_ComboCallback, :ImGui_ComboCallback, [:pointer, :pointer, :pointer, :pointer, :int], :bool],
    [:ImGui_ComboCallbackEx, :ImGui_ComboCallbackEx, [:pointer, :pointer, :pointer, :pointer, :int, :int], :bool],
    [:ImGui_DragFloat, :ImGui_DragFloat, [:pointer, :pointer], :bool],
    [:ImGui_DragFloatEx, :ImGui_DragFloatEx, [:pointer, :pointer, :float, :float, :float, :pointer, :int], :bool],
    [:ImGui_DragFloat2, :ImGui_DragFloat2, [:pointer, :pointer], :bool],
    [:ImGui_DragFloat2Ex, :ImGui_DragFloat2Ex, [:pointer, :pointer, :float, :float, :float, :pointer, :int], :bool],
    [:ImGui_DragFloat3, :ImGui_DragFloat3, [:pointer, :pointer], :bool],
    [:ImGui_DragFloat3Ex, :ImGui_DragFloat3Ex, [:pointer, :pointer, :float, :float, :float, :pointer, :int], :bool],
    [:ImGui_DragFloat4, :ImGui_DragFloat4, [:pointer, :pointer], :bool],
    [:ImGui_DragFloat4Ex, :ImGui_DragFloat4Ex, [:pointer, :pointer, :float, :float, :float, :pointer, :int], :bool],
    [:ImGui_DragFloatRange2, :ImGui_DragFloatRange2, [:pointer, :pointer, :pointer], :bool],
    [:ImGui_DragFloatRange2Ex, :ImGui_DragFloatRange2Ex, [:pointer, :pointer, :pointer, :float, :float, :float, :pointer, :pointer, :int], :bool],
    [:ImGui_DragInt, :ImGui_DragInt, [:pointer, :pointer], :bool],
    [:ImGui_DragIntEx, :ImGui_DragIntEx, [:pointer, :pointer, :float, :int, :int, :pointer, :int], :bool],
    [:ImGui_DragInt2, :ImGui_DragInt2, [:pointer, :pointer], :bool],
    [:ImGui_DragInt2Ex, :ImGui_DragInt2Ex, [:pointer, :pointer, :float, :int, :int, :pointer, :int], :bool],
    [:ImGui_DragInt3, :ImGui_DragInt3, [:pointer, :pointer], :bool],
    [:ImGui_DragInt3Ex, :ImGui_DragInt3Ex, [:pointer, :pointer, :float, :int, :int, :pointer, :int], :bool],
    [:ImGui_DragInt4, :ImGui_DragInt4, [:pointer, :pointer], :bool],
    [:ImGui_DragInt4Ex, :ImGui_DragInt4Ex, [:pointer, :pointer, :float, :int, :int, :pointer, :int], :bool],
    [:ImGui_DragIntRange2, :ImGui_DragIntRange2, [:pointer, :pointer, :pointer], :bool],
    [:ImGui_DragIntRange2Ex, :ImGui_DragIntRange2Ex, [:pointer, :pointer, :pointer, :float, :int, :int, :pointer, :pointer, :int], :bool],
    [:ImGui_DragScalar, :ImGui_DragScalar, [:pointer, :int, :pointer], :bool],
    [:ImGui_DragScalarEx, :ImGui_DragScalarEx, [:pointer, :int, :pointer, :float, :pointer, :pointer, :pointer, :int], :bool],
    [:ImGui_DragScalarN, :ImGui_DragScalarN, [:pointer, :int, :pointer, :int], :bool],
    [:ImGui_DragScalarNEx, :ImGui_DragScalarNEx, [:pointer, :int, :pointer, :int, :float, :pointer, :pointer, :pointer, :int], :bool],
    [:ImGui_SliderFloat, :ImGui_SliderFloat, [:pointer, :pointer, :float, :float], :bool],
    [:ImGui_SliderFloatEx, :ImGui_SliderFloatEx, [:pointer, :pointer, :float, :float, :pointer, :int], :bool],
    [:ImGui_SliderFloat2, :ImGui_SliderFloat2, [:pointer, :pointer, :float, :float], :bool],
    [:ImGui_SliderFloat2Ex, :ImGui_SliderFloat2Ex, [:pointer, :pointer, :float, :float, :pointer, :int], :bool],
    [:ImGui_SliderFloat3, :ImGui_SliderFloat3, [:pointer, :pointer, :float, :float], :bool],
    [:ImGui_SliderFloat3Ex, :ImGui_SliderFloat3Ex, [:pointer, :pointer, :float, :float, :pointer, :int], :bool],
    [:ImGui_SliderFloat4, :ImGui_SliderFloat4, [:pointer, :pointer, :float, :float], :bool],
    [:ImGui_SliderFloat4Ex, :ImGui_SliderFloat4Ex, [:pointer, :pointer, :float, :float, :pointer, :int], :bool],
    [:ImGui_SliderAngle, :ImGui_SliderAngle, [:pointer, :pointer], :bool],
    [:ImGui_SliderAngleEx, :ImGui_SliderAngleEx, [:pointer, :pointer, :float, :float, :pointer, :int], :bool],
    [:ImGui_SliderInt, :ImGui_SliderInt, [:pointer, :pointer, :int, :int], :bool],
    [:ImGui_SliderIntEx, :ImGui_SliderIntEx, [:pointer, :pointer, :int, :int, :pointer, :int], :bool],
    [:ImGui_SliderInt2, :ImGui_SliderInt2, [:pointer, :pointer, :int, :int], :bool],
    [:ImGui_SliderInt2Ex, :ImGui_SliderInt2Ex, [:pointer, :pointer, :int, :int, :pointer, :int], :bool],
    [:ImGui_SliderInt3, :ImGui_SliderInt3, [:pointer, :pointer, :int, :int], :bool],
    [:ImGui_SliderInt3Ex, :ImGui_SliderInt3Ex, [:pointer, :pointer, :int, :int, :pointer, :int], :bool],
    [:ImGui_SliderInt4, :ImGui_SliderInt4, [:pointer, :pointer, :int, :int], :bool],
    [:ImGui_SliderInt4Ex, :ImGui_SliderInt4Ex, [:pointer, :pointer, :int, :int, :pointer, :int], :bool],
    [:ImGui_SliderScalar, :ImGui_SliderScalar, [:pointer, :int, :pointer, :pointer, :pointer], :bool],
    [:ImGui_SliderScalarEx, :ImGui_SliderScalarEx, [:pointer, :int, :pointer, :pointer, :pointer, :pointer, :int], :bool],
    [:ImGui_SliderScalarN, :ImGui_SliderScalarN, [:pointer, :int, :pointer, :int, :pointer, :pointer], :bool],
    [:ImGui_SliderScalarNEx, :ImGui_SliderScalarNEx, [:pointer, :int, :pointer, :int, :pointer, :pointer, :pointer, :int], :bool],
    [:ImGui_VSliderFloat, :ImGui_VSliderFloat, [:pointer, ImVec2.by_value, :pointer, :float, :float], :bool],
    [:ImGui_VSliderFloatEx, :ImGui_VSliderFloatEx, [:pointer, ImVec2.by_value, :pointer, :float, :float, :pointer, :int], :bool],
    [:ImGui_VSliderInt, :ImGui_VSliderInt, [:pointer, ImVec2.by_value, :pointer, :int, :int], :bool],
    [:ImGui_VSliderIntEx, :ImGui_VSliderIntEx, [:pointer, ImVec2.by_value, :pointer, :int, :int, :pointer, :int], :bool],
    [:ImGui_VSliderScalar, :ImGui_VSliderScalar, [:pointer, ImVec2.by_value, :int, :pointer, :pointer, :pointer], :bool],
    [:ImGui_VSliderScalarEx, :ImGui_VSliderScalarEx, [:pointer, ImVec2.by_value, :int, :pointer, :pointer, :pointer, :pointer, :int], :bool],
    [:ImGui_InputText, :ImGui_InputText, [:pointer, :pointer, :size_t, :int], :bool],
    [:ImGui_InputTextEx, :ImGui_InputTextEx, [:pointer, :pointer, :size_t, :int, :ImGuiInputTextCallback, :pointer], :bool],
    [:ImGui_InputTextMultiline, :ImGui_InputTextMultiline, [:pointer, :pointer, :size_t], :bool],
    [:ImGui_InputTextMultilineEx, :ImGui_InputTextMultilineEx, [:pointer, :pointer, :size_t, ImVec2.by_value, :int, :ImGuiInputTextCallback, :pointer], :bool],
    [:ImGui_InputTextWithHint, :ImGui_InputTextWithHint, [:pointer, :pointer, :pointer, :size_t, :int], :bool],
    [:ImGui_InputTextWithHintEx, :ImGui_InputTextWithHintEx, [:pointer, :pointer, :pointer, :size_t, :int, :ImGuiInputTextCallback, :pointer], :bool],
    [:ImGui_InputFloat, :ImGui_InputFloat, [:pointer, :pointer], :bool],
    [:ImGui_InputFloatEx, :ImGui_InputFloatEx, [:pointer, :pointer, :float, :float, :pointer, :int], :bool],
    [:ImGui_InputFloat2, :ImGui_InputFloat2, [:pointer, :pointer], :bool],
    [:ImGui_InputFloat2Ex, :ImGui_InputFloat2Ex, [:pointer, :pointer, :pointer, :int], :bool],
    [:ImGui_InputFloat3, :ImGui_InputFloat3, [:pointer, :pointer], :bool],
    [:ImGui_InputFloat3Ex, :ImGui_InputFloat3Ex, [:pointer, :pointer, :pointer, :int], :bool],
    [:ImGui_InputFloat4, :ImGui_InputFloat4, [:pointer, :pointer], :bool],
    [:ImGui_InputFloat4Ex, :ImGui_InputFloat4Ex, [:pointer, :pointer, :pointer, :int], :bool],
    [:ImGui_InputInt, :ImGui_InputInt, [:pointer, :pointer], :bool],
    [:ImGui_InputIntEx, :ImGui_InputIntEx, [:pointer, :pointer, :int, :int, :int], :bool],
    [:ImGui_InputInt2, :ImGui_InputInt2, [:pointer, :pointer, :int], :bool],
    [:ImGui_InputInt3, :ImGui_InputInt3, [:pointer, :pointer, :int], :bool],
    [:ImGui_InputInt4, :ImGui_InputInt4, [:pointer, :pointer, :int], :bool],
    [:ImGui_InputDouble, :ImGui_InputDouble, [:pointer, :pointer], :bool],
    [:ImGui_InputDoubleEx, :ImGui_InputDoubleEx, [:pointer, :pointer, :double, :double, :pointer, :int], :bool],
    [:ImGui_InputScalar, :ImGui_InputScalar, [:pointer, :int, :pointer], :bool],
    [:ImGui_InputScalarEx, :ImGui_InputScalarEx, [:pointer, :int, :pointer, :pointer, :pointer, :pointer, :int], :bool],
    [:ImGui_InputScalarN, :ImGui_InputScalarN, [:pointer, :int, :pointer, :int], :bool],
    [:ImGui_InputScalarNEx, :ImGui_InputScalarNEx, [:pointer, :int, :pointer, :int, :pointer, :pointer, :pointer, :int], :bool],
    [:ImGui_ColorEdit3, :ImGui_ColorEdit3, [:pointer, :pointer, :int], :bool],
    [:ImGui_ColorEdit4, :ImGui_ColorEdit4, [:pointer, :pointer, :int], :bool],
    [:ImGui_ColorPicker3, :ImGui_ColorPicker3, [:pointer, :pointer, :int], :bool],
    [:ImGui_ColorPicker4, :ImGui_ColorPicker4, [:pointer, :pointer, :int, :pointer], :bool],
    [:ImGui_ColorButton, :ImGui_ColorButton, [:pointer, ImVec4.by_value, :int], :bool],
    [:ImGui_ColorButtonEx, :ImGui_ColorButtonEx, [:pointer, ImVec4.by_value, :int, ImVec2.by_value], :bool],
    [:ImGui_TreeNode, :ImGui_TreeNode, [:pointer], :bool],
    [:ImGui_TreeNodeStr, :ImGui_TreeNodeStr, [:pointer, :pointer, :varargs], :bool],
    [:ImGui_TreeNodePtr, :ImGui_TreeNodePtr, [:pointer, :pointer, :varargs], :bool],
    [:ImGui_TreeNodeEx, :ImGui_TreeNodeEx, [:pointer, :int], :bool],
    [:ImGui_TreeNodeExStr, :ImGui_TreeNodeExStr, [:pointer, :int, :pointer, :varargs], :bool],
    [:ImGui_TreeNodeExPtr, :ImGui_TreeNodeExPtr, [:pointer, :int, :pointer, :varargs], :bool],
    [:ImGui_TreePush, :ImGui_TreePush, [:pointer], :void],
    [:ImGui_TreePushPtr, :ImGui_TreePushPtr, [:pointer], :void],
    [:ImGui_TreePop, :ImGui_TreePop, [], :void],
    [:ImGui_GetTreeNodeToLabelSpacing, :ImGui_GetTreeNodeToLabelSpacing, [], :float],
    [:ImGui_CollapsingHeader, :ImGui_CollapsingHeader, [:pointer, :int], :bool],
    [:ImGui_CollapsingHeaderBoolPtr, :ImGui_CollapsingHeaderBoolPtr, [:pointer, :pointer, :int], :bool],
    [:ImGui_SetNextItemOpen, :ImGui_SetNextItemOpen, [:bool, :int], :void],
    [:ImGui_SetNextItemStorageID, :ImGui_SetNextItemStorageID, [:uint], :void],
    [:ImGui_TreeNodeGetOpen, :ImGui_TreeNodeGetOpen, [:uint], :bool],
    [:ImGui_Selectable, :ImGui_Selectable, [:pointer], :bool],
    [:ImGui_SelectableEx, :ImGui_SelectableEx, [:pointer, :bool, :int, ImVec2.by_value], :bool],
    [:ImGui_SelectableBoolPtr, :ImGui_SelectableBoolPtr, [:pointer, :pointer, :int], :bool],
    [:ImGui_SelectableBoolPtrEx, :ImGui_SelectableBoolPtrEx, [:pointer, :pointer, :int, ImVec2.by_value], :bool],
    [:ImGui_BeginMultiSelect, :ImGui_BeginMultiSelect, [:int], :pointer],
    [:ImGui_BeginMultiSelectEx, :ImGui_BeginMultiSelectEx, [:int, :int, :int], :pointer],
    [:ImGui_EndMultiSelect, :ImGui_EndMultiSelect, [], :pointer],
    [:ImGui_SetNextItemSelectionUserData, :ImGui_SetNextItemSelectionUserData, [:int64], :void],
    [:ImGui_IsItemToggledSelection, :ImGui_IsItemToggledSelection, [], :bool],
    [:ImGui_BeginListBox, :ImGui_BeginListBox, [:pointer, ImVec2.by_value], :bool],
    [:ImGui_EndListBox, :ImGui_EndListBox, [], :void],
    [:ImGui_ListBox, :ImGui_ListBox, [:pointer, :pointer, :pointer, :int, :int], :bool],
    [:ImGui_ListBoxCallback, :ImGui_ListBoxCallback, [:pointer, :pointer, :pointer, :pointer, :int], :bool],
    [:ImGui_ListBoxCallbackEx, :ImGui_ListBoxCallbackEx, [:pointer, :pointer, :pointer, :pointer, :int, :int], :bool],
    [:ImGui_PlotLines, :ImGui_PlotLines, [:pointer, :pointer, :int], :void],
    [:ImGui_PlotLinesEx, :ImGui_PlotLinesEx, [:pointer, :pointer, :int, :int, :pointer, :float, :float, ImVec2.by_value, :int], :void],
    [:ImGui_PlotLinesCallback, :ImGui_PlotLinesCallback, [:pointer, :pointer, :pointer, :int], :void],
    [:ImGui_PlotLinesCallbackEx, :ImGui_PlotLinesCallbackEx, [:pointer, :pointer, :pointer, :int, :int, :pointer, :float, :float, ImVec2.by_value], :void],
    [:ImGui_PlotHistogram, :ImGui_PlotHistogram, [:pointer, :pointer, :int], :void],
    [:ImGui_PlotHistogramEx, :ImGui_PlotHistogramEx, [:pointer, :pointer, :int, :int, :pointer, :float, :float, ImVec2.by_value, :int], :void],
    [:ImGui_PlotHistogramCallback, :ImGui_PlotHistogramCallback, [:pointer, :pointer, :pointer, :int], :void],
    [:ImGui_PlotHistogramCallbackEx, :ImGui_PlotHistogramCallbackEx, [:pointer, :pointer, :pointer, :int, :int, :pointer, :float, :float, ImVec2.by_value], :void],
    [:ImGui_BeginMenuBar, :ImGui_BeginMenuBar, [], :bool],
    [:ImGui_EndMenuBar, :ImGui_EndMenuBar, [], :void],
    [:ImGui_BeginMainMenuBar, :ImGui_BeginMainMenuBar, [], :bool],
    [:ImGui_EndMainMenuBar, :ImGui_EndMainMenuBar, [], :void],
    [:ImGui_BeginMenu, :ImGui_BeginMenu, [:pointer], :bool],
    [:ImGui_BeginMenuEx, :ImGui_BeginMenuEx, [:pointer, :bool], :bool],
    [:ImGui_EndMenu, :ImGui_EndMenu, [], :void],
    [:ImGui_MenuItem, :ImGui_MenuItem, [:pointer], :bool],
    [:ImGui_MenuItemEx, :ImGui_MenuItemEx, [:pointer, :pointer, :bool, :bool], :bool],
    [:ImGui_MenuItemBoolPtr, :ImGui_MenuItemBoolPtr, [:pointer, :pointer, :pointer, :bool], :bool],
    [:ImGui_BeginTooltip, :ImGui_BeginTooltip, [], :bool],
    [:ImGui_EndTooltip, :ImGui_EndTooltip, [], :void],
    [:ImGui_SetTooltip, :ImGui_SetTooltip, [:pointer, :varargs], :void],
    [:ImGui_BeginItemTooltip, :ImGui_BeginItemTooltip, [], :bool],
    [:ImGui_SetItemTooltip, :ImGui_SetItemTooltip, [:pointer, :varargs], :void],
    [:ImGui_BeginPopup, :ImGui_BeginPopup, [:pointer, :int], :bool],
    [:ImGui_BeginPopupModal, :ImGui_BeginPopupModal, [:pointer, :pointer, :int], :bool],
    [:ImGui_EndPopup, :ImGui_EndPopup, [], :void],
    [:ImGui_OpenPopup, :ImGui_OpenPopup, [:pointer, :int], :bool],
    [:ImGui_OpenPopupID, :ImGui_OpenPopupID, [:uint, :int], :bool],
    [:ImGui_OpenPopupOnItemClick, :ImGui_OpenPopupOnItemClick, [:pointer, :int], :bool],
    [:ImGui_CloseCurrentPopup, :ImGui_CloseCurrentPopup, [], :void],
    [:ImGui_BeginPopupContextItem, :ImGui_BeginPopupContextItem, [], :bool],
    [:ImGui_BeginPopupContextItemEx, :ImGui_BeginPopupContextItemEx, [:pointer, :int], :bool],
    [:ImGui_BeginPopupContextWindow, :ImGui_BeginPopupContextWindow, [], :bool],
    [:ImGui_BeginPopupContextWindowEx, :ImGui_BeginPopupContextWindowEx, [:pointer, :int], :bool],
    [:ImGui_BeginPopupContextVoid, :ImGui_BeginPopupContextVoid, [], :bool],
    [:ImGui_BeginPopupContextVoidEx, :ImGui_BeginPopupContextVoidEx, [:pointer, :int], :bool],
    [:ImGui_IsPopupOpen, :ImGui_IsPopupOpen, [:pointer, :int], :bool],
    [:ImGui_BeginTable, :ImGui_BeginTable, [:pointer, :int, :int], :bool],
    [:ImGui_BeginTableEx, :ImGui_BeginTableEx, [:pointer, :int, :int, ImVec2.by_value, :float], :bool],
    [:ImGui_EndTable, :ImGui_EndTable, [], :void],
    [:ImGui_TableNextRow, :ImGui_TableNextRow, [], :void],
    [:ImGui_TableNextRowEx, :ImGui_TableNextRowEx, [:int, :float], :void],
    [:ImGui_TableNextColumn, :ImGui_TableNextColumn, [], :bool],
    [:ImGui_TableSetColumnIndex, :ImGui_TableSetColumnIndex, [:int], :bool],
    [:ImGui_TableSetupColumn, :ImGui_TableSetupColumn, [:pointer, :int], :void],
    [:ImGui_TableSetupColumnEx, :ImGui_TableSetupColumnEx, [:pointer, :int, :float, :uint], :void],
    [:ImGui_TableSetupScrollFreeze, :ImGui_TableSetupScrollFreeze, [:int, :int], :void],
    [:ImGui_TableHeader, :ImGui_TableHeader, [:pointer], :void],
    [:ImGui_TableHeadersRow, :ImGui_TableHeadersRow, [], :void],
    [:ImGui_TableAngledHeadersRow, :ImGui_TableAngledHeadersRow, [], :void],
    [:ImGui_TableGetSortSpecs, :ImGui_TableGetSortSpecs, [], :pointer],
    [:ImGui_TableGetColumnCount, :ImGui_TableGetColumnCount, [], :int],
    [:ImGui_TableGetColumnIndex, :ImGui_TableGetColumnIndex, [], :int],
    [:ImGui_TableGetRowIndex, :ImGui_TableGetRowIndex, [], :int],
    [:ImGui_TableGetColumnName, :ImGui_TableGetColumnName, [:int], :pointer],
    [:ImGui_TableGetColumnFlags, :ImGui_TableGetColumnFlags, [:int], :int],
    [:ImGui_TableSetColumnEnabled, :ImGui_TableSetColumnEnabled, [:int, :bool], :void],
    [:ImGui_TableGetHoveredColumn, :ImGui_TableGetHoveredColumn, [], :int],
    [:ImGui_TableSetBgColor, :ImGui_TableSetBgColor, [:int, :uint, :int], :void],
    [:ImGui_Columns, :ImGui_Columns, [], :void],
    [:ImGui_ColumnsEx, :ImGui_ColumnsEx, [:int, :pointer, :bool], :void],
    [:ImGui_NextColumn, :ImGui_NextColumn, [], :void],
    [:ImGui_GetColumnIndex, :ImGui_GetColumnIndex, [], :int],
    [:ImGui_GetColumnWidth, :ImGui_GetColumnWidth, [:int], :float],
    [:ImGui_SetColumnWidth, :ImGui_SetColumnWidth, [:int, :float], :void],
    [:ImGui_GetColumnOffset, :ImGui_GetColumnOffset, [:int], :float],
    [:ImGui_SetColumnOffset, :ImGui_SetColumnOffset, [:int, :float], :void],
    [:ImGui_GetColumnsCount, :ImGui_GetColumnsCount, [], :int],
    [:ImGui_BeginTabBar, :ImGui_BeginTabBar, [:pointer, :int], :bool],
    [:ImGui_EndTabBar, :ImGui_EndTabBar, [], :void],
    [:ImGui_BeginTabItem, :ImGui_BeginTabItem, [:pointer, :pointer, :int], :bool],
    [:ImGui_EndTabItem, :ImGui_EndTabItem, [], :void],
    [:ImGui_TabItemButton, :ImGui_TabItemButton, [:pointer, :int], :bool],
    [:ImGui_SetTabItemClosed, :ImGui_SetTabItemClosed, [:pointer], :void],
    [:ImGui_DockSpace, :ImGui_DockSpace, [:uint], :uint],
    [:ImGui_DockSpaceEx, :ImGui_DockSpaceEx, [:uint, ImVec2.by_value, :int, :pointer], :uint],
    [:ImGui_DockSpaceOverViewport, :ImGui_DockSpaceOverViewport, [], :uint],
    [:ImGui_DockSpaceOverViewportEx, :ImGui_DockSpaceOverViewportEx, [:uint, :pointer, :int, :pointer], :uint],
    [:ImGui_SetNextWindowDockID, :ImGui_SetNextWindowDockID, [:uint, :int], :void],
    [:ImGui_SetNextWindowClass, :ImGui_SetNextWindowClass, [:pointer], :void],
    [:ImGui_GetWindowDockID, :ImGui_GetWindowDockID, [], :uint],
    [:ImGui_IsWindowDocked, :ImGui_IsWindowDocked, [], :bool],
    [:ImGui_LogToTTY, :ImGui_LogToTTY, [:int], :void],
    [:ImGui_LogToFile, :ImGui_LogToFile, [:int, :pointer], :void],
    [:ImGui_LogToClipboard, :ImGui_LogToClipboard, [:int], :void],
    [:ImGui_LogFinish, :ImGui_LogFinish, [], :void],
    [:ImGui_LogButtons, :ImGui_LogButtons, [], :void],
    [:ImGui_LogText, :ImGui_LogText, [:pointer, :varargs], :void],
    [:ImGui_BeginDragDropSource, :ImGui_BeginDragDropSource, [:int], :bool],
    [:ImGui_SetDragDropPayload, :ImGui_SetDragDropPayload, [:pointer, :pointer, :size_t, :int], :bool],
    [:ImGui_EndDragDropSource, :ImGui_EndDragDropSource, [], :void],
    [:ImGui_BeginDragDropTarget, :ImGui_BeginDragDropTarget, [], :bool],
    [:ImGui_AcceptDragDropPayload, :ImGui_AcceptDragDropPayload, [:pointer, :int], :pointer],
    [:ImGui_EndDragDropTarget, :ImGui_EndDragDropTarget, [], :void],
    [:ImGui_GetDragDropPayload, :ImGui_GetDragDropPayload, [], :pointer],
    [:ImGui_BeginDisabled, :ImGui_BeginDisabled, [:bool], :void],
    [:ImGui_EndDisabled, :ImGui_EndDisabled, [], :void],
    [:ImGui_PushClipRect, :ImGui_PushClipRect, [ImVec2.by_value, ImVec2.by_value, :bool], :void],
    [:ImGui_PopClipRect, :ImGui_PopClipRect, [], :void],
    [:ImGui_SetItemDefaultFocus, :ImGui_SetItemDefaultFocus, [], :void],
    [:ImGui_SetKeyboardFocusHere, :ImGui_SetKeyboardFocusHere, [], :void],
    [:ImGui_SetKeyboardFocusHereEx, :ImGui_SetKeyboardFocusHereEx, [:int], :void],
    [:ImGui_SetNavCursorVisible, :ImGui_SetNavCursorVisible, [:bool], :void],
    [:ImGui_SetNextItemAllowOverlap, :ImGui_SetNextItemAllowOverlap, [], :void],
    [:ImGui_IsItemHovered, :ImGui_IsItemHovered, [:int], :bool],
    [:ImGui_IsItemActive, :ImGui_IsItemActive, [], :bool],
    [:ImGui_IsItemFocused, :ImGui_IsItemFocused, [], :bool],
    [:ImGui_IsItemClicked, :ImGui_IsItemClicked, [], :bool],
    [:ImGui_IsItemClickedEx, :ImGui_IsItemClickedEx, [:int], :bool],
    [:ImGui_IsItemVisible, :ImGui_IsItemVisible, [], :bool],
    [:ImGui_IsItemEdited, :ImGui_IsItemEdited, [], :bool],
    [:ImGui_IsItemActivated, :ImGui_IsItemActivated, [], :bool],
    [:ImGui_IsItemDeactivated, :ImGui_IsItemDeactivated, [], :bool],
    [:ImGui_IsItemDeactivatedAfterEdit, :ImGui_IsItemDeactivatedAfterEdit, [], :bool],
    [:ImGui_IsItemToggledOpen, :ImGui_IsItemToggledOpen, [], :bool],
    [:ImGui_IsAnyItemHovered, :ImGui_IsAnyItemHovered, [], :bool],
    [:ImGui_IsAnyItemActive, :ImGui_IsAnyItemActive, [], :bool],
    [:ImGui_IsAnyItemFocused, :ImGui_IsAnyItemFocused, [], :bool],
    [:ImGui_GetItemID, :ImGui_GetItemID, [], :uint],
    [:ImGui_GetItemRectMin, :ImGui_GetItemRectMin, [], ImVec2.by_value],
    [:ImGui_GetItemRectMax, :ImGui_GetItemRectMax, [], ImVec2.by_value],
    [:ImGui_GetItemRectSize, :ImGui_GetItemRectSize, [], ImVec2.by_value],
    [:ImGui_GetItemFlags, :ImGui_GetItemFlags, [], :int],
    [:ImGui_GetItemClickedCountWithSingleClickDelay, :ImGui_GetItemClickedCountWithSingleClickDelay, [], :int],
    [:ImGui_GetItemClickedCountWithSingleClickDelayEx, :ImGui_GetItemClickedCountWithSingleClickDelayEx, [:int, :float], :int],
    [:ImGui_GetMainViewport, :ImGui_GetMainViewport, [], :pointer],
    [:ImGui_GetBackgroundDrawList, :ImGui_GetBackgroundDrawList, [], :pointer],
    [:ImGui_GetBackgroundDrawListEx, :ImGui_GetBackgroundDrawListEx, [:pointer], :pointer],
    [:ImGui_GetForegroundDrawList, :ImGui_GetForegroundDrawList, [], :pointer],
    [:ImGui_GetForegroundDrawListEx, :ImGui_GetForegroundDrawListEx, [:pointer], :pointer],
    [:ImGui_IsRectVisibleBySize, :ImGui_IsRectVisibleBySize, [ImVec2.by_value], :bool],
    [:ImGui_IsRectVisible, :ImGui_IsRectVisible, [ImVec2.by_value, ImVec2.by_value], :bool],
    [:ImGui_GetTime, :ImGui_GetTime, [], :double],
    [:ImGui_GetFrameCount, :ImGui_GetFrameCount, [], :int],
    [:ImGui_GetDrawListSharedData, :ImGui_GetDrawListSharedData, [], :pointer],
    [:ImGui_GetStyleColorName, :ImGui_GetStyleColorName, [:int], :pointer],
    [:ImGui_SetStateStorage, :ImGui_SetStateStorage, [:pointer], :void],
    [:ImGui_GetStateStorage, :ImGui_GetStateStorage, [], :pointer],
    [:ImGui_CalcTextSize, :ImGui_CalcTextSize, [:pointer], ImVec2.by_value],
    [:ImGui_CalcTextSizeEx, :ImGui_CalcTextSizeEx, [:pointer, :pointer, :bool, :float], ImVec2.by_value],
    [:ImGui_ColorConvertU32ToFloat4, :ImGui_ColorConvertU32ToFloat4, [:uint], ImVec4.by_value],
    [:ImGui_ColorConvertFloat4ToU32, :ImGui_ColorConvertFloat4ToU32, [ImVec4.by_value], :uint],
    [:ImGui_ColorConvertRGBtoHSV, :ImGui_ColorConvertRGBtoHSV, [:float, :float, :float, :pointer, :pointer, :pointer], :void],
    [:ImGui_ColorConvertHSVtoRGB, :ImGui_ColorConvertHSVtoRGB, [:float, :float, :float, :pointer, :pointer, :pointer], :void],
    [:ImGui_IsKeyDown, :ImGui_IsKeyDown, [:int], :bool],
    [:ImGui_IsKeyPressed, :ImGui_IsKeyPressed, [:int], :bool],
    [:ImGui_IsKeyPressedEx, :ImGui_IsKeyPressedEx, [:int, :bool], :bool],
    [:ImGui_IsKeyReleased, :ImGui_IsKeyReleased, [:int], :bool],
    [:ImGui_IsKeyChordPressed, :ImGui_IsKeyChordPressed, [:int], :bool],
    [:ImGui_GetKeyPressedAmount, :ImGui_GetKeyPressedAmount, [:int, :float, :float], :int],
    [:ImGui_GetKeyName, :ImGui_GetKeyName, [:int], :pointer],
    [:ImGui_SetNextFrameWantCaptureKeyboard, :ImGui_SetNextFrameWantCaptureKeyboard, [:bool], :void],
    [:ImGui_Shortcut, :ImGui_Shortcut, [:int, :int], :bool],
    [:ImGui_SetNextItemShortcut, :ImGui_SetNextItemShortcut, [:int, :int], :void],
    [:ImGui_SetItemKeyOwner, :ImGui_SetItemKeyOwner, [:int], :bool],
    [:ImGui_IsMouseDown, :ImGui_IsMouseDown, [:int], :bool],
    [:ImGui_IsMouseClicked, :ImGui_IsMouseClicked, [:int], :bool],
    [:ImGui_IsMouseClickedEx, :ImGui_IsMouseClickedEx, [:int, :bool], :bool],
    [:ImGui_IsMouseReleased, :ImGui_IsMouseReleased, [:int], :bool],
    [:ImGui_IsMouseDoubleClicked, :ImGui_IsMouseDoubleClicked, [:int], :bool],
    [:ImGui_IsMouseReleasedWithDelay, :ImGui_IsMouseReleasedWithDelay, [:int], :bool],
    [:ImGui_IsMouseReleasedWithDelayEx, :ImGui_IsMouseReleasedWithDelayEx, [:int, :float], :bool],
    [:ImGui_GetMouseClickedCount, :ImGui_GetMouseClickedCount, [:int], :int],
    [:ImGui_IsMouseHoveringRect, :ImGui_IsMouseHoveringRect, [ImVec2.by_value, ImVec2.by_value], :bool],
    [:ImGui_IsMouseHoveringRectEx, :ImGui_IsMouseHoveringRectEx, [ImVec2.by_value, ImVec2.by_value, :bool], :bool],
    [:ImGui_IsMousePosValid, :ImGui_IsMousePosValid, [:pointer], :bool],
    [:ImGui_IsAnyMouseDown, :ImGui_IsAnyMouseDown, [], :bool],
    [:ImGui_GetMousePos, :ImGui_GetMousePos, [], ImVec2.by_value],
    [:ImGui_GetMousePosOnOpeningCurrentPopup, :ImGui_GetMousePosOnOpeningCurrentPopup, [], ImVec2.by_value],
    [:ImGui_IsMouseDragging, :ImGui_IsMouseDragging, [:int, :float], :bool],
    [:ImGui_GetMouseDragDelta, :ImGui_GetMouseDragDelta, [:int, :float], ImVec2.by_value],
    [:ImGui_ResetMouseDragDelta, :ImGui_ResetMouseDragDelta, [], :void],
    [:ImGui_ResetMouseDragDeltaEx, :ImGui_ResetMouseDragDeltaEx, [:int], :void],
    [:ImGui_GetMouseCursor, :ImGui_GetMouseCursor, [], :int],
    [:ImGui_SetMouseCursor, :ImGui_SetMouseCursor, [:int], :void],
    [:ImGui_SetNextFrameWantCaptureMouse, :ImGui_SetNextFrameWantCaptureMouse, [:bool], :void],
    [:ImGui_GetClipboardText, :ImGui_GetClipboardText, [], :pointer],
    [:ImGui_SetClipboardText, :ImGui_SetClipboardText, [:pointer], :void],
    [:ImGui_LoadIniSettingsFromDisk, :ImGui_LoadIniSettingsFromDisk, [:pointer], :void],
    [:ImGui_LoadIniSettingsFromMemory, :ImGui_LoadIniSettingsFromMemory, [:pointer, :size_t], :void],
    [:ImGui_SaveIniSettingsToDisk, :ImGui_SaveIniSettingsToDisk, [:pointer], :void],
    [:ImGui_SaveIniSettingsToMemory, :ImGui_SaveIniSettingsToMemory, [:pointer], :pointer],
    [:ImGui_DebugTextEncoding, :ImGui_DebugTextEncoding, [:pointer], :void],
    [:ImGui_DebugFlashStyleColor, :ImGui_DebugFlashStyleColor, [:int], :void],
    [:ImGui_DebugStartItemPicker, :ImGui_DebugStartItemPicker, [], :void],
    [:ImGui_DebugCheckVersionAndDataLayout, :ImGui_DebugCheckVersionAndDataLayout, [:pointer, :size_t, :size_t, :size_t, :size_t, :size_t, :size_t], :bool],
    [:ImGui_DebugLog, :ImGui_DebugLog, [:pointer, :varargs], :void],
    [:ImGui_SetAllocatorFunctions, :ImGui_SetAllocatorFunctions, [:pointer, :pointer, :pointer], :void],
    [:ImGui_GetAllocatorFunctions, :ImGui_GetAllocatorFunctions, [:pointer, :pointer, :pointer], :void],
    [:ImGui_MemAlloc, :ImGui_MemAlloc, [:size_t], :pointer],
    [:ImGui_MemFree, :ImGui_MemFree, [:pointer], :void],
    [:ImGui_UpdatePlatformWindows, :ImGui_UpdatePlatformWindows, [], :void],
    [:ImGui_RenderPlatformWindowsDefault, :ImGui_RenderPlatformWindowsDefault, [], :void],
    [:ImGui_RenderPlatformWindowsDefaultEx, :ImGui_RenderPlatformWindowsDefaultEx, [:pointer, :pointer], :void],
    [:ImGui_DestroyPlatformWindows, :ImGui_DestroyPlatformWindows, [], :void],
    [:ImGui_FindViewportByID, :ImGui_FindViewportByID, [:uint], :pointer],
    [:ImGui_FindViewportByPlatformHandle, :ImGui_FindViewportByPlatformHandle, [:pointer], :pointer],
    [:ImVector_Construct, :ImVector_Construct, [:pointer], :void],
    [:ImVector_Destruct, :ImVector_Destruct, [:pointer], :void],
    [:ImGuiPlatformIO_SetPlatform_GetWindowWorkAreaInsets, :ImGuiPlatformIO_SetPlatform_GetWindowWorkAreaInsets, [:pointer], :void],
    [:ImGuiPlatformIO_SetPlatform_GetWindowFramebufferScale, :ImGuiPlatformIO_SetPlatform_GetWindowFramebufferScale, [:pointer], :void],
    [:ImGuiPlatformIO_SetPlatform_GetWindowPos, :ImGuiPlatformIO_SetPlatform_GetWindowPos, [:pointer], :void],
    [:ImGuiPlatformIO_SetPlatform_GetWindowSize, :ImGuiPlatformIO_SetPlatform_GetWindowSize, [:pointer], :void],
    [:ImGuiStyle_ScaleAllSizes, :ImGuiStyle_ScaleAllSizes, [:pointer, :float], :void],
    [:ImGuiIO_AddKeyEvent, :ImGuiIO_AddKeyEvent, [:pointer, :int, :bool], :void],
    [:ImGuiIO_AddKeyAnalogEvent, :ImGuiIO_AddKeyAnalogEvent, [:pointer, :int, :bool, :float], :void],
    [:ImGuiIO_AddMousePosEvent, :ImGuiIO_AddMousePosEvent, [:pointer, :float, :float], :void],
    [:ImGuiIO_AddMouseButtonEvent, :ImGuiIO_AddMouseButtonEvent, [:pointer, :int, :bool], :void],
    [:ImGuiIO_AddMouseWheelEvent, :ImGuiIO_AddMouseWheelEvent, [:pointer, :float, :float], :void],
    [:ImGuiIO_AddMouseSourceEvent, :ImGuiIO_AddMouseSourceEvent, [:pointer, :int], :void],
    [:ImGuiIO_AddMouseViewportEvent, :ImGuiIO_AddMouseViewportEvent, [:pointer, :uint], :void],
    [:ImGuiIO_AddFocusEvent, :ImGuiIO_AddFocusEvent, [:pointer, :bool], :void],
    [:ImGuiIO_AddInputCharacter, :ImGuiIO_AddInputCharacter, [:pointer, :uint], :void],
    [:ImGuiIO_AddInputCharacterUTF16, :ImGuiIO_AddInputCharacterUTF16, [:pointer, :ushort], :void],
    [:ImGuiIO_AddInputCharactersUTF8, :ImGuiIO_AddInputCharactersUTF8, [:pointer, :pointer], :void],
    [:ImGuiIO_SetKeyEventNativeData, :ImGuiIO_SetKeyEventNativeData, [:pointer, :int, :int, :int], :void],
    [:ImGuiIO_SetKeyEventNativeDataEx, :ImGuiIO_SetKeyEventNativeDataEx, [:pointer, :int, :int, :int, :int], :void],
    [:ImGuiIO_SetAppAcceptingEvents, :ImGuiIO_SetAppAcceptingEvents, [:pointer, :bool], :void],
    [:ImGuiIO_ClearEventsQueue, :ImGuiIO_ClearEventsQueue, [:pointer], :void],
    [:ImGuiIO_ClearInputKeys, :ImGuiIO_ClearInputKeys, [:pointer], :void],
    [:ImGuiIO_ClearInputMouse, :ImGuiIO_ClearInputMouse, [:pointer], :void],
    [:ImGuiInputTextCallbackData_DeleteChars, :ImGuiInputTextCallbackData_DeleteChars, [:pointer, :int, :int], :void],
    [:ImGuiInputTextCallbackData_InsertChars, :ImGuiInputTextCallbackData_InsertChars, [:pointer, :int, :pointer, :pointer], :void],
    [:ImGuiInputTextCallbackData_SelectAll, :ImGuiInputTextCallbackData_SelectAll, [:pointer], :void],
    [:ImGuiInputTextCallbackData_SetSelection, :ImGuiInputTextCallbackData_SetSelection, [:pointer, :int, :int], :void],
    [:ImGuiInputTextCallbackData_ClearSelection, :ImGuiInputTextCallbackData_ClearSelection, [:pointer], :void],
    [:ImGuiInputTextCallbackData_HasSelection, :ImGuiInputTextCallbackData_HasSelection, [:pointer], :bool],
    [:ImGuiPayload_Clear, :ImGuiPayload_Clear, [:pointer], :void],
    [:ImGuiPayload_IsDataType, :ImGuiPayload_IsDataType, [:pointer, :pointer], :bool],
    [:ImGuiPayload_IsPreview, :ImGuiPayload_IsPreview, [:pointer], :bool],
    [:ImGuiPayload_IsDelivery, :ImGuiPayload_IsDelivery, [:pointer], :bool],
    [:ImGuiTextFilter_ImGuiTextRange_empty, :ImGuiTextFilter_ImGuiTextRange_empty, [:pointer], :bool],
    [:ImGuiTextFilter_ImGuiTextRange_split, :ImGuiTextFilter_ImGuiTextRange_split, [:pointer, :char, :pointer], :void],
    [:ImGuiTextFilter_Draw, :ImGuiTextFilter_Draw, [:pointer, :pointer, :float], :bool],
    [:ImGuiTextFilter_PassFilter, :ImGuiTextFilter_PassFilter, [:pointer, :pointer, :pointer], :bool],
    [:ImGuiTextFilter_Build, :ImGuiTextFilter_Build, [:pointer], :void],
    [:ImGuiTextFilter_Clear, :ImGuiTextFilter_Clear, [:pointer], :void],
    [:ImGuiTextFilter_IsActive, :ImGuiTextFilter_IsActive, [:pointer], :bool],
    [:ImGuiTextBuffer_begin, :ImGuiTextBuffer_begin, [:pointer], :pointer],
    [:ImGuiTextBuffer_end, :ImGuiTextBuffer_end, [:pointer], :pointer],
    [:ImGuiTextBuffer_size, :ImGuiTextBuffer_size, [:pointer], :int],
    [:ImGuiTextBuffer_empty, :ImGuiTextBuffer_empty, [:pointer], :bool],
    [:ImGuiTextBuffer_clear, :ImGuiTextBuffer_clear, [:pointer], :void],
    [:ImGuiTextBuffer_resize, :ImGuiTextBuffer_resize, [:pointer, :int], :void],
    [:ImGuiTextBuffer_reserve, :ImGuiTextBuffer_reserve, [:pointer, :int], :void],
    [:ImGuiTextBuffer_c_str, :ImGuiTextBuffer_c_str, [:pointer], :pointer],
    [:ImGuiTextBuffer_append, :ImGuiTextBuffer_append, [:pointer, :pointer, :pointer], :void],
    [:ImGuiTextBuffer_appendf, :ImGuiTextBuffer_appendf, [:pointer, :pointer, :varargs], :void],
    [:ImGuiStorage_Clear, :ImGuiStorage_Clear, [:pointer], :void],
    [:ImGuiStorage_GetInt, :ImGuiStorage_GetInt, [:pointer, :uint, :int], :int],
    [:ImGuiStorage_SetInt, :ImGuiStorage_SetInt, [:pointer, :uint, :int], :void],
    [:ImGuiStorage_GetBool, :ImGuiStorage_GetBool, [:pointer, :uint, :bool], :bool],
    [:ImGuiStorage_SetBool, :ImGuiStorage_SetBool, [:pointer, :uint, :bool], :void],
    [:ImGuiStorage_GetFloat, :ImGuiStorage_GetFloat, [:pointer, :uint, :float], :float],
    [:ImGuiStorage_SetFloat, :ImGuiStorage_SetFloat, [:pointer, :uint, :float], :void],
    [:ImGuiStorage_GetVoidPtr, :ImGuiStorage_GetVoidPtr, [:pointer, :uint], :pointer],
    [:ImGuiStorage_SetVoidPtr, :ImGuiStorage_SetVoidPtr, [:pointer, :uint, :pointer], :void],
    [:ImGuiStorage_GetIntRef, :ImGuiStorage_GetIntRef, [:pointer, :uint, :int], :pointer],
    [:ImGuiStorage_GetBoolRef, :ImGuiStorage_GetBoolRef, [:pointer, :uint, :bool], :pointer],
    [:ImGuiStorage_GetFloatRef, :ImGuiStorage_GetFloatRef, [:pointer, :uint, :float], :pointer],
    [:ImGuiStorage_GetVoidPtrRef, :ImGuiStorage_GetVoidPtrRef, [:pointer, :uint, :pointer], :pointer],
    [:ImGuiStorage_BuildSortByKey, :ImGuiStorage_BuildSortByKey, [:pointer], :void],
    [:ImGuiStorage_SetAllInt, :ImGuiStorage_SetAllInt, [:pointer, :int], :void],
    [:ImGuiListClipper_Begin, :ImGuiListClipper_Begin, [:pointer, :int, :float], :void],
    [:ImGuiListClipper_End, :ImGuiListClipper_End, [:pointer], :void],
    [:ImGuiListClipper_Step, :ImGuiListClipper_Step, [:pointer], :bool],
    [:ImGuiListClipper_IncludeItemByIndex, :ImGuiListClipper_IncludeItemByIndex, [:pointer, :int], :void],
    [:ImGuiListClipper_IncludeItemsByIndex, :ImGuiListClipper_IncludeItemsByIndex, [:pointer, :int, :int], :void],
    [:ImGuiListClipper_SeekCursorForItem, :ImGuiListClipper_SeekCursorForItem, [:pointer, :int], :void],
    [:ImColor_SetHSV, :ImColor_SetHSV, [:pointer, :float, :float, :float, :float], :void],
    [:ImColor_HSV, :ImColor_HSV, [:float, :float, :float, :float], ImColor.by_value],
    [:ImGuiSelectionBasicStorage_ApplyRequests, :ImGuiSelectionBasicStorage_ApplyRequests, [:pointer, :pointer], :void],
    [:ImGuiSelectionBasicStorage_Contains, :ImGuiSelectionBasicStorage_Contains, [:pointer, :uint], :bool],
    [:ImGuiSelectionBasicStorage_Clear, :ImGuiSelectionBasicStorage_Clear, [:pointer], :void],
    [:ImGuiSelectionBasicStorage_Swap, :ImGuiSelectionBasicStorage_Swap, [:pointer, :pointer], :void],
    [:ImGuiSelectionBasicStorage_SetItemSelected, :ImGuiSelectionBasicStorage_SetItemSelected, [:pointer, :uint, :bool], :void],
    [:ImGuiSelectionBasicStorage_GetNextSelectedItem, :ImGuiSelectionBasicStorage_GetNextSelectedItem, [:pointer, :pointer, :pointer], :bool],
    [:ImGuiSelectionBasicStorage_GetStorageIdFromIndex, :ImGuiSelectionBasicStorage_GetStorageIdFromIndex, [:pointer, :int], :uint],
    [:ImGuiSelectionExternalStorage_ApplyRequests, :ImGuiSelectionExternalStorage_ApplyRequests, [:pointer, :pointer], :void],
    [:ImDrawCmd_GetTexID, :ImDrawCmd_GetTexID, [:pointer], :uint64],
    [:ImDrawListSplitter_Clear, :ImDrawListSplitter_Clear, [:pointer], :void],
    [:ImDrawListSplitter_ClearFreeMemory, :ImDrawListSplitter_ClearFreeMemory, [:pointer], :void],
    [:ImDrawListSplitter_Split, :ImDrawListSplitter_Split, [:pointer, :pointer, :int], :void],
    [:ImDrawListSplitter_Merge, :ImDrawListSplitter_Merge, [:pointer, :pointer], :void],
    [:ImDrawListSplitter_SetCurrentChannel, :ImDrawListSplitter_SetCurrentChannel, [:pointer, :pointer, :int], :void],
    [:ImDrawList_PushClipRect, :ImDrawList_PushClipRect, [:pointer, ImVec2.by_value, ImVec2.by_value, :bool], :void],
    [:ImDrawList_PushClipRectFullScreen, :ImDrawList_PushClipRectFullScreen, [:pointer], :void],
    [:ImDrawList_PopClipRect, :ImDrawList_PopClipRect, [:pointer], :void],
    [:ImDrawList_PushTexture, :ImDrawList_PushTexture, [:pointer, ImTextureRef.by_value], :void],
    [:ImDrawList_PopTexture, :ImDrawList_PopTexture, [:pointer], :void],
    [:ImDrawList_GetClipRectMin, :ImDrawList_GetClipRectMin, [:pointer], ImVec2.by_value],
    [:ImDrawList_GetClipRectMax, :ImDrawList_GetClipRectMax, [:pointer], ImVec2.by_value],
    [:ImDrawList_AddLine, :ImDrawList_AddLine, [:pointer, ImVec2.by_value, ImVec2.by_value, :uint], :void],
    [:ImDrawList_AddLineEx, :ImDrawList_AddLineEx, [:pointer, ImVec2.by_value, ImVec2.by_value, :uint, :float], :void],
    [:ImDrawList_AddLineH, :ImDrawList_AddLineH, [:pointer, :float, :float, :float, :uint], :void],
    [:ImDrawList_AddLineHEx, :ImDrawList_AddLineHEx, [:pointer, :float, :float, :float, :uint, :float], :void],
    [:ImDrawList_AddLineV, :ImDrawList_AddLineV, [:pointer, :float, :float, :float, :uint], :void],
    [:ImDrawList_AddLineVEx, :ImDrawList_AddLineVEx, [:pointer, :float, :float, :float, :uint, :float], :void],
    [:ImDrawList_AddRect, :ImDrawList_AddRect, [:pointer, ImVec2.by_value, ImVec2.by_value, :uint], :void],
    [:ImDrawList_AddRectEx, :ImDrawList_AddRectEx, [:pointer, ImVec2.by_value, ImVec2.by_value, :uint, :float, :float, :int], :void],
    [:ImDrawList_AddRectFilled, :ImDrawList_AddRectFilled, [:pointer, ImVec2.by_value, ImVec2.by_value, :uint], :void],
    [:ImDrawList_AddRectFilledEx, :ImDrawList_AddRectFilledEx, [:pointer, ImVec2.by_value, ImVec2.by_value, :uint, :float, :int], :void],
    [:ImDrawList_AddRectFilledMultiColor, :ImDrawList_AddRectFilledMultiColor, [:pointer, ImVec2.by_value, ImVec2.by_value, :uint, :uint, :uint, :uint], :void],
    [:ImDrawList_AddQuad, :ImDrawList_AddQuad, [:pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint], :void],
    [:ImDrawList_AddQuadEx, :ImDrawList_AddQuadEx, [:pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint, :float], :void],
    [:ImDrawList_AddQuadFilled, :ImDrawList_AddQuadFilled, [:pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint], :void],
    [:ImDrawList_AddTriangle, :ImDrawList_AddTriangle, [:pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint], :void],
    [:ImDrawList_AddTriangleEx, :ImDrawList_AddTriangleEx, [:pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint, :float], :void],
    [:ImDrawList_AddTriangleFilled, :ImDrawList_AddTriangleFilled, [:pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint], :void],
    [:ImDrawList_AddCircle, :ImDrawList_AddCircle, [:pointer, ImVec2.by_value, :float, :uint], :void],
    [:ImDrawList_AddCircleEx, :ImDrawList_AddCircleEx, [:pointer, ImVec2.by_value, :float, :uint, :int, :float], :void],
    [:ImDrawList_AddCircleFilled, :ImDrawList_AddCircleFilled, [:pointer, ImVec2.by_value, :float, :uint, :int], :void],
    [:ImDrawList_AddNgon, :ImDrawList_AddNgon, [:pointer, ImVec2.by_value, :float, :uint, :int], :void],
    [:ImDrawList_AddNgonEx, :ImDrawList_AddNgonEx, [:pointer, ImVec2.by_value, :float, :uint, :int, :float], :void],
    [:ImDrawList_AddNgonFilled, :ImDrawList_AddNgonFilled, [:pointer, ImVec2.by_value, :float, :uint, :int], :void],
    [:ImDrawList_AddEllipse, :ImDrawList_AddEllipse, [:pointer, ImVec2.by_value, ImVec2.by_value, :uint], :void],
    [:ImDrawList_AddEllipseEx, :ImDrawList_AddEllipseEx, [:pointer, ImVec2.by_value, ImVec2.by_value, :uint, :float, :int, :float], :void],
    [:ImDrawList_AddEllipseFilled, :ImDrawList_AddEllipseFilled, [:pointer, ImVec2.by_value, ImVec2.by_value, :uint], :void],
    [:ImDrawList_AddEllipseFilledEx, :ImDrawList_AddEllipseFilledEx, [:pointer, ImVec2.by_value, ImVec2.by_value, :uint, :float, :int], :void],
    [:ImDrawList_AddText, :ImDrawList_AddText, [:pointer, ImVec2.by_value, :uint, :pointer], :void],
    [:ImDrawList_AddTextEx, :ImDrawList_AddTextEx, [:pointer, ImVec2.by_value, :uint, :pointer, :pointer], :void],
    [:ImDrawList_AddTextImFontPtr, :ImDrawList_AddTextImFontPtr, [:pointer, :pointer, :float, ImVec2.by_value, :uint, :pointer], :void],
    [:ImDrawList_AddTextImFontPtrEx, :ImDrawList_AddTextImFontPtrEx, [:pointer, :pointer, :float, ImVec2.by_value, :uint, :pointer, :pointer, :float, :pointer], :void],
    [:ImDrawList_AddBezierCubic, :ImDrawList_AddBezierCubic, [:pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint, :float, :int], :void],
    [:ImDrawList_AddBezierQuadratic, :ImDrawList_AddBezierQuadratic, [:pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint, :float, :int], :void],
    [:ImDrawList_AddPolyline, :ImDrawList_AddPolyline, [:pointer, :pointer, :int, :uint, :float, :int], :void],
    [:ImDrawList_AddConvexPolyFilled, :ImDrawList_AddConvexPolyFilled, [:pointer, :pointer, :int, :uint], :void],
    [:ImDrawList_AddConcavePolyFilled, :ImDrawList_AddConcavePolyFilled, [:pointer, :pointer, :int, :uint], :void],
    [:ImDrawList_AddImage, :ImDrawList_AddImage, [:pointer, ImTextureRef.by_value, ImVec2.by_value, ImVec2.by_value], :void],
    [:ImDrawList_AddImageEx, :ImDrawList_AddImageEx, [:pointer, ImTextureRef.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint], :void],
    [:ImDrawList_AddImageQuad, :ImDrawList_AddImageQuad, [:pointer, ImTextureRef.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value], :void],
    [:ImDrawList_AddImageQuadEx, :ImDrawList_AddImageQuadEx, [:pointer, ImTextureRef.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint], :void],
    [:ImDrawList_AddImageRounded, :ImDrawList_AddImageRounded, [:pointer, ImTextureRef.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint, :float, :int], :void],
    [:ImDrawList_PathClear, :ImDrawList_PathClear, [:pointer], :void],
    [:ImDrawList_PathLineTo, :ImDrawList_PathLineTo, [:pointer, ImVec2.by_value], :void],
    [:ImDrawList_PathLineToMergeDuplicate, :ImDrawList_PathLineToMergeDuplicate, [:pointer, ImVec2.by_value], :void],
    [:ImDrawList_PathFillConvex, :ImDrawList_PathFillConvex, [:pointer, :uint], :void],
    [:ImDrawList_PathFillConcave, :ImDrawList_PathFillConcave, [:pointer, :uint], :void],
    [:ImDrawList_PathStroke, :ImDrawList_PathStroke, [:pointer, :uint, :float, :int], :void],
    [:ImDrawList_PathArcTo, :ImDrawList_PathArcTo, [:pointer, ImVec2.by_value, :float, :float, :float, :int], :void],
    [:ImDrawList_PathArcToFast, :ImDrawList_PathArcToFast, [:pointer, ImVec2.by_value, :float, :int, :int], :void],
    [:ImDrawList_PathEllipticalArcTo, :ImDrawList_PathEllipticalArcTo, [:pointer, ImVec2.by_value, ImVec2.by_value, :float, :float, :float], :void],
    [:ImDrawList_PathEllipticalArcToEx, :ImDrawList_PathEllipticalArcToEx, [:pointer, ImVec2.by_value, ImVec2.by_value, :float, :float, :float, :int], :void],
    [:ImDrawList_PathBezierCubicCurveTo, :ImDrawList_PathBezierCubicCurveTo, [:pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :int], :void],
    [:ImDrawList_PathBezierQuadraticCurveTo, :ImDrawList_PathBezierQuadraticCurveTo, [:pointer, ImVec2.by_value, ImVec2.by_value, :int], :void],
    [:ImDrawList_PathRect, :ImDrawList_PathRect, [:pointer, ImVec2.by_value, ImVec2.by_value, :float, :int], :void],
    [:ImDrawList_AddCallback, :ImDrawList_AddCallback, [:pointer, :ImDrawCallback], :void],
    [:ImDrawList_AddCallbackEx, :ImDrawList_AddCallbackEx, [:pointer, :ImDrawCallback, :pointer, :size_t], :void],
    [:ImDrawList_AddDrawCmd, :ImDrawList_AddDrawCmd, [:pointer], :void],
    [:ImDrawList_CloneOutput, :ImDrawList_CloneOutput, [:pointer], :pointer],
    [:ImDrawList_ChannelsSplit, :ImDrawList_ChannelsSplit, [:pointer, :int], :void],
    [:ImDrawList_ChannelsMerge, :ImDrawList_ChannelsMerge, [:pointer], :void],
    [:ImDrawList_ChannelsSetCurrent, :ImDrawList_ChannelsSetCurrent, [:pointer, :int], :void],
    [:ImDrawList_PrimReserve, :ImDrawList_PrimReserve, [:pointer, :int, :int], :void],
    [:ImDrawList_PrimUnreserve, :ImDrawList_PrimUnreserve, [:pointer, :int, :int], :void],
    [:ImDrawList_PrimRect, :ImDrawList_PrimRect, [:pointer, ImVec2.by_value, ImVec2.by_value, :uint], :void],
    [:ImDrawList_PrimRectUV, :ImDrawList_PrimRectUV, [:pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint], :void],
    [:ImDrawList_PrimQuadUV, :ImDrawList_PrimQuadUV, [:pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :uint], :void],
    [:ImDrawList_PrimWriteVtx, :ImDrawList_PrimWriteVtx, [:pointer, ImVec2.by_value, ImVec2.by_value, :uint], :void],
    [:ImDrawList_PrimWriteIdx, :ImDrawList_PrimWriteIdx, [:pointer, :ushort], :void],
    [:ImDrawList_PrimVtx, :ImDrawList_PrimVtx, [:pointer, ImVec2.by_value, ImVec2.by_value, :uint], :void],
    [:ImDrawList_AddRectImDrawFlags, :ImDrawList_AddRectImDrawFlags, [:pointer, ImVec2.by_value, ImVec2.by_value, :uint, :float, :int, :float], :void],
    [:ImDrawList_AddPolylineImDrawFlags, :ImDrawList_AddPolylineImDrawFlags, [:pointer, :pointer, :int, :uint, :int, :float], :void],
    [:ImDrawList_PathStrokeImDrawFlags, :ImDrawList_PathStrokeImDrawFlags, [:pointer, :uint, :int, :float], :void],
    [:ImDrawList_PushTextureID, :ImDrawList_PushTextureID, [:pointer, ImTextureRef.by_value], :void],
    [:ImDrawList_PopTextureID, :ImDrawList_PopTextureID, [:pointer], :void],
    [:ImDrawList__SetDrawListSharedData, :ImDrawList__SetDrawListSharedData, [:pointer, :pointer], :void],
    [:ImDrawList__ResetForNewFrame, :ImDrawList__ResetForNewFrame, [:pointer], :void],
    [:ImDrawList__ClearFreeMemory, :ImDrawList__ClearFreeMemory, [:pointer], :void],
    [:ImDrawList__PopUnusedDrawCmd, :ImDrawList__PopUnusedDrawCmd, [:pointer], :void],
    [:ImDrawList__TryMergeDrawCmds, :ImDrawList__TryMergeDrawCmds, [:pointer], :void],
    [:ImDrawList__OnChangedClipRect, :ImDrawList__OnChangedClipRect, [:pointer], :void],
    [:ImDrawList__OnChangedTexture, :ImDrawList__OnChangedTexture, [:pointer], :void],
    [:ImDrawList__OnChangedVtxOffset, :ImDrawList__OnChangedVtxOffset, [:pointer], :void],
    [:ImDrawList__SetTexture, :ImDrawList__SetTexture, [:pointer, ImTextureRef.by_value], :void],
    [:ImDrawList__CalcCircleAutoSegmentCount, :ImDrawList__CalcCircleAutoSegmentCount, [:pointer, :float], :int],
    [:ImDrawList__PathArcToFastEx, :ImDrawList__PathArcToFastEx, [:pointer, ImVec2.by_value, :float, :int, :int, :int], :void],
    [:ImDrawList__PathArcToN, :ImDrawList__PathArcToN, [:pointer, ImVec2.by_value, :float, :float, :float, :int], :void],
    [:ImDrawData_Clear, :ImDrawData_Clear, [:pointer], :void],
    [:ImDrawData_AddDrawList, :ImDrawData_AddDrawList, [:pointer, :pointer], :void],
    [:ImDrawData_DeIndexAllBuffers, :ImDrawData_DeIndexAllBuffers, [:pointer], :void],
    [:ImDrawData_ScaleClipRects, :ImDrawData_ScaleClipRects, [:pointer, ImVec2.by_value], :void],
    [:ImTextureData_Create, :ImTextureData_Create, [:pointer, :int, :int, :int], :void],
    [:ImTextureData_DestroyPixels, :ImTextureData_DestroyPixels, [:pointer], :void],
    [:ImTextureData_GetPixels, :ImTextureData_GetPixels, [:pointer], :pointer],
    [:ImTextureData_GetPixelsAt, :ImTextureData_GetPixelsAt, [:pointer, :int, :int], :pointer],
    [:ImTextureData_GetSizeInBytes, :ImTextureData_GetSizeInBytes, [:pointer], :int],
    [:ImTextureData_GetPitch, :ImTextureData_GetPitch, [:pointer], :int],
    [:ImTextureData_GetTexRef, :ImTextureData_GetTexRef, [:pointer], ImTextureRef.by_value],
    [:ImTextureData_GetTexID, :ImTextureData_GetTexID, [:pointer], :uint64],
    [:ImTextureData_SetTexID, :ImTextureData_SetTexID, [:pointer, :uint64], :void],
    [:ImTextureData_SetStatus, :ImTextureData_SetStatus, [:pointer, :int], :void],
    [:ImFontGlyphRangesBuilder_Clear, :ImFontGlyphRangesBuilder_Clear, [:pointer], :void],
    [:ImFontGlyphRangesBuilder_GetBit, :ImFontGlyphRangesBuilder_GetBit, [:pointer, :size_t], :bool],
    [:ImFontGlyphRangesBuilder_SetBit, :ImFontGlyphRangesBuilder_SetBit, [:pointer, :size_t], :void],
    [:ImFontGlyphRangesBuilder_AddChar, :ImFontGlyphRangesBuilder_AddChar, [:pointer, :ushort], :void],
    [:ImFontGlyphRangesBuilder_AddText, :ImFontGlyphRangesBuilder_AddText, [:pointer, :pointer, :pointer], :void],
    [:ImFontGlyphRangesBuilder_AddRanges, :ImFontGlyphRangesBuilder_AddRanges, [:pointer, :pointer], :void],
    [:ImFontGlyphRangesBuilder_BuildRanges, :ImFontGlyphRangesBuilder_BuildRanges, [:pointer, :pointer], :void],
    [:ImFontAtlas_AddFont, :ImFontAtlas_AddFont, [:pointer, :pointer], :pointer],
    [:ImFontAtlas_AddFontDefault, :ImFontAtlas_AddFontDefault, [:pointer, :pointer], :pointer],
    [:ImFontAtlas_AddFontDefaultVector, :ImFontAtlas_AddFontDefaultVector, [:pointer, :pointer], :pointer],
    [:ImFontAtlas_AddFontDefaultBitmap, :ImFontAtlas_AddFontDefaultBitmap, [:pointer, :pointer], :pointer],
    [:ImFontAtlas_AddFontFromFileTTF, :ImFontAtlas_AddFontFromFileTTF, [:pointer, :pointer, :float, :pointer, :pointer], :pointer],
    [:ImFontAtlas_AddFontFromMemoryTTF, :ImFontAtlas_AddFontFromMemoryTTF, [:pointer, :pointer, :int, :float, :pointer, :pointer], :pointer],
    [:ImFontAtlas_AddFontFromMemoryCompressedTTF, :ImFontAtlas_AddFontFromMemoryCompressedTTF, [:pointer, :pointer, :int, :float, :pointer, :pointer], :pointer],
    [:ImFontAtlas_AddFontFromMemoryCompressedBase85TTF, :ImFontAtlas_AddFontFromMemoryCompressedBase85TTF, [:pointer, :pointer, :float, :pointer, :pointer], :pointer],
    [:ImFontAtlas_RemoveFont, :ImFontAtlas_RemoveFont, [:pointer, :pointer], :void],
    [:ImFontAtlas_CompactCache, :ImFontAtlas_CompactCache, [:pointer], :void],
    [:ImFontAtlas_SetFontLoader, :ImFontAtlas_SetFontLoader, [:pointer, :pointer], :void],
    [:ImFontAtlas_Clear, :ImFontAtlas_Clear, [:pointer], :void],
    [:ImFontAtlas_ClearFonts, :ImFontAtlas_ClearFonts, [:pointer], :void],
    [:ImFontAtlas_ClearInputData, :ImFontAtlas_ClearInputData, [:pointer], :void],
    [:ImFontAtlas_ClearTexData, :ImFontAtlas_ClearTexData, [:pointer], :void],
    [:ImFontAtlas_Build, :ImFontAtlas_Build, [:pointer], :bool],
    [:ImFontAtlas_GetTexDataAsAlpha8, :ImFontAtlas_GetTexDataAsAlpha8, [:pointer, :pointer, :pointer, :pointer, :pointer], :void],
    [:ImFontAtlas_GetTexDataAsRGBA32, :ImFontAtlas_GetTexDataAsRGBA32, [:pointer, :pointer, :pointer, :pointer, :pointer], :void],
    [:ImFontAtlas_SetTexID, :ImFontAtlas_SetTexID, [:pointer, :uint64], :void],
    [:ImFontAtlas_SetTexIDImTextureRef, :ImFontAtlas_SetTexIDImTextureRef, [:pointer, ImTextureRef.by_value], :void],
    [:ImFontAtlas_IsBuilt, :ImFontAtlas_IsBuilt, [:pointer], :bool],
    [:ImFontAtlas_GetGlyphRangesDefault, :ImFontAtlas_GetGlyphRangesDefault, [:pointer], :pointer],
    [:ImFontAtlas_GetGlyphRangesGreek, :ImFontAtlas_GetGlyphRangesGreek, [:pointer], :pointer],
    [:ImFontAtlas_GetGlyphRangesKorean, :ImFontAtlas_GetGlyphRangesKorean, [:pointer], :pointer],
    [:ImFontAtlas_GetGlyphRangesJapanese, :ImFontAtlas_GetGlyphRangesJapanese, [:pointer], :pointer],
    [:ImFontAtlas_GetGlyphRangesChineseFull, :ImFontAtlas_GetGlyphRangesChineseFull, [:pointer], :pointer],
    [:ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon, :ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon, [:pointer], :pointer],
    [:ImFontAtlas_GetGlyphRangesCyrillic, :ImFontAtlas_GetGlyphRangesCyrillic, [:pointer], :pointer],
    [:ImFontAtlas_GetGlyphRangesThai, :ImFontAtlas_GetGlyphRangesThai, [:pointer], :pointer],
    [:ImFontAtlas_GetGlyphRangesVietnamese, :ImFontAtlas_GetGlyphRangesVietnamese, [:pointer], :pointer],
    [:ImFontAtlas_AddCustomRect, :ImFontAtlas_AddCustomRect, [:pointer, :int, :int, :pointer], :int],
    [:ImFontAtlas_RemoveCustomRect, :ImFontAtlas_RemoveCustomRect, [:pointer, :int], :void],
    [:ImFontAtlas_GetCustomRect, :ImFontAtlas_GetCustomRect, [:pointer, :int, :pointer], :bool],
    [:ImFontAtlas_AddCustomRectRegular, :ImFontAtlas_AddCustomRectRegular, [:pointer, :int, :int], :int],
    [:ImFontAtlas_GetCustomRectByIndex, :ImFontAtlas_GetCustomRectByIndex, [:pointer, :int], :pointer],
    [:ImFontAtlas_CalcCustomRectUV, :ImFontAtlas_CalcCustomRectUV, [:pointer, :pointer, :pointer, :pointer], :void],
    [:ImFontAtlas_AddCustomRectFontGlyph, :ImFontAtlas_AddCustomRectFontGlyph, [:pointer, :pointer, :ushort, :int, :int, :float, ImVec2.by_value], :int],
    [:ImFontAtlas_AddCustomRectFontGlyphForSize, :ImFontAtlas_AddCustomRectFontGlyphForSize, [:pointer, :pointer, :float, :ushort, :int, :int, :float, ImVec2.by_value], :int],
    [:ImFontBaked_ClearOutputData, :ImFontBaked_ClearOutputData, [:pointer], :void],
    [:ImFontBaked_FindGlyph, :ImFontBaked_FindGlyph, [:pointer, :ushort], :pointer],
    [:ImFontBaked_FindGlyphNoFallback, :ImFontBaked_FindGlyphNoFallback, [:pointer, :ushort], :pointer],
    [:ImFontBaked_GetCharAdvance, :ImFontBaked_GetCharAdvance, [:pointer, :ushort], :float],
    [:ImFontBaked_IsGlyphLoaded, :ImFontBaked_IsGlyphLoaded, [:pointer, :ushort], :bool],
    [:ImFont_IsGlyphInFont, :ImFont_IsGlyphInFont, [:pointer, :ushort], :bool],
    [:ImFont_IsLoaded, :ImFont_IsLoaded, [:pointer], :bool],
    [:ImFont_GetDebugName, :ImFont_GetDebugName, [:pointer], :pointer],
    [:ImFont_GetFontBaked, :ImFont_GetFontBaked, [:pointer, :float], :pointer],
    [:ImFont_GetFontBakedEx, :ImFont_GetFontBakedEx, [:pointer, :float, :float], :pointer],
    [:ImFont_CalcTextSizeA, :ImFont_CalcTextSizeA, [:pointer, :float, :float, :float, :pointer], ImVec2.by_value],
    [:ImFont_CalcTextSizeAEx, :ImFont_CalcTextSizeAEx, [:pointer, :float, :float, :float, :pointer, :pointer, :pointer], ImVec2.by_value],
    [:ImFont_CalcWordWrapPosition, :ImFont_CalcWordWrapPosition, [:pointer, :float, :pointer, :pointer, :float], :pointer],
    [:ImFont_RenderChar, :ImFont_RenderChar, [:pointer, :pointer, :float, ImVec2.by_value, :uint, :ushort], :void],
    [:ImFont_RenderCharEx, :ImFont_RenderCharEx, [:pointer, :pointer, :float, ImVec2.by_value, :uint, :ushort, :pointer], :void],
    [:ImFont_RenderText, :ImFont_RenderText, [:pointer, :pointer, :float, ImVec2.by_value, :uint, ImVec4.by_value, :pointer, :pointer, :float, :int], :void],
    [:ImFont_CalcWordWrapPositionA, :ImFont_CalcWordWrapPositionA, [:pointer, :float, :pointer, :pointer, :float], :pointer],
    [:ImFont_ClearOutputData, :ImFont_ClearOutputData, [:pointer], :void],
    [:ImFont_AddRemapChar, :ImFont_AddRemapChar, [:pointer, :ushort, :ushort], :void],
    [:ImFont_IsGlyphRangeUnused, :ImFont_IsGlyphRangeUnused, [:pointer, :uint, :uint], :bool],
    [:ImGuiViewport_GetCenter, :ImGuiViewport_GetCenter, [:pointer], ImVec2.by_value],
    [:ImGuiViewport_GetWorkCenter, :ImGuiViewport_GetWorkCenter, [:pointer], ImVec2.by_value],
    [:ImGuiViewport_GetDebugName, :ImGuiViewport_GetDebugName, [:pointer], :pointer],
    [:ImGuiPlatformIO_ClearPlatformHandlers, :ImGuiPlatformIO_ClearPlatformHandlers, [:pointer], :void],
    [:ImGuiPlatformIO_ClearRendererHandlers, :ImGuiPlatformIO_ClearRendererHandlers, [:pointer], :void],
    [:ImGui_SetColorEditOptions, :ImGui_SetColorEditOptions, [:int], :void],
    [:ImGui_PushFont, :ImGui_PushFont, [:pointer], :void],
    [:ImGui_SetWindowFontScale, :ImGui_SetWindowFontScale, [:float], :void],
    [:ImGui_ImageImVec4, :ImGui_ImageImVec4, [ImTextureRef.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec4.by_value, ImVec4.by_value], :void],
    [:ImGui_PushButtonRepeat, :ImGui_PushButtonRepeat, [:bool], :void],
    [:ImGui_PopButtonRepeat, :ImGui_PopButtonRepeat, [], :void],
    [:ImGui_PushTabStop, :ImGui_PushTabStop, [:bool], :void],
    [:ImGui_PopTabStop, :ImGui_PopTabStop, [], :void],
    [:ImGui_GetContentRegionMax, :ImGui_GetContentRegionMax, [], ImVec2.by_value],
    [:ImGui_GetWindowContentRegionMin, :ImGui_GetWindowContentRegionMin, [], ImVec2.by_value],
    [:ImGui_GetWindowContentRegionMax, :ImGui_GetWindowContentRegionMax, [], ImVec2.by_value],
    [:cImHashData, :cImHashData, [:pointer, :size_t], :uint],
    [:cImHashDataEx, :cImHashDataEx, [:pointer, :size_t, :uint], :uint],
    [:cImHashStr, :cImHashStr, [:pointer], :uint],
    [:cImHashStrEx, :cImHashStrEx, [:pointer, :size_t, :uint], :uint],
    [:cImHashSkipUncontributingPrefix, :cImHashSkipUncontributingPrefix, [:pointer], :pointer],
    [:cImAlphaBlendColors, :cImAlphaBlendColors, [:uint, :uint], :uint],
    [:cImIsPowerOfTwo, :cImIsPowerOfTwo, [:int], :bool],
    [:cImIsPowerOfTwoImU64, :cImIsPowerOfTwoImU64, [:uint64], :bool],
    [:cImUpperPowerOfTwo, :cImUpperPowerOfTwo, [:int], :int],
    [:cImCountSetBits, :cImCountSetBits, [:uint], :uint],
    [:cImStricmp, :cImStricmp, [:pointer, :pointer], :int],
    [:cImStrnicmp, :cImStrnicmp, [:pointer, :pointer, :size_t], :int],
    [:cImStrncpy, :cImStrncpy, [:pointer, :pointer, :size_t], :void],
    [:cImStrdup, :cImStrdup, [:pointer], :pointer],
    [:cImMemdup, :cImMemdup, [:pointer, :size_t], :pointer],
    [:cImStrdupcpy, :cImStrdupcpy, [:pointer, :pointer, :pointer], :pointer],
    [:cImStrchrRange, :cImStrchrRange, [:pointer, :pointer, :char], :pointer],
    [:cImStreolRange, :cImStreolRange, [:pointer, :pointer], :pointer],
    [:cImStristr, :cImStristr, [:pointer, :pointer, :pointer, :pointer], :pointer],
    [:cImStrTrimBlanks, :cImStrTrimBlanks, [:pointer], :void],
    [:cImStrSkipBlank, :cImStrSkipBlank, [:pointer], :pointer],
    [:cImStrlenW, :cImStrlenW, [:pointer], :int],
    [:cImStrbol, :cImStrbol, [:pointer, :pointer], :pointer],
    [:cImToUpper, :cImToUpper, [:char], :char],
    [:cImCharIsBlankA, :cImCharIsBlankA, [:char], :bool],
    [:cImCharIsBlankW, :cImCharIsBlankW, [:uint], :bool],
    [:cImCharIsXdigitA, :cImCharIsXdigitA, [:char], :bool],
    [:cImFormatString, :cImFormatString, [:pointer, :size_t, :pointer, :varargs], :int],
    [:cImFormatStringToTempBuffer, :cImFormatStringToTempBuffer, [:pointer, :pointer, :pointer, :varargs], :void],
    [:cImParseFormatFindStart, :cImParseFormatFindStart, [:pointer], :pointer],
    [:cImParseFormatFindEnd, :cImParseFormatFindEnd, [:pointer], :pointer],
    [:cImParseFormatTrimDecorations, :cImParseFormatTrimDecorations, [:pointer, :pointer, :size_t], :pointer],
    [:cImParseFormatSanitizeForPrinting, :cImParseFormatSanitizeForPrinting, [:pointer, :pointer, :size_t], :void],
    [:cImParseFormatSanitizeForScanning, :cImParseFormatSanitizeForScanning, [:pointer, :pointer, :size_t], :pointer],
    [:cImParseFormatPrecision, :cImParseFormatPrecision, [:pointer, :int], :int],
    [:cImTextCharToUtf8, :cImTextCharToUtf8, [:pointer, :uint], :int],
    [:cImTextStrToUtf8, :cImTextStrToUtf8, [:pointer, :int, :pointer, :pointer], :int],
    [:cImTextCharFromUtf8, :cImTextCharFromUtf8, [:pointer, :pointer, :pointer], :int],
    [:cImTextStrFromUtf8, :cImTextStrFromUtf8, [:pointer, :int, :pointer, :pointer], :int],
    [:cImTextStrFromUtf8Ex, :cImTextStrFromUtf8Ex, [:pointer, :int, :pointer, :pointer, :pointer], :int],
    [:cImTextCountCharsFromUtf8, :cImTextCountCharsFromUtf8, [:pointer, :pointer], :int],
    [:cImTextCountUtf8BytesFromChar, :cImTextCountUtf8BytesFromChar, [:pointer, :pointer], :int],
    [:cImTextCountUtf8BytesFromStr, :cImTextCountUtf8BytesFromStr, [:pointer, :pointer], :int],
    [:cImTextFindPreviousUtf8Codepoint, :cImTextFindPreviousUtf8Codepoint, [:pointer, :pointer], :pointer],
    [:cImTextFindValidUtf8CodepointEnd, :cImTextFindValidUtf8CodepointEnd, [:pointer, :pointer, :pointer], :pointer],
    [:cImTextCountLines, :cImTextCountLines, [:pointer, :pointer], :int],
    [:cImFontCalcTextSizeEx, :cImFontCalcTextSizeEx, [:pointer, :float, :float, :float, :pointer, :pointer, :pointer, :pointer, :pointer, :int], ImVec2.by_value],
    [:cImFontCalcWordWrapPositionEx, :cImFontCalcWordWrapPositionEx, [:pointer, :float, :pointer, :pointer, :float, :int], :pointer],
    [:cImTextCalcWordWrapNextLineStart, :cImTextCalcWordWrapNextLineStart, [:pointer, :pointer, :int], :pointer],
    [:cImTextInitClassifiers, :cImTextInitClassifiers, [], :void],
    [:cImTextClassifierClear, :cImTextClassifierClear, [:pointer, :uint, :uint, :int], :void],
    [:cImTextClassifierSetCharClass, :cImTextClassifierSetCharClass, [:pointer, :uint, :uint, :int, :uint], :void],
    [:cImTextClassifierSetCharClassFromStr, :cImTextClassifierSetCharClassFromStr, [:pointer, :uint, :uint, :int, :pointer], :void],
    [:cImFileOpen, :cImFileOpen, [:pointer, :pointer], :pointer],
    [:cImFileClose, :cImFileClose, [:pointer], :bool],
    [:cImFileGetSize, :cImFileGetSize, [:pointer], :uint64],
    [:cImFileRead, :cImFileRead, [:pointer, :uint64, :uint64, :pointer], :uint64],
    [:cImFileWrite, :cImFileWrite, [:pointer, :uint64, :uint64, :pointer], :uint64],
    [:cImFileLoadToMemory, :cImFileLoadToMemory, [:pointer, :pointer], :pointer],
    [:cImFileLoadToMemoryEx, :cImFileLoadToMemoryEx, [:pointer, :pointer, :pointer, :int], :pointer],
    [:cImPow, :cImPow, [:float, :float], :float],
    [:cImPowDouble, :cImPowDouble, [:double, :double], :double],
    [:cImLog, :cImLog, [:float], :float],
    [:cImLogDouble, :cImLogDouble, [:double], :double],
    [:cImAbs, :cImAbs, [:int], :int],
    [:cImAbsFloat, :cImAbsFloat, [:float], :float],
    [:cImAbsDouble, :cImAbsDouble, [:double], :double],
    [:cImSign, :cImSign, [:float], :float],
    [:cImSignDouble, :cImSignDouble, [:double], :double],
    [:cImRsqrt, :cImRsqrt, [:float], :float],
    [:cImRsqrtFloat, :cImRsqrtFloat, [:float], :float],
    [:cImRsqrtDouble, :cImRsqrtDouble, [:double], :double],
    [:cImMin, :cImMin, [ImVec2.by_value, ImVec2.by_value], ImVec2.by_value],
    [:cImMax, :cImMax, [ImVec2.by_value, ImVec2.by_value], ImVec2.by_value],
    [:cImClamp, :cImClamp, [ImVec2.by_value, ImVec2.by_value, ImVec2.by_value], ImVec2.by_value],
    [:cImLerp, :cImLerp, [ImVec2.by_value, ImVec2.by_value, :float], ImVec2.by_value],
    [:cImLerpImVec2, :cImLerpImVec2, [ImVec2.by_value, ImVec2.by_value, ImVec2.by_value], ImVec2.by_value],
    [:cImLerpImVec4, :cImLerpImVec4, [ImVec4.by_value, ImVec4.by_value, :float], ImVec4.by_value],
    [:cImSaturate, :cImSaturate, [:float], :float],
    [:cImLengthSqr, :cImLengthSqr, [ImVec2.by_value], :float],
    [:cImLengthSqrImVec4, :cImLengthSqrImVec4, [ImVec4.by_value], :float],
    [:cImInvLength, :cImInvLength, [ImVec2.by_value, :float], :float],
    [:cImTrunc, :cImTrunc, [:float], :float],
    [:cImTruncImVec2, :cImTruncImVec2, [ImVec2.by_value], ImVec2.by_value],
    [:cImFloor, :cImFloor, [:float], :float],
    [:cImFloorImVec2, :cImFloorImVec2, [ImVec2.by_value], ImVec2.by_value],
    [:cImTrunc64, :cImTrunc64, [:float], :float],
    [:cImRound64, :cImRound64, [:float], :float],
    [:cImCeilFast, :cImCeilFast, [:float], :float],
    [:cImModPositive, :cImModPositive, [:int, :int], :int],
    [:cImDot, :cImDot, [ImVec2.by_value, ImVec2.by_value], :float],
    [:cImRotate, :cImRotate, [ImVec2.by_value, :float, :float], ImVec2.by_value],
    [:cImLinearSweep, :cImLinearSweep, [:float, :float, :float], :float],
    [:cImLinearRemapClamp, :cImLinearRemapClamp, [:float, :float, :float, :float, :float], :float],
    [:cImMul, :cImMul, [ImVec2.by_value, ImVec2.by_value], ImVec2.by_value],
    [:cImIsFloatAboveGuaranteedIntegerPrecision, :cImIsFloatAboveGuaranteedIntegerPrecision, [:float], :bool],
    [:cImExponentialMovingAverage, :cImExponentialMovingAverage, [:float, :float, :int], :float],
    [:cImBezierCubicCalc, :cImBezierCubicCalc, [ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :float], ImVec2.by_value],
    [:cImBezierCubicClosestPoint, :cImBezierCubicClosestPoint, [ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :int], ImVec2.by_value],
    [:cImBezierCubicClosestPointCasteljau, :cImBezierCubicClosestPointCasteljau, [ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :float], ImVec2.by_value],
    [:cImBezierQuadraticCalc, :cImBezierQuadraticCalc, [ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :float], ImVec2.by_value],
    [:cImLineClosestPoint, :cImLineClosestPoint, [ImVec2.by_value, ImVec2.by_value, ImVec2.by_value], ImVec2.by_value],
    [:cImTriangleContainsPoint, :cImTriangleContainsPoint, [ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value], :bool],
    [:cImTriangleClosestPoint, :cImTriangleClosestPoint, [ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value], ImVec2.by_value],
    [:cImTriangleBarycentricCoords, :cImTriangleBarycentricCoords, [ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :pointer, :pointer, :pointer], :void],
    [:cImTriangleArea, :cImTriangleArea, [ImVec2.by_value, ImVec2.by_value, ImVec2.by_value], :float],
    [:cImTriangleIsClockwise, :cImTriangleIsClockwise, [ImVec2.by_value, ImVec2.by_value, ImVec2.by_value], :bool],
    [:ImRect_GetCenter, :ImRect_GetCenter, [:pointer], ImVec2.by_value],
    [:ImRect_GetSize, :ImRect_GetSize, [:pointer], ImVec2.by_value],
    [:ImRect_GetWidth, :ImRect_GetWidth, [:pointer], :float],
    [:ImRect_GetHeight, :ImRect_GetHeight, [:pointer], :float],
    [:ImRect_GetArea, :ImRect_GetArea, [:pointer], :float],
    [:ImRect_GetTL, :ImRect_GetTL, [:pointer], ImVec2.by_value],
    [:ImRect_GetTR, :ImRect_GetTR, [:pointer], ImVec2.by_value],
    [:ImRect_GetBL, :ImRect_GetBL, [:pointer], ImVec2.by_value],
    [:ImRect_GetBR, :ImRect_GetBR, [:pointer], ImVec2.by_value],
    [:ImRect_Contains, :ImRect_Contains, [:pointer, ImVec2.by_value], :bool],
    [:ImRect_ContainsImRect, :ImRect_ContainsImRect, [:pointer, ImRect.by_value], :bool],
    [:ImRect_ContainsWithPad, :ImRect_ContainsWithPad, [:pointer, ImVec2.by_value, ImVec2.by_value], :bool],
    [:ImRect_Overlaps, :ImRect_Overlaps, [:pointer, ImRect.by_value], :bool],
    [:ImRect_Add, :ImRect_Add, [:pointer, ImVec2.by_value], :void],
    [:ImRect_AddImRect, :ImRect_AddImRect, [:pointer, ImRect.by_value], :void],
    [:ImRect_AddX, :ImRect_AddX, [:pointer, :float], :void],
    [:ImRect_AddY, :ImRect_AddY, [:pointer, :float], :void],
    [:ImRect_Expand, :ImRect_Expand, [:pointer, :float], :void],
    [:ImRect_ExpandImVec2, :ImRect_ExpandImVec2, [:pointer, ImVec2.by_value], :void],
    [:ImRect_Translate, :ImRect_Translate, [:pointer, ImVec2.by_value], :void],
    [:ImRect_TranslateX, :ImRect_TranslateX, [:pointer, :float], :void],
    [:ImRect_TranslateY, :ImRect_TranslateY, [:pointer, :float], :void],
    [:ImRect_ClipWith, :ImRect_ClipWith, [:pointer, ImRect.by_value], :void],
    [:ImRect_ClipWithFull, :ImRect_ClipWithFull, [:pointer, ImRect.by_value], :void],
    [:ImRect_IsInverted, :ImRect_IsInverted, [:pointer], :bool],
    [:ImRect_ToVec4, :ImRect_ToVec4, [:pointer], ImVec4.by_value],
    [:cImBitArrayGetStorageSizeInBytes, :cImBitArrayGetStorageSizeInBytes, [:int], :size_t],
    [:cImBitArrayClearAllBits, :cImBitArrayClearAllBits, [:pointer, :int], :void],
    [:cImBitArrayTestBit, :cImBitArrayTestBit, [:pointer, :int], :bool],
    [:cImBitArrayClearBit, :cImBitArrayClearBit, [:pointer, :int], :void],
    [:cImBitArraySetBit, :cImBitArraySetBit, [:pointer, :int], :void],
    [:cImBitArraySetBitRange, :cImBitArraySetBitRange, [:pointer, :int, :int], :void],
    [:ImBitVector_Create, :ImBitVector_Create, [:pointer, :int], :void],
    [:ImBitVector_Clear, :ImBitVector_Clear, [:pointer], :void],
    [:ImBitVector_TestBit, :ImBitVector_TestBit, [:pointer, :int], :bool],
    [:ImBitVector_SetBit, :ImBitVector_SetBit, [:pointer, :int], :void],
    [:ImBitVector_ClearBit, :ImBitVector_ClearBit, [:pointer, :int], :void],
    [:ImStableVector_ImFontBaked_32_clear, :ImStableVector_ImFontBaked_32_clear, [:pointer], :void],
    [:ImStableVector_ImFontBaked_32_resize, :ImStableVector_ImFontBaked_32_resize, [:pointer, :int], :void],
    [:ImStableVector_ImFontBaked_32_reserve, :ImStableVector_ImFontBaked_32_reserve, [:pointer, :int], :void],
    [:ImGuiTextIndex_clear, :ImGuiTextIndex_clear, [:pointer], :void],
    [:ImGuiTextIndex_size, :ImGuiTextIndex_size, [:pointer], :int],
    [:ImGuiTextIndex_get_line_begin, :ImGuiTextIndex_get_line_begin, [:pointer, :pointer, :int], :pointer],
    [:ImGuiTextIndex_get_line_end, :ImGuiTextIndex_get_line_end, [:pointer, :pointer, :int], :pointer],
    [:ImGuiTextIndex_append, :ImGuiTextIndex_append, [:pointer, :pointer, :int, :int], :void],
    [:ImGuiPackedDate_IsValid, :ImGuiPackedDate_IsValid, [:pointer], :bool],
    [:ImGuiPackedDate_Unpack, :ImGuiPackedDate_Unpack, [:pointer], :int],
    [:ImGuiPackedDate_SubtractMonths, :ImGuiPackedDate_SubtractMonths, [:pointer, :int], :void],
    [:cImLowerBound, :cImLowerBound, [:pointer, :pointer, :uint], :pointer],
    [:ImDrawListSharedData_SetCircleTessellationMaxError, :ImDrawListSharedData_SetCircleTessellationMaxError, [:pointer, :float], :void],
    [:ImGuiStyleVarInfo_GetVarPtr, :ImGuiStyleVarInfo_GetVarPtr, [:pointer, :pointer], :pointer],
    [:ImGuiMenuColumns_Update, :ImGuiMenuColumns_Update, [:pointer, :float, :bool], :void],
    [:ImGuiMenuColumns_DeclColumns, :ImGuiMenuColumns_DeclColumns, [:pointer, :float, :float, :float, :float], :float],
    [:ImGuiMenuColumns_CalcNextTotalWidth, :ImGuiMenuColumns_CalcNextTotalWidth, [:pointer, :bool], :void],
    [:ImGuiInputTextDeactivatedState_ClearFreeMemory, :ImGuiInputTextDeactivatedState_ClearFreeMemory, [:pointer], :void],
    [:ImGuiInputTextState_ClearText, :ImGuiInputTextState_ClearText, [:pointer], :void],
    [:ImGuiInputTextState_ClearFreeMemory, :ImGuiInputTextState_ClearFreeMemory, [:pointer], :void],
    [:ImGuiInputTextState_OnKeyPressed, :ImGuiInputTextState_OnKeyPressed, [:pointer, :int], :void],
    [:ImGuiInputTextState_OnCharPressed, :ImGuiInputTextState_OnCharPressed, [:pointer, :uint], :void],
    [:ImGuiInputTextState_GetPreferredOffsetX, :ImGuiInputTextState_GetPreferredOffsetX, [:pointer], :float],
    [:ImGuiInputTextState_GetText, :ImGuiInputTextState_GetText, [:pointer], :pointer],
    [:ImGuiInputTextState_CursorAnimReset, :ImGuiInputTextState_CursorAnimReset, [:pointer], :void],
    [:ImGuiInputTextState_CursorClamp, :ImGuiInputTextState_CursorClamp, [:pointer], :void],
    [:ImGuiInputTextState_HasSelection, :ImGuiInputTextState_HasSelection, [:pointer], :bool],
    [:ImGuiInputTextState_ClearSelection, :ImGuiInputTextState_ClearSelection, [:pointer], :void],
    [:ImGuiInputTextState_GetCursorPos, :ImGuiInputTextState_GetCursorPos, [:pointer], :int],
    [:ImGuiInputTextState_GetSelectionStart, :ImGuiInputTextState_GetSelectionStart, [:pointer], :int],
    [:ImGuiInputTextState_GetSelectionEnd, :ImGuiInputTextState_GetSelectionEnd, [:pointer], :int],
    [:ImGuiInputTextState_SetSelection, :ImGuiInputTextState_SetSelection, [:pointer, :int, :int], :void],
    [:ImGuiInputTextState_SelectAll, :ImGuiInputTextState_SelectAll, [:pointer], :void],
    [:ImGuiInputTextState_ReloadUserBufAndSelectAll, :ImGuiInputTextState_ReloadUserBufAndSelectAll, [:pointer], :void],
    [:ImGuiInputTextState_ReloadUserBufAndKeepSelection, :ImGuiInputTextState_ReloadUserBufAndKeepSelection, [:pointer], :void],
    [:ImGuiInputTextState_ReloadUserBufAndMoveToEnd, :ImGuiInputTextState_ReloadUserBufAndMoveToEnd, [:pointer], :void],
    [:ImGuiNextWindowData_ClearFlags, :ImGuiNextWindowData_ClearFlags, [:pointer], :void],
    [:ImGuiNextItemData_ClearFlags, :ImGuiNextItemData_ClearFlags, [:pointer], :void],
    [:ImGuiKeyRoutingTable_Clear, :ImGuiKeyRoutingTable_Clear, [:pointer], :void],
    [:ImGuiListClipperRange_FromIndices, :ImGuiListClipperRange_FromIndices, [:int, :int], ImGuiListClipperRange.by_value],
    [:ImGuiListClipperRange_FromPositions, :ImGuiListClipperRange_FromPositions, [:float, :float, :int, :int], ImGuiListClipperRange.by_value],
    [:ImGuiListClipperData_Reset, :ImGuiListClipperData_Reset, [:pointer, :pointer], :void],
    [:ImGuiNavItemData_Clear, :ImGuiNavItemData_Clear, [:pointer], :void],
    [:ImGuiTypingSelectState_Clear, :ImGuiTypingSelectState_Clear, [:pointer], :void],
    [:ImGuiMultiSelectTempData_Clear, :ImGuiMultiSelectTempData_Clear, [:pointer], :void],
    [:ImGuiMultiSelectTempData_ClearIO, :ImGuiMultiSelectTempData_ClearIO, [:pointer], :void],
    [:ImGuiViewportP_ClearRequestFlags, :ImGuiViewportP_ClearRequestFlags, [:pointer], :void],
    [:ImGuiViewportP_CalcWorkRectPos, :ImGuiViewportP_CalcWorkRectPos, [:pointer, ImVec2.by_value], ImVec2.by_value],
    [:ImGuiViewportP_CalcWorkRectSize, :ImGuiViewportP_CalcWorkRectSize, [:pointer, ImVec2.by_value, ImVec2.by_value], ImVec2.by_value],
    [:ImGuiViewportP_UpdateWorkRect, :ImGuiViewportP_UpdateWorkRect, [:pointer], :void],
    [:ImGuiViewportP_GetMainRect, :ImGuiViewportP_GetMainRect, [:pointer], ImRect.by_value],
    [:ImGuiViewportP_GetWorkRect, :ImGuiViewportP_GetWorkRect, [:pointer], ImRect.by_value],
    [:ImGuiViewportP_GetBuildWorkRect, :ImGuiViewportP_GetBuildWorkRect, [:pointer], ImRect.by_value],
    [:ImGuiWindowSettings_GetName, :ImGuiWindowSettings_GetName, [:pointer], :pointer],
    [:ImGuiWindow_GetIDStr, :ImGuiWindow_GetIDStr, [:pointer, :pointer], :uint],
    [:ImGuiWindow_GetIDStrEx, :ImGuiWindow_GetIDStrEx, [:pointer, :pointer, :pointer], :uint],
    [:ImGuiWindow_GetID, :ImGuiWindow_GetID, [:pointer, :pointer], :uint],
    [:ImGuiWindow_GetIDInt, :ImGuiWindow_GetIDInt, [:pointer, :int], :uint],
    [:ImGuiWindow_GetIDFromPos, :ImGuiWindow_GetIDFromPos, [:pointer, ImVec2.by_value], :uint],
    [:ImGuiWindow_GetIDFromRectangle, :ImGuiWindow_GetIDFromRectangle, [:pointer, ImRect.by_value], :uint],
    [:ImGuiWindow_Rect, :ImGuiWindow_Rect, [:pointer], ImRect.by_value],
    [:ImGuiWindow_TitleBarRect, :ImGuiWindow_TitleBarRect, [:pointer], ImRect.by_value],
    [:ImGuiWindow_MenuBarRect, :ImGuiWindow_MenuBarRect, [:pointer], ImRect.by_value],
    [:ImGuiTableSettings_GetColumnSettings, :ImGuiTableSettings_GetColumnSettings, [:pointer], :pointer],
    [:ImGui_TableOpenContextMenu, :ImGui_TableOpenContextMenu, [], :void],
    [:ImGui_TableOpenContextMenuEx, :ImGui_TableOpenContextMenuEx, [:int], :void],
    [:ImGui_TableSetColumnWidth, :ImGui_TableSetColumnWidth, [:int, :float], :void],
    [:ImGui_TableSetColumnSortDirection, :ImGui_TableSetColumnSortDirection, [:int, :uchar, :bool], :void],
    [:ImGui_TableGetHoveredRow, :ImGui_TableGetHoveredRow, [], :int],
    [:ImGui_TableGetHeaderRowHeight, :ImGui_TableGetHeaderRowHeight, [], :float],
    [:ImGui_TableGetHeaderAngledMaxLabelWidth, :ImGui_TableGetHeaderAngledMaxLabelWidth, [], :float],
    [:ImGui_TablePushBackgroundChannel, :ImGui_TablePushBackgroundChannel, [], :void],
    [:ImGui_TablePopBackgroundChannel, :ImGui_TablePopBackgroundChannel, [], :void],
    [:ImGui_TablePushColumnChannel, :ImGui_TablePushColumnChannel, [:int], :void],
    [:ImGui_TablePopColumnChannel, :ImGui_TablePopColumnChannel, [], :void],
    [:ImGui_TableAngledHeadersRowEx, :ImGui_TableAngledHeadersRowEx, [:uint, :float, :float, :pointer, :int], :void],
    [:ImGui_GetCurrentTable, :ImGui_GetCurrentTable, [], :pointer],
    [:ImGui_TableFindByID, :ImGui_TableFindByID, [:uint], :pointer],
    [:ImGui_BeginTableWithID, :ImGui_BeginTableWithID, [:pointer, :uint, :int, :int], :bool],
    [:ImGui_BeginTableWithIDEx, :ImGui_BeginTableWithIDEx, [:pointer, :uint, :int, :int, ImVec2.by_value, :float], :bool],
    [:ImGui_TableBeginInitMemory, :ImGui_TableBeginInitMemory, [:pointer, :int], :void],
    [:ImGui_TableApplyQueuedRequests, :ImGui_TableApplyQueuedRequests, [:pointer], :void],
    [:ImGui_TableSetupDrawChannels, :ImGui_TableSetupDrawChannels, [:pointer], :void],
    [:ImGui_TableReconcileColumns, :ImGui_TableReconcileColumns, [:pointer], :void],
    [:ImGui_TableUpdateLayout, :ImGui_TableUpdateLayout, [:pointer], :void],
    [:ImGui_TableUpdateBorders, :ImGui_TableUpdateBorders, [:pointer], :void],
    [:ImGui_TableUpdateColumnsWeightFromWidth, :ImGui_TableUpdateColumnsWeightFromWidth, [:pointer], :void],
    [:ImGui_TableApplyExternalUnclipRect, :ImGui_TableApplyExternalUnclipRect, [:pointer, :pointer], :void],
    [:ImGui_TableDrawBorders, :ImGui_TableDrawBorders, [:pointer], :void],
    [:ImGui_TableDrawDefaultContextMenu, :ImGui_TableDrawDefaultContextMenu, [:pointer, :int], :void],
    [:ImGui_TableBeginContextMenuPopup, :ImGui_TableBeginContextMenuPopup, [:pointer], :bool],
    [:ImGui_TableMergeDrawChannels, :ImGui_TableMergeDrawChannels, [:pointer], :void],
    [:ImGui_TableGetInstanceData, :ImGui_TableGetInstanceData, [:pointer, :int], :pointer],
    [:ImGui_TableGetInstanceID, :ImGui_TableGetInstanceID, [:pointer, :int], :uint],
    [:ImGui_TableFixDisplayOrder, :ImGui_TableFixDisplayOrder, [:pointer], :void],
    [:ImGui_TableSortSpecsSanitize, :ImGui_TableSortSpecsSanitize, [:pointer], :void],
    [:ImGui_TableSortSpecsBuild, :ImGui_TableSortSpecsBuild, [:pointer], :void],
    [:ImGui_TableInitColumnDefaults, :ImGui_TableInitColumnDefaults, [:pointer, :pointer, :int], :void],
    [:ImGui_TableGetColumnNextSortDirection, :ImGui_TableGetColumnNextSortDirection, [:pointer], :uchar],
    [:ImGui_TableFixColumnSortDirection, :ImGui_TableFixColumnSortDirection, [:pointer, :pointer], :void],
    [:ImGui_TableGetColumnWidthAuto, :ImGui_TableGetColumnWidthAuto, [:pointer, :pointer], :float],
    [:ImGui_TableBeginRow, :ImGui_TableBeginRow, [:pointer], :void],
    [:ImGui_TableEndRow, :ImGui_TableEndRow, [:pointer], :void],
    [:ImGui_TableBeginCell, :ImGui_TableBeginCell, [:pointer, :int], :void],
    [:ImGui_TableEndCell, :ImGui_TableEndCell, [:pointer], :void],
    [:ImGui_TableGetCellBgRect, :ImGui_TableGetCellBgRect, [:pointer, :int], ImRect.by_value],
    [:ImGui_TableGetColumnNameImGuiTablePtr, :ImGui_TableGetColumnNameImGuiTablePtr, [:pointer, :int], :pointer],
    [:ImGui_TableGetColumnResizeID, :ImGui_TableGetColumnResizeID, [:pointer, :int], :uint],
    [:ImGui_TableGetColumnResizeIDEx, :ImGui_TableGetColumnResizeIDEx, [:pointer, :int, :int], :uint],
    [:ImGui_TableCalcMaxColumnWidth, :ImGui_TableCalcMaxColumnWidth, [:pointer, :int], :float],
    [:ImGui_TableSetColumnWidthAutoSingle, :ImGui_TableSetColumnWidthAutoSingle, [:pointer, :int], :void],
    [:ImGui_TableSetColumnWidthAutoAll, :ImGui_TableSetColumnWidthAutoAll, [:pointer], :void],
    [:ImGui_TableSetColumnDisplayOrder, :ImGui_TableSetColumnDisplayOrder, [:pointer, :int, :int], :void],
    [:ImGui_TableQueueSetColumnDisplayOrder, :ImGui_TableQueueSetColumnDisplayOrder, [:pointer, :int, :int], :void],
    [:ImGui_TableRemove, :ImGui_TableRemove, [:pointer], :void],
    [:ImGui_TableGcCompactTransientBuffers, :ImGui_TableGcCompactTransientBuffers, [:pointer], :void],
    [:ImGui_TableGcCompactTransientBuffersImGuiTableTempDataPtr, :ImGui_TableGcCompactTransientBuffersImGuiTableTempDataPtr, [:pointer], :void],
    [:ImGui_TableGcCompactSettings, :ImGui_TableGcCompactSettings, [], :void],
    [:ImGui_TableLoadSettings, :ImGui_TableLoadSettings, [:pointer], :void],
    [:ImGui_TableLoadSettingsForColumns, :ImGui_TableLoadSettingsForColumns, [:pointer], :void],
    [:ImGui_TableLoadSettingsForColumn, :ImGui_TableLoadSettingsForColumn, [:pointer, :pointer, :int], :void],
    [:ImGui_TableSaveSettings, :ImGui_TableSaveSettings, [:pointer], :void],
    [:ImGui_TableResetSettings, :ImGui_TableResetSettings, [:pointer], :void],
    [:ImGui_TableGetBoundSettings, :ImGui_TableGetBoundSettings, [:pointer], :pointer],
    [:ImGui_TableSettingsAddSettingsHandler, :ImGui_TableSettingsAddSettingsHandler, [], :void],
    [:ImGui_TableSettingsCreate, :ImGui_TableSettingsCreate, [:uint, :int], :pointer],
    [:ImGui_TableSettingsFindByID, :ImGui_TableSettingsFindByID, [:uint], :pointer],
    [:ImGui_SetWindowClipRectBeforeSetChannel, :ImGui_SetWindowClipRectBeforeSetChannel, [:pointer, ImRect.by_value], :void],
    [:ImGui_BeginColumns, :ImGui_BeginColumns, [:pointer, :int, :int], :void],
    [:ImGui_EndColumns, :ImGui_EndColumns, [], :void],
    [:ImGui_PushColumnClipRect, :ImGui_PushColumnClipRect, [:int], :void],
    [:ImGui_PushColumnsBackground, :ImGui_PushColumnsBackground, [], :void],
    [:ImGui_PopColumnsBackground, :ImGui_PopColumnsBackground, [], :void],
    [:ImGui_GetColumnsID, :ImGui_GetColumnsID, [:pointer, :int], :uint],
    [:ImGui_FindOrCreateColumns, :ImGui_FindOrCreateColumns, [:pointer, :uint], :pointer],
    [:ImGui_GetColumnOffsetFromNorm, :ImGui_GetColumnOffsetFromNorm, [:pointer, :float], :float],
    [:ImGui_GetColumnNormFromOffset, :ImGui_GetColumnNormFromOffset, [:pointer, :float], :float],
    [:ImGui_GetIOImGuiContextPtr, :ImGui_GetIOImGuiContextPtr, [:pointer], :pointer],
    [:ImGui_GetPlatformIOImGuiContextPtr, :ImGui_GetPlatformIOImGuiContextPtr, [:pointer], :pointer],
    [:ImGui_GetScale, :ImGui_GetScale, [], :float],
    [:ImGui_GetCurrentWindowRead, :ImGui_GetCurrentWindowRead, [], :pointer],
    [:ImGui_GetCurrentWindow, :ImGui_GetCurrentWindow, [], :pointer],
    [:ImGui_FindWindowByID, :ImGui_FindWindowByID, [:uint], :pointer],
    [:ImGui_FindWindowByName, :ImGui_FindWindowByName, [:pointer], :pointer],
    [:ImGui_UpdateWindowParentAndRootLinks, :ImGui_UpdateWindowParentAndRootLinks, [:pointer, :int, :pointer], :void],
    [:ImGui_UpdateWindowSkipRefresh, :ImGui_UpdateWindowSkipRefresh, [:pointer], :void],
    [:ImGui_CalcWindowNextAutoFitSize, :ImGui_CalcWindowNextAutoFitSize, [:pointer], ImVec2.by_value],
    [:ImGui_IsWindowChildOf, :ImGui_IsWindowChildOf, [:pointer, :pointer, :bool, :bool], :bool],
    [:ImGui_IsWindowInBeginStack, :ImGui_IsWindowInBeginStack, [:pointer], :bool],
    [:ImGui_IsWindowWithinBeginStackOf, :ImGui_IsWindowWithinBeginStackOf, [:pointer, :pointer], :bool],
    [:ImGui_IsWindowAbove, :ImGui_IsWindowAbove, [:pointer, :pointer], :bool],
    [:ImGui_IsWindowNavFocusable, :ImGui_IsWindowNavFocusable, [:pointer], :bool],
    [:ImGui_SetWindowPosImGuiWindowPtr, :ImGui_SetWindowPosImGuiWindowPtr, [:pointer, ImVec2.by_value, :int], :void],
    [:ImGui_SetWindowSizeImGuiWindowPtr, :ImGui_SetWindowSizeImGuiWindowPtr, [:pointer, ImVec2.by_value, :int], :void],
    [:ImGui_SetWindowCollapsedImGuiWindowPtr, :ImGui_SetWindowCollapsedImGuiWindowPtr, [:pointer, :bool, :int], :void],
    [:ImGui_SetWindowHitTestHole, :ImGui_SetWindowHitTestHole, [:pointer, ImVec2.by_value, ImVec2.by_value], :void],
    [:ImGui_SetWindowHiddenAndSkipItemsForCurrentFrame, :ImGui_SetWindowHiddenAndSkipItemsForCurrentFrame, [:pointer], :void],
    [:ImGui_SetWindowParentWindowForFocusRoute, :ImGui_SetWindowParentWindowForFocusRoute, [:pointer, :pointer], :void],
    [:ImGui_WindowRectAbsToRel, :ImGui_WindowRectAbsToRel, [:pointer, ImRect.by_value], ImRect.by_value],
    [:ImGui_WindowRectRelToAbs, :ImGui_WindowRectRelToAbs, [:pointer, ImRect.by_value], ImRect.by_value],
    [:ImGui_WindowPosAbsToRel, :ImGui_WindowPosAbsToRel, [:pointer, ImVec2.by_value], ImVec2.by_value],
    [:ImGui_WindowPosRelToAbs, :ImGui_WindowPosRelToAbs, [:pointer, ImVec2.by_value], ImVec2.by_value],
    [:ImGui_FocusWindow, :ImGui_FocusWindow, [:pointer, :int], :void],
    [:ImGui_FocusTopMostWindowUnderOne, :ImGui_FocusTopMostWindowUnderOne, [:pointer, :pointer, :pointer, :int], :void],
    [:ImGui_BringWindowToFocusFront, :ImGui_BringWindowToFocusFront, [:pointer], :void],
    [:ImGui_BringWindowToDisplayFront, :ImGui_BringWindowToDisplayFront, [:pointer], :void],
    [:ImGui_BringWindowToDisplayBack, :ImGui_BringWindowToDisplayBack, [:pointer], :void],
    [:ImGui_BringWindowToDisplayBehind, :ImGui_BringWindowToDisplayBehind, [:pointer, :pointer], :void],
    [:ImGui_FindWindowDisplayIndex, :ImGui_FindWindowDisplayIndex, [:pointer], :int],
    [:ImGui_FindBottomMostVisibleWindowWithinBeginStack, :ImGui_FindBottomMostVisibleWindowWithinBeginStack, [:pointer], :pointer],
    [:ImGui_SetNextWindowRefreshPolicy, :ImGui_SetNextWindowRefreshPolicy, [:int], :void],
    [:ImGui_RegisterUserTexture, :ImGui_RegisterUserTexture, [:pointer], :void],
    [:ImGui_UnregisterUserTexture, :ImGui_UnregisterUserTexture, [:pointer], :void],
    [:ImGui_RegisterFontAtlas, :ImGui_RegisterFontAtlas, [:pointer], :void],
    [:ImGui_UnregisterFontAtlas, :ImGui_UnregisterFontAtlas, [:pointer], :void],
    [:ImGui_SetCurrentFont, :ImGui_SetCurrentFont, [:pointer, :float, :float], :void],
    [:ImGui_UpdateCurrentFontSize, :ImGui_UpdateCurrentFontSize, [:float], :void],
    [:ImGui_SetFontRasterizerDensity, :ImGui_SetFontRasterizerDensity, [:float], :void],
    [:ImGui_GetFontRasterizerDensity, :ImGui_GetFontRasterizerDensity, [], :float],
    [:ImGui_GetRoundedFontSize, :ImGui_GetRoundedFontSize, [:float], :float],
    [:ImGui_GetDefaultFont, :ImGui_GetDefaultFont, [], :pointer],
    [:ImGui_PushPasswordFont, :ImGui_PushPasswordFont, [], :void],
    [:ImGui_PopPasswordFont, :ImGui_PopPasswordFont, [], :void],
    [:ImGui_GetForegroundDrawListImGuiWindowPtr, :ImGui_GetForegroundDrawListImGuiWindowPtr, [:pointer], :pointer],
    [:ImGui_AddDrawListToDrawDataEx, :ImGui_AddDrawListToDrawDataEx, [:pointer, :pointer, :pointer], :void],
    [:ImGui_Initialize, :ImGui_Initialize, [], :void],
    [:ImGui_Shutdown, :ImGui_Shutdown, [], :void],
    [:ImGui_SetContextName, :ImGui_SetContextName, [:pointer, :pointer], :void],
    [:ImGui_AddContextHook, :ImGui_AddContextHook, [:pointer, :pointer], :uint],
    [:ImGui_RemoveContextHook, :ImGui_RemoveContextHook, [:pointer, :uint], :void],
    [:ImGui_CallContextHooks, :ImGui_CallContextHooks, [:pointer, :int], :void],
    [:ImGui_UpdateInputEvents, :ImGui_UpdateInputEvents, [:bool], :void],
    [:ImGui_UpdateHoveredWindowAndCaptureFlags, :ImGui_UpdateHoveredWindowAndCaptureFlags, [ImVec2.by_value], :void],
    [:ImGui_FindHoveredWindowEx, :ImGui_FindHoveredWindowEx, [ImVec2.by_value, :bool, :pointer, :pointer], :void],
    [:ImGui_StartMouseMovingWindow, :ImGui_StartMouseMovingWindow, [:pointer], :void],
    [:ImGui_StartMouseMovingWindowOrNode, :ImGui_StartMouseMovingWindowOrNode, [:pointer, :pointer, :bool], :void],
    [:ImGui_StopMouseMovingWindow, :ImGui_StopMouseMovingWindow, [], :void],
    [:ImGui_UpdateMouseMovingWindowNewFrame, :ImGui_UpdateMouseMovingWindowNewFrame, [], :void],
    [:ImGui_UpdateMouseMovingWindowEndFrame, :ImGui_UpdateMouseMovingWindowEndFrame, [], :void],
    [:ImGui_TranslateWindowsInViewport, :ImGui_TranslateWindowsInViewport, [:pointer, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value], :void],
    [:ImGui_ScaleWindowsInViewport, :ImGui_ScaleWindowsInViewport, [:pointer, :float], :void],
    [:ImGui_DestroyPlatformWindow, :ImGui_DestroyPlatformWindow, [:pointer], :void],
    [:ImGui_SetWindowViewport, :ImGui_SetWindowViewport, [:pointer, :pointer], :void],
    [:ImGui_SetCurrentViewport, :ImGui_SetCurrentViewport, [:pointer, :pointer], :void],
    [:ImGui_GetViewportPlatformMonitor, :ImGui_GetViewportPlatformMonitor, [:pointer], :pointer],
    [:ImGui_FindHoveredViewportFromPlatformWindowStack, :ImGui_FindHoveredViewportFromPlatformWindowStack, [ImVec2.by_value], :pointer],
    [:ImGui_MarkIniSettingsDirty, :ImGui_MarkIniSettingsDirty, [], :void],
    [:ImGui_MarkIniSettingsDirtyImGuiWindowPtr, :ImGui_MarkIniSettingsDirtyImGuiWindowPtr, [:pointer], :void],
    [:ImGui_ClearIniSettings, :ImGui_ClearIniSettings, [], :void],
    [:ImGui_CleanupIniSettings, :ImGui_CleanupIniSettings, [:pointer], :void],
    [:ImGui_AddSettingsHandler, :ImGui_AddSettingsHandler, [:pointer], :void],
    [:ImGui_RemoveSettingsHandler, :ImGui_RemoveSettingsHandler, [:pointer], :void],
    [:ImGui_FindSettingsHandler, :ImGui_FindSettingsHandler, [:pointer], :pointer],
    [:ImGui_CreateNewWindowSettings, :ImGui_CreateNewWindowSettings, [:pointer], :pointer],
    [:ImGui_FindWindowSettingsByID, :ImGui_FindWindowSettingsByID, [:uint], :pointer],
    [:ImGui_FindWindowSettingsByWindow, :ImGui_FindWindowSettingsByWindow, [:pointer], :pointer],
    [:ImGui_ClearWindowSettings, :ImGui_ClearWindowSettings, [:pointer], :void],
    [:ImGui_LocalizeRegisterEntries, :ImGui_LocalizeRegisterEntries, [:pointer, :int], :void],
    [:ImGui_LocalizeGetMsg, :ImGui_LocalizeGetMsg, [:int], :pointer],
    [:ImGui_SetScrollXImGuiWindowPtr, :ImGui_SetScrollXImGuiWindowPtr, [:pointer, :float], :void],
    [:ImGui_SetScrollYImGuiWindowPtr, :ImGui_SetScrollYImGuiWindowPtr, [:pointer, :float], :void],
    [:ImGui_SetScrollFromPosXImGuiWindowPtr, :ImGui_SetScrollFromPosXImGuiWindowPtr, [:pointer, :float, :float], :void],
    [:ImGui_SetScrollFromPosYImGuiWindowPtr, :ImGui_SetScrollFromPosYImGuiWindowPtr, [:pointer, :float, :float], :void],
    [:ImGui_ScrollToItem, :ImGui_ScrollToItem, [:int], :void],
    [:ImGui_ScrollToRect, :ImGui_ScrollToRect, [:pointer, ImRect.by_value, :int], :void],
    [:ImGui_ScrollToRectEx, :ImGui_ScrollToRectEx, [:pointer, ImRect.by_value, :int], ImVec2.by_value],
    [:ImGui_ScrollToBringRectIntoView, :ImGui_ScrollToBringRectIntoView, [:pointer, ImRect.by_value], :void],
    [:ImGui_GetItemStatusFlags, :ImGui_GetItemStatusFlags, [], :int],
    [:ImGui_GetActiveID, :ImGui_GetActiveID, [], :uint],
    [:ImGui_GetFocusID, :ImGui_GetFocusID, [], :uint],
    [:ImGui_SetActiveID, :ImGui_SetActiveID, [:uint, :pointer], :void],
    [:ImGui_SetFocusID, :ImGui_SetFocusID, [:uint, :pointer], :void],
    [:ImGui_ClearActiveID, :ImGui_ClearActiveID, [], :void],
    [:ImGui_GetHoveredID, :ImGui_GetHoveredID, [], :uint],
    [:ImGui_SetHoveredID, :ImGui_SetHoveredID, [:uint], :void],
    [:ImGui_KeepAliveID, :ImGui_KeepAliveID, [:uint], :void],
    [:ImGui_MarkItemEdited, :ImGui_MarkItemEdited, [:uint], :void],
    [:ImGui_PushOverrideID, :ImGui_PushOverrideID, [:uint], :void],
    [:ImGui_GetIDWithSeedStr, :ImGui_GetIDWithSeedStr, [:pointer, :pointer, :uint], :uint],
    [:ImGui_GetIDWithSeed, :ImGui_GetIDWithSeed, [:int, :uint], :uint],
    [:ImGui_ItemSize, :ImGui_ItemSize, [ImVec2.by_value], :void],
    [:ImGui_ItemSizeEx, :ImGui_ItemSizeEx, [ImVec2.by_value, :float], :void],
    [:ImGui_ItemSizeImRect, :ImGui_ItemSizeImRect, [ImRect.by_value], :void],
    [:ImGui_ItemSizeImRectEx, :ImGui_ItemSizeImRectEx, [ImRect.by_value, :float], :void],
    [:ImGui_ItemAdd, :ImGui_ItemAdd, [ImRect.by_value, :uint], :bool],
    [:ImGui_ItemAddEx, :ImGui_ItemAddEx, [ImRect.by_value, :uint, :pointer, :int], :bool],
    [:ImGui_ItemHoverable, :ImGui_ItemHoverable, [ImRect.by_value, :uint, :int], :bool],
    [:ImGui_IsWindowContentHoverable, :ImGui_IsWindowContentHoverable, [:pointer, :int], :bool],
    [:ImGui_IsClippedEx, :ImGui_IsClippedEx, [ImRect.by_value, :uint], :bool],
    [:ImGui_SetLastItemData, :ImGui_SetLastItemData, [:uint, :int, :int, ImRect.by_value], :void],
    [:ImGui_CalcItemSize, :ImGui_CalcItemSize, [ImVec2.by_value, :float, :float], ImVec2.by_value],
    [:ImGui_CalcWrapWidthForPos, :ImGui_CalcWrapWidthForPos, [ImVec2.by_value, :float], :float],
    [:ImGui_PushMultiItemsWidths, :ImGui_PushMultiItemsWidths, [:int, :float], :void],
    [:ImGui_ShrinkWidths, :ImGui_ShrinkWidths, [:pointer, :int, :float, :float], :void],
    [:ImGui_CalcClipRectVisibleItemsY, :ImGui_CalcClipRectVisibleItemsY, [ImRect.by_value, ImVec2.by_value, :float, :pointer, :pointer], :void],
    [:ImGui_GetStyleVarInfo, :ImGui_GetStyleVarInfo, [:int], :pointer],
    [:ImGui_BeginDisabledOverrideReenable, :ImGui_BeginDisabledOverrideReenable, [], :void],
    [:ImGui_EndDisabledOverrideReenable, :ImGui_EndDisabledOverrideReenable, [], :void],
    [:ImGui_LogBegin, :ImGui_LogBegin, [:int, :int], :void],
    [:ImGui_LogToBuffer, :ImGui_LogToBuffer, [], :void],
    [:ImGui_LogToBufferEx, :ImGui_LogToBufferEx, [:int], :void],
    [:ImGui_LogRenderedText, :ImGui_LogRenderedText, [:pointer, :pointer], :void],
    [:ImGui_LogRenderedTextEx, :ImGui_LogRenderedTextEx, [:pointer, :pointer, :pointer], :void],
    [:ImGui_LogSetNextTextDecoration, :ImGui_LogSetNextTextDecoration, [:pointer, :pointer], :void],
    [:ImGui_BeginChildEx, :ImGui_BeginChildEx, [:pointer, :uint, ImVec2.by_value, :int, :int], :bool],
    [:ImGui_FindFrontMostVisibleChildWindow, :ImGui_FindFrontMostVisibleChildWindow, [:pointer], :pointer],
    [:ImGui_BeginPopupEx, :ImGui_BeginPopupEx, [:uint, :int], :bool],
    [:ImGui_BeginPopupMenuEx, :ImGui_BeginPopupMenuEx, [:uint, :pointer, :int], :bool],
    [:ImGui_OpenPopupEx, :ImGui_OpenPopupEx, [:uint], :bool],
    [:ImGui_OpenPopupExEx, :ImGui_OpenPopupExEx, [:uint, :int], :bool],
    [:ImGui_ClosePopupToLevel, :ImGui_ClosePopupToLevel, [:int, :bool], :void],
    [:ImGui_ClosePopupsOverWindow, :ImGui_ClosePopupsOverWindow, [:pointer, :bool], :void],
    [:ImGui_ClosePopupsExceptModals, :ImGui_ClosePopupsExceptModals, [], :void],
    [:ImGui_IsPopupOpenID, :ImGui_IsPopupOpenID, [:uint, :int], :bool],
    [:ImGui_GetPopupAllowedExtentRect, :ImGui_GetPopupAllowedExtentRect, [:pointer], ImRect.by_value],
    [:ImGui_GetTopMostPopupModal, :ImGui_GetTopMostPopupModal, [], :pointer],
    [:ImGui_GetTopMostAndVisiblePopupModal, :ImGui_GetTopMostAndVisiblePopupModal, [], :pointer],
    [:ImGui_FindBlockingModal, :ImGui_FindBlockingModal, [:pointer], :pointer],
    [:ImGui_FindBestWindowPosForPopup, :ImGui_FindBestWindowPosForPopup, [:pointer], ImVec2.by_value],
    [:ImGui_FindBestWindowPosForPopupEx, :ImGui_FindBestWindowPosForPopupEx, [ImVec2.by_value, ImVec2.by_value, :pointer, ImRect.by_value, ImRect.by_value, :int], ImVec2.by_value],
    [:ImGui_GetMouseButtonFromPopupFlags, :ImGui_GetMouseButtonFromPopupFlags, [:int], :int],
    [:ImGui_IsPopupOpenRequestForItem, :ImGui_IsPopupOpenRequestForItem, [:int, :uint], :bool],
    [:ImGui_IsPopupOpenRequestForWindow, :ImGui_IsPopupOpenRequestForWindow, [:int], :bool],
    [:ImGui_BeginTooltipEx, :ImGui_BeginTooltipEx, [:int, :int], :bool],
    [:ImGui_BeginTooltipHidden, :ImGui_BeginTooltipHidden, [], :bool],
    [:ImGui_BeginViewportSideBar, :ImGui_BeginViewportSideBar, [:pointer, :pointer, :int, :float, :int], :bool],
    [:ImGui_BeginMenuWithIcon, :ImGui_BeginMenuWithIcon, [:pointer, :pointer], :bool],
    [:ImGui_BeginMenuWithIconEx, :ImGui_BeginMenuWithIconEx, [:pointer, :pointer, :bool], :bool],
    [:ImGui_MenuItemWithIcon, :ImGui_MenuItemWithIcon, [:pointer, :pointer], :bool],
    [:ImGui_MenuItemWithIconEx, :ImGui_MenuItemWithIconEx, [:pointer, :pointer, :pointer, :bool, :bool], :bool],
    [:ImGui_BeginComboPopup, :ImGui_BeginComboPopup, [:uint, ImRect.by_value, :int], :bool],
    [:ImGui_BeginComboPreview, :ImGui_BeginComboPreview, [], :bool],
    [:ImGui_EndComboPreview, :ImGui_EndComboPreview, [], :void],
    [:ImGui_NavInitWindow, :ImGui_NavInitWindow, [:pointer, :bool], :void],
    [:ImGui_NavInitRequestApplyResult, :ImGui_NavInitRequestApplyResult, [], :void],
    [:ImGui_NavMoveRequestButNoResultYet, :ImGui_NavMoveRequestButNoResultYet, [], :bool],
    [:ImGui_NavMoveRequestSubmit, :ImGui_NavMoveRequestSubmit, [:int, :int, :int, :int], :void],
    [:ImGui_NavMoveRequestForward, :ImGui_NavMoveRequestForward, [:int, :int, :int, :int], :void],
    [:ImGui_NavMoveRequestResolveWithLastItem, :ImGui_NavMoveRequestResolveWithLastItem, [:pointer], :void],
    [:ImGui_NavMoveRequestResolveWithPastTreeNode, :ImGui_NavMoveRequestResolveWithPastTreeNode, [:pointer, :pointer], :void],
    [:ImGui_NavMoveRequestCancel, :ImGui_NavMoveRequestCancel, [], :void],
    [:ImGui_NavMoveRequestApplyResult, :ImGui_NavMoveRequestApplyResult, [], :void],
    [:ImGui_NavMoveRequestTryWrapping, :ImGui_NavMoveRequestTryWrapping, [:pointer, :int], :void],
    [:ImGui_NavHighlightActivated, :ImGui_NavHighlightActivated, [:uint], :void],
    [:ImGui_NavClearPreferredPosForAxis, :ImGui_NavClearPreferredPosForAxis, [:int], :void],
    [:ImGui_SetNavCursorVisibleAfterMove, :ImGui_SetNavCursorVisibleAfterMove, [], :void],
    [:ImGui_NavUpdateCurrentWindowIsScrollPushableX, :ImGui_NavUpdateCurrentWindowIsScrollPushableX, [], :void],
    [:ImGui_SetNavWindow, :ImGui_SetNavWindow, [:pointer], :void],
    [:ImGui_SetNavID, :ImGui_SetNavID, [:uint, :int, :uint, ImRect.by_value], :void],
    [:ImGui_SetNavFocusScope, :ImGui_SetNavFocusScope, [:uint], :void],
    [:ImGui_FocusItem, :ImGui_FocusItem, [], :void],
    [:ImGui_ActivateItemByID, :ImGui_ActivateItemByID, [:uint], :void],
    [:ImGui_IsNamedKey, :ImGui_IsNamedKey, [:int], :bool],
    [:ImGui_IsNamedKeyOrMod, :ImGui_IsNamedKeyOrMod, [:int], :bool],
    [:ImGui_IsLegacyKey, :ImGui_IsLegacyKey, [:int], :bool],
    [:ImGui_IsKeyboardKey, :ImGui_IsKeyboardKey, [:int], :bool],
    [:ImGui_IsGamepadKey, :ImGui_IsGamepadKey, [:int], :bool],
    [:ImGui_IsMouseKey, :ImGui_IsMouseKey, [:int], :bool],
    [:ImGui_IsAliasKey, :ImGui_IsAliasKey, [:int], :bool],
    [:ImGui_IsLRModKey, :ImGui_IsLRModKey, [:int], :bool],
    [:ImGui_FixupKeyChord, :ImGui_FixupKeyChord, [:int], :int],
    [:ImGui_ConvertSingleModFlagToKey, :ImGui_ConvertSingleModFlagToKey, [:int], :int],
    [:ImGui_GetKeyDataImGuiContextPtr, :ImGui_GetKeyDataImGuiContextPtr, [:pointer, :int], :pointer],
    [:ImGui_GetKeyData, :ImGui_GetKeyData, [:int], :pointer],
    [:ImGui_GetKeyChordName, :ImGui_GetKeyChordName, [:int], :pointer],
    [:ImGui_MouseButtonToKey, :ImGui_MouseButtonToKey, [:int], :int],
    [:ImGui_IsMouseDragPastThreshold, :ImGui_IsMouseDragPastThreshold, [:int], :bool],
    [:ImGui_IsMouseDragPastThresholdEx, :ImGui_IsMouseDragPastThresholdEx, [:int, :float], :bool],
    [:ImGui_GetKeyMagnitude2d, :ImGui_GetKeyMagnitude2d, [:int, :int, :int, :int], ImVec2.by_value],
    [:ImGui_GetNavTweakPressedAmount, :ImGui_GetNavTweakPressedAmount, [:int], :float],
    [:ImGui_CalcTypematicRepeatAmount, :ImGui_CalcTypematicRepeatAmount, [:float, :float, :float, :float], :int],
    [:ImGui_GetTypematicRepeatRate, :ImGui_GetTypematicRepeatRate, [:int, :pointer, :pointer], :void],
    [:ImGui_TeleportMousePos, :ImGui_TeleportMousePos, [ImVec2.by_value], :void],
    [:ImGui_SetActiveIdUsingAllKeyboardKeys, :ImGui_SetActiveIdUsingAllKeyboardKeys, [], :void],
    [:ImGui_IsActiveIdUsingNavDir, :ImGui_IsActiveIdUsingNavDir, [:int], :bool],
    [:ImGui_GetKeyOwner, :ImGui_GetKeyOwner, [:int], :uint],
    [:ImGui_SetKeyOwner, :ImGui_SetKeyOwner, [:int, :uint, :int], :void],
    [:ImGui_SetKeyOwnersForKeyChord, :ImGui_SetKeyOwnersForKeyChord, [:int, :uint, :int], :void],
    [:ImGui_SetItemKeyOwnerImGuiInputFlags, :ImGui_SetItemKeyOwnerImGuiInputFlags, [:int, :int], :bool],
    [:ImGui_TestKeyOwner, :ImGui_TestKeyOwner, [:int, :uint], :bool],
    [:ImGui_GetKeyOwnerData, :ImGui_GetKeyOwnerData, [:pointer, :int], :pointer],
    [:ImGui_IsKeyDownID, :ImGui_IsKeyDownID, [:int, :uint], :bool],
    [:ImGui_IsKeyPressedImGuiInputFlags, :ImGui_IsKeyPressedImGuiInputFlags, [:int, :int], :bool],
    [:ImGui_IsKeyPressedImGuiInputFlagsEx, :ImGui_IsKeyPressedImGuiInputFlagsEx, [:int, :int, :uint], :bool],
    [:ImGui_IsKeyReleasedID, :ImGui_IsKeyReleasedID, [:int, :uint], :bool],
    [:ImGui_IsKeyChordPressedImGuiInputFlags, :ImGui_IsKeyChordPressedImGuiInputFlags, [:int, :int], :bool],
    [:ImGui_IsKeyChordPressedImGuiInputFlagsEx, :ImGui_IsKeyChordPressedImGuiInputFlagsEx, [:int, :int, :uint], :bool],
    [:ImGui_IsMouseDownID, :ImGui_IsMouseDownID, [:int, :uint], :bool],
    [:ImGui_IsMouseClickedImGuiInputFlags, :ImGui_IsMouseClickedImGuiInputFlags, [:int, :int], :bool],
    [:ImGui_IsMouseClickedImGuiInputFlagsEx, :ImGui_IsMouseClickedImGuiInputFlagsEx, [:int, :int, :uint], :bool],
    [:ImGui_IsMouseReleasedID, :ImGui_IsMouseReleasedID, [:int, :uint], :bool],
    [:ImGui_IsMouseDoubleClickedID, :ImGui_IsMouseDoubleClickedID, [:int, :uint], :bool],
    [:ImGui_ShortcutID, :ImGui_ShortcutID, [:int, :int, :uint], :bool],
    [:ImGui_SetShortcutRouting, :ImGui_SetShortcutRouting, [:int, :int, :uint], :bool],
    [:ImGui_TestShortcutRouting, :ImGui_TestShortcutRouting, [:int, :uint], :bool],
    [:ImGui_GetShortcutRoutingData, :ImGui_GetShortcutRoutingData, [:int], :pointer],
    [:ImGui_DockContextInitialize, :ImGui_DockContextInitialize, [:pointer], :void],
    [:ImGui_DockContextShutdown, :ImGui_DockContextShutdown, [:pointer], :void],
    [:ImGui_DockContextClearNodes, :ImGui_DockContextClearNodes, [:pointer, :uint, :bool], :void],
    [:ImGui_DockContextRebuildNodes, :ImGui_DockContextRebuildNodes, [:pointer], :void],
    [:ImGui_DockContextNewFrameUpdateUndocking, :ImGui_DockContextNewFrameUpdateUndocking, [:pointer], :void],
    [:ImGui_DockContextNewFrameUpdateDocking, :ImGui_DockContextNewFrameUpdateDocking, [:pointer], :void],
    [:ImGui_DockContextEndFrame, :ImGui_DockContextEndFrame, [:pointer], :void],
    [:ImGui_DockContextGenNodeID, :ImGui_DockContextGenNodeID, [:pointer], :uint],
    [:ImGui_DockContextQueueDock, :ImGui_DockContextQueueDock, [:pointer, :pointer, :pointer, :pointer, :int, :float, :bool], :void],
    [:ImGui_DockContextQueueUndockWindow, :ImGui_DockContextQueueUndockWindow, [:pointer, :pointer], :void],
    [:ImGui_DockContextQueueUndockNode, :ImGui_DockContextQueueUndockNode, [:pointer, :pointer], :void],
    [:ImGui_DockContextProcessUndockWindow, :ImGui_DockContextProcessUndockWindow, [:pointer, :pointer], :void],
    [:ImGui_DockContextProcessUndockWindowEx, :ImGui_DockContextProcessUndockWindowEx, [:pointer, :pointer, :bool], :void],
    [:ImGui_DockContextProcessUndockNode, :ImGui_DockContextProcessUndockNode, [:pointer, :pointer], :void],
    [:ImGui_DockContextCalcDropPosForDocking, :ImGui_DockContextCalcDropPosForDocking, [:pointer, :pointer, :pointer, :pointer, :int, :bool, :pointer], :bool],
    [:ImGui_DockContextFindNodeByID, :ImGui_DockContextFindNodeByID, [:pointer, :uint], :pointer],
    [:ImGui_DockNodeWindowMenuHandler_Default, :ImGui_DockNodeWindowMenuHandler_Default, [:pointer, :pointer, :pointer], :void],
    [:ImGui_DockNodeBeginAmendTabBar, :ImGui_DockNodeBeginAmendTabBar, [:pointer], :bool],
    [:ImGui_DockNodeEndAmendTabBar, :ImGui_DockNodeEndAmendTabBar, [], :void],
    [:ImGui_DockNodeGetRootNode, :ImGui_DockNodeGetRootNode, [:pointer], :pointer],
    [:ImGui_DockNodeIsInHierarchyOf, :ImGui_DockNodeIsInHierarchyOf, [:pointer, :pointer], :bool],
    [:ImGui_DockNodeGetDepth, :ImGui_DockNodeGetDepth, [:pointer], :int],
    [:ImGui_DockNodeGetWindowMenuButtonId, :ImGui_DockNodeGetWindowMenuButtonId, [:pointer], :uint],
    [:ImGui_GetWindowDockNode, :ImGui_GetWindowDockNode, [], :pointer],
    [:ImGui_GetWindowAlwaysWantOwnTabBar, :ImGui_GetWindowAlwaysWantOwnTabBar, [:pointer], :bool],
    [:ImGui_BeginDocked, :ImGui_BeginDocked, [:pointer, :pointer], :void],
    [:ImGui_BeginDockableDragDropSource, :ImGui_BeginDockableDragDropSource, [:pointer], :void],
    [:ImGui_BeginDockableDragDropTarget, :ImGui_BeginDockableDragDropTarget, [:pointer], :void],
    [:ImGui_SetWindowDock, :ImGui_SetWindowDock, [:pointer, :uint, :int], :void],
    [:ImGui_DockBuilderDockWindow, :ImGui_DockBuilderDockWindow, [:pointer, :uint], :void],
    [:ImGui_DockBuilderGetNode, :ImGui_DockBuilderGetNode, [:uint], :pointer],
    [:ImGui_DockBuilderGetCentralNode, :ImGui_DockBuilderGetCentralNode, [:uint], :pointer],
    [:ImGui_DockBuilderAddNode, :ImGui_DockBuilderAddNode, [], :uint],
    [:ImGui_DockBuilderAddNodeEx, :ImGui_DockBuilderAddNodeEx, [:uint, :int], :uint],
    [:ImGui_DockBuilderRemoveNode, :ImGui_DockBuilderRemoveNode, [:uint], :void],
    [:ImGui_DockBuilderRemoveNodeDockedWindows, :ImGui_DockBuilderRemoveNodeDockedWindows, [:uint], :void],
    [:ImGui_DockBuilderRemoveNodeDockedWindowsEx, :ImGui_DockBuilderRemoveNodeDockedWindowsEx, [:uint, :bool], :void],
    [:ImGui_DockBuilderRemoveNodeChildNodes, :ImGui_DockBuilderRemoveNodeChildNodes, [:uint], :void],
    [:ImGui_DockBuilderSetNodePos, :ImGui_DockBuilderSetNodePos, [:uint, ImVec2.by_value], :void],
    [:ImGui_DockBuilderSetNodeSize, :ImGui_DockBuilderSetNodeSize, [:uint, ImVec2.by_value], :void],
    [:ImGui_DockBuilderSplitNode, :ImGui_DockBuilderSplitNode, [:uint, :int, :float, :pointer, :pointer], :uint],
    [:ImGui_DockBuilderCopyDockSpace, :ImGui_DockBuilderCopyDockSpace, [:uint, :uint, :pointer], :void],
    [:ImGui_DockBuilderCopyNode, :ImGui_DockBuilderCopyNode, [:uint, :uint, :pointer], :void],
    [:ImGui_DockBuilderCopyWindowSettings, :ImGui_DockBuilderCopyWindowSettings, [:pointer, :pointer], :void],
    [:ImGui_DockBuilderFinish, :ImGui_DockBuilderFinish, [:uint], :void],
    [:ImGui_PushFocusScope, :ImGui_PushFocusScope, [:uint], :void],
    [:ImGui_PopFocusScope, :ImGui_PopFocusScope, [], :void],
    [:ImGui_IsInNavFocusRoute, :ImGui_IsInNavFocusRoute, [:uint], :bool],
    [:ImGui_GetCurrentFocusScope, :ImGui_GetCurrentFocusScope, [], :uint],
    [:ImGui_IsDragDropActive, :ImGui_IsDragDropActive, [], :bool],
    [:ImGui_BeginDragDropTargetCustom, :ImGui_BeginDragDropTargetCustom, [ImRect.by_value, :uint], :bool],
    [:ImGui_BeginDragDropTargetViewport, :ImGui_BeginDragDropTargetViewport, [:pointer], :bool],
    [:ImGui_BeginDragDropTargetViewportEx, :ImGui_BeginDragDropTargetViewportEx, [:pointer, :pointer], :bool],
    [:ImGui_ClearDragDrop, :ImGui_ClearDragDrop, [], :void],
    [:ImGui_IsDragDropPayloadBeingAccepted, :ImGui_IsDragDropPayloadBeingAccepted, [], :bool],
    [:ImGui_RenderDragDropTargetRectForItem, :ImGui_RenderDragDropTargetRectForItem, [ImRect.by_value], :void],
    [:ImGui_RenderDragDropTargetRectEx, :ImGui_RenderDragDropTargetRectEx, [:pointer, ImRect.by_value, :float], :void],
    [:ImGui_GetTypingSelectRequest, :ImGui_GetTypingSelectRequest, [], :pointer],
    [:ImGui_GetTypingSelectRequestEx, :ImGui_GetTypingSelectRequestEx, [:int], :pointer],
    [:ImGui_TypingSelectFindMatch, :ImGui_TypingSelectFindMatch, [:pointer, :int, :pointer, :pointer, :int], :int],
    [:ImGui_TypingSelectFindNextSingleCharMatch, :ImGui_TypingSelectFindNextSingleCharMatch, [:pointer, :int, :pointer, :pointer, :int], :int],
    [:ImGui_TypingSelectFindBestLeadingMatch, :ImGui_TypingSelectFindBestLeadingMatch, [:pointer, :int, :pointer, :pointer], :int],
    [:ImGui_BeginBoxSelect, :ImGui_BeginBoxSelect, [ImRect.by_value, :pointer, :uint, :int], :bool],
    [:ImGui_EndBoxSelect, :ImGui_EndBoxSelect, [ImRect.by_value, :int], :void],
    [:ImGui_MultiSelectItemHeader, :ImGui_MultiSelectItemHeader, [:uint, :pointer, :pointer], :void],
    [:ImGui_MultiSelectItemFooter, :ImGui_MultiSelectItemFooter, [:uint, :pointer, :pointer], :void],
    [:ImGui_MultiSelectItemFooterEx, :ImGui_MultiSelectItemFooterEx, [:uint, :pointer, :pointer, :int], :void],
    [:ImGui_MultiSelectAddSetAll, :ImGui_MultiSelectAddSetAll, [:pointer, :bool], :void],
    [:ImGui_MultiSelectAddSetRange, :ImGui_MultiSelectAddSetRange, [:pointer, :bool, :int, :int64, :int64], :void],
    [:ImGui_GetBoxSelectState, :ImGui_GetBoxSelectState, [:uint], :pointer],
    [:ImGui_GetMultiSelectState, :ImGui_GetMultiSelectState, [:uint], :pointer],
    [:ImGui_GetCurrentTabBar, :ImGui_GetCurrentTabBar, [], :pointer],
    [:ImGui_TabBarFindByID, :ImGui_TabBarFindByID, [:uint], :pointer],
    [:ImGui_TabBarRemove, :ImGui_TabBarRemove, [:pointer], :void],
    [:ImGui_BeginTabBarEx, :ImGui_BeginTabBarEx, [:pointer, ImRect.by_value, :int], :bool],
    [:ImGui_TabBarFindTabByID, :ImGui_TabBarFindTabByID, [:pointer, :uint], :pointer],
    [:ImGui_TabBarFindTabByOrder, :ImGui_TabBarFindTabByOrder, [:pointer, :int], :pointer],
    [:ImGui_TabBarFindMostRecentlySelectedTabForActiveWindow, :ImGui_TabBarFindMostRecentlySelectedTabForActiveWindow, [:pointer], :pointer],
    [:ImGui_TabBarGetCurrentTab, :ImGui_TabBarGetCurrentTab, [:pointer], :pointer],
    [:ImGui_TabBarGetTabOrder, :ImGui_TabBarGetTabOrder, [:pointer, :pointer], :int],
    [:ImGui_TabBarGetTabName, :ImGui_TabBarGetTabName, [:pointer, :pointer], :pointer],
    [:ImGui_TabBarAddTab, :ImGui_TabBarAddTab, [:pointer, :int, :pointer], :void],
    [:ImGui_TabBarRemoveTab, :ImGui_TabBarRemoveTab, [:pointer, :uint], :void],
    [:ImGui_TabBarCloseTab, :ImGui_TabBarCloseTab, [:pointer, :pointer], :void],
    [:ImGui_TabBarQueueFocus, :ImGui_TabBarQueueFocus, [:pointer, :pointer], :void],
    [:ImGui_TabBarQueueFocusStr, :ImGui_TabBarQueueFocusStr, [:pointer, :pointer], :void],
    [:ImGui_TabBarQueueReorder, :ImGui_TabBarQueueReorder, [:pointer, :pointer, :int], :void],
    [:ImGui_TabBarQueueReorderFromMousePos, :ImGui_TabBarQueueReorderFromMousePos, [:pointer, :pointer, ImVec2.by_value], :void],
    [:ImGui_TabBarProcessReorder, :ImGui_TabBarProcessReorder, [:pointer], :bool],
    [:ImGui_TabItemEx, :ImGui_TabItemEx, [:pointer, :pointer, :pointer, :int, :pointer], :bool],
    [:ImGui_TabItemSpacing, :ImGui_TabItemSpacing, [:pointer, :int, :float], :void],
    [:ImGui_TabItemCalcSizeStr, :ImGui_TabItemCalcSizeStr, [:pointer, :bool], ImVec2.by_value],
    [:ImGui_TabItemCalcSize, :ImGui_TabItemCalcSize, [:pointer], ImVec2.by_value],
    [:ImGui_TabItemBackground, :ImGui_TabItemBackground, [:pointer, ImRect.by_value, :int, :uint], :void],
    [:ImGui_TabItemLabelAndCloseButton, :ImGui_TabItemLabelAndCloseButton, [:pointer, ImRect.by_value, :int, ImVec2.by_value, :pointer, :uint, :uint, :bool, :pointer, :pointer], :void],
    [:ImGui_RenderText, :ImGui_RenderText, [ImVec2.by_value, :pointer], :void],
    [:ImGui_RenderTextEx, :ImGui_RenderTextEx, [ImVec2.by_value, :pointer, :pointer, :bool], :void],
    [:ImGui_RenderTextWrapped, :ImGui_RenderTextWrapped, [ImVec2.by_value, :pointer, :pointer, :float], :void],
    [:ImGui_RenderTextClipped, :ImGui_RenderTextClipped, [ImVec2.by_value, ImVec2.by_value, :pointer, :pointer, :pointer], :void],
    [:ImGui_RenderTextClippedEx, :ImGui_RenderTextClippedEx, [ImVec2.by_value, ImVec2.by_value, :pointer, :pointer, :pointer, ImVec2.by_value, :pointer], :void],
    [:ImGui_RenderTextClippedWithDrawList, :ImGui_RenderTextClippedWithDrawList, [:pointer, ImVec2.by_value, ImVec2.by_value, :pointer, :pointer, :pointer], :void],
    [:ImGui_RenderTextClippedWithDrawListEx, :ImGui_RenderTextClippedWithDrawListEx, [:pointer, ImVec2.by_value, ImVec2.by_value, :pointer, :pointer, :pointer, ImVec2.by_value, :pointer], :void],
    [:ImGui_RenderTextEllipsis, :ImGui_RenderTextEllipsis, [:pointer, ImVec2.by_value, ImVec2.by_value, :float, :pointer, :pointer, :pointer], :void],
    [:ImGui_RenderFrame, :ImGui_RenderFrame, [ImVec2.by_value, ImVec2.by_value, :uint], :void],
    [:ImGui_RenderFrameEx, :ImGui_RenderFrameEx, [ImVec2.by_value, ImVec2.by_value, :uint, :bool, :float], :void],
    [:ImGui_RenderFrameBorder, :ImGui_RenderFrameBorder, [ImVec2.by_value, ImVec2.by_value], :void],
    [:ImGui_RenderFrameBorderEx, :ImGui_RenderFrameBorderEx, [ImVec2.by_value, ImVec2.by_value, :float], :void],
    [:ImGui_RenderColorComponentMarker, :ImGui_RenderColorComponentMarker, [ImRect.by_value, :uint, :float], :void],
    [:ImGui_RenderColorRectWithAlphaCheckerboard, :ImGui_RenderColorRectWithAlphaCheckerboard, [:pointer, ImVec2.by_value, ImVec2.by_value, :uint, :float, ImVec2.by_value], :void],
    [:ImGui_RenderColorRectWithAlphaCheckerboardEx, :ImGui_RenderColorRectWithAlphaCheckerboardEx, [:pointer, ImVec2.by_value, ImVec2.by_value, :uint, :float, ImVec2.by_value, :float, :int], :void],
    [:ImGui_RenderNavCursor, :ImGui_RenderNavCursor, [ImRect.by_value, :uint], :void],
    [:ImGui_RenderNavCursorEx, :ImGui_RenderNavCursorEx, [ImRect.by_value, :uint, :int, :float], :void],
    [:ImGui_RenderNavHighlight, :ImGui_RenderNavHighlight, [ImRect.by_value, :uint], :void],
    [:ImGui_RenderNavHighlightEx, :ImGui_RenderNavHighlightEx, [ImRect.by_value, :uint, :int], :void],
    [:ImGui_FindRenderedTextEnd, :ImGui_FindRenderedTextEnd, [:pointer], :pointer],
    [:ImGui_FindRenderedTextEndEx, :ImGui_FindRenderedTextEndEx, [:pointer, :pointer], :pointer],
    [:ImGui_RenderMouseCursor, :ImGui_RenderMouseCursor, [ImVec2.by_value, :float, :int, :uint, :uint, :uint], :void],
    [:ImGui_RenderArrow, :ImGui_RenderArrow, [:pointer, ImVec2.by_value, :uint, :int], :void],
    [:ImGui_RenderArrowEx, :ImGui_RenderArrowEx, [:pointer, ImVec2.by_value, :uint, :int, :float], :void],
    [:ImGui_RenderBullet, :ImGui_RenderBullet, [:pointer, ImVec2.by_value, :uint], :void],
    [:ImGui_RenderCheckMark, :ImGui_RenderCheckMark, [:pointer, ImVec2.by_value, :uint, :float], :void],
    [:ImGui_RenderArrowPointingAt, :ImGui_RenderArrowPointingAt, [:pointer, ImVec2.by_value, ImVec2.by_value, :int, :uint], :void],
    [:ImGui_RenderArrowDockMenu, :ImGui_RenderArrowDockMenu, [:pointer, ImVec2.by_value, :float, :uint], :void],
    [:ImGui_RenderRectFilledInRangeH, :ImGui_RenderRectFilledInRangeH, [:pointer, ImRect.by_value, :uint, :float, :float, :float], :void],
    [:ImGui_RenderRectFilledWithHole, :ImGui_RenderRectFilledWithHole, [:pointer, ImRect.by_value, ImRect.by_value, :uint, :float], :void],
    [:ImGui_CalcRoundingFlagsForRectInRect, :ImGui_CalcRoundingFlagsForRectInRect, [ImRect.by_value, ImRect.by_value, :float], :int],
    [:ImGui_TextEx, :ImGui_TextEx, [:pointer], :void],
    [:ImGui_TextExEx, :ImGui_TextExEx, [:pointer, :pointer, :int], :void],
    [:ImGui_TextAligned, :ImGui_TextAligned, [:float, :float, :pointer, :varargs], :void],
    [:ImGui_ButtonWithFlags, :ImGui_ButtonWithFlags, [:pointer], :bool],
    [:ImGui_ButtonWithFlagsEx, :ImGui_ButtonWithFlagsEx, [:pointer, ImVec2.by_value, :int], :bool],
    [:ImGui_ArrowButtonEx, :ImGui_ArrowButtonEx, [:pointer, :int, ImVec2.by_value, :int], :bool],
    [:ImGui_ImageButtonWithFlags, :ImGui_ImageButtonWithFlags, [:uint, ImTextureRef.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec4.by_value, ImVec4.by_value, :int], :bool],
    [:ImGui_SeparatorEx, :ImGui_SeparatorEx, [:int], :void],
    [:ImGui_SeparatorExEx, :ImGui_SeparatorExEx, [:int, :float], :void],
    [:ImGui_SeparatorTextEx, :ImGui_SeparatorTextEx, [:uint, :pointer, :pointer, :float], :void],
    [:ImGui_CheckboxFlagsImS64Ptr, :ImGui_CheckboxFlagsImS64Ptr, [:pointer, :pointer, :int64], :bool],
    [:ImGui_CheckboxFlagsImU64Ptr, :ImGui_CheckboxFlagsImU64Ptr, [:pointer, :pointer, :uint64], :bool],
    [:ImGui_CloseButton, :ImGui_CloseButton, [:uint, ImVec2.by_value], :bool],
    [:ImGui_CollapseButton, :ImGui_CollapseButton, [:uint, ImVec2.by_value, :pointer], :bool],
    [:ImGui_Scrollbar, :ImGui_Scrollbar, [:int], :void],
    [:ImGui_ScrollbarEx, :ImGui_ScrollbarEx, [ImRect.by_value, :uint, :int, :pointer, :int64, :int64], :bool],
    [:ImGui_ScrollbarExEx, :ImGui_ScrollbarExEx, [ImRect.by_value, :uint, :int, :pointer, :int64, :int64, :int], :bool],
    [:ImGui_GetWindowScrollbarRect, :ImGui_GetWindowScrollbarRect, [:pointer, :int], ImRect.by_value],
    [:ImGui_GetWindowScrollbarID, :ImGui_GetWindowScrollbarID, [:pointer, :int], :uint],
    [:ImGui_GetWindowResizeCornerID, :ImGui_GetWindowResizeCornerID, [:pointer, :int], :uint],
    [:ImGui_GetWindowResizeBorderID, :ImGui_GetWindowResizeBorderID, [:pointer, :int], :uint],
    [:ImGui_ExtendHitBoxWhenNearViewportEdge, :ImGui_ExtendHitBoxWhenNearViewportEdge, [:pointer, :pointer, :float, :int], :void],
    [:ImGui_ButtonBehavior, :ImGui_ButtonBehavior, [ImRect.by_value, :uint, :pointer, :pointer, :int], :bool],
    [:ImGui_DragBehavior, :ImGui_DragBehavior, [:uint, :int, :pointer, :float, :pointer, :pointer, :pointer, :int], :bool],
    [:ImGui_SliderBehavior, :ImGui_SliderBehavior, [ImRect.by_value, :uint, :int, :pointer, :pointer, :pointer, :pointer, :int, :pointer], :bool],
    [:ImGui_SplitterBehavior, :ImGui_SplitterBehavior, [ImRect.by_value, :uint, :int, :pointer, :pointer, :float, :float], :bool],
    [:ImGui_SplitterBehaviorEx, :ImGui_SplitterBehaviorEx, [ImRect.by_value, :uint, :int, :pointer, :pointer, :float, :float, :float, :float, :uint], :bool],
    [:ImGui_TreeNodeBehavior, :ImGui_TreeNodeBehavior, [:uint, :int, :pointer], :bool],
    [:ImGui_TreeNodeBehaviorEx, :ImGui_TreeNodeBehaviorEx, [:uint, :int, :pointer, :pointer], :bool],
    [:ImGui_TreeNodeDrawLineToChildNode, :ImGui_TreeNodeDrawLineToChildNode, [ImVec2.by_value], :void],
    [:ImGui_TreeNodeDrawLineToTreePop, :ImGui_TreeNodeDrawLineToTreePop, [:pointer], :void],
    [:ImGui_TreePushOverrideID, :ImGui_TreePushOverrideID, [:uint], :void],
    [:ImGui_TreeNodeSetOpen, :ImGui_TreeNodeSetOpen, [:uint, :bool], :void],
    [:ImGui_TreeNodeUpdateNextOpen, :ImGui_TreeNodeUpdateNextOpen, [:uint, :int], :bool],
    [:ImGui_DataTypeGetInfo, :ImGui_DataTypeGetInfo, [:int], :pointer],
    [:ImGui_DataTypeFormatString, :ImGui_DataTypeFormatString, [:pointer, :int, :int, :pointer, :pointer], :int],
    [:ImGui_DataTypeApplyOp, :ImGui_DataTypeApplyOp, [:int, :int, :pointer, :pointer, :pointer], :void],
    [:ImGui_DataTypeApplyFromText, :ImGui_DataTypeApplyFromText, [:pointer, :int, :pointer, :pointer], :bool],
    [:ImGui_DataTypeApplyFromTextEx, :ImGui_DataTypeApplyFromTextEx, [:pointer, :int, :pointer, :pointer, :pointer], :bool],
    [:ImGui_DataTypeCompare, :ImGui_DataTypeCompare, [:int, :pointer, :pointer], :int],
    [:ImGui_DataTypeClamp, :ImGui_DataTypeClamp, [:int, :pointer, :pointer, :pointer], :bool],
    [:ImGui_DataTypeIsZero, :ImGui_DataTypeIsZero, [:int, :pointer], :bool],
    [:ImGui_InputTextWithHintAndSize, :ImGui_InputTextWithHintAndSize, [:pointer, :pointer, :pointer, :int, ImVec2.by_value, :int], :bool],
    [:ImGui_InputTextWithHintAndSizeEx, :ImGui_InputTextWithHintAndSizeEx, [:pointer, :pointer, :pointer, :int, ImVec2.by_value, :int, :ImGuiInputTextCallback, :pointer], :bool],
    [:ImGui_InputTextDeactivateHook, :ImGui_InputTextDeactivateHook, [:uint], :void],
    [:ImGui_TempInputText, :ImGui_TempInputText, [ImRect.by_value, :uint, :pointer, :pointer, :size_t, :int], :bool],
    [:ImGui_TempInputTextEx, :ImGui_TempInputTextEx, [ImRect.by_value, :uint, :pointer, :pointer, :size_t, :int, :ImGuiInputTextCallback, :pointer], :bool],
    [:ImGui_TempInputScalar, :ImGui_TempInputScalar, [ImRect.by_value, :uint, :pointer, :int, :pointer, :pointer], :bool],
    [:ImGui_TempInputScalarEx, :ImGui_TempInputScalarEx, [ImRect.by_value, :uint, :pointer, :int, :pointer, :pointer, :pointer, :pointer], :bool],
    [:ImGui_TempInputIsActive, :ImGui_TempInputIsActive, [:uint], :bool],
    [:ImGui_GetInputTextState, :ImGui_GetInputTextState, [:uint], :pointer],
    [:ImGui_SetNextItemRefVal, :ImGui_SetNextItemRefVal, [:int, :pointer], :void],
    [:ImGui_IsItemActiveAsInputText, :ImGui_IsItemActiveAsInputText, [], :bool],
    [:ImGui_ColorTooltip, :ImGui_ColorTooltip, [:pointer, :pointer, :int], :void],
    [:ImGui_ColorEditOptionsPopup, :ImGui_ColorEditOptionsPopup, [:pointer, :int], :void],
    [:ImGui_ColorPickerOptionsPopup, :ImGui_ColorPickerOptionsPopup, [:pointer, :int], :void],
    [:ImGui_SetNextItemColorMarker, :ImGui_SetNextItemColorMarker, [:uint], :void],
    [:ImGui_PlotEx, :ImGui_PlotEx, [:int, :pointer, :pointer, :pointer, :int, :int, :pointer, :float, :float, ImVec2.by_value], :int],
    [:ImGui_ShadeVertsLinearColorGradientKeepAlpha, :ImGui_ShadeVertsLinearColorGradientKeepAlpha, [:pointer, :int, :int, ImVec2.by_value, ImVec2.by_value, :uint, :uint], :void],
    [:ImGui_ShadeVertsLinearUV, :ImGui_ShadeVertsLinearUV, [:pointer, :int, :int, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, ImVec2.by_value, :bool], :void],
    [:ImGui_ShadeVertsTransformPos, :ImGui_ShadeVertsTransformPos, [:pointer, :int, :int, ImVec2.by_value, :float, :float, ImVec2.by_value], :void],
    [:ImGui_GcCompactTransientMiscBuffers, :ImGui_GcCompactTransientMiscBuffers, [], :void],
    [:ImGui_GcCompactTransientWindowBuffers, :ImGui_GcCompactTransientWindowBuffers, [:pointer], :void],
    [:ImGui_GcAwakeTransientWindowBuffers, :ImGui_GcAwakeTransientWindowBuffers, [:pointer], :void],
    [:ImGui_ErrorLog, :ImGui_ErrorLog, [:pointer], :bool],
    [:ImGui_ErrorRecoveryStoreState, :ImGui_ErrorRecoveryStoreState, [:pointer], :void],
    [:ImGui_ErrorRecoveryTryToRecoverState, :ImGui_ErrorRecoveryTryToRecoverState, [:pointer], :void],
    [:ImGui_ErrorRecoveryTryToRecoverWindowState, :ImGui_ErrorRecoveryTryToRecoverWindowState, [:pointer], :void],
    [:ImGui_ErrorCheckUsingSetCursorPosToExtendParentBoundaries, :ImGui_ErrorCheckUsingSetCursorPosToExtendParentBoundaries, [], :void],
    [:ImGui_ErrorCheckEndFrameFinalizeErrorTooltip, :ImGui_ErrorCheckEndFrameFinalizeErrorTooltip, [], :void],
    [:ImGui_BeginErrorTooltip, :ImGui_BeginErrorTooltip, [], :bool],
    [:ImGui_EndErrorTooltip, :ImGui_EndErrorTooltip, [], :void],
    [:ImGui_DemoMarker, :ImGui_DemoMarker, [:pointer, :int, :pointer], :void],
    [:ImGui_DebugAllocHook, :ImGui_DebugAllocHook, [:pointer, :int, :pointer, :size_t], :void],
    [:ImGui_DebugDrawCursorPos, :ImGui_DebugDrawCursorPos, [], :void],
    [:ImGui_DebugDrawCursorPosEx, :ImGui_DebugDrawCursorPosEx, [:uint], :void],
    [:ImGui_DebugDrawLineExtents, :ImGui_DebugDrawLineExtents, [], :void],
    [:ImGui_DebugDrawLineExtentsEx, :ImGui_DebugDrawLineExtentsEx, [:uint], :void],
    [:ImGui_DebugDrawItemRect, :ImGui_DebugDrawItemRect, [], :void],
    [:ImGui_DebugDrawItemRectEx, :ImGui_DebugDrawItemRectEx, [:uint], :void],
    [:ImGui_DebugTextUnformattedWithLocateItem, :ImGui_DebugTextUnformattedWithLocateItem, [:pointer, :pointer], :void],
    [:ImGui_DebugLocateItem, :ImGui_DebugLocateItem, [:uint], :void],
    [:ImGui_DebugLocateItemOnHover, :ImGui_DebugLocateItemOnHover, [:uint], :void],
    [:ImGui_DebugLocateItemResolveWithLastItem, :ImGui_DebugLocateItemResolveWithLastItem, [], :void],
    [:ImGui_DebugBreakClearData, :ImGui_DebugBreakClearData, [], :void],
    [:ImGui_DebugBreakButton, :ImGui_DebugBreakButton, [:pointer, :pointer], :bool],
    [:ImGui_DebugBreakButtonTooltip, :ImGui_DebugBreakButtonTooltip, [:bool, :pointer], :void],
    [:ImGui_ShowFontAtlas, :ImGui_ShowFontAtlas, [:pointer], :void],
    [:ImGui_DebugTextureIDToU64, :ImGui_DebugTextureIDToU64, [:uint64], :uint64],
    [:ImGui_DebugHookIdInfo, :ImGui_DebugHookIdInfo, [:uint, :int, :pointer, :pointer], :void],
    [:ImGui_DebugNodeColumns, :ImGui_DebugNodeColumns, [:pointer], :void],
    [:ImGui_DebugNodeDockNode, :ImGui_DebugNodeDockNode, [:pointer, :pointer], :void],
    [:ImGui_DebugNodeDrawList, :ImGui_DebugNodeDrawList, [:pointer, :pointer, :pointer, :pointer], :void],
    [:ImGui_DebugNodeDrawCmdShowMeshAndBoundingBox, :ImGui_DebugNodeDrawCmdShowMeshAndBoundingBox, [:pointer, :pointer, :pointer, :bool, :bool], :void],
    [:ImGui_DebugNodeFont, :ImGui_DebugNodeFont, [:pointer], :void],
    [:ImGui_DebugNodeFontGlyphsForSrcMask, :ImGui_DebugNodeFontGlyphsForSrcMask, [:pointer, :pointer, :int], :void],
    [:ImGui_DebugNodeFontGlyph, :ImGui_DebugNodeFontGlyph, [:pointer, :pointer], :void],
    [:ImGui_DebugNodeTexture, :ImGui_DebugNodeTexture, [:pointer, :int], :void],
    [:ImGui_DebugNodeTextureEx, :ImGui_DebugNodeTextureEx, [:pointer, :int, :pointer], :void],
    [:ImGui_DebugNodeStorage, :ImGui_DebugNodeStorage, [:pointer, :pointer], :void],
    [:ImGui_DebugNodeTabBar, :ImGui_DebugNodeTabBar, [:pointer, :pointer], :void],
    [:ImGui_DebugNodeTable, :ImGui_DebugNodeTable, [:pointer], :void],
    [:ImGui_DebugNodeTableSettings, :ImGui_DebugNodeTableSettings, [:pointer, :pointer], :void],
    [:ImGui_DebugNodeInputTextState, :ImGui_DebugNodeInputTextState, [:pointer], :void],
    [:ImGui_DebugNodeTypingSelectState, :ImGui_DebugNodeTypingSelectState, [:pointer], :void],
    [:ImGui_DebugNodeMultiSelectState, :ImGui_DebugNodeMultiSelectState, [:pointer], :void],
    [:ImGui_DebugNodeWindow, :ImGui_DebugNodeWindow, [:pointer, :pointer], :void],
    [:ImGui_DebugNodeWindowSettings, :ImGui_DebugNodeWindowSettings, [:pointer], :void],
    [:ImGui_DebugNodeWindowsList, :ImGui_DebugNodeWindowsList, [:pointer, :pointer], :void],
    [:ImGui_DebugNodeWindowsListByBeginStackParent, :ImGui_DebugNodeWindowsListByBeginStackParent, [:pointer, :int, :pointer], :void],
    [:ImGui_DebugNodeViewport, :ImGui_DebugNodeViewport, [:pointer], :void],
    [:ImGui_DebugNodePlatformMonitor, :ImGui_DebugNodePlatformMonitor, [:pointer, :pointer, :int], :void],
    [:ImGui_DebugRenderKeyboardPreview, :ImGui_DebugRenderKeyboardPreview, [:pointer], :void],
    [:ImGui_DebugRenderViewportThumbnail, :ImGui_DebugRenderViewportThumbnail, [:pointer, :pointer, ImRect.by_value], :void],
    [:cImFontAtlasRectId_GetIndex, :cImFontAtlasRectId_GetIndex, [:int], :int],
    [:cImFontAtlasRectId_GetGeneration, :cImFontAtlasRectId_GetGeneration, [:int], :uint],
    [:cImFontAtlasRectId_Make, :cImFontAtlasRectId_Make, [:int, :int], :int],
    [:cImFontAtlasBuildInit, :cImFontAtlasBuildInit, [:pointer], :void],
    [:cImFontAtlasBuildDestroy, :cImFontAtlasBuildDestroy, [:pointer], :void],
    [:cImFontAtlasBuildMain, :cImFontAtlasBuildMain, [:pointer], :void],
    [:cImFontAtlasBuildSetupFontLoader, :cImFontAtlasBuildSetupFontLoader, [:pointer, :pointer], :void],
    [:cImFontAtlasBuildNotifySetFont, :cImFontAtlasBuildNotifySetFont, [:pointer, :pointer, :pointer], :void],
    [:cImFontAtlasBuildUpdatePointers, :cImFontAtlasBuildUpdatePointers, [:pointer], :void],
    [:cImFontAtlasBuildRenderBitmapFromString, :cImFontAtlasBuildRenderBitmapFromString, [:pointer, :int, :int, :int, :int, :pointer, :char], :void],
    [:cImFontAtlasBuildClear, :cImFontAtlasBuildClear, [:pointer], :void],
    [:cImFontAtlasTextureAdd, :cImFontAtlasTextureAdd, [:pointer, :int, :int], :pointer],
    [:cImFontAtlasTextureMakeSpace, :cImFontAtlasTextureMakeSpace, [:pointer], :void],
    [:cImFontAtlasTextureRepack, :cImFontAtlasTextureRepack, [:pointer, :int, :int], :void],
    [:cImFontAtlasTextureGrow, :cImFontAtlasTextureGrow, [:pointer], :void],
    [:cImFontAtlasTextureGrowEx, :cImFontAtlasTextureGrowEx, [:pointer, :int, :int], :void],
    [:cImFontAtlasTextureCompact, :cImFontAtlasTextureCompact, [:pointer], :void],
    [:cImFontAtlasTextureGetSizeEstimate, :cImFontAtlasTextureGetSizeEstimate, [:pointer], ImVec2i.by_value],
    [:cImFontAtlasBuildSetupFontSpecialGlyphs, :cImFontAtlasBuildSetupFontSpecialGlyphs, [:pointer, :pointer, :pointer], :void],
    [:cImFontAtlasBuildLegacyPreloadAllGlyphRanges, :cImFontAtlasBuildLegacyPreloadAllGlyphRanges, [:pointer], :void],
    [:cImFontAtlasBuildGetOversampleFactors, :cImFontAtlasBuildGetOversampleFactors, [:pointer, :pointer, :pointer, :pointer], :void],
    [:cImFontAtlasBuildDiscardBakes, :cImFontAtlasBuildDiscardBakes, [:pointer, :int], :void],
    [:cImFontAtlasFontSourceInit, :cImFontAtlasFontSourceInit, [:pointer, :pointer], :bool],
    [:cImFontAtlasFontSourceAddToFont, :cImFontAtlasFontSourceAddToFont, [:pointer, :pointer, :pointer], :void],
    [:cImFontAtlasFontDestroySourceData, :cImFontAtlasFontDestroySourceData, [:pointer, :pointer], :void],
    [:cImFontAtlasFontInitOutput, :cImFontAtlasFontInitOutput, [:pointer, :pointer], :bool],
    [:cImFontAtlasFontDestroyOutput, :cImFontAtlasFontDestroyOutput, [:pointer, :pointer], :void],
    [:cImFontAtlasFontRebuildOutput, :cImFontAtlasFontRebuildOutput, [:pointer, :pointer], :void],
    [:cImFontAtlasFontDiscardBakes, :cImFontAtlasFontDiscardBakes, [:pointer, :pointer, :int], :void],
    [:cImFontAtlasBakedGetId, :cImFontAtlasBakedGetId, [:uint, :float, :float], :uint],
    [:cImFontAtlasBakedGetOrAdd, :cImFontAtlasBakedGetOrAdd, [:pointer, :pointer, :float, :float], :pointer],
    [:cImFontAtlasBakedGetClosestMatch, :cImFontAtlasBakedGetClosestMatch, [:pointer, :pointer, :float, :float], :pointer],
    [:cImFontAtlasBakedAdd, :cImFontAtlasBakedAdd, [:pointer, :pointer, :float, :float, :uint], :pointer],
    [:cImFontAtlasBakedDiscard, :cImFontAtlasBakedDiscard, [:pointer, :pointer, :pointer], :void],
    [:cImFontAtlasBakedAddFontGlyph, :cImFontAtlasBakedAddFontGlyph, [:pointer, :pointer, :pointer, :pointer], :pointer],
    [:cImFontAtlasBakedAddFontGlyphAdvancedX, :cImFontAtlasBakedAddFontGlyphAdvancedX, [:pointer, :pointer, :pointer, :ushort, :float], :void],
    [:cImFontAtlasBakedDiscardFontGlyph, :cImFontAtlasBakedDiscardFontGlyph, [:pointer, :pointer, :pointer, :pointer], :void],
    [:cImFontAtlasBakedSetFontGlyphBitmap, :cImFontAtlasBakedSetFontGlyphBitmap, [:pointer, :pointer, :pointer, :pointer, :pointer, :pointer, :int, :int], :void],
    [:cImFontAtlasPackInit, :cImFontAtlasPackInit, [:pointer], :void],
    [:cImFontAtlasPackAddRect, :cImFontAtlasPackAddRect, [:pointer, :int, :int], :int],
    [:cImFontAtlasPackAddRectEx, :cImFontAtlasPackAddRectEx, [:pointer, :int, :int, :pointer], :int],
    [:cImFontAtlasPackGetRect, :cImFontAtlasPackGetRect, [:pointer, :int], :pointer],
    [:cImFontAtlasPackGetRectSafe, :cImFontAtlasPackGetRectSafe, [:pointer, :int], :pointer],
    [:cImFontAtlasPackDiscardRect, :cImFontAtlasPackDiscardRect, [:pointer, :int], :void],
    [:cImFontAtlasUpdateNewFrame, :cImFontAtlasUpdateNewFrame, [:pointer, :int, :bool], :void],
    [:cImFontAtlasAddDrawListSharedData, :cImFontAtlasAddDrawListSharedData, [:pointer, :pointer], :void],
    [:cImFontAtlasRemoveDrawListSharedData, :cImFontAtlasRemoveDrawListSharedData, [:pointer, :pointer], :void],
    [:cImFontAtlasUpdateDrawListsTextures, :cImFontAtlasUpdateDrawListsTextures, [:pointer, ImTextureRef.by_value, ImTextureRef.by_value], :void],
    [:cImFontAtlasUpdateDrawListsSharedData, :cImFontAtlasUpdateDrawListsSharedData, [:pointer], :void],
    [:cImFontAtlasTextureBlockConvert, :cImFontAtlasTextureBlockConvert, [:pointer, :int, :int, :pointer, :int, :int, :int, :int], :void],
    [:cImFontAtlasTextureBlockPostProcess, :cImFontAtlasTextureBlockPostProcess, [:pointer], :void],
    [:cImFontAtlasTextureBlockPostProcessMultiply, :cImFontAtlasTextureBlockPostProcessMultiply, [:pointer, :float], :void],
    [:cImFontAtlasTextureBlockFill, :cImFontAtlasTextureBlockFill, [:pointer, :int, :int, :int, :int, :uint], :void],
    [:cImFontAtlasTextureBlockCopy, :cImFontAtlasTextureBlockCopy, [:pointer, :int, :int, :pointer, :int, :int, :int, :int], :void],
    [:cImFontAtlasTextureBlockQueueUpload, :cImFontAtlasTextureBlockQueueUpload, [:pointer, :pointer, :int, :int, :int, :int], :void],
    [:cImTextureDataUpdateNewFrame, :cImTextureDataUpdateNewFrame, [:pointer], :bool],
    [:cImTextureDataQueueUpload, :cImTextureDataQueueUpload, [:pointer, :int, :int, :int, :int], :void],
    [:cImTextureDataGetFormatBytesPerPixel, :cImTextureDataGetFormatBytesPerPixel, [:int], :int],
    [:cImTextureDataGetStatusName, :cImTextureDataGetStatusName, [:int], :pointer],
    [:cImTextureDataGetFormatName, :cImTextureDataGetFormatName, [:int], :pointer],
    [:cImFontAtlasDebugLogTextureRequests, :cImFontAtlasDebugLogTextureRequests, [:pointer], :void],
    [:cImFontAtlasGetMouseCursorTexData, :cImFontAtlasGetMouseCursorTexData, [:pointer, :int, :pointer, :pointer, :pointer, :pointer], :bool],
  ]
  entries.each do |entry|
    attach_function entry[0], entry[1], entry[2], entry[3]
  rescue FFI::NotFoundError
    warn "[Warning] Failed to import #{entry[0]}."
  end
  @@imgui_import_done = true

end

.Indent(*arg) ⇒ Object



11629
11630
11631
11632
11633
11634
11635
11636
11637
11638
# File 'lib/imgui.rb', line 11629

def self.Indent(*arg)
  # arg: 
  # ret: void
  return ImGui_Indent() if arg.empty?
  # arg: 0:indent_w(float)
  # ret: void
  return ImGui_IndentEx(0.0) if arg.length == 0 && (true)
  return ImGui_IndentEx(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Float))
  $stderr.puts("[Warning] ImGui::Indent : No matching functions found (#{arg})")
end

.InitializeObject

ret: void



9608
9609
9610
# File 'lib/imgui.rb', line 9608

def self.Initialize()
  ImGui_Initialize()
end

.InputDouble(*arg) ⇒ Object



12267
12268
12269
12270
12271
12272
12273
12274
12275
12276
12277
12278
12279
# File 'lib/imgui.rb', line 12267

def self.InputDouble(*arg)
  # arg: 0:label(const char*), 1:v(double*)
  # ret: bool
  return ImGui_InputDouble(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  # arg: 0:label(const char*), 1:v(double*), 2:step(double), 3:step_fast(double), 4:format(const char*), 5:flags(ImGuiInputTextFlags)
  # ret: bool
  return ImGui_InputDoubleEx(arg[0], arg[1], arg[2], arg[3], arg[4], 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(String))
  return ImGui_InputDoubleEx(arg[0], arg[1], arg[2], arg[3], "%.6f", 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float))
  return ImGui_InputDoubleEx(arg[0], arg[1], arg[2], 0.0, "%.6f", 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float))
  return ImGui_InputDoubleEx(arg[0], arg[1], 0.0, 0.0, "%.6f", 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  return ImGui_InputDoubleEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(String) && arg[5].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::InputDouble : No matching functions found (#{arg})")
end

.InputFloat(*arg) ⇒ Object



12204
12205
12206
12207
12208
12209
12210
12211
12212
12213
12214
12215
12216
# File 'lib/imgui.rb', line 12204

def self.InputFloat(*arg)
  # arg: 0:label(const char*), 1:v(float*)
  # ret: bool
  return ImGui_InputFloat(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  # arg: 0:label(const char*), 1:v(float*), 2:step(float), 3:step_fast(float), 4:format(const char*), 5:flags(ImGuiInputTextFlags)
  # ret: bool
  return ImGui_InputFloatEx(arg[0], arg[1], arg[2], arg[3], arg[4], 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(String))
  return ImGui_InputFloatEx(arg[0], arg[1], arg[2], arg[3], "%.3f", 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float))
  return ImGui_InputFloatEx(arg[0], arg[1], arg[2], 0.0, "%.3f", 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float))
  return ImGui_InputFloatEx(arg[0], arg[1], 0.0, 0.0, "%.3f", 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  return ImGui_InputFloatEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(String) && arg[5].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::InputFloat : No matching functions found (#{arg})")
end

.InputFloat2(*arg) ⇒ Object



12218
12219
12220
12221
12222
12223
12224
12225
12226
12227
12228
# File 'lib/imgui.rb', line 12218

def self.InputFloat2(*arg)
  # arg: 0:label(const char*), 1:v(float[2])
  # ret: bool
  return ImGui_InputFloat2(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  # arg: 0:label(const char*), 1:v(float[2]), 2:format(const char*), 3:flags(ImGuiInputTextFlags)
  # ret: bool
  return ImGui_InputFloat2Ex(arg[0], arg[1], arg[2], 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(String))
  return ImGui_InputFloat2Ex(arg[0], arg[1], "%.3f", 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  return ImGui_InputFloat2Ex(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(String) && arg[3].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::InputFloat2 : No matching functions found (#{arg})")
end

.InputFloat3(*arg) ⇒ Object



12230
12231
12232
12233
12234
12235
12236
12237
12238
12239
12240
# File 'lib/imgui.rb', line 12230

def self.InputFloat3(*arg)
  # arg: 0:label(const char*), 1:v(float[3])
  # ret: bool
  return ImGui_InputFloat3(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  # arg: 0:label(const char*), 1:v(float[3]), 2:format(const char*), 3:flags(ImGuiInputTextFlags)
  # ret: bool
  return ImGui_InputFloat3Ex(arg[0], arg[1], arg[2], 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(String))
  return ImGui_InputFloat3Ex(arg[0], arg[1], "%.3f", 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  return ImGui_InputFloat3Ex(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(String) && arg[3].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::InputFloat3 : No matching functions found (#{arg})")
end

.InputFloat4(*arg) ⇒ Object



12242
12243
12244
12245
12246
12247
12248
12249
12250
12251
12252
# File 'lib/imgui.rb', line 12242

def self.InputFloat4(*arg)
  # arg: 0:label(const char*), 1:v(float[4])
  # ret: bool
  return ImGui_InputFloat4(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  # arg: 0:label(const char*), 1:v(float[4]), 2:format(const char*), 3:flags(ImGuiInputTextFlags)
  # ret: bool
  return ImGui_InputFloat4Ex(arg[0], arg[1], arg[2], 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(String))
  return ImGui_InputFloat4Ex(arg[0], arg[1], "%.3f", 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  return ImGui_InputFloat4Ex(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(String) && arg[3].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::InputFloat4 : No matching functions found (#{arg})")
end

.InputInt(*arg) ⇒ Object



12254
12255
12256
12257
12258
12259
12260
12261
12262
12263
12264
12265
# File 'lib/imgui.rb', line 12254

def self.InputInt(*arg)
  # arg: 0:label(const char*), 1:v(int*)
  # ret: bool
  return ImGui_InputInt(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  # arg: 0:label(const char*), 1:v(int*), 2:step(int), 3:step_fast(int), 4:flags(ImGuiInputTextFlags)
  # ret: bool
  return ImGui_InputIntEx(arg[0], arg[1], arg[2], arg[3], 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer))
  return ImGui_InputIntEx(arg[0], arg[1], arg[2], 100, 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer))
  return ImGui_InputIntEx(arg[0], arg[1], 1, 100, 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  return ImGui_InputIntEx(arg[0], arg[1], arg[2], arg[3], arg[4]) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::InputInt : No matching functions found (#{arg})")
end

.InputInt2(label, v, flags = 0) ⇒ Object

arg: label(const char*), v(int), flags(ImGuiInputTextFlags) ret: bool



8143
8144
8145
# File 'lib/imgui.rb', line 8143

def self.InputInt2(label, v, flags = 0)
  ImGui_InputInt2(label, v, flags)
end

.InputInt3(label, v, flags = 0) ⇒ Object

arg: label(const char*), v(int), flags(ImGuiInputTextFlags) ret: bool



8149
8150
8151
# File 'lib/imgui.rb', line 8149

def self.InputInt3(label, v, flags = 0)
  ImGui_InputInt3(label, v, flags)
end

.InputInt4(label, v, flags = 0) ⇒ Object

arg: label(const char*), v(int), flags(ImGuiInputTextFlags) ret: bool



8155
8156
8157
# File 'lib/imgui.rb', line 8155

def self.InputInt4(label, v, flags = 0)
  ImGui_InputInt4(label, v, flags)
end

.InputScalar(*arg) ⇒ Object



12281
12282
12283
12284
12285
12286
12287
12288
12289
12290
12291
12292
12293
# File 'lib/imgui.rb', line 12281

def self.InputScalar(*arg)
  # arg: 0:label(const char*), 1:data_type(ImGuiDataType), 2:p_data(void*)
  # ret: bool
  return ImGui_InputScalar(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer))
  # arg: 0:label(const char*), 1:data_type(ImGuiDataType), 2:p_data(void*), 3:p_step(const void*), 4:p_step_fast(const void*), 5:format(const char*), 6:flags(ImGuiInputTextFlags)
  # ret: bool
  return ImGui_InputScalarEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], 0) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(String))
  return ImGui_InputScalarEx(arg[0], arg[1], arg[2], arg[3], arg[4], nil, 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(FFI::Pointer))
  return ImGui_InputScalarEx(arg[0], arg[1], arg[2], arg[3], nil, nil, 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(FFI::Pointer))
  return ImGui_InputScalarEx(arg[0], arg[1], arg[2], nil, nil, nil, 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer))
  return ImGui_InputScalarEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6]) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(String) && arg[6].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::InputScalar : No matching functions found (#{arg})")
end

.InputScalarN(*arg) ⇒ Object



12295
12296
12297
12298
12299
12300
12301
12302
12303
12304
12305
12306
12307
# File 'lib/imgui.rb', line 12295

def self.InputScalarN(*arg)
  # arg: 0:label(const char*), 1:data_type(ImGuiDataType), 2:p_data(void*), 3:components(int)
  # ret: bool
  return ImGui_InputScalarN(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer))
  # arg: 0:label(const char*), 1:data_type(ImGuiDataType), 2:p_data(void*), 3:components(int), 4:p_step(const void*), 5:p_step_fast(const void*), 6:format(const char*), 7:flags(ImGuiInputTextFlags)
  # ret: bool
  return ImGui_InputScalarNEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], 0) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(FFI::Pointer) && arg[6].kind_of?(String))
  return ImGui_InputScalarNEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], nil, 0) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(FFI::Pointer))
  return ImGui_InputScalarNEx(arg[0], arg[1], arg[2], arg[3], arg[4], nil, nil, 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(FFI::Pointer))
  return ImGui_InputScalarNEx(arg[0], arg[1], arg[2], arg[3], nil, nil, nil, 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer))
  return ImGui_InputScalarNEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7]) if arg.length == 8 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(FFI::Pointer) && arg[6].kind_of?(String) && arg[7].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::InputScalarN : No matching functions found (#{arg})")
end

.InputText(*arg) ⇒ Object



12162
12163
12164
12165
12166
12167
12168
12169
12170
12171
12172
12173
12174
# File 'lib/imgui.rb', line 12162

def self.InputText(*arg)
  # arg: 0:label(const char*), 1:buf(char*), 2:buf_size(size_t), 3:flags(ImGuiInputTextFlags)
  # ret: bool
  return ImGui_InputText(arg[0], arg[1], arg[2], 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer))
  return ImGui_InputText(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer))
  # arg: 0:label(const char*), 1:buf(char*), 2:buf_size(size_t), 3:flags(ImGuiInputTextFlags), 4:callback(ImGuiInputTextCallback), 5:user_data(void*)
  # ret: bool
  return ImGui_InputTextEx(arg[0], arg[1], arg[2], arg[3], arg[4], nil) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && (arg[4].respond_to?(:call) || arg[4].kind_of?(FFI::Pointer)))
  return ImGui_InputTextEx(arg[0], arg[1], arg[2], arg[3], nil, nil) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer))
  return ImGui_InputTextEx(arg[0], arg[1], arg[2], 0, nil, nil) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer))
  return ImGui_InputTextEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && (arg[4].respond_to?(:call) || arg[4].kind_of?(FFI::Pointer)) && arg[5].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::InputText : No matching functions found (#{arg})")
end

.InputTextDeactivateHook(id) ⇒ Object

arg: id(ImGuiID) ret: void



11044
11045
11046
# File 'lib/imgui.rb', line 11044

def self.InputTextDeactivateHook(id)
  ImGui_InputTextDeactivateHook(id)
end

.InputTextEx(*arg) ⇒ Object



13358
13359
13360
13361
13362
13363
13364
13365
13366
13367
13368
# File 'lib/imgui.rb', line 13358

def self.InputTextEx(*arg)
  # arg: 0:label(const char*), 1:hint(const char*), 2:buf(char*), 3:buf_size(int), 4:size_arg(ImVec2), 5:flags(ImGuiInputTextFlags)
  # ret: bool
  return ImGui_InputTextWithHintAndSize(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(String) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(ImVec2) && arg[5].kind_of?(Integer))
  # arg: 0:label(const char*), 1:hint(const char*), 2:buf(char*), 3:buf_size(int), 4:size_arg(ImVec2), 5:flags(ImGuiInputTextFlags), 6:callback(ImGuiInputTextCallback), 7:user_data(void*)
  # ret: bool
  return ImGui_InputTextWithHintAndSizeEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], nil) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(String) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(ImVec2) && arg[5].kind_of?(Integer) && (arg[6].respond_to?(:call) || arg[6].kind_of?(FFI::Pointer)))
  return ImGui_InputTextWithHintAndSizeEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], nil, nil) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(String) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(ImVec2) && arg[5].kind_of?(Integer))
  return ImGui_InputTextWithHintAndSizeEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7]) if arg.length == 8 && (arg[0].kind_of?(String) && arg[1].kind_of?(String) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(ImVec2) && arg[5].kind_of?(Integer) && (arg[6].respond_to?(:call) || arg[6].kind_of?(FFI::Pointer)) && arg[7].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::InputTextEx : No matching functions found (#{arg})")
end

.InputTextMultiline(*arg) ⇒ Object



12176
12177
12178
12179
12180
12181
12182
12183
12184
12185
12186
12187
12188
# File 'lib/imgui.rb', line 12176

def self.InputTextMultiline(*arg)
  # arg: 0:label(const char*), 1:buf(char*), 2:buf_size(size_t)
  # ret: bool
  return ImGui_InputTextMultiline(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer))
  # arg: 0:label(const char*), 1:buf(char*), 2:buf_size(size_t), 3:size(ImVec2), 4:flags(ImGuiInputTextFlags), 5:callback(ImGuiInputTextCallback), 6:user_data(void*)
  # ret: bool
  return ImGui_InputTextMultilineEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], nil) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(ImVec2) && arg[4].kind_of?(Integer) && (arg[5].respond_to?(:call) || arg[5].kind_of?(FFI::Pointer)))
  return ImGui_InputTextMultilineEx(arg[0], arg[1], arg[2], arg[3], arg[4], nil, nil) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(ImVec2) && arg[4].kind_of?(Integer))
  return ImGui_InputTextMultilineEx(arg[0], arg[1], arg[2], arg[3], 0, nil, nil) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(ImVec2))
  return ImGui_InputTextMultilineEx(arg[0], arg[1], arg[2], ImVec2.create(0,0), 0, nil, nil) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer))
  return ImGui_InputTextMultilineEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6]) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(ImVec2) && arg[4].kind_of?(Integer) && (arg[5].respond_to?(:call) || arg[5].kind_of?(FFI::Pointer)) && arg[6].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::InputTextMultiline : No matching functions found (#{arg})")
end

.InputTextWithHint(*arg) ⇒ Object



12190
12191
12192
12193
12194
12195
12196
12197
12198
12199
12200
12201
12202
# File 'lib/imgui.rb', line 12190

def self.InputTextWithHint(*arg)
  # arg: 0:label(const char*), 1:hint(const char*), 2:buf(char*), 3:buf_size(size_t), 4:flags(ImGuiInputTextFlags)
  # ret: bool
  return ImGui_InputTextWithHint(arg[0], arg[1], arg[2], arg[3], 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(String) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer))
  return ImGui_InputTextWithHint(arg[0], arg[1], arg[2], arg[3], arg[4]) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(String) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer))
  # arg: 0:label(const char*), 1:hint(const char*), 2:buf(char*), 3:buf_size(size_t), 4:flags(ImGuiInputTextFlags), 5:callback(ImGuiInputTextCallback), 6:user_data(void*)
  # ret: bool
  return ImGui_InputTextWithHintEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], nil) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(String) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer) && (arg[5].respond_to?(:call) || arg[5].kind_of?(FFI::Pointer)))
  return ImGui_InputTextWithHintEx(arg[0], arg[1], arg[2], arg[3], arg[4], nil, nil) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(String) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer))
  return ImGui_InputTextWithHintEx(arg[0], arg[1], arg[2], arg[3], 0, nil, nil) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(String) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer))
  return ImGui_InputTextWithHintEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6]) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(String) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer) && (arg[5].respond_to?(:call) || arg[5].kind_of?(FFI::Pointer)) && arg[6].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::InputTextWithHint : No matching functions found (#{arg})")
end

.InvisibleButton(str_id, size, flags = 0) ⇒ Object

arg: str_id(const char*), size(ImVec2), flags(ImGuiButtonFlags) ret: bool



8097
8098
8099
# File 'lib/imgui.rb', line 8097

def self.InvisibleButton(str_id, size, flags = 0)
  ImGui_InvisibleButton(str_id, size, flags)
end

.IsActiveIdUsingNavDir(dir) ⇒ Object

arg: dir(ImGuiDir) ret: bool



10302
10303
10304
# File 'lib/imgui.rb', line 10302

def self.IsActiveIdUsingNavDir(dir)
  ImGui_IsActiveIdUsingNavDir(dir)
end

.IsAliasKey(key) ⇒ Object

arg: key(ImGuiKey) ret: bool



10231
10232
10233
# File 'lib/imgui.rb', line 10231

def self.IsAliasKey(key)
  ImGui_IsAliasKey(key)
end

.IsAnyItemActiveObject

ret: bool



8656
8657
8658
# File 'lib/imgui.rb', line 8656

def self.IsAnyItemActive()
  ImGui_IsAnyItemActive()
end

.IsAnyItemFocusedObject

ret: bool



8661
8662
8663
# File 'lib/imgui.rb', line 8661

def self.IsAnyItemFocused()
  ImGui_IsAnyItemFocused()
end

.IsAnyItemHoveredObject

ret: bool



8651
8652
8653
# File 'lib/imgui.rb', line 8651

def self.IsAnyItemHovered()
  ImGui_IsAnyItemHovered()
end

.IsAnyMouseDownObject

ret: bool



8788
8789
8790
# File 'lib/imgui.rb', line 8788

def self.IsAnyMouseDown()
  ImGui_IsAnyMouseDown()
end

.IsClippedEx(bb, id) ⇒ Object

arg: bb(ImRect), id(ImGuiID) ret: bool



9892
9893
9894
# File 'lib/imgui.rb', line 9892

def self.IsClippedEx(bb, id)
  ImGui_IsClippedEx(bb, id)
end

.IsDragDropActiveObject

ret: bool



10609
10610
10611
# File 'lib/imgui.rb', line 10609

def self.IsDragDropActive()
  ImGui_IsDragDropActive()
end

.IsDragDropPayloadBeingAcceptedObject

ret: bool



10625
10626
10627
# File 'lib/imgui.rb', line 10625

def self.IsDragDropPayloadBeingAccepted()
  ImGui_IsDragDropPayloadBeingAccepted()
end

.IsGamepadKey(key) ⇒ Object

arg: key(ImGuiKey) ret: bool



10219
10220
10221
# File 'lib/imgui.rb', line 10219

def self.IsGamepadKey(key)
  ImGui_IsGamepadKey(key)
end

.IsInNavFocusRoute(focus_scope_id) ⇒ Object

arg: focus_scope_id(ImGuiID) ret: bool



10599
10600
10601
# File 'lib/imgui.rb', line 10599

def self.IsInNavFocusRoute(focus_scope_id)
  ImGui_IsInNavFocusRoute(focus_scope_id)
end

.IsItemActivatedObject

ret: bool



8631
8632
8633
# File 'lib/imgui.rb', line 8631

def self.IsItemActivated()
  ImGui_IsItemActivated()
end

.IsItemActiveObject

ret: bool



8611
8612
8613
# File 'lib/imgui.rb', line 8611

def self.IsItemActive()
  ImGui_IsItemActive()
end

.IsItemActiveAsInputTextObject

ret: bool



11067
11068
11069
# File 'lib/imgui.rb', line 11067

def self.IsItemActiveAsInputText()
  ImGui_IsItemActiveAsInputText()
end

.IsItemClicked(*arg) ⇒ Object



12663
12664
12665
12666
12667
12668
12669
12670
12671
12672
# File 'lib/imgui.rb', line 12663

def self.IsItemClicked(*arg)
  # arg: 
  # ret: bool
  return ImGui_IsItemClicked() if arg.empty?
  # arg: 0:mouse_button(ImGuiMouseButton)
  # ret: bool
  return ImGui_IsItemClickedEx(0) if arg.length == 0 && (true)
  return ImGui_IsItemClickedEx(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::IsItemClicked : No matching functions found (#{arg})")
end

.IsItemDeactivatedObject

ret: bool



8636
8637
8638
# File 'lib/imgui.rb', line 8636

def self.IsItemDeactivated()
  ImGui_IsItemDeactivated()
end

.IsItemDeactivatedAfterEditObject

ret: bool



8641
8642
8643
# File 'lib/imgui.rb', line 8641

def self.IsItemDeactivatedAfterEdit()
  ImGui_IsItemDeactivatedAfterEdit()
end

.IsItemEditedObject

ret: bool



8626
8627
8628
# File 'lib/imgui.rb', line 8626

def self.IsItemEdited()
  ImGui_IsItemEdited()
end

.IsItemFocusedObject

ret: bool



8616
8617
8618
# File 'lib/imgui.rb', line 8616

def self.IsItemFocused()
  ImGui_IsItemFocused()
end

.IsItemHovered(flags = 0) ⇒ Object

arg: flags(ImGuiHoveredFlags) ret: bool



8606
8607
8608
# File 'lib/imgui.rb', line 8606

def self.IsItemHovered(flags = 0)
  ImGui_IsItemHovered(flags)
end

.IsItemToggledOpenObject

ret: bool



8646
8647
8648
# File 'lib/imgui.rb', line 8646

def self.IsItemToggledOpen()
  ImGui_IsItemToggledOpen()
end

.IsItemToggledSelectionObject

ret: bool



8223
8224
8225
# File 'lib/imgui.rb', line 8223

def self.IsItemToggledSelection()
  ImGui_IsItemToggledSelection()
end

.IsItemVisibleObject

ret: bool



8621
8622
8623
# File 'lib/imgui.rb', line 8621

def self.IsItemVisible()
  ImGui_IsItemVisible()
end

.IsKeyboardKey(key) ⇒ Object

arg: key(ImGuiKey) ret: bool



10213
10214
10215
# File 'lib/imgui.rb', line 10213

def self.IsKeyboardKey(key)
  ImGui_IsKeyboardKey(key)
end

.IsKeyChordPressed(*arg) ⇒ Object



12772
12773
12774
12775
12776
12777
12778
12779
12780
12781
12782
12783
12784
# File 'lib/imgui.rb', line 12772

def self.IsKeyChordPressed(*arg)
  # arg: 0:key_chord(ImGuiKeyChord)
  # ret: bool
  return ImGui_IsKeyChordPressed(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  # arg: 0:key_chord(ImGuiKeyChord), 1:flags(ImGuiInputFlags)
  # ret: bool
  return ImGui_IsKeyChordPressedImGuiInputFlags(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer))
  # arg: 0:key_chord(ImGuiKeyChord), 1:flags(ImGuiInputFlags), 2:owner_id(ImGuiID)
  # ret: bool
  return ImGui_IsKeyChordPressedImGuiInputFlagsEx(arg[0], arg[1], 0) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer))
  return ImGui_IsKeyChordPressedImGuiInputFlagsEx(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::IsKeyChordPressed : No matching functions found (#{arg})")
end

.IsKeyDown(*arg) ⇒ Object



12734
12735
12736
12737
12738
12739
12740
12741
12742
# File 'lib/imgui.rb', line 12734

def self.IsKeyDown(*arg)
  # arg: 0:key(ImGuiKey)
  # ret: bool
  return ImGui_IsKeyDown(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  # arg: 0:key(ImGuiKey), 1:owner_id(ImGuiID)
  # ret: bool
  return ImGui_IsKeyDownID(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::IsKeyDown : No matching functions found (#{arg})")
end

.IsKeyPressed(*arg) ⇒ Object



12744
12745
12746
12747
12748
12749
12750
12751
12752
12753
12754
12755
12756
12757
12758
12759
12760
# File 'lib/imgui.rb', line 12744

def self.IsKeyPressed(*arg)
  # arg: 0:key(ImGuiKey)
  # ret: bool
  return ImGui_IsKeyPressed(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  # arg: 0:key(ImGuiKey), 1:repeat(bool)
  # ret: bool
  return ImGui_IsKeyPressedEx(arg[0], true) if arg.length == 1 && (arg[0].kind_of?(Integer))
  return ImGui_IsKeyPressedEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && (arg[1].is_a?(TrueClass) || arg[1].is_a?(FalseClass)))
  # arg: 0:key(ImGuiKey), 1:flags(ImGuiInputFlags)
  # ret: bool
  return ImGui_IsKeyPressedImGuiInputFlags(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer))
  # arg: 0:key(ImGuiKey), 1:flags(ImGuiInputFlags), 2:owner_id(ImGuiID)
  # ret: bool
  return ImGui_IsKeyPressedImGuiInputFlagsEx(arg[0], arg[1], 0) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer))
  return ImGui_IsKeyPressedImGuiInputFlagsEx(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::IsKeyPressed : No matching functions found (#{arg})")
end

.IsKeyReleased(*arg) ⇒ Object



12762
12763
12764
12765
12766
12767
12768
12769
12770
# File 'lib/imgui.rb', line 12762

def self.IsKeyReleased(*arg)
  # arg: 0:key(ImGuiKey)
  # ret: bool
  return ImGui_IsKeyReleased(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  # arg: 0:key(ImGuiKey), 1:owner_id(ImGuiID)
  # ret: bool
  return ImGui_IsKeyReleasedID(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::IsKeyReleased : No matching functions found (#{arg})")
end

.IsLegacyKey(key) ⇒ Object

arg: key(ImGuiKey) ret: bool



10207
10208
10209
# File 'lib/imgui.rb', line 10207

def self.IsLegacyKey(key)
  ImGui_IsLegacyKey(key)
end

.IsLRModKey(key) ⇒ Object

arg: key(ImGuiKey) ret: bool



10237
10238
10239
# File 'lib/imgui.rb', line 10237

def self.IsLRModKey(key)
  ImGui_IsLRModKey(key)
end

.IsMouseClicked(*arg) ⇒ Object



12817
12818
12819
12820
12821
12822
12823
12824
12825
12826
12827
12828
12829
12830
12831
12832
12833
# File 'lib/imgui.rb', line 12817

def self.IsMouseClicked(*arg)
  # arg: 0:button(ImGuiMouseButton)
  # ret: bool
  return ImGui_IsMouseClicked(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  # arg: 0:button(ImGuiMouseButton), 1:repeat(bool)
  # ret: bool
  return ImGui_IsMouseClickedEx(arg[0], false) if arg.length == 1 && (arg[0].kind_of?(Integer))
  return ImGui_IsMouseClickedEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && (arg[1].is_a?(TrueClass) || arg[1].is_a?(FalseClass)))
  # arg: 0:button(ImGuiMouseButton), 1:flags(ImGuiInputFlags)
  # ret: bool
  return ImGui_IsMouseClickedImGuiInputFlags(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer))
  # arg: 0:button(ImGuiMouseButton), 1:flags(ImGuiInputFlags), 2:owner_id(ImGuiID)
  # ret: bool
  return ImGui_IsMouseClickedImGuiInputFlagsEx(arg[0], arg[1], 0) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer))
  return ImGui_IsMouseClickedImGuiInputFlagsEx(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::IsMouseClicked : No matching functions found (#{arg})")
end

.IsMouseDoubleClicked(*arg) ⇒ Object



12845
12846
12847
12848
12849
12850
12851
12852
12853
# File 'lib/imgui.rb', line 12845

def self.IsMouseDoubleClicked(*arg)
  # arg: 0:button(ImGuiMouseButton)
  # ret: bool
  return ImGui_IsMouseDoubleClicked(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  # arg: 0:button(ImGuiMouseButton), 1:owner_id(ImGuiID)
  # ret: bool
  return ImGui_IsMouseDoubleClickedID(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::IsMouseDoubleClicked : No matching functions found (#{arg})")
end

.IsMouseDown(*arg) ⇒ Object



12807
12808
12809
12810
12811
12812
12813
12814
12815
# File 'lib/imgui.rb', line 12807

def self.IsMouseDown(*arg)
  # arg: 0:button(ImGuiMouseButton)
  # ret: bool
  return ImGui_IsMouseDown(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  # arg: 0:button(ImGuiMouseButton), 1:owner_id(ImGuiID)
  # ret: bool
  return ImGui_IsMouseDownID(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::IsMouseDown : No matching functions found (#{arg})")
end

.IsMouseDragging(button, lock_threshold = -1.0)) ⇒ Object

arg: button(ImGuiMouseButton), lock_threshold(float) ret: bool



8804
8805
8806
# File 'lib/imgui.rb', line 8804

def self.IsMouseDragging(button, lock_threshold = -1.0)
  ImGui_IsMouseDragging(button, lock_threshold)
end

.IsMouseDragPastThreshold(*arg) ⇒ Object



13063
13064
13065
13066
13067
13068
13069
13070
13071
13072
# File 'lib/imgui.rb', line 13063

def self.IsMouseDragPastThreshold(*arg)
  # arg: 0:button(ImGuiMouseButton)
  # ret: bool
  return ImGui_IsMouseDragPastThreshold(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  # arg: 0:button(ImGuiMouseButton), 1:lock_threshold(float)
  # ret: bool
  return ImGui_IsMouseDragPastThresholdEx(arg[0], -1.0) if arg.length == 1 && (arg[0].kind_of?(Integer))
  return ImGui_IsMouseDragPastThresholdEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Float))
  $stderr.puts("[Warning] ImGui::IsMouseDragPastThreshold : No matching functions found (#{arg})")
end

.IsMouseHoveringRect(*arg) ⇒ Object



12866
12867
12868
12869
12870
12871
12872
12873
12874
12875
# File 'lib/imgui.rb', line 12866

def self.IsMouseHoveringRect(*arg)
  # arg: 0:r_min(ImVec2), 1:r_max(ImVec2)
  # ret: bool
  return ImGui_IsMouseHoveringRect(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(ImVec2))
  # arg: 0:r_min(ImVec2), 1:r_max(ImVec2), 2:clip(bool)
  # ret: bool
  return ImGui_IsMouseHoveringRectEx(arg[0], arg[1], true) if arg.length == 2 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(ImVec2))
  return ImGui_IsMouseHoveringRectEx(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(ImVec2) && (arg[2].is_a?(TrueClass) || arg[2].is_a?(FalseClass)))
  $stderr.puts("[Warning] ImGui::IsMouseHoveringRect : No matching functions found (#{arg})")
end

.IsMouseKey(key) ⇒ Object

arg: key(ImGuiKey) ret: bool



10225
10226
10227
# File 'lib/imgui.rb', line 10225

def self.IsMouseKey(key)
  ImGui_IsMouseKey(key)
end

.IsMousePosValid(mouse_pos = nil) ⇒ Object

arg: mouse_pos(const ImVec2*) ret: bool



8783
8784
8785
# File 'lib/imgui.rb', line 8783

def self.IsMousePosValid(mouse_pos = nil)
  ImGui_IsMousePosValid(mouse_pos)
end

.IsMouseReleased(*arg) ⇒ Object



12835
12836
12837
12838
12839
12840
12841
12842
12843
# File 'lib/imgui.rb', line 12835

def self.IsMouseReleased(*arg)
  # arg: 0:button(ImGuiMouseButton)
  # ret: bool
  return ImGui_IsMouseReleased(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  # arg: 0:button(ImGuiMouseButton), 1:owner_id(ImGuiID)
  # ret: bool
  return ImGui_IsMouseReleasedID(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::IsMouseReleased : No matching functions found (#{arg})")
end

.IsMouseReleasedWithDelay(*arg) ⇒ Object



12855
12856
12857
12858
12859
12860
12861
12862
12863
12864
# File 'lib/imgui.rb', line 12855

def self.IsMouseReleasedWithDelay(*arg)
  # arg: 0:button(ImGuiMouseButton)
  # ret: bool
  return ImGui_IsMouseReleasedWithDelay(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  # arg: 0:button(ImGuiMouseButton), 1:delay(float)
  # ret: bool
  return ImGui_IsMouseReleasedWithDelayEx(arg[0], -1.f) if arg.length == 1 && (arg[0].kind_of?(Integer))
  return ImGui_IsMouseReleasedWithDelayEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Float))
  $stderr.puts("[Warning] ImGui::IsMouseReleasedWithDelay : No matching functions found (#{arg})")
end

.IsNamedKey(key) ⇒ Object

arg: key(ImGuiKey) ret: bool



10195
10196
10197
# File 'lib/imgui.rb', line 10195

def self.IsNamedKey(key)
  ImGui_IsNamedKey(key)
end

.IsNamedKeyOrMod(key) ⇒ Object

arg: key(ImGuiKey) ret: bool



10201
10202
10203
# File 'lib/imgui.rb', line 10201

def self.IsNamedKeyOrMod(key)
  ImGui_IsNamedKeyOrMod(key)
end

.IsPopupOpen(*arg) ⇒ Object



12550
12551
12552
12553
12554
12555
12556
12557
12558
12559
# File 'lib/imgui.rb', line 12550

def self.IsPopupOpen(*arg)
  # arg: 0:str_id(const char*), 1:flags(ImGuiPopupFlags)
  # ret: bool
  return ImGui_IsPopupOpen(arg[0], 0) if arg.length == 1 && (arg[0].kind_of?(String))
  return ImGui_IsPopupOpen(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer))
  # arg: 0:id(ImGuiID), 1:popup_flags(ImGuiPopupFlags)
  # ret: bool
  return ImGui_IsPopupOpenID(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::IsPopupOpen : No matching functions found (#{arg})")
end

.IsPopupOpenRequestForItem(flags, id) ⇒ Object

arg: flags(ImGuiPopupFlags), id(ImGuiID) ret: bool



10043
10044
10045
# File 'lib/imgui.rb', line 10043

def self.IsPopupOpenRequestForItem(flags, id)
  ImGui_IsPopupOpenRequestForItem(flags, id)
end

.IsPopupOpenRequestForWindow(flags) ⇒ Object

arg: flags(ImGuiPopupFlags) ret: bool



10049
10050
10051
# File 'lib/imgui.rb', line 10049

def self.IsPopupOpenRequestForWindow(flags)
  ImGui_IsPopupOpenRequestForWindow(flags)
end

.IsRectVisible(*arg) ⇒ Object



12711
12712
12713
12714
12715
12716
12717
12718
12719
# File 'lib/imgui.rb', line 12711

def self.IsRectVisible(*arg)
  # arg: 0:size(ImVec2)
  # ret: bool
  return ImGui_IsRectVisibleBySize(arg[0]) if arg.length == 1 && (arg[0].kind_of?(ImVec2))
  # arg: 0:rect_min(ImVec2), 1:rect_max(ImVec2)
  # ret: bool
  return ImGui_IsRectVisible(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(ImVec2))
  $stderr.puts("[Warning] ImGui::IsRectVisible : No matching functions found (#{arg})")
end

.IsWindowAbove(potential_above, potential_below) ⇒ Object

arg: potential_above(ImGuiWindow*), potential_below(ImGuiWindow*) ret: bool



9427
9428
9429
# File 'lib/imgui.rb', line 9427

def self.IsWindowAbove(potential_above, potential_below)
  ImGui_IsWindowAbove(potential_above, potential_below)
end

.IsWindowAppearingObject

ret: bool



7710
7711
7712
# File 'lib/imgui.rb', line 7710

def self.IsWindowAppearing()
  ImGui_IsWindowAppearing()
end

.IsWindowChildOf(window, potential_parent, popup_hierarchy, dock_hierarchy) ⇒ Object

arg: window(ImGuiWindow*), potential_parent(ImGuiWindow*), popup_hierarchy(bool), dock_hierarchy(bool) ret: bool



9409
9410
9411
# File 'lib/imgui.rb', line 9409

def self.IsWindowChildOf(window, potential_parent, popup_hierarchy, dock_hierarchy)
  ImGui_IsWindowChildOf(window, potential_parent, popup_hierarchy, dock_hierarchy)
end

.IsWindowCollapsedObject

ret: bool



7715
7716
7717
# File 'lib/imgui.rb', line 7715

def self.IsWindowCollapsed()
  ImGui_IsWindowCollapsed()
end

.IsWindowContentHoverable(window, flags = 0) ⇒ Object

arg: window(ImGuiWindow*), flags(ImGuiHoveredFlags) ret: bool



9886
9887
9888
# File 'lib/imgui.rb', line 9886

def self.IsWindowContentHoverable(window, flags = 0)
  ImGui_IsWindowContentHoverable(window, flags)
end

.IsWindowDockedObject

ret: bool



8490
8491
8492
# File 'lib/imgui.rb', line 8490

def self.IsWindowDocked()
  ImGui_IsWindowDocked()
end

.IsWindowFocused(flags = 0) ⇒ Object

arg: flags(ImGuiFocusedFlags) ret: bool



7721
7722
7723
# File 'lib/imgui.rb', line 7721

def self.IsWindowFocused(flags = 0)
  ImGui_IsWindowFocused(flags)
end

.IsWindowHovered(flags = 0) ⇒ Object

arg: flags(ImGuiHoveredFlags) ret: bool



7727
7728
7729
# File 'lib/imgui.rb', line 7727

def self.IsWindowHovered(flags = 0)
  ImGui_IsWindowHovered(flags)
end

.IsWindowInBeginStack(window) ⇒ Object

arg: window(ImGuiWindow*) ret: bool



9415
9416
9417
# File 'lib/imgui.rb', line 9415

def self.IsWindowInBeginStack(window)
  ImGui_IsWindowInBeginStack(window)
end

.IsWindowNavFocusable(window) ⇒ Object

arg: window(ImGuiWindow*) ret: bool



9433
9434
9435
# File 'lib/imgui.rb', line 9433

def self.IsWindowNavFocusable(window)
  ImGui_IsWindowNavFocusable(window)
end

.IsWindowWithinBeginStackOf(window, potential_parent) ⇒ Object

arg: window(ImGuiWindow*), potential_parent(ImGuiWindow*) ret: bool



9421
9422
9423
# File 'lib/imgui.rb', line 9421

def self.IsWindowWithinBeginStackOf(window, potential_parent)
  ImGui_IsWindowWithinBeginStackOf(window, potential_parent)
end

.ItemAdd(*arg) ⇒ Object



12984
12985
12986
12987
12988
12989
12990
12991
12992
12993
12994
# File 'lib/imgui.rb', line 12984

def self.ItemAdd(*arg)
  # arg: 0:bb(ImRect), 1:id(ImGuiID)
  # ret: bool
  return ImGui_ItemAdd(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer))
  # arg: 0:bb(ImRect), 1:id(ImGuiID), 2:nav_bb(const ImRect*), 3:extra_flags(ImGuiItemFlags)
  # ret: bool
  return ImGui_ItemAddEx(arg[0], arg[1], arg[2], 0) if arg.length == 3 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer))
  return ImGui_ItemAddEx(arg[0], arg[1], nil, 0) if arg.length == 2 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer))
  return ImGui_ItemAddEx(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::ItemAdd : No matching functions found (#{arg})")
end

.ItemHoverable(bb, id, item_flags) ⇒ Object

arg: bb(ImRect), id(ImGuiID), item_flags(ImGuiItemFlags) ret: bool



9880
9881
9882
# File 'lib/imgui.rb', line 9880

def self.ItemHoverable(bb, id, item_flags)
  ImGui_ItemHoverable(bb, id, item_flags)
end

.ItemSize(*arg) ⇒ Object



12966
12967
12968
12969
12970
12971
12972
12973
12974
12975
12976
12977
12978
12979
12980
12981
12982
# File 'lib/imgui.rb', line 12966

def self.ItemSize(*arg)
  # arg: 0:size(ImVec2)
  # ret: void
  return ImGui_ItemSize(arg[0]) if arg.length == 1 && (arg[0].kind_of?(ImVec2))
  # arg: 0:size(ImVec2), 1:text_baseline_y(float)
  # ret: void
  return ImGui_ItemSizeEx(arg[0], -1.0) if arg.length == 1 && (arg[0].kind_of?(ImVec2))
  return ImGui_ItemSizeEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(Float))
  # arg: 0:bb(ImRect)
  # ret: void
  return ImGui_ItemSizeImRect(arg[0]) if arg.length == 1 && (arg[0].kind_of?(ImRect))
  # arg: 0:bb(ImRect), 1:text_baseline_y(float)
  # ret: void
  return ImGui_ItemSizeImRectEx(arg[0], -1.0) if arg.length == 1 && (arg[0].kind_of?(ImRect))
  return ImGui_ItemSizeImRectEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Float))
  $stderr.puts("[Warning] ImGui::ItemSize : No matching functions found (#{arg})")
end

.KeepAliveID(id) ⇒ Object

arg: id(ImGuiID) ret: void



9862
9863
9864
# File 'lib/imgui.rb', line 9862

def self.KeepAliveID(id)
  ImGui_KeepAliveID(id)
end

.LabelText(label, fmt, *varargs) ⇒ Object

arg: label(const char*), fmt(const char*), unnamed_arg2(...) ret: void



8073
8074
8075
# File 'lib/imgui.rb', line 8073

def self.LabelText(label, fmt, *varargs)
  ImGui_LabelText(label, fmt, *varargs)
end

.ListBox(*arg) ⇒ Object



12405
12406
12407
12408
12409
12410
12411
12412
12413
12414
12415
12416
12417
12418
# File 'lib/imgui.rb', line 12405

def self.ListBox(*arg)
  # arg: 0:label(const char*), 1:current_item(int*), 2:items(const char*const[]), 3:items_count(int), 4:height_in_items(int)
  # ret: bool
  return ImGui_ListBox(arg[0], arg[1], arg[2], arg[3], -1) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer))
  return ImGui_ListBox(arg[0], arg[1], arg[2], arg[3], arg[4]) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer))
  # arg: 0:label(const char*), 1:current_item(int*), 2:getter(const char* (*getter)(void* user_data, int idx)), 3:user_data(void*), 4:items_count(int)
  # ret: bool
  return ImGui_ListBoxCallback(arg[0], arg[1], arg[2], arg[3], arg[4]) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(Integer))
  # arg: 0:label(const char*), 1:current_item(int*), 2:getter(const char* (*getter)(void* user_data, int idx)), 3:user_data(void*), 4:items_count(int), 5:height_in_items(int)
  # ret: bool
  return ImGui_ListBoxCallbackEx(arg[0], arg[1], arg[2], arg[3], arg[4], -1) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(Integer))
  return ImGui_ListBoxCallbackEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::ListBox : No matching functions found (#{arg})")
end

.load_lib(libpath, output_error = false) ⇒ Object



5987
5988
5989
5990
5991
# File 'lib/imgui.rb', line 5987

def self.load_lib(libpath, output_error = false)
  ffi_lib_flags :now, :global
  ffi_lib libpath
  import_symbols(output_error) unless @@imgui_import_done
end

.LoadIniSettingsFromDisk(ini_filename) ⇒ Object

arg: ini_filename(const char*) ret: void



8844
8845
8846
# File 'lib/imgui.rb', line 8844

def self.LoadIniSettingsFromDisk(ini_filename)
  ImGui_LoadIniSettingsFromDisk(ini_filename)
end

.LoadIniSettingsFromMemory(ini_data, ini_size = 0) ⇒ Object

arg: ini_data(const char*), ini_size(size_t) ret: void



8850
8851
8852
# File 'lib/imgui.rb', line 8850

def self.LoadIniSettingsFromMemory(ini_data, ini_size = 0)
  ImGui_LoadIniSettingsFromMemory(ini_data, ini_size)
end

.LocalizeGetMsg(key) ⇒ Object

arg: key(ImGuiLocKey) ret: pointer



9789
9790
9791
# File 'lib/imgui.rb', line 9789

def self.LocalizeGetMsg(key)
  ImGui_LocalizeGetMsg(key)
end

.LocalizeRegisterEntries(entries, count) ⇒ Object

arg: entries(const ImGuiLocEntry*), count(int) ret: void



9783
9784
9785
# File 'lib/imgui.rb', line 9783

def self.LocalizeRegisterEntries(entries, count)
  ImGui_LocalizeRegisterEntries(entries, count)
end

.LogBegin(flags, auto_open_depth) ⇒ Object

arg: flags(ImGuiLogFlags), auto_open_depth(int) ret: void



9950
9951
9952
# File 'lib/imgui.rb', line 9950

def self.LogBegin(flags, auto_open_depth)
  ImGui_LogBegin(flags, auto_open_depth)
end

.LogButtonsObject

ret: void



8518
8519
8520
# File 'lib/imgui.rb', line 8518

def self.LogButtons()
  ImGui_LogButtons()
end

.LogFinishObject

ret: void



8513
8514
8515
# File 'lib/imgui.rb', line 8513

def self.LogFinish()
  ImGui_LogFinish()
end

.LogRenderedText(*arg) ⇒ Object



13007
13008
13009
13010
13011
13012
13013
13014
13015
13016
# File 'lib/imgui.rb', line 13007

def self.LogRenderedText(*arg)
  # arg: 0:ref_pos(const ImVec2*), 1:text(const char*)
  # ret: void
  return ImGui_LogRenderedText(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(String))
  # arg: 0:ref_pos(const ImVec2*), 1:text(const char*), 2:text_end(const char*)
  # ret: void
  return ImGui_LogRenderedTextEx(arg[0], arg[1], nil) if arg.length == 2 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(String))
  return ImGui_LogRenderedTextEx(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(String) && arg[2].kind_of?(String))
  $stderr.puts("[Warning] ImGui::LogRenderedText : No matching functions found (#{arg})")
end

.LogSetNextTextDecoration(prefix, suffix) ⇒ Object

arg: prefix(const char*), suffix(const char*) ret: void



9956
9957
9958
# File 'lib/imgui.rb', line 9956

def self.LogSetNextTextDecoration(prefix, suffix)
  ImGui_LogSetNextTextDecoration(prefix, suffix)
end

.LogText(fmt, *varargs) ⇒ Object

arg: fmt(const char*), unnamed_arg1(...) ret: void



8524
8525
8526
# File 'lib/imgui.rb', line 8524

def self.LogText(fmt, *varargs)
  ImGui_LogText(fmt, *varargs)
end

.LogToBuffer(*arg) ⇒ Object



12996
12997
12998
12999
13000
13001
13002
13003
13004
13005
# File 'lib/imgui.rb', line 12996

def self.LogToBuffer(*arg)
  # arg: 
  # ret: void
  return ImGui_LogToBuffer() if arg.empty?
  # arg: 0:auto_open_depth(int)
  # ret: void
  return ImGui_LogToBufferEx(-1) if arg.length == 0 && (true)
  return ImGui_LogToBufferEx(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::LogToBuffer : No matching functions found (#{arg})")
end

.LogToClipboard(auto_open_depth = -1)) ⇒ Object

arg: auto_open_depth(int) ret: void



8508
8509
8510
# File 'lib/imgui.rb', line 8508

def self.LogToClipboard(auto_open_depth = -1)
  ImGui_LogToClipboard(auto_open_depth)
end

.LogToFile(auto_open_depth = -1,, filename = nil) ⇒ Object

arg: auto_open_depth(int), filename(const char*) ret: void



8502
8503
8504
# File 'lib/imgui.rb', line 8502

def self.LogToFile(auto_open_depth = -1, filename = nil)
  ImGui_LogToFile(auto_open_depth, filename)
end

.LogToTTY(auto_open_depth = -1)) ⇒ Object

arg: auto_open_depth(int) ret: void



8496
8497
8498
# File 'lib/imgui.rb', line 8496

def self.LogToTTY(auto_open_depth = -1)
  ImGui_LogToTTY(auto_open_depth)
end

.MarkIniSettingsDirty(*arg) ⇒ Object



12946
12947
12948
12949
12950
12951
12952
12953
12954
# File 'lib/imgui.rb', line 12946

def self.MarkIniSettingsDirty(*arg)
  # arg: 
  # ret: void
  return ImGui_MarkIniSettingsDirty() if arg.empty?
  # arg: 0:window(ImGuiWindow*)
  # ret: void
  return ImGui_MarkIniSettingsDirtyImGuiWindowPtr(arg[0]) if arg.length == 1 && (arg[0].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::MarkIniSettingsDirty : No matching functions found (#{arg})")
end

.MarkItemEdited(id) ⇒ Object

arg: id(ImGuiID) ret: void



9868
9869
9870
# File 'lib/imgui.rb', line 9868

def self.MarkItemEdited(id)
  ImGui_MarkItemEdited(id)
end

.MemAlloc(size) ⇒ Object

arg: size(size_t) ret: pointer



8909
8910
8911
# File 'lib/imgui.rb', line 8909

def self.MemAlloc(size)
  ImGui_MemAlloc(size)
end

.MemFree(ptr) ⇒ Object

arg: ptr(void*) ret: void



8915
8916
8917
# File 'lib/imgui.rb', line 8915

def self.MemFree(ptr)
  ImGui_MemFree(ptr)
end


12485
12486
12487
12488
12489
12490
12491
12492
12493
12494
12495
12496
12497
12498
12499
12500
# File 'lib/imgui.rb', line 12485

def self.MenuItem(*arg)
  # arg: 0:label(const char*)
  # ret: bool
  return ImGui_MenuItem(arg[0]) if arg.length == 1 && (arg[0].kind_of?(String))
  # arg: 0:label(const char*), 1:shortcut(const char*), 2:selected(bool), 3:enabled(bool)
  # ret: bool
  return ImGui_MenuItemEx(arg[0], arg[1], arg[2], true) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(String) && (arg[2].is_a?(TrueClass) || arg[2].is_a?(FalseClass)))
  return ImGui_MenuItemEx(arg[0], arg[1], false, true) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(String))
  return ImGui_MenuItemEx(arg[0], nil, false, true) if arg.length == 1 && (arg[0].kind_of?(String))
  return ImGui_MenuItemEx(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(String) && (arg[2].is_a?(TrueClass) || arg[2].is_a?(FalseClass)) && (arg[3].is_a?(TrueClass) || arg[3].is_a?(FalseClass)))
  # arg: 0:label(const char*), 1:shortcut(const char*), 2:p_selected(bool*), 3:enabled(bool)
  # ret: bool
  return ImGui_MenuItemBoolPtr(arg[0], arg[1], arg[2], true) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(String) && arg[2].kind_of?(FFI::Pointer))
  return ImGui_MenuItemBoolPtr(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(String) && arg[2].kind_of?(FFI::Pointer) && (arg[3].is_a?(TrueClass) || arg[3].is_a?(FalseClass)))
  $stderr.puts("[Warning] ImGui::MenuItem : No matching functions found (#{arg})")
end


13040
13041
13042
13043
13044
13045
13046
13047
13048
13049
13050
13051
# File 'lib/imgui.rb', line 13040

def self.MenuItemEx(*arg)
  # arg: 0:label(const char*), 1:icon(const char*)
  # ret: bool
  return ImGui_MenuItemWithIcon(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(String))
  # arg: 0:label(const char*), 1:icon(const char*), 2:shortcut(const char*), 3:selected(bool), 4:enabled(bool)
  # ret: bool
  return ImGui_MenuItemWithIconEx(arg[0], arg[1], arg[2], arg[3], true) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(String) && arg[2].kind_of?(String) && (arg[3].is_a?(TrueClass) || arg[3].is_a?(FalseClass)))
  return ImGui_MenuItemWithIconEx(arg[0], arg[1], arg[2], false, true) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(String) && arg[2].kind_of?(String))
  return ImGui_MenuItemWithIconEx(arg[0], arg[1], nil, false, true) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(String))
  return ImGui_MenuItemWithIconEx(arg[0], arg[1], arg[2], arg[3], arg[4]) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(String) && arg[2].kind_of?(String) && (arg[3].is_a?(TrueClass) || arg[3].is_a?(FalseClass)) && (arg[4].is_a?(TrueClass) || arg[4].is_a?(FalseClass)))
  $stderr.puts("[Warning] ImGui::MenuItemEx : No matching functions found (#{arg})")
end

.MouseButtonToKey(button) ⇒ Object

arg: button(ImGuiMouseButton) ret: int



10261
10262
10263
# File 'lib/imgui.rb', line 10261

def self.MouseButtonToKey(button)
  ImGui_MouseButtonToKey(button)
end

.MultiSelectAddSetAll(ms, selected) ⇒ Object

arg: ms(ImGuiMultiSelectTempData*), selected(bool) ret: void



10679
10680
10681
# File 'lib/imgui.rb', line 10679

def self.MultiSelectAddSetAll(ms, selected)
  ImGui_MultiSelectAddSetAll(ms, selected)
end

.MultiSelectAddSetRange(ms, selected, range_dir, first_item, last_item) ⇒ Object

arg: ms(ImGuiMultiSelectTempData*), selected(bool), range_dir(int), first_item(ImGuiSelectionUserData), last_item(ImGuiSelectionUserData) ret: void



10685
10686
10687
# File 'lib/imgui.rb', line 10685

def self.MultiSelectAddSetRange(ms, selected, range_dir, first_item, last_item)
  ImGui_MultiSelectAddSetRange(ms, selected, range_dir, first_item, last_item)
end

.MultiSelectItemFooter(*arg) ⇒ Object



13130
13131
13132
13133
13134
13135
13136
13137
13138
13139
# File 'lib/imgui.rb', line 13130

def self.MultiSelectItemFooter(*arg)
  # arg: 0:id(ImGuiID), 1:p_selected(bool*), 2:p_pressed(bool*)
  # ret: void
  return ImGui_MultiSelectItemFooter(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer))
  # arg: 0:id(ImGuiID), 1:p_selected(bool*), 2:p_pressed(bool*), 3:extra_flags(ImGuiMultiSelectFlags)
  # ret: void
  return ImGui_MultiSelectItemFooterEx(arg[0], arg[1], arg[2], 0) if arg.length == 3 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer))
  return ImGui_MultiSelectItemFooterEx(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::MultiSelectItemFooter : No matching functions found (#{arg})")
end

.MultiSelectItemHeader(id, p_selected, p_button_flags) ⇒ Object

arg: id(ImGuiID), p_selected(bool*), p_button_flags(ImGuiButtonFlags*) ret: void



10673
10674
10675
# File 'lib/imgui.rb', line 10673

def self.MultiSelectItemHeader(id, p_selected, p_button_flags)
  ImGui_MultiSelectItemHeader(id, p_selected, p_button_flags)
end

arg: axis(ImGuiAxis) ret: void



10150
10151
10152
# File 'lib/imgui.rb', line 10150

def self.NavClearPreferredPosForAxis(axis)
  ImGui_NavClearPreferredPosForAxis(axis)
end

arg: id(ImGuiID) ret: void



10144
10145
10146
# File 'lib/imgui.rb', line 10144

def self.NavHighlightActivated(id)
  ImGui_NavHighlightActivated(id)
end

ret: void



10093
10094
10095
# File 'lib/imgui.rb', line 10093

def self.NavInitRequestApplyResult()
  ImGui_NavInitRequestApplyResult()
end

arg: window(ImGuiWindow*), force_reinit(bool) ret: void



10088
10089
10090
# File 'lib/imgui.rb', line 10088

def self.NavInitWindow(window, force_reinit)
  ImGui_NavInitWindow(window, force_reinit)
end

ret: void



10132
10133
10134
# File 'lib/imgui.rb', line 10132

def self.NavMoveRequestApplyResult()
  ImGui_NavMoveRequestApplyResult()
end

ret: bool



10098
10099
10100
# File 'lib/imgui.rb', line 10098

def self.NavMoveRequestButNoResultYet()
  ImGui_NavMoveRequestButNoResultYet()
end

ret: void



10127
10128
10129
# File 'lib/imgui.rb', line 10127

def self.NavMoveRequestCancel()
  ImGui_NavMoveRequestCancel()
end

arg: move_dir(ImGuiDir), clip_dir(ImGuiDir), move_flags(ImGuiNavMoveFlags), scroll_flags(ImGuiScrollFlags) ret: void



10110
10111
10112
# File 'lib/imgui.rb', line 10110

def self.NavMoveRequestForward(move_dir, clip_dir, move_flags, scroll_flags)
  ImGui_NavMoveRequestForward(move_dir, clip_dir, move_flags, scroll_flags)
end

arg: result(ImGuiNavItemData*) ret: void



10116
10117
10118
# File 'lib/imgui.rb', line 10116

def self.NavMoveRequestResolveWithLastItem(result)
  ImGui_NavMoveRequestResolveWithLastItem(result)
end

arg: result(ImGuiNavItemData*), tree_node_data(const ImGuiTreeNodeStackData*) ret: void



10122
10123
10124
# File 'lib/imgui.rb', line 10122

def self.NavMoveRequestResolveWithPastTreeNode(result, tree_node_data)
  ImGui_NavMoveRequestResolveWithPastTreeNode(result, tree_node_data)
end

arg: move_dir(ImGuiDir), clip_dir(ImGuiDir), move_flags(ImGuiNavMoveFlags), scroll_flags(ImGuiScrollFlags) ret: void



10104
10105
10106
# File 'lib/imgui.rb', line 10104

def self.NavMoveRequestSubmit(move_dir, clip_dir, move_flags, scroll_flags)
  ImGui_NavMoveRequestSubmit(move_dir, clip_dir, move_flags, scroll_flags)
end

arg: window(ImGuiWindow*), move_flags(ImGuiNavMoveFlags) ret: void



10138
10139
10140
# File 'lib/imgui.rb', line 10138

def self.NavMoveRequestTryWrapping(window, move_flags)
  ImGui_NavMoveRequestTryWrapping(window, move_flags)
end

ret: void



10160
10161
10162
# File 'lib/imgui.rb', line 10160

def self.NavUpdateCurrentWindowIsScrollPushableX()
  ImGui_NavUpdateCurrentWindowIsScrollPushableX()
end

.NewFrameObject

ret: void



7604
7605
7606
# File 'lib/imgui.rb', line 7604

def self.NewFrame()
  ImGui_NewFrame()
end

.NewLineObject

ret: void



7992
7993
7994
# File 'lib/imgui.rb', line 7992

def self.NewLine()
  ImGui_NewLine()
end

.NextColumnObject

ret: void



8400
8401
8402
# File 'lib/imgui.rb', line 8400

def self.NextColumn()
  ImGui_NextColumn()
end

.OpenPopup(*arg) ⇒ Object



12502
12503
12504
12505
12506
12507
12508
12509
12510
12511
12512
# File 'lib/imgui.rb', line 12502

def self.OpenPopup(*arg)
  # arg: 0:str_id(const char*), 1:popup_flags(ImGuiPopupFlags)
  # ret: bool
  return ImGui_OpenPopup(arg[0], 0) if arg.length == 1 && (arg[0].kind_of?(String))
  return ImGui_OpenPopup(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer))
  # arg: 0:id(ImGuiID), 1:popup_flags(ImGuiPopupFlags)
  # ret: bool
  return ImGui_OpenPopupID(arg[0], 0) if arg.length == 1 && (arg[0].kind_of?(Integer))
  return ImGui_OpenPopupID(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::OpenPopup : No matching functions found (#{arg})")
end

.OpenPopupEx(*arg) ⇒ Object



13018
13019
13020
13021
13022
13023
13024
13025
13026
13027
# File 'lib/imgui.rb', line 13018

def self.OpenPopupEx(*arg)
  # arg: 0:id(ImGuiID)
  # ret: bool
  return ImGui_OpenPopupEx(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  # arg: 0:id(ImGuiID), 1:popup_flags(ImGuiPopupFlags)
  # ret: bool
  return ImGui_OpenPopupExEx(arg[0], ImGuiPopupFlags_None) if arg.length == 1 && (arg[0].kind_of?(Integer))
  return ImGui_OpenPopupExEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::OpenPopupEx : No matching functions found (#{arg})")
end

.OpenPopupOnItemClick(str_id = nil, popup_flags = 0) ⇒ Object

arg: str_id(const char*), popup_flags(ImGuiPopupFlags) ret: bool



8309
8310
8311
# File 'lib/imgui.rb', line 8309

def self.OpenPopupOnItemClick(str_id = nil, popup_flags = 0)
  ImGui_OpenPopupOnItemClick(str_id, popup_flags)
end

.PlotEx(plot_type, label, values_getter, data, values_count, values_offset, overlay_text, scale_min, scale_max, size_arg) ⇒ Object

arg: plot_type(ImGuiPlotType), label(const char*), values_getter(float (values_getter)(void data, int idx)), data(void*), values_count(int), values_offset(int), overlay_text(const char*), scale_min(float), scale_max(float), size_arg(ImVec2) ret: int



11097
11098
11099
# File 'lib/imgui.rb', line 11097

def self.PlotEx(plot_type, label, values_getter, data, values_count, values_offset, overlay_text, scale_min, scale_max, size_arg)
  ImGui_PlotEx(plot_type, label, values_getter, data, values_count, values_offset, overlay_text, scale_min, scale_max, size_arg)
end

.PlotHistogram(*arg) ⇒ Object



12447
12448
12449
12450
12451
12452
12453
12454
12455
12456
12457
12458
12459
12460
12461
12462
12463
12464
12465
12466
12467
12468
12469
12470
12471
12472
# File 'lib/imgui.rb', line 12447

def self.PlotHistogram(*arg)
  # arg: 0:label(const char*), 1:values(const float*), 2:values_count(int)
  # ret: void
  return ImGui_PlotHistogram(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer))
  # arg: 0:label(const char*), 1:values(const float*), 2:values_count(int), 3:values_offset(int), 4:overlay_text(const char*), 5:scale_min(float), 6:scale_max(float), 7:graph_size(ImVec2), 8:stride(int)
  # ret: void
  return ImGui_PlotHistogramEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], FFI::TYPE_FLOAT32.size) if arg.length == 8 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(String) && arg[5].kind_of?(Float) && arg[6].kind_of?(Float) && arg[7].kind_of?(ImVec2))
  return ImGui_PlotHistogramEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], ImVec2.create(0,0), FFI::TYPE_FLOAT32.size) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(String) && arg[5].kind_of?(Float) && arg[6].kind_of?(Float))
  return ImGui_PlotHistogramEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], Float::MAX, ImVec2.create(0,0), FFI::TYPE_FLOAT32.size) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(String) && arg[5].kind_of?(Float))
  return ImGui_PlotHistogramEx(arg[0], arg[1], arg[2], arg[3], arg[4], Float::MAX, Float::MAX, ImVec2.create(0,0), FFI::TYPE_FLOAT32.size) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(String))
  return ImGui_PlotHistogramEx(arg[0], arg[1], arg[2], arg[3], nil, Float::MAX, Float::MAX, ImVec2.create(0,0), FFI::TYPE_FLOAT32.size) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer))
  return ImGui_PlotHistogramEx(arg[0], arg[1], arg[2], 0, nil, Float::MAX, Float::MAX, ImVec2.create(0,0), FFI::TYPE_FLOAT32.size) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer))
  return ImGui_PlotHistogramEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8]) if arg.length == 9 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(String) && arg[5].kind_of?(Float) && arg[6].kind_of?(Float) && arg[7].kind_of?(ImVec2) && arg[8].kind_of?(Integer))
  # arg: 0:label(const char*), 1:values_getter(float (*values_getter)(void* data, int idx)), 2:data(void*), 3:values_count(int)
  # ret: void
  return ImGui_PlotHistogramCallback(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer))
  # arg: 0:label(const char*), 1:values_getter(float (*values_getter)(void* data, int idx)), 2:data(void*), 3:values_count(int), 4:values_offset(int), 5:overlay_text(const char*), 6:scale_min(float), 7:scale_max(float), 8:graph_size(ImVec2)
  # ret: void
  return ImGui_PlotHistogramCallbackEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], ImVec2.create(0,0)) if arg.length == 8 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(String) && arg[6].kind_of?(Float) && arg[7].kind_of?(Float))
  return ImGui_PlotHistogramCallbackEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], Float::MAX, ImVec2.create(0,0)) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(String) && arg[6].kind_of?(Float))
  return ImGui_PlotHistogramCallbackEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], Float::MAX, Float::MAX, ImVec2.create(0,0)) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(String))
  return ImGui_PlotHistogramCallbackEx(arg[0], arg[1], arg[2], arg[3], arg[4], nil, Float::MAX, Float::MAX, ImVec2.create(0,0)) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer))
  return ImGui_PlotHistogramCallbackEx(arg[0], arg[1], arg[2], arg[3], 0, nil, Float::MAX, Float::MAX, ImVec2.create(0,0)) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer))
  return ImGui_PlotHistogramCallbackEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8]) if arg.length == 9 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(String) && arg[6].kind_of?(Float) && arg[7].kind_of?(Float) && arg[8].kind_of?(ImVec2))
  $stderr.puts("[Warning] ImGui::PlotHistogram : No matching functions found (#{arg})")
end

.PlotLines(*arg) ⇒ Object



12420
12421
12422
12423
12424
12425
12426
12427
12428
12429
12430
12431
12432
12433
12434
12435
12436
12437
12438
12439
12440
12441
12442
12443
12444
12445
# File 'lib/imgui.rb', line 12420

def self.PlotLines(*arg)
  # arg: 0:label(const char*), 1:values(const float*), 2:values_count(int)
  # ret: void
  return ImGui_PlotLines(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer))
  # arg: 0:label(const char*), 1:values(const float*), 2:values_count(int), 3:values_offset(int), 4:overlay_text(const char*), 5:scale_min(float), 6:scale_max(float), 7:graph_size(ImVec2), 8:stride(int)
  # ret: void
  return ImGui_PlotLinesEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], FFI::TYPE_FLOAT32.size) if arg.length == 8 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(String) && arg[5].kind_of?(Float) && arg[6].kind_of?(Float) && arg[7].kind_of?(ImVec2))
  return ImGui_PlotLinesEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], ImVec2.create(0,0), FFI::TYPE_FLOAT32.size) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(String) && arg[5].kind_of?(Float) && arg[6].kind_of?(Float))
  return ImGui_PlotLinesEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], Float::MAX, ImVec2.create(0,0), FFI::TYPE_FLOAT32.size) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(String) && arg[5].kind_of?(Float))
  return ImGui_PlotLinesEx(arg[0], arg[1], arg[2], arg[3], arg[4], Float::MAX, Float::MAX, ImVec2.create(0,0), FFI::TYPE_FLOAT32.size) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(String))
  return ImGui_PlotLinesEx(arg[0], arg[1], arg[2], arg[3], nil, Float::MAX, Float::MAX, ImVec2.create(0,0), FFI::TYPE_FLOAT32.size) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer))
  return ImGui_PlotLinesEx(arg[0], arg[1], arg[2], 0, nil, Float::MAX, Float::MAX, ImVec2.create(0,0), FFI::TYPE_FLOAT32.size) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer))
  return ImGui_PlotLinesEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8]) if arg.length == 9 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(String) && arg[5].kind_of?(Float) && arg[6].kind_of?(Float) && arg[7].kind_of?(ImVec2) && arg[8].kind_of?(Integer))
  # arg: 0:label(const char*), 1:values_getter(float (*values_getter)(void* data, int idx)), 2:data(void*), 3:values_count(int)
  # ret: void
  return ImGui_PlotLinesCallback(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer))
  # arg: 0:label(const char*), 1:values_getter(float (*values_getter)(void* data, int idx)), 2:data(void*), 3:values_count(int), 4:values_offset(int), 5:overlay_text(const char*), 6:scale_min(float), 7:scale_max(float), 8:graph_size(ImVec2)
  # ret: void
  return ImGui_PlotLinesCallbackEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], ImVec2.create(0,0)) if arg.length == 8 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(String) && arg[6].kind_of?(Float) && arg[7].kind_of?(Float))
  return ImGui_PlotLinesCallbackEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], Float::MAX, ImVec2.create(0,0)) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(String) && arg[6].kind_of?(Float))
  return ImGui_PlotLinesCallbackEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], Float::MAX, Float::MAX, ImVec2.create(0,0)) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(String))
  return ImGui_PlotLinesCallbackEx(arg[0], arg[1], arg[2], arg[3], arg[4], nil, Float::MAX, Float::MAX, ImVec2.create(0,0)) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer))
  return ImGui_PlotLinesCallbackEx(arg[0], arg[1], arg[2], arg[3], 0, nil, Float::MAX, Float::MAX, ImVec2.create(0,0)) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer))
  return ImGui_PlotLinesCallbackEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8]) if arg.length == 9 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(String) && arg[6].kind_of?(Float) && arg[7].kind_of?(Float) && arg[8].kind_of?(ImVec2))
  $stderr.puts("[Warning] ImGui::PlotLines : No matching functions found (#{arg})")
end

.PopButtonRepeatObject

ret: void



8960
8961
8962
# File 'lib/imgui.rb', line 8960

def self.PopButtonRepeat()
  ImGui_PopButtonRepeat()
end

.PopClipRectObject

ret: void



8584
8585
8586
# File 'lib/imgui.rb', line 8584

def self.PopClipRect()
  ImGui_PopClipRect()
end

.PopColumnsBackgroundObject

ret: void



9334
9335
9336
# File 'lib/imgui.rb', line 9334

def self.PopColumnsBackground()
  ImGui_PopColumnsBackground()
end

.PopFocusScopeObject

ret: void



10593
10594
10595
# File 'lib/imgui.rb', line 10593

def self.PopFocusScope()
  ImGui_PopFocusScope()
end

.PopFontObject

ret: void



7846
7847
7848
# File 'lib/imgui.rb', line 7846

def self.PopFont()
  ImGui_PopFont()
end

.PopIDObject

ret: void



8043
8044
8045
# File 'lib/imgui.rb', line 8043

def self.PopID()
  ImGui_PopID()
end

.PopItemFlagObject

ret: void



7884
7885
7886
# File 'lib/imgui.rb', line 7884

def self.PopItemFlag()
  ImGui_PopItemFlag()
end

.PopItemWidthObject

ret: void



7895
7896
7897
# File 'lib/imgui.rb', line 7895

def self.PopItemWidth()
  ImGui_PopItemWidth()
end

.PopPasswordFontObject

ret: void



9597
9598
9599
# File 'lib/imgui.rb', line 9597

def self.PopPasswordFont()
  ImGui_PopPasswordFont()
end

.PopStyleColor(*arg) ⇒ Object



11564
11565
11566
11567
11568
11569
11570
11571
11572
11573
# File 'lib/imgui.rb', line 11564

def self.PopStyleColor(*arg)
  # arg: 
  # ret: void
  return ImGui_PopStyleColor() if arg.empty?
  # arg: 0:count(int)
  # ret: void
  return ImGui_PopStyleColorEx(1) if arg.length == 0 && (true)
  return ImGui_PopStyleColorEx(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::PopStyleColor : No matching functions found (#{arg})")
end

.PopStyleVar(*arg) ⇒ Object



11585
11586
11587
11588
11589
11590
11591
11592
11593
11594
# File 'lib/imgui.rb', line 11585

def self.PopStyleVar(*arg)
  # arg: 
  # ret: void
  return ImGui_PopStyleVar() if arg.empty?
  # arg: 0:count(int)
  # ret: void
  return ImGui_PopStyleVarEx(1) if arg.length == 0 && (true)
  return ImGui_PopStyleVarEx(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::PopStyleVar : No matching functions found (#{arg})")
end

.PopTabStopObject

ret: void



8971
8972
8973
# File 'lib/imgui.rb', line 8971

def self.PopTabStop()
  ImGui_PopTabStop()
end

.PopTextWrapPosObject

ret: void



7917
7918
7919
# File 'lib/imgui.rb', line 7917

def self.PopTextWrapPos()
  ImGui_PopTextWrapPos()
end

.PrintProgramLinkStatus(handle) ⇒ Object



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/imgui_impl_opengl3.rb', line 45

def self.PrintProgramLinkStatus(handle)
  rvalue = ' ' * 4
  GL.GetProgramiv(handle, GL::LINK_STATUS, rvalue)
  ok = rvalue.unpack1('L')
  return true if ok == GL::TRUE

  $stderr.puts "Error in linking program"
  log_length = ' ' * 4
  GL.GetProgramiv(handle, GL::INFO_LOG_LENGTH, log_length)
  log_length = log_length.unpack1('L')
  if log_length > 0
    buf = ' ' * log_length
    GL.GetProgramInfoLog(handle, log_length, nil, buf)
    $stderr.puts(buf)
  end
  false
end

.PrintShaderCompileStatus(handle) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/imgui_impl_opengl3.rb', line 27

def self.PrintShaderCompileStatus(handle)
  rvalue = ' ' * 4
  GL.GetShaderiv(handle, GL::COMPILE_STATUS, rvalue)
  ok = rvalue.unpack1('L')
  return true if ok == GL::TRUE

  $stderr.puts "Error in compiling shader"
  log_length = ' ' * 4
  GL.GetShaderiv(handle, GL::INFO_LOG_LENGTH, log_length)
  log_length = log_length.unpack1('L')
  if log_length > 0
    buf = ' ' * log_length
    GL.GetShaderInfoLog(handle, log_length, nil, buf)
    $stderr.puts(buf)
  end
  false
end

.ProgressBar(fraction, size_arg = ImVec2.create(-FLT_MIN,0), overlay = nil) ⇒ Object

arg: fraction(float), size_arg(ImVec2), overlay(const char*) ret: void



8115
8116
8117
# File 'lib/imgui.rb', line 8115

def self.ProgressBar(fraction, size_arg = ImVec2.create(-FLT_MIN,0), overlay = nil)
  ImGui_ProgressBar(fraction, size_arg, overlay)
end

.PushButtonRepeat(repeat) ⇒ Object

arg: repeat(bool) ret: void



8955
8956
8957
# File 'lib/imgui.rb', line 8955

def self.PushButtonRepeat(repeat)
  ImGui_PushButtonRepeat(repeat)
end

.PushClipRect(clip_rect_min, clip_rect_max, intersect_with_current_clip_rect) ⇒ Object

arg: clip_rect_min(ImVec2), clip_rect_max(ImVec2), intersect_with_current_clip_rect(bool) ret: void



8579
8580
8581
# File 'lib/imgui.rb', line 8579

def self.PushClipRect(clip_rect_min, clip_rect_max, intersect_with_current_clip_rect)
  ImGui_PushClipRect(clip_rect_min, clip_rect_max, intersect_with_current_clip_rect)
end

.PushColumnClipRect(column_index) ⇒ Object

arg: column_index(int) ret: void



9324
9325
9326
# File 'lib/imgui.rb', line 9324

def self.PushColumnClipRect(column_index)
  ImGui_PushColumnClipRect(column_index)
end

.PushColumnsBackgroundObject

ret: void



9329
9330
9331
# File 'lib/imgui.rb', line 9329

def self.PushColumnsBackground()
  ImGui_PushColumnsBackground()
end

.PushFocusScope(id) ⇒ Object

arg: id(ImGuiID) ret: void



10588
10589
10590
# File 'lib/imgui.rb', line 10588

def self.PushFocusScope(id)
  ImGui_PushFocusScope(id)
end

.PushFont(*arg) ⇒ Object



11544
11545
11546
11547
11548
11549
11550
11551
11552
# File 'lib/imgui.rb', line 11544

def self.PushFont(*arg)
  # arg: 0:font(ImFont*), 1:font_size_base_unscaled(float)
  # ret: void
  return ImGui_PushFontFloat(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(Float))
  # arg: 0:font(ImFont*)
  # ret: void
  return ImGui_PushFont(arg[0]) if arg.length == 1 && (arg[0].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::PushFont : No matching functions found (#{arg})")
end

.PushID(*arg) ⇒ Object



11651
11652
11653
11654
11655
11656
11657
11658
11659
11660
11661
11662
11663
11664
11665
# File 'lib/imgui.rb', line 11651

def self.PushID(*arg)
  # arg: 0:str_id(const char*)
  # ret: void
  return ImGui_PushID(arg[0]) if arg.length == 1 && (arg[0].kind_of?(String))
  # arg: 0:str_id_begin(const char*), 1:str_id_end(const char*)
  # ret: void
  return ImGui_PushIDStr(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(String))
  # arg: 0:ptr_id(const void*)
  # ret: void
  return ImGui_PushIDPtr(arg[0]) if arg.length == 1 && (arg[0].kind_of?(FFI::Pointer))
  # arg: 0:int_id(int)
  # ret: void
  return ImGui_PushIDInt(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::PushID : No matching functions found (#{arg})")
end

.PushItemFlag(option, enabled) ⇒ Object

arg: option(ImGuiItemFlags), enabled(bool) ret: void



7879
7880
7881
# File 'lib/imgui.rb', line 7879

def self.PushItemFlag(option, enabled)
  ImGui_PushItemFlag(option, enabled)
end

.PushItemWidth(item_width) ⇒ Object

arg: item_width(float) ret: void



7890
7891
7892
# File 'lib/imgui.rb', line 7890

def self.PushItemWidth(item_width)
  ImGui_PushItemWidth(item_width)
end

.PushMultiItemsWidths(components, width_full) ⇒ Object

arg: components(int), width_full(float) ret: void



9916
9917
9918
# File 'lib/imgui.rb', line 9916

def self.PushMultiItemsWidths(components, width_full)
  ImGui_PushMultiItemsWidths(components, width_full)
end

.PushOverrideID(id) ⇒ Object

arg: id(ImGuiID) ret: void



9874
9875
9876
# File 'lib/imgui.rb', line 9874

def self.PushOverrideID(id)
  ImGui_PushOverrideID(id)
end

.PushPasswordFontObject

ret: void



9592
9593
9594
# File 'lib/imgui.rb', line 9592

def self.PushPasswordFont()
  ImGui_PushPasswordFont()
end

.PushStyleColor(*arg) ⇒ Object



11554
11555
11556
11557
11558
11559
11560
11561
11562
# File 'lib/imgui.rb', line 11554

def self.PushStyleColor(*arg)
  # arg: 0:idx(ImGuiCol), 1:col(ImU32)
  # ret: void
  return ImGui_PushStyleColor(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer))
  # arg: 0:idx(ImGuiCol), 1:col(ImVec4)
  # ret: void
  return ImGui_PushStyleColorImVec4(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(ImVec4))
  $stderr.puts("[Warning] ImGui::PushStyleColor : No matching functions found (#{arg})")
end

.PushStyleVar(*arg) ⇒ Object



11575
11576
11577
11578
11579
11580
11581
11582
11583
# File 'lib/imgui.rb', line 11575

def self.PushStyleVar(*arg)
  # arg: 0:idx(ImGuiStyleVar), 1:val(float)
  # ret: void
  return ImGui_PushStyleVar(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Float))
  # arg: 0:idx(ImGuiStyleVar), 1:val(ImVec2)
  # ret: void
  return ImGui_PushStyleVarImVec2(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(ImVec2))
  $stderr.puts("[Warning] ImGui::PushStyleVar : No matching functions found (#{arg})")
end

.PushStyleVarX(idx, val_x) ⇒ Object

arg: idx(ImGuiStyleVar), val_x(float) ret: void



7867
7868
7869
# File 'lib/imgui.rb', line 7867

def self.PushStyleVarX(idx, val_x)
  ImGui_PushStyleVarX(idx, val_x)
end

.PushStyleVarY(idx, val_y) ⇒ Object

arg: idx(ImGuiStyleVar), val_y(float) ret: void



7873
7874
7875
# File 'lib/imgui.rb', line 7873

def self.PushStyleVarY(idx, val_y)
  ImGui_PushStyleVarY(idx, val_y)
end

.PushTabStop(tab_stop) ⇒ Object

arg: tab_stop(bool) ret: void



8966
8967
8968
# File 'lib/imgui.rb', line 8966

def self.PushTabStop(tab_stop)
  ImGui_PushTabStop(tab_stop)
end

.PushTextWrapPos(wrap_local_pos_x = 0.0) ⇒ Object

arg: wrap_local_pos_x(float) ret: void



7912
7913
7914
# File 'lib/imgui.rb', line 7912

def self.PushTextWrapPos(wrap_local_pos_x = 0.0)
  ImGui_PushTextWrapPos(wrap_local_pos_x)
end

.RadioButton(*arg) ⇒ Object



11721
11722
11723
11724
11725
11726
11727
11728
11729
# File 'lib/imgui.rb', line 11721

def self.RadioButton(*arg)
  # arg: 0:label(const char*), 1:active(bool)
  # ret: bool
  return ImGui_RadioButton(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && (arg[1].is_a?(TrueClass) || arg[1].is_a?(FalseClass)))
  # arg: 0:label(const char*), 1:v(int*), 2:v_button(int)
  # ret: bool
  return ImGui_RadioButtonIntPtr(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::RadioButton : No matching functions found (#{arg})")
end

.RegisterFontAtlas(atlas) ⇒ Object

arg: atlas(ImFontAtlas*) ret: void



9547
9548
9549
# File 'lib/imgui.rb', line 9547

def self.RegisterFontAtlas(atlas)
  ImGui_RegisterFontAtlas(atlas)
end

.RegisterUserTexture(tex) ⇒ Object

arg: tex(ImTextureData*) ret: void



9535
9536
9537
# File 'lib/imgui.rb', line 9535

def self.RegisterUserTexture(tex)
  ImGui_RegisterUserTexture(tex)
end

.RemoveContextHook(ctx, hook_to_remove) ⇒ Object

arg: ctx(ImGuiContext*), hook_to_remove(ImGuiID) ret: void



9631
9632
9633
# File 'lib/imgui.rb', line 9631

def self.RemoveContextHook(ctx, hook_to_remove)
  ImGui_RemoveContextHook(ctx, hook_to_remove)
end

.RemoveSettingsHandler(type_name) ⇒ Object

arg: type_name(const char*) ret: void



9747
9748
9749
# File 'lib/imgui.rb', line 9747

def self.RemoveSettingsHandler(type_name)
  ImGui_RemoveSettingsHandler(type_name)
end

.RenderObject

ret: void



7614
7615
7616
# File 'lib/imgui.rb', line 7614

def self.Render()
  ImGui_Render()
end

.RenderArrow(*arg) ⇒ Object



13266
13267
13268
13269
13270
13271
13272
13273
13274
13275
# File 'lib/imgui.rb', line 13266

def self.RenderArrow(*arg)
  # arg: 0:draw_list(ImDrawList*), 1:pos(ImVec2), 2:col(ImU32), 3:dir(ImGuiDir)
  # ret: void
  return ImGui_RenderArrow(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer))
  # arg: 0:draw_list(ImDrawList*), 1:pos(ImVec2), 2:col(ImU32), 3:dir(ImGuiDir), 4:scale(float)
  # ret: void
  return ImGui_RenderArrowEx(arg[0], arg[1], arg[2], arg[3], 1.0) if arg.length == 4 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer))
  return ImGui_RenderArrowEx(arg[0], arg[1], arg[2], arg[3], arg[4]) if arg.length == 5 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Float))
  $stderr.puts("[Warning] ImGui::RenderArrow : No matching functions found (#{arg})")
end

.RenderArrowDockMenu(draw_list, p_min, sz, col) ⇒ Object

arg: draw_list(ImDrawList*), p_min(ImVec2), sz(float), col(ImU32) ret: void



10864
10865
10866
# File 'lib/imgui.rb', line 10864

def self.RenderArrowDockMenu(draw_list, p_min, sz, col)
  ImGui_RenderArrowDockMenu(draw_list, p_min, sz, col)
end

.RenderArrowPointingAt(draw_list, pos, half_sz, direction, col) ⇒ Object

arg: draw_list(ImDrawList*), pos(ImVec2), half_sz(ImVec2), direction(ImGuiDir), col(ImU32) ret: void



10858
10859
10860
# File 'lib/imgui.rb', line 10858

def self.RenderArrowPointingAt(draw_list, pos, half_sz, direction, col)
  ImGui_RenderArrowPointingAt(draw_list, pos, half_sz, direction, col)
end

.RenderBullet(draw_list, pos, col) ⇒ Object

arg: draw_list(ImDrawList*), pos(ImVec2), col(ImU32) ret: void



10846
10847
10848
# File 'lib/imgui.rb', line 10846

def self.RenderBullet(draw_list, pos, col)
  ImGui_RenderBullet(draw_list, pos, col)
end

.RenderCheckMark(draw_list, pos, col, sz) ⇒ Object

arg: draw_list(ImDrawList*), pos(ImVec2), col(ImU32), sz(float) ret: void



10852
10853
10854
# File 'lib/imgui.rb', line 10852

def self.RenderCheckMark(draw_list, pos, col, sz)
  ImGui_RenderCheckMark(draw_list, pos, col, sz)
end

.RenderColorComponentMarker(bb, col, rounding) ⇒ Object

arg: bb(ImRect), col(ImU32), rounding(float) ret: void



10834
10835
10836
# File 'lib/imgui.rb', line 10834

def self.RenderColorComponentMarker(bb, col, rounding)
  ImGui_RenderColorComponentMarker(bb, col, rounding)
end

.RenderColorRectWithAlphaCheckerboard(*arg) ⇒ Object



13220
13221
13222
13223
13224
13225
13226
13227
13228
13229
13230
# File 'lib/imgui.rb', line 13220

def self.RenderColorRectWithAlphaCheckerboard(*arg)
  # arg: 0:draw_list(ImDrawList*), 1:p_min(ImVec2), 2:p_max(ImVec2), 3:fill_col(ImU32), 4:grid_step(float), 5:grid_off(ImVec2)
  # ret: void
  return ImGui_RenderColorRectWithAlphaCheckerboard(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(ImVec2) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Float) && arg[5].kind_of?(ImVec2))
  # arg: 0:draw_list(ImDrawList*), 1:p_min(ImVec2), 2:p_max(ImVec2), 3:fill_col(ImU32), 4:grid_step(float), 5:grid_off(ImVec2), 6:rounding(float), 7:flags(ImDrawFlags)
  # ret: void
  return ImGui_RenderColorRectWithAlphaCheckerboardEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], 0) if arg.length == 7 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(ImVec2) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Float) && arg[5].kind_of?(ImVec2) && arg[6].kind_of?(Float))
  return ImGui_RenderColorRectWithAlphaCheckerboardEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], 0.0, 0) if arg.length == 6 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(ImVec2) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Float) && arg[5].kind_of?(ImVec2))
  return ImGui_RenderColorRectWithAlphaCheckerboardEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7]) if arg.length == 8 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(ImVec2) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Float) && arg[5].kind_of?(ImVec2) && arg[6].kind_of?(Float) && arg[7].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::RenderColorRectWithAlphaCheckerboard : No matching functions found (#{arg})")
end

.RenderDragDropTargetRectEx(draw_list, bb, rounding) ⇒ Object

arg: draw_list(ImDrawList*), bb(ImRect), rounding(float) ret: void



10637
10638
10639
# File 'lib/imgui.rb', line 10637

def self.RenderDragDropTargetRectEx(draw_list, bb, rounding)
  ImGui_RenderDragDropTargetRectEx(draw_list, bb, rounding)
end

.RenderDragDropTargetRectForItem(bb) ⇒ Object

arg: bb(ImRect) ret: void



10631
10632
10633
# File 'lib/imgui.rb', line 10631

def self.RenderDragDropTargetRectForItem(bb)
  ImGui_RenderDragDropTargetRectForItem(bb)
end

.RenderFrame(*arg) ⇒ Object



13197
13198
13199
13200
13201
13202
13203
13204
13205
13206
13207
# File 'lib/imgui.rb', line 13197

def self.RenderFrame(*arg)
  # arg: 0:p_min(ImVec2), 1:p_max(ImVec2), 2:fill_col(ImU32)
  # ret: void
  return ImGui_RenderFrame(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer))
  # arg: 0:p_min(ImVec2), 1:p_max(ImVec2), 2:fill_col(ImU32), 3:borders(bool), 4:rounding(float)
  # ret: void
  return ImGui_RenderFrameEx(arg[0], arg[1], arg[2], arg[3], 0.0) if arg.length == 4 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer) && (arg[3].is_a?(TrueClass) || arg[3].is_a?(FalseClass)))
  return ImGui_RenderFrameEx(arg[0], arg[1], arg[2], true, 0.0) if arg.length == 3 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer))
  return ImGui_RenderFrameEx(arg[0], arg[1], arg[2], arg[3], arg[4]) if arg.length == 5 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer) && (arg[3].is_a?(TrueClass) || arg[3].is_a?(FalseClass)) && arg[4].kind_of?(Float))
  $stderr.puts("[Warning] ImGui::RenderFrame : No matching functions found (#{arg})")
end

.RenderFrameBorder(*arg) ⇒ Object



13209
13210
13211
13212
13213
13214
13215
13216
13217
13218
# File 'lib/imgui.rb', line 13209

def self.RenderFrameBorder(*arg)
  # arg: 0:p_min(ImVec2), 1:p_max(ImVec2)
  # ret: void
  return ImGui_RenderFrameBorder(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(ImVec2))
  # arg: 0:p_min(ImVec2), 1:p_max(ImVec2), 2:rounding(float)
  # ret: void
  return ImGui_RenderFrameBorderEx(arg[0], arg[1], 0.0) if arg.length == 2 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(ImVec2))
  return ImGui_RenderFrameBorderEx(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Float))
  $stderr.puts("[Warning] ImGui::RenderFrameBorder : No matching functions found (#{arg})")
end

.RenderMouseCursor(pos, scale, mouse_cursor, col_fill, col_border, col_shadow) ⇒ Object

arg: pos(ImVec2), scale(float), mouse_cursor(ImGuiMouseCursor), col_fill(ImU32), col_border(ImU32), col_shadow(ImU32) ret: void



10840
10841
10842
# File 'lib/imgui.rb', line 10840

def self.RenderMouseCursor(pos, scale, mouse_cursor, col_fill, col_border, col_shadow)
  ImGui_RenderMouseCursor(pos, scale, mouse_cursor, col_fill, col_border, col_shadow)
end

.RenderNavCursor(*arg) ⇒ Object



13232
13233
13234
13235
13236
13237
13238
13239
13240
13241
13242
# File 'lib/imgui.rb', line 13232

def self.RenderNavCursor(*arg)
  # arg: 0:bb(ImRect), 1:id(ImGuiID)
  # ret: void
  return ImGui_RenderNavCursor(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer))
  # arg: 0:bb(ImRect), 1:id(ImGuiID), 2:flags(ImGuiNavRenderCursorFlags), 3:rounding(float)
  # ret: void
  return ImGui_RenderNavCursorEx(arg[0], arg[1], arg[2], -1.0) if arg.length == 3 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer))
  return ImGui_RenderNavCursorEx(arg[0], arg[1], ImGuiNavRenderCursorFlags_None, -1.0) if arg.length == 2 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer))
  return ImGui_RenderNavCursorEx(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Float))
  $stderr.puts("[Warning] ImGui::RenderNavCursor : No matching functions found (#{arg})")
end

.RenderNavHighlight(*arg) ⇒ Object



13244
13245
13246
13247
13248
13249
13250
13251
13252
13253
# File 'lib/imgui.rb', line 13244

def self.RenderNavHighlight(*arg)
  # arg: 0:bb(ImRect), 1:id(ImGuiID)
  # ret: void
  return ImGui_RenderNavHighlight(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer))
  # arg: 0:bb(ImRect), 1:id(ImGuiID), 2:flags(ImGuiNavRenderCursorFlags)
  # ret: void
  return ImGui_RenderNavHighlightEx(arg[0], arg[1], ImGuiNavRenderCursorFlags_None) if arg.length == 2 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer))
  return ImGui_RenderNavHighlightEx(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::RenderNavHighlight : No matching functions found (#{arg})")
end

.RenderPlatformWindowsDefault(*arg) ⇒ Object



12888
12889
12890
12891
12892
12893
12894
12895
12896
12897
12898
# File 'lib/imgui.rb', line 12888

def self.RenderPlatformWindowsDefault(*arg)
  # arg: 
  # ret: void
  return ImGui_RenderPlatformWindowsDefault() if arg.empty?
  # arg: 0:platform_render_arg(void*), 1:renderer_render_arg(void*)
  # ret: void
  return ImGui_RenderPlatformWindowsDefaultEx(arg[0], nil) if arg.length == 1 && (arg[0].kind_of?(FFI::Pointer))
  return ImGui_RenderPlatformWindowsDefaultEx(nil, nil) if arg.length == 0 && (true)
  return ImGui_RenderPlatformWindowsDefaultEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::RenderPlatformWindowsDefault : No matching functions found (#{arg})")
end

.RenderRectFilledInRangeH(draw_list, rect, col, fill_x0, fill_x1, rounding) ⇒ Object

arg: draw_list(ImDrawList*), rect(ImRect), col(ImU32), fill_x0(float), fill_x1(float), rounding(float) ret: void



10870
10871
10872
# File 'lib/imgui.rb', line 10870

def self.RenderRectFilledInRangeH(draw_list, rect, col, fill_x0, fill_x1, rounding)
  ImGui_RenderRectFilledInRangeH(draw_list, rect, col, fill_x0, fill_x1, rounding)
end

.RenderRectFilledWithHole(draw_list, outer, inner, col, rounding) ⇒ Object

arg: draw_list(ImDrawList*), outer(ImRect), inner(ImRect), col(ImU32), rounding(float) ret: void



10876
10877
10878
# File 'lib/imgui.rb', line 10876

def self.RenderRectFilledWithHole(draw_list, outer, inner, col, rounding)
  ImGui_RenderRectFilledWithHole(draw_list, outer, inner, col, rounding)
end

.RenderText(*arg) ⇒ Object



13161
13162
13163
13164
13165
13166
13167
13168
13169
13170
13171
# File 'lib/imgui.rb', line 13161

def self.RenderText(*arg)
  # arg: 0:pos(ImVec2), 1:text(const char*)
  # ret: void
  return ImGui_RenderText(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(String))
  # arg: 0:pos(ImVec2), 1:text(const char*), 2:text_end(const char*), 3:hide_text_after_hash(bool)
  # ret: void
  return ImGui_RenderTextEx(arg[0], arg[1], arg[2], true) if arg.length == 3 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(String) && arg[2].kind_of?(String))
  return ImGui_RenderTextEx(arg[0], arg[1], nil, true) if arg.length == 2 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(String))
  return ImGui_RenderTextEx(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(String) && arg[2].kind_of?(String) && (arg[3].is_a?(TrueClass) || arg[3].is_a?(FalseClass)))
  $stderr.puts("[Warning] ImGui::RenderText : No matching functions found (#{arg})")
end

.RenderTextClipped(*arg) ⇒ Object



13173
13174
13175
13176
13177
13178
13179
13180
13181
13182
13183
# File 'lib/imgui.rb', line 13173

def self.RenderTextClipped(*arg)
  # arg: 0:pos_min(ImVec2), 1:pos_max(ImVec2), 2:text(const char*), 3:text_end(const char*), 4:text_size_if_known(const ImVec2*)
  # ret: void
  return ImGui_RenderTextClipped(arg[0], arg[1], arg[2], arg[3], arg[4]) if arg.length == 5 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(String) && arg[3].kind_of?(String) && arg[4].kind_of?(FFI::Pointer))
  # arg: 0:pos_min(ImVec2), 1:pos_max(ImVec2), 2:text(const char*), 3:text_end(const char*), 4:text_size_if_known(const ImVec2*), 5:align(ImVec2), 6:clip_rect(const ImRect*)
  # ret: void
  return ImGui_RenderTextClippedEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], nil) if arg.length == 6 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(String) && arg[3].kind_of?(String) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(ImVec2))
  return ImGui_RenderTextClippedEx(arg[0], arg[1], arg[2], arg[3], arg[4], ImVec2.create(0,0), nil) if arg.length == 5 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(String) && arg[3].kind_of?(String) && arg[4].kind_of?(FFI::Pointer))
  return ImGui_RenderTextClippedEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6]) if arg.length == 7 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(String) && arg[3].kind_of?(String) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(ImVec2) && arg[6].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::RenderTextClipped : No matching functions found (#{arg})")
end

.RenderTextClippedEx(*arg) ⇒ Object



13185
13186
13187
13188
13189
13190
13191
13192
13193
13194
13195
# File 'lib/imgui.rb', line 13185

def self.RenderTextClippedEx(*arg)
  # arg: 0:draw_list(ImDrawList*), 1:pos_min(ImVec2), 2:pos_max(ImVec2), 3:text(const char*), 4:text_end(const char*), 5:text_size_if_known(const ImVec2*)
  # ret: void
  return ImGui_RenderTextClippedWithDrawList(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(ImVec2) && arg[3].kind_of?(String) && arg[4].kind_of?(String) && arg[5].kind_of?(FFI::Pointer))
  # arg: 0:draw_list(ImDrawList*), 1:pos_min(ImVec2), 2:pos_max(ImVec2), 3:text(const char*), 4:text_end(const char*), 5:text_size_if_known(const ImVec2*), 6:align(ImVec2), 7:clip_rect(const ImRect*)
  # ret: void
  return ImGui_RenderTextClippedWithDrawListEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], nil) if arg.length == 7 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(ImVec2) && arg[3].kind_of?(String) && arg[4].kind_of?(String) && arg[5].kind_of?(FFI::Pointer) && arg[6].kind_of?(ImVec2))
  return ImGui_RenderTextClippedWithDrawListEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], ImVec2.create(0,0), nil) if arg.length == 6 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(ImVec2) && arg[3].kind_of?(String) && arg[4].kind_of?(String) && arg[5].kind_of?(FFI::Pointer))
  return ImGui_RenderTextClippedWithDrawListEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7]) if arg.length == 8 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(ImVec2) && arg[3].kind_of?(String) && arg[4].kind_of?(String) && arg[5].kind_of?(FFI::Pointer) && arg[6].kind_of?(ImVec2) && arg[7].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::RenderTextClippedEx : No matching functions found (#{arg})")
end

.RenderTextEllipsis(draw_list, pos_min, pos_max, ellipsis_max_x, text, text_end, text_size_if_known) ⇒ Object

arg: draw_list(ImDrawList*), pos_min(ImVec2), pos_max(ImVec2), ellipsis_max_x(float), text(const char*), text_end(const char*), text_size_if_known(const ImVec2*) ret: void



10828
10829
10830
# File 'lib/imgui.rb', line 10828

def self.RenderTextEllipsis(draw_list, pos_min, pos_max, ellipsis_max_x, text, text_end, text_size_if_known)
  ImGui_RenderTextEllipsis(draw_list, pos_min, pos_max, ellipsis_max_x, text, text_end, text_size_if_known)
end

.RenderTextWrapped(pos, text, text_end, wrap_width) ⇒ Object

arg: pos(ImVec2), text(const char*), text_end(const char*), wrap_width(float) ret: void



10822
10823
10824
# File 'lib/imgui.rb', line 10822

def self.RenderTextWrapped(pos, text, text_end, wrap_width)
  ImGui_RenderTextWrapped(pos, text, text_end, wrap_width)
end

.ResetMouseDragDelta(*arg) ⇒ Object



12877
12878
12879
12880
12881
12882
12883
12884
12885
12886
# File 'lib/imgui.rb', line 12877

def self.ResetMouseDragDelta(*arg)
  # arg: 
  # ret: void
  return ImGui_ResetMouseDragDelta() if arg.empty?
  # arg: 0:button(ImGuiMouseButton)
  # ret: void
  return ImGui_ResetMouseDragDeltaEx(0) if arg.length == 0 && (true)
  return ImGui_ResetMouseDragDeltaEx(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::ResetMouseDragDelta : No matching functions found (#{arg})")
end

.SameLine(*arg) ⇒ Object



11617
11618
11619
11620
11621
11622
11623
11624
11625
11626
11627
# File 'lib/imgui.rb', line 11617

def self.SameLine(*arg)
  # arg: 
  # ret: void
  return ImGui_SameLine() if arg.empty?
  # arg: 0:offset_from_start_x(float), 1:spacing(float)
  # ret: void
  return ImGui_SameLineEx(arg[0], -1.0) if arg.length == 1 && (arg[0].kind_of?(Float))
  return ImGui_SameLineEx(0.0, -1.0) if arg.length == 0 && (true)
  return ImGui_SameLineEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Float) && arg[1].kind_of?(Float))
  $stderr.puts("[Warning] ImGui::SameLine : No matching functions found (#{arg})")
end

.SaveIniSettingsToDisk(ini_filename) ⇒ Object

arg: ini_filename(const char*) ret: void



8856
8857
8858
# File 'lib/imgui.rb', line 8856

def self.SaveIniSettingsToDisk(ini_filename)
  ImGui_SaveIniSettingsToDisk(ini_filename)
end

.SaveIniSettingsToMemory(out_ini_size = nil) ⇒ Object

arg: out_ini_size(size_t*) ret: pointer



8862
8863
8864
# File 'lib/imgui.rb', line 8862

def self.SaveIniSettingsToMemory(out_ini_size = nil)
  ImGui_SaveIniSettingsToMemory(out_ini_size)
end

.ScaleWindowsInViewport(viewport, scale) ⇒ Object

arg: viewport(ImGuiViewportP*), scale(float) ret: void



9694
9695
9696
# File 'lib/imgui.rb', line 9694

def self.ScaleWindowsInViewport(viewport, scale)
  ImGui_ScaleWindowsInViewport(viewport, scale)
end

.Scrollbar(axis) ⇒ Object

arg: axis(ImGuiAxis) ret: void



10924
10925
10926
# File 'lib/imgui.rb', line 10924

def self.Scrollbar(axis)
  ImGui_Scrollbar(axis)
end

.ScrollbarEx(*arg) ⇒ Object



13312
13313
13314
13315
13316
13317
13318
13319
13320
13321
# File 'lib/imgui.rb', line 13312

def self.ScrollbarEx(*arg)
  # arg: 0:bb(ImRect), 1:id(ImGuiID), 2:axis(ImGuiAxis), 3:p_scroll_v(ImS64*), 4:avail_v(ImS64), 5:contents_v(ImS64)
  # ret: bool
  return ImGui_ScrollbarEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(Integer))
  # arg: 0:bb(ImRect), 1:id(ImGuiID), 2:axis(ImGuiAxis), 3:p_scroll_v(ImS64*), 4:avail_v(ImS64), 5:contents_v(ImS64), 6:draw_rounding_flags(ImDrawFlags)
  # ret: bool
  return ImGui_ScrollbarExEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], 0) if arg.length == 6 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(Integer))
  return ImGui_ScrollbarExEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6]) if arg.length == 7 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(Integer) && arg[6].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::ScrollbarEx : No matching functions found (#{arg})")
end

.ScrollToBringRectIntoView(window, rect) ⇒ Object

arg: window(ImGuiWindow*), rect(ImRect) ret: void



9813
9814
9815
# File 'lib/imgui.rb', line 9813

def self.ScrollToBringRectIntoView(window, rect)
  ImGui_ScrollToBringRectIntoView(window, rect)
end

.ScrollToItem(flags = 0) ⇒ Object

arg: flags(ImGuiScrollFlags) ret: void



9795
9796
9797
# File 'lib/imgui.rb', line 9795

def self.ScrollToItem(flags = 0)
  ImGui_ScrollToItem(flags)
end

.ScrollToRect(window, rect, flags = 0) ⇒ Object

arg: window(ImGuiWindow*), rect(ImRect), flags(ImGuiScrollFlags) ret: void



9801
9802
9803
# File 'lib/imgui.rb', line 9801

def self.ScrollToRect(window, rect, flags = 0)
  ImGui_ScrollToRect(window, rect, flags)
end

.ScrollToRectEx(window, rect, flags = 0) ⇒ Object

arg: window(ImGuiWindow*), rect(ImRect), flags(ImGuiScrollFlags) ret: ImVec2.by_value



9807
9808
9809
# File 'lib/imgui.rb', line 9807

def self.ScrollToRectEx(window, rect, flags = 0)
  ImGui_ScrollToRectEx(window, rect, flags)
end

.Selectable(*arg) ⇒ Object



12371
12372
12373
12374
12375
12376
12377
12378
12379
12380
12381
12382
12383
12384
12385
12386
12387
12388
12389
12390
12391
# File 'lib/imgui.rb', line 12371

def self.Selectable(*arg)
  # arg: 0:label(const char*)
  # ret: bool
  return ImGui_Selectable(arg[0]) if arg.length == 1 && (arg[0].kind_of?(String))
  # arg: 0:label(const char*), 1:selected(bool), 2:flags(ImGuiSelectableFlags), 3:size(ImVec2)
  # ret: bool
  return ImGui_SelectableEx(arg[0], arg[1], arg[2], ImVec2.create(0,0)) if arg.length == 3 && (arg[0].kind_of?(String) && (arg[1].is_a?(TrueClass) || arg[1].is_a?(FalseClass)) && arg[2].kind_of?(Integer))
  return ImGui_SelectableEx(arg[0], arg[1], 0, ImVec2.create(0,0)) if arg.length == 2 && (arg[0].kind_of?(String) && (arg[1].is_a?(TrueClass) || arg[1].is_a?(FalseClass)))
  return ImGui_SelectableEx(arg[0], false, 0, ImVec2.create(0,0)) if arg.length == 1 && (arg[0].kind_of?(String))
  return ImGui_SelectableEx(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && (arg[1].is_a?(TrueClass) || arg[1].is_a?(FalseClass)) && arg[2].kind_of?(Integer) && arg[3].kind_of?(ImVec2))
  # arg: 0:label(const char*), 1:p_selected(bool*), 2:flags(ImGuiSelectableFlags)
  # ret: bool
  return ImGui_SelectableBoolPtr(arg[0], arg[1], 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  return ImGui_SelectableBoolPtr(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer))
  # arg: 0:label(const char*), 1:p_selected(bool*), 2:flags(ImGuiSelectableFlags), 3:size(ImVec2)
  # ret: bool
  return ImGui_SelectableBoolPtrEx(arg[0], arg[1], arg[2], ImVec2.create(0,0)) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer))
  return ImGui_SelectableBoolPtrEx(arg[0], arg[1], 0, ImVec2.create(0,0)) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  return ImGui_SelectableBoolPtrEx(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(ImVec2))
  $stderr.puts("[Warning] ImGui::Selectable : No matching functions found (#{arg})")
end

.SeparatorObject

ret: void



7987
7988
7989
# File 'lib/imgui.rb', line 7987

def self.Separator()
  ImGui_Separator()
end

.SeparatorEx(*arg) ⇒ Object



13301
13302
13303
13304
13305
13306
13307
13308
13309
13310
# File 'lib/imgui.rb', line 13301

def self.SeparatorEx(*arg)
  # arg: 0:flags(ImGuiSeparatorFlags)
  # ret: void
  return ImGui_SeparatorEx(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  # arg: 0:flags(ImGuiSeparatorFlags), 1:thickness(float)
  # ret: void
  return ImGui_SeparatorExEx(arg[0], 1.0) if arg.length == 1 && (arg[0].kind_of?(Integer))
  return ImGui_SeparatorExEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Float))
  $stderr.puts("[Warning] ImGui::SeparatorEx : No matching functions found (#{arg})")
end

.SeparatorText(label) ⇒ Object

arg: label(const char*) ret: void



8085
8086
8087
# File 'lib/imgui.rb', line 8085

def self.SeparatorText(label)
  ImGui_SeparatorText(label)
end

.SeparatorTextEx(id, label, label_end, extra_width) ⇒ Object

arg: id(ImGuiID), label(const char*), label_end(const char*), extra_width(float) ret: void



10906
10907
10908
# File 'lib/imgui.rb', line 10906

def self.SeparatorTextEx(id, label, label_end, extra_width)
  ImGui_SeparatorTextEx(id, label, label_end, extra_width)
end

.set_vertex(xy, uv, color) ⇒ Object

[INTERNAL]



675
676
677
678
679
# File 'lib/imgui_impl_raylib.rb', line 675

def self.set_vertex(xy, uv, color)
  Raylib.rlColor4ub(color[0], color[1], color[2], color[3])
  Raylib.rlTexCoord2f(uv[0], uv[1])
  Raylib.rlVertex2f(xy[0], xy[1])
end

.SetActiveID(id, window) ⇒ Object

arg: id(ImGuiID), window(ImGuiWindow*) ret: void



9834
9835
9836
# File 'lib/imgui.rb', line 9834

def self.SetActiveID(id, window)
  ImGui_SetActiveID(id, window)
end

.SetActiveIdUsingAllKeyboardKeysObject

ret: void



10296
10297
10298
# File 'lib/imgui.rb', line 10296

def self.SetActiveIdUsingAllKeyboardKeys()
  ImGui_SetActiveIdUsingAllKeyboardKeys()
end

.SetAllocatorFunctions(alloc_func, free_func, user_data = nil) ⇒ Object

arg: alloc_func(ImGuiMemAllocFunc), free_func(ImGuiMemFreeFunc), user_data(void*) ret: void



8897
8898
8899
# File 'lib/imgui.rb', line 8897

def self.SetAllocatorFunctions(alloc_func, free_func, user_data = nil)
  ImGui_SetAllocatorFunctions(alloc_func, free_func, user_data)
end

.SetClipboardText(text) ⇒ Object

arg: text(const char*) ret: void



8838
8839
8840
# File 'lib/imgui.rb', line 8838

def self.SetClipboardText(text)
  ImGui_SetClipboardText(text)
end

.SetColorEditOptions(flags) ⇒ Object

arg: flags(ImGuiColorEditFlags) ret: void



8943
8944
8945
# File 'lib/imgui.rb', line 8943

def self.SetColorEditOptions(flags)
  ImGui_SetColorEditOptions(flags)
end

.SetColumnOffset(column_index, offset_x) ⇒ Object

arg: column_index(int), offset_x(float) ret: void



8429
8430
8431
# File 'lib/imgui.rb', line 8429

def self.SetColumnOffset(column_index, offset_x)
  ImGui_SetColumnOffset(column_index, offset_x)
end

.SetColumnWidth(column_index, width) ⇒ Object

arg: column_index(int), width(float) ret: void



8417
8418
8419
# File 'lib/imgui.rb', line 8417

def self.SetColumnWidth(column_index, width)
  ImGui_SetColumnWidth(column_index, width)
end

.SetContextName(ctx, name) ⇒ Object

arg: ctx(ImGuiContext*), name(const char*) ret: void



9619
9620
9621
# File 'lib/imgui.rb', line 9619

def self.SetContextName(ctx, name)
  ImGui_SetContextName(ctx, name)
end

.SetCurrentContext(ctx) ⇒ Object

arg: ctx(ImGuiContext*) ret: void



7594
7595
7596
# File 'lib/imgui.rb', line 7594

def self.SetCurrentContext(ctx)
  ImGui_SetCurrentContext(ctx)
end

.SetCurrentFont(font, font_size_before_scaling, font_size_after_scaling) ⇒ Object

arg: font(ImFont*), font_size_before_scaling(float), font_size_after_scaling(float) ret: void



9559
9560
9561
# File 'lib/imgui.rb', line 9559

def self.SetCurrentFont(font, font_size_before_scaling, font_size_after_scaling)
  ImGui_SetCurrentFont(font, font_size_before_scaling, font_size_after_scaling)
end

.SetCurrentViewport(window, viewport) ⇒ Object

arg: window(ImGuiWindow*), viewport(ImGuiViewportP*) ret: void



9712
9713
9714
# File 'lib/imgui.rb', line 9712

def self.SetCurrentViewport(window, viewport)
  ImGui_SetCurrentViewport(window, viewport)
end

.SetCursorPos(local_pos) ⇒ Object

arg: local_pos(ImVec2) ret: void



7965
7966
7967
# File 'lib/imgui.rb', line 7965

def self.SetCursorPos(local_pos)
  ImGui_SetCursorPos(local_pos)
end

.SetCursorPosX(local_x) ⇒ Object

arg: local_x(float) ret: void



7971
7972
7973
# File 'lib/imgui.rb', line 7971

def self.SetCursorPosX(local_x)
  ImGui_SetCursorPosX(local_x)
end

.SetCursorPosY(local_y) ⇒ Object

arg: local_y(float) ret: void



7977
7978
7979
# File 'lib/imgui.rb', line 7977

def self.SetCursorPosY(local_y)
  ImGui_SetCursorPosY(local_y)
end

.SetCursorScreenPos(pos) ⇒ Object

arg: pos(ImVec2) ret: void



7939
7940
7941
# File 'lib/imgui.rb', line 7939

def self.SetCursorScreenPos(pos)
  ImGui_SetCursorScreenPos(pos)
end

.SetDragDropPayload(type, data, sz, cond = 0) ⇒ Object

arg: type(const char*), data(const void*), sz(size_t), cond(ImGuiCond) ret: bool



8536
8537
8538
# File 'lib/imgui.rb', line 8536

def self.SetDragDropPayload(type, data, sz, cond = 0)
  ImGui_SetDragDropPayload(type, data, sz, cond)
end

.SetFocusID(id, window) ⇒ Object

arg: id(ImGuiID), window(ImGuiWindow*) ret: void



9840
9841
9842
# File 'lib/imgui.rb', line 9840

def self.SetFocusID(id, window)
  ImGui_SetFocusID(id, window)
end

.SetFontRasterizerDensity(rasterizer_density) ⇒ Object

arg: rasterizer_density(float) ret: void



9571
9572
9573
# File 'lib/imgui.rb', line 9571

def self.SetFontRasterizerDensity(rasterizer_density)
  ImGui_SetFontRasterizerDensity(rasterizer_density)
end

.SetHoveredID(id) ⇒ Object

arg: id(ImGuiID) ret: void



9856
9857
9858
# File 'lib/imgui.rb', line 9856

def self.SetHoveredID(id)
  ImGui_SetHoveredID(id)
end

.SetItemDefaultFocusObject

ret: void



8589
8590
8591
# File 'lib/imgui.rb', line 8589

def self.SetItemDefaultFocus()
  ImGui_SetItemDefaultFocus()
end

.SetItemKeyOwner(*arg) ⇒ Object



12797
12798
12799
12800
12801
12802
12803
12804
12805
# File 'lib/imgui.rb', line 12797

def self.SetItemKeyOwner(*arg)
  # arg: 0:key(ImGuiKey)
  # ret: bool
  return ImGui_SetItemKeyOwner(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  # arg: 0:key(ImGuiKey), 1:flags(ImGuiInputFlags)
  # ret: bool
  return ImGui_SetItemKeyOwnerImGuiInputFlags(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::SetItemKeyOwner : No matching functions found (#{arg})")
end

.SetItemTooltip(fmt, *varargs) ⇒ Object

arg: fmt(const char*), unnamed_arg1(...) ret: void



8286
8287
8288
# File 'lib/imgui.rb', line 8286

def self.SetItemTooltip(fmt, *varargs)
  ImGui_SetItemTooltip(fmt, *varargs)
end

.SetKeyboardFocusHere(*arg) ⇒ Object



12652
12653
12654
12655
12656
12657
12658
12659
12660
12661
# File 'lib/imgui.rb', line 12652

def self.SetKeyboardFocusHere(*arg)
  # arg: 
  # ret: void
  return ImGui_SetKeyboardFocusHere() if arg.empty?
  # arg: 0:offset(int)
  # ret: void
  return ImGui_SetKeyboardFocusHereEx(0) if arg.length == 0 && (true)
  return ImGui_SetKeyboardFocusHereEx(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::SetKeyboardFocusHere : No matching functions found (#{arg})")
end

.SetKeyOwner(key, owner_id, flags = 0) ⇒ Object

arg: key(ImGuiKey), owner_id(ImGuiID), flags(ImGuiInputFlags) ret: void



10314
10315
10316
# File 'lib/imgui.rb', line 10314

def self.SetKeyOwner(key, owner_id, flags = 0)
  ImGui_SetKeyOwner(key, owner_id, flags)
end

.SetKeyOwnersForKeyChord(key, owner_id, flags = 0) ⇒ Object

arg: key(ImGuiKeyChord), owner_id(ImGuiID), flags(ImGuiInputFlags) ret: void



10320
10321
10322
# File 'lib/imgui.rb', line 10320

def self.SetKeyOwnersForKeyChord(key, owner_id, flags = 0)
  ImGui_SetKeyOwnersForKeyChord(key, owner_id, flags)
end

.SetLastItemData(item_id, item_flags, status_flags, item_rect) ⇒ Object

arg: item_id(ImGuiID), item_flags(ImGuiItemFlags), status_flags(ImGuiItemStatusFlags), item_rect(ImRect) ret: void



9898
9899
9900
# File 'lib/imgui.rb', line 9898

def self.SetLastItemData(item_id, item_flags, status_flags, item_rect)
  ImGui_SetLastItemData(item_id, item_flags, status_flags, item_rect)
end

.SetMouseCursor(cursor_type) ⇒ Object

arg: cursor_type(ImGuiMouseCursor) ret: void



8821
8822
8823
# File 'lib/imgui.rb', line 8821

def self.SetMouseCursor(cursor_type)
  ImGui_SetMouseCursor(cursor_type)
end

.SetNavCursorVisible(visible) ⇒ Object

arg: visible(bool) ret: void



8595
8596
8597
# File 'lib/imgui.rb', line 8595

def self.SetNavCursorVisible(visible)
  ImGui_SetNavCursorVisible(visible)
end

.SetNavCursorVisibleAfterMoveObject

ret: void



10155
10156
10157
# File 'lib/imgui.rb', line 10155

def self.SetNavCursorVisibleAfterMove()
  ImGui_SetNavCursorVisibleAfterMove()
end

.SetNavFocusScope(focus_scope_id) ⇒ Object

arg: focus_scope_id(ImGuiID) ret: void



10178
10179
10180
# File 'lib/imgui.rb', line 10178

def self.SetNavFocusScope(focus_scope_id)
  ImGui_SetNavFocusScope(focus_scope_id)
end

.SetNavID(id, nav_layer, focus_scope_id, rect_rel) ⇒ Object

arg: id(ImGuiID), nav_layer(ImGuiNavLayer), focus_scope_id(ImGuiID), rect_rel(ImRect) ret: void



10172
10173
10174
# File 'lib/imgui.rb', line 10172

def self.SetNavID(id, nav_layer, focus_scope_id, rect_rel)
  ImGui_SetNavID(id, nav_layer, focus_scope_id, rect_rel)
end

.SetNavWindow(window) ⇒ Object

arg: window(ImGuiWindow*) ret: void



10166
10167
10168
# File 'lib/imgui.rb', line 10166

def self.SetNavWindow(window)
  ImGui_SetNavWindow(window)
end

.SetNextFrameWantCaptureKeyboard(want_capture_keyboard) ⇒ Object

arg: want_capture_keyboard(bool) ret: void



8765
8766
8767
# File 'lib/imgui.rb', line 8765

def self.SetNextFrameWantCaptureKeyboard(want_capture_keyboard)
  ImGui_SetNextFrameWantCaptureKeyboard(want_capture_keyboard)
end

.SetNextFrameWantCaptureMouse(want_capture_mouse) ⇒ Object

arg: want_capture_mouse(bool) ret: void



8827
8828
8829
# File 'lib/imgui.rb', line 8827

def self.SetNextFrameWantCaptureMouse(want_capture_mouse)
  ImGui_SetNextFrameWantCaptureMouse(want_capture_mouse)
end

.SetNextItemAllowOverlapObject

ret: void



8600
8601
8602
# File 'lib/imgui.rb', line 8600

def self.SetNextItemAllowOverlap()
  ImGui_SetNextItemAllowOverlap()
end

.SetNextItemColorMarker(col) ⇒ Object

arg: col(ImU32) ret: void



11091
11092
11093
# File 'lib/imgui.rb', line 11091

def self.SetNextItemColorMarker(col)
  ImGui_SetNextItemColorMarker(col)
end

.SetNextItemOpen(is_open, cond = 0) ⇒ Object

arg: is_open(bool), cond(ImGuiCond) ret: void



8195
8196
8197
# File 'lib/imgui.rb', line 8195

def self.SetNextItemOpen(is_open, cond = 0)
  ImGui_SetNextItemOpen(is_open, cond)
end

.SetNextItemRefVal(data_type, p_data) ⇒ Object

arg: data_type(ImGuiDataType), p_data(void*) ret: void



11062
11063
11064
# File 'lib/imgui.rb', line 11062

def self.SetNextItemRefVal(data_type, p_data)
  ImGui_SetNextItemRefVal(data_type, p_data)
end

.SetNextItemSelectionUserData(selection_user_data) ⇒ Object

arg: selection_user_data(ImGuiSelectionUserData) ret: void



8218
8219
8220
# File 'lib/imgui.rb', line 8218

def self.SetNextItemSelectionUserData(selection_user_data)
  ImGui_SetNextItemSelectionUserData(selection_user_data)
end

.SetNextItemShortcut(key_chord, flags = 0) ⇒ Object

arg: key_chord(ImGuiKeyChord), flags(ImGuiInputFlags) ret: void



8771
8772
8773
# File 'lib/imgui.rb', line 8771

def self.SetNextItemShortcut(key_chord, flags = 0)
  ImGui_SetNextItemShortcut(key_chord, flags)
end

.SetNextItemStorageID(storage_id) ⇒ Object

arg: storage_id(ImGuiID) ret: void



8201
8202
8203
# File 'lib/imgui.rb', line 8201

def self.SetNextItemStorageID(storage_id)
  ImGui_SetNextItemStorageID(storage_id)
end

.SetNextItemWidth(item_width) ⇒ Object

arg: item_width(float) ret: void



7901
7902
7903
# File 'lib/imgui.rb', line 7901

def self.SetNextItemWidth(item_width)
  ImGui_SetNextItemWidth(item_width)
end

.SetNextWindowBgAlpha(alpha) ⇒ Object

arg: alpha(float) ret: void



7803
7804
7805
# File 'lib/imgui.rb', line 7803

def self.SetNextWindowBgAlpha(alpha)
  ImGui_SetNextWindowBgAlpha(alpha)
end

.SetNextWindowClass(window_class) ⇒ Object

arg: window_class(const ImGuiWindowClass*) ret: void



8480
8481
8482
# File 'lib/imgui.rb', line 8480

def self.SetNextWindowClass(window_class)
  ImGui_SetNextWindowClass(window_class)
end

.SetNextWindowCollapsed(collapsed, cond = 0) ⇒ Object

arg: collapsed(bool), cond(ImGuiCond) ret: void



7786
7787
7788
# File 'lib/imgui.rb', line 7786

def self.SetNextWindowCollapsed(collapsed, cond = 0)
  ImGui_SetNextWindowCollapsed(collapsed, cond)
end

.SetNextWindowContentSize(size) ⇒ Object

arg: size(ImVec2) ret: void



7780
7781
7782
# File 'lib/imgui.rb', line 7780

def self.SetNextWindowContentSize(size)
  ImGui_SetNextWindowContentSize(size)
end

.SetNextWindowDockID(dock_id, cond = 0) ⇒ Object

arg: dock_id(ImGuiID), cond(ImGuiCond) ret: void



8474
8475
8476
# File 'lib/imgui.rb', line 8474

def self.SetNextWindowDockID(dock_id, cond = 0)
  ImGui_SetNextWindowDockID(dock_id, cond)
end

.SetNextWindowFocusObject

ret: void



7791
7792
7793
# File 'lib/imgui.rb', line 7791

def self.SetNextWindowFocus()
  ImGui_SetNextWindowFocus()
end

.SetNextWindowPos(*arg) ⇒ Object



11431
11432
11433
11434
11435
11436
11437
11438
11439
11440
11441
11442
# File 'lib/imgui.rb', line 11431

def self.SetNextWindowPos(*arg)
  # arg: 0:pos(ImVec2), 1:cond(ImGuiCond)
  # ret: void
  return ImGui_SetNextWindowPos(arg[0], 0) if arg.length == 1 && (arg[0].kind_of?(ImVec2))
  return ImGui_SetNextWindowPos(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(Integer))
  # arg: 0:pos(ImVec2), 1:cond(ImGuiCond), 2:pivot(ImVec2)
  # ret: void
  return ImGui_SetNextWindowPosEx(arg[0], arg[1], ImVec2.create(0,0)) if arg.length == 2 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(Integer))
  return ImGui_SetNextWindowPosEx(arg[0], 0, ImVec2.create(0,0)) if arg.length == 1 && (arg[0].kind_of?(ImVec2))
  return ImGui_SetNextWindowPosEx(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(Integer) && arg[2].kind_of?(ImVec2))
  $stderr.puts("[Warning] ImGui::SetNextWindowPos : No matching functions found (#{arg})")
end

.SetNextWindowRefreshPolicy(flags) ⇒ Object

arg: flags(ImGuiWindowRefreshFlags) ret: void



9529
9530
9531
# File 'lib/imgui.rb', line 9529

def self.SetNextWindowRefreshPolicy(flags)
  ImGui_SetNextWindowRefreshPolicy(flags)
end

.SetNextWindowScroll(scroll) ⇒ Object

arg: scroll(ImVec2) ret: void



7797
7798
7799
# File 'lib/imgui.rb', line 7797

def self.SetNextWindowScroll(scroll)
  ImGui_SetNextWindowScroll(scroll)
end

.SetNextWindowSize(size, cond = 0) ⇒ Object

arg: size(ImVec2), cond(ImGuiCond) ret: void



7768
7769
7770
# File 'lib/imgui.rb', line 7768

def self.SetNextWindowSize(size, cond = 0)
  ImGui_SetNextWindowSize(size, cond)
end

.SetNextWindowSizeConstraints(size_min, size_max, custom_callback = nil, custom_callback_data = nil) ⇒ Object

arg: size_min(ImVec2), size_max(ImVec2), custom_callback(ImGuiSizeCallback), custom_callback_data(void*) ret: void



7774
7775
7776
# File 'lib/imgui.rb', line 7774

def self.SetNextWindowSizeConstraints(size_min, size_max, custom_callback = nil, custom_callback_data = nil)
  ImGui_SetNextWindowSizeConstraints(size_min, size_max, custom_callback, custom_callback_data)
end

.SetNextWindowViewport(viewport_id) ⇒ Object

arg: viewport_id(ImGuiID) ret: void



7809
7810
7811
# File 'lib/imgui.rb', line 7809

def self.SetNextWindowViewport(viewport_id)
  ImGui_SetNextWindowViewport(viewport_id)
end

.SetScrollFromPosX(*arg) ⇒ Object



11522
11523
11524
11525
11526
11527
11528
11529
11530
11531
# File 'lib/imgui.rb', line 11522

def self.SetScrollFromPosX(*arg)
  # arg: 0:local_x(float), 1:center_x_ratio(float)
  # ret: void
  return ImGui_SetScrollFromPosX(arg[0], 0.5) if arg.length == 1 && (arg[0].kind_of?(Float))
  return ImGui_SetScrollFromPosX(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Float) && arg[1].kind_of?(Float))
  # arg: 0:window(ImGuiWindow*), 1:local_x(float), 2:center_x_ratio(float)
  # ret: void
  return ImGui_SetScrollFromPosXImGuiWindowPtr(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(Float) && arg[2].kind_of?(Float))
  $stderr.puts("[Warning] ImGui::SetScrollFromPosX : No matching functions found (#{arg})")
end

.SetScrollFromPosY(*arg) ⇒ Object



11533
11534
11535
11536
11537
11538
11539
11540
11541
11542
# File 'lib/imgui.rb', line 11533

def self.SetScrollFromPosY(*arg)
  # arg: 0:local_y(float), 1:center_y_ratio(float)
  # ret: void
  return ImGui_SetScrollFromPosY(arg[0], 0.5) if arg.length == 1 && (arg[0].kind_of?(Float))
  return ImGui_SetScrollFromPosY(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Float) && arg[1].kind_of?(Float))
  # arg: 0:window(ImGuiWindow*), 1:local_y(float), 2:center_y_ratio(float)
  # ret: void
  return ImGui_SetScrollFromPosYImGuiWindowPtr(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(Float) && arg[2].kind_of?(Float))
  $stderr.puts("[Warning] ImGui::SetScrollFromPosY : No matching functions found (#{arg})")
end

.SetScrollHereX(center_x_ratio = 0.5) ⇒ Object

arg: center_x_ratio(float) ret: void



7835
7836
7837
# File 'lib/imgui.rb', line 7835

def self.SetScrollHereX(center_x_ratio = 0.5)
  ImGui_SetScrollHereX(center_x_ratio)
end

.SetScrollHereY(center_y_ratio = 0.5) ⇒ Object

arg: center_y_ratio(float) ret: void



7841
7842
7843
# File 'lib/imgui.rb', line 7841

def self.SetScrollHereY(center_y_ratio = 0.5)
  ImGui_SetScrollHereY(center_y_ratio)
end

.SetScrollX(*arg) ⇒ Object



11502
11503
11504
11505
11506
11507
11508
11509
11510
# File 'lib/imgui.rb', line 11502

def self.SetScrollX(*arg)
  # arg: 0:scroll_x(float)
  # ret: void
  return ImGui_SetScrollX(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Float))
  # arg: 0:window(ImGuiWindow*), 1:scroll_x(float)
  # ret: void
  return ImGui_SetScrollXImGuiWindowPtr(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(Float))
  $stderr.puts("[Warning] ImGui::SetScrollX : No matching functions found (#{arg})")
end

.SetScrollY(*arg) ⇒ Object



11512
11513
11514
11515
11516
11517
11518
11519
11520
# File 'lib/imgui.rb', line 11512

def self.SetScrollY(*arg)
  # arg: 0:scroll_y(float)
  # ret: void
  return ImGui_SetScrollY(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Float))
  # arg: 0:window(ImGuiWindow*), 1:scroll_y(float)
  # ret: void
  return ImGui_SetScrollYImGuiWindowPtr(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(Float))
  $stderr.puts("[Warning] ImGui::SetScrollY : No matching functions found (#{arg})")
end

.SetShortcutRouting(key_chord, flags, owner_id) ⇒ Object

arg: key_chord(ImGuiKeyChord), flags(ImGuiInputFlags), owner_id(ImGuiID) ret: bool



10338
10339
10340
# File 'lib/imgui.rb', line 10338

def self.SetShortcutRouting(key_chord, flags, owner_id)
  ImGui_SetShortcutRouting(key_chord, flags, owner_id)
end

.SetStateStorage(storage) ⇒ Object

arg: storage(ImGuiStorage*) ret: void



8718
8719
8720
# File 'lib/imgui.rb', line 8718

def self.SetStateStorage(storage)
  ImGui_SetStateStorage(storage)
end

.SetTabItemClosed(tab_or_docked_window_label) ⇒ Object

arg: tab_or_docked_window_label(const char*) ret: void



8468
8469
8470
# File 'lib/imgui.rb', line 8468

def self.SetTabItemClosed(tab_or_docked_window_label)
  ImGui_SetTabItemClosed(tab_or_docked_window_label)
end

.SetTooltip(fmt, *varargs) ⇒ Object

arg: fmt(const char*), unnamed_arg1(...) ret: void



8275
8276
8277
# File 'lib/imgui.rb', line 8275

def self.SetTooltip(fmt, *varargs)
  ImGui_SetTooltip(fmt, *varargs)
end

.SetWindowClipRectBeforeSetChannel(window, clip_rect) ⇒ Object

arg: window(ImGuiWindow*), clip_rect(ImRect) ret: void



9307
9308
9309
# File 'lib/imgui.rb', line 9307

def self.SetWindowClipRectBeforeSetChannel(window, clip_rect)
  ImGui_SetWindowClipRectBeforeSetChannel(window, clip_rect)
end

.SetWindowCollapsed(*arg) ⇒ Object



11476
11477
11478
11479
11480
11481
11482
11483
11484
11485
11486
11487
11488
11489
11490
# File 'lib/imgui.rb', line 11476

def self.SetWindowCollapsed(*arg)
  # arg: 0:collapsed(bool), 1:cond(ImGuiCond)
  # ret: void
  return ImGui_SetWindowCollapsed(arg[0], 0) if arg.length == 1 && ((arg[0].is_a?(TrueClass) || arg[0].is_a?(FalseClass)))
  return ImGui_SetWindowCollapsed(arg[0], arg[1]) if arg.length == 2 && ((arg[0].is_a?(TrueClass) || arg[0].is_a?(FalseClass)) && arg[1].kind_of?(Integer))
  # arg: 0:name(const char*), 1:collapsed(bool), 2:cond(ImGuiCond)
  # ret: void
  return ImGui_SetWindowCollapsedStr(arg[0], arg[1], 0) if arg.length == 2 && (arg[0].kind_of?(String) && (arg[1].is_a?(TrueClass) || arg[1].is_a?(FalseClass)))
  return ImGui_SetWindowCollapsedStr(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && (arg[1].is_a?(TrueClass) || arg[1].is_a?(FalseClass)) && arg[2].kind_of?(Integer))
  # arg: 0:window(ImGuiWindow*), 1:collapsed(bool), 2:cond(ImGuiCond)
  # ret: void
  return ImGui_SetWindowCollapsedImGuiWindowPtr(arg[0], arg[1], 0) if arg.length == 2 && (arg[0].kind_of?(FFI::Pointer) && (arg[1].is_a?(TrueClass) || arg[1].is_a?(FalseClass)))
  return ImGui_SetWindowCollapsedImGuiWindowPtr(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(FFI::Pointer) && (arg[1].is_a?(TrueClass) || arg[1].is_a?(FalseClass)) && arg[2].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::SetWindowCollapsed : No matching functions found (#{arg})")
end

.SetWindowDock(window, dock_id, cond) ⇒ Object

arg: window(ImGuiWindow*), dock_id(ImGuiID), cond(ImGuiCond) ret: void



10510
10511
10512
# File 'lib/imgui.rb', line 10510

def self.SetWindowDock(window, dock_id, cond)
  ImGui_SetWindowDock(window, dock_id, cond)
end

.SetWindowFocus(*arg) ⇒ Object



11492
11493
11494
11495
11496
11497
11498
11499
11500
# File 'lib/imgui.rb', line 11492

def self.SetWindowFocus(*arg)
  # arg: 
  # ret: void
  return ImGui_SetWindowFocus() if arg.empty?
  # arg: 0:name(const char*)
  # ret: void
  return ImGui_SetWindowFocusStr(arg[0]) if arg.length == 1 && (arg[0].kind_of?(String))
  $stderr.puts("[Warning] ImGui::SetWindowFocus : No matching functions found (#{arg})")
end

.SetWindowFontScale(scale) ⇒ Object

arg: scale(float) ret: void



8949
8950
8951
# File 'lib/imgui.rb', line 8949

def self.SetWindowFontScale(scale)
  ImGui_SetWindowFontScale(scale)
end

.SetWindowHiddenAndSkipItemsForCurrentFrame(window) ⇒ Object

arg: window(ImGuiWindow*) ret: void



9445
9446
9447
# File 'lib/imgui.rb', line 9445

def self.SetWindowHiddenAndSkipItemsForCurrentFrame(window)
  ImGui_SetWindowHiddenAndSkipItemsForCurrentFrame(window)
end

.SetWindowHitTestHole(window, pos, size) ⇒ Object

arg: window(ImGuiWindow*), pos(ImVec2), size(ImVec2) ret: void



9439
9440
9441
# File 'lib/imgui.rb', line 9439

def self.SetWindowHitTestHole(window, pos, size)
  ImGui_SetWindowHitTestHole(window, pos, size)
end

.SetWindowParentWindowForFocusRoute(window, parent_window) ⇒ Object

arg: window(ImGuiWindow*), parent_window(ImGuiWindow*) ret: void



9451
9452
9453
# File 'lib/imgui.rb', line 9451

def self.SetWindowParentWindowForFocusRoute(window, parent_window)
  ImGui_SetWindowParentWindowForFocusRoute(window, parent_window)
end

.SetWindowPos(*arg) ⇒ Object



11444
11445
11446
11447
11448
11449
11450
11451
11452
11453
11454
11455
11456
11457
11458
# File 'lib/imgui.rb', line 11444

def self.SetWindowPos(*arg)
  # arg: 0:pos(ImVec2), 1:cond(ImGuiCond)
  # ret: void
  return ImGui_SetWindowPos(arg[0], 0) if arg.length == 1 && (arg[0].kind_of?(ImVec2))
  return ImGui_SetWindowPos(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(Integer))
  # arg: 0:name(const char*), 1:pos(ImVec2), 2:cond(ImGuiCond)
  # ret: void
  return ImGui_SetWindowPosStr(arg[0], arg[1], 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2))
  return ImGui_SetWindowPosStr(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer))
  # arg: 0:window(ImGuiWindow*), 1:pos(ImVec2), 2:cond(ImGuiCond)
  # ret: void
  return ImGui_SetWindowPosImGuiWindowPtr(arg[0], arg[1], 0) if arg.length == 2 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(ImVec2))
  return ImGui_SetWindowPosImGuiWindowPtr(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::SetWindowPos : No matching functions found (#{arg})")
end

.SetWindowSize(*arg) ⇒ Object



11460
11461
11462
11463
11464
11465
11466
11467
11468
11469
11470
11471
11472
11473
11474
# File 'lib/imgui.rb', line 11460

def self.SetWindowSize(*arg)
  # arg: 0:size(ImVec2), 1:cond(ImGuiCond)
  # ret: void
  return ImGui_SetWindowSize(arg[0], 0) if arg.length == 1 && (arg[0].kind_of?(ImVec2))
  return ImGui_SetWindowSize(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(ImVec2) && arg[1].kind_of?(Integer))
  # arg: 0:name(const char*), 1:size(ImVec2), 2:cond(ImGuiCond)
  # ret: void
  return ImGui_SetWindowSizeStr(arg[0], arg[1], 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2))
  return ImGui_SetWindowSizeStr(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer))
  # arg: 0:window(ImGuiWindow*), 1:size(ImVec2), 2:cond(ImGuiCond)
  # ret: void
  return ImGui_SetWindowSizeImGuiWindowPtr(arg[0], arg[1], 0) if arg.length == 2 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(ImVec2))
  return ImGui_SetWindowSizeImGuiWindowPtr(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::SetWindowSize : No matching functions found (#{arg})")
end

.SetWindowViewport(window, viewport) ⇒ Object

arg: window(ImGuiWindow*), viewport(ImGuiViewportP*) ret: void



9706
9707
9708
# File 'lib/imgui.rb', line 9706

def self.SetWindowViewport(window, viewport)
  ImGui_SetWindowViewport(window, viewport)
end

.ShadeVertsLinearColorGradientKeepAlpha(draw_list, vert_start_idx, vert_end_idx, gradient_p0, gradient_p1, col0, col1) ⇒ Object

arg: draw_list(ImDrawList*), vert_start_idx(int), vert_end_idx(int), gradient_p0(ImVec2), gradient_p1(ImVec2), col0(ImU32), col1(ImU32) ret: void



11103
11104
11105
# File 'lib/imgui.rb', line 11103

def self.ShadeVertsLinearColorGradientKeepAlpha(draw_list, vert_start_idx, vert_end_idx, gradient_p0, gradient_p1, col0, col1)
  ImGui_ShadeVertsLinearColorGradientKeepAlpha(draw_list, vert_start_idx, vert_end_idx, gradient_p0, gradient_p1, col0, col1)
end

.ShadeVertsLinearUV(draw_list, vert_start_idx, vert_end_idx, a, b, uv_a, uv_b, clamp) ⇒ Object

arg: draw_list(ImDrawList*), vert_start_idx(int), vert_end_idx(int), a(ImVec2), b(ImVec2), uv_a(ImVec2), uv_b(ImVec2), clamp(bool) ret: void



11109
11110
11111
# File 'lib/imgui.rb', line 11109

def self.ShadeVertsLinearUV(draw_list, vert_start_idx, vert_end_idx, a, b, uv_a, uv_b, clamp)
  ImGui_ShadeVertsLinearUV(draw_list, vert_start_idx, vert_end_idx, a, b, uv_a, uv_b, clamp)
end

.ShadeVertsTransformPos(draw_list, vert_start_idx, vert_end_idx, pivot_in, cos_a, sin_a, pivot_out) ⇒ Object

arg: draw_list(ImDrawList*), vert_start_idx(int), vert_end_idx(int), pivot_in(ImVec2), cos_a(float), sin_a(float), pivot_out(ImVec2) ret: void



11115
11116
11117
# File 'lib/imgui.rb', line 11115

def self.ShadeVertsTransformPos(draw_list, vert_start_idx, vert_end_idx, pivot_in, cos_a, sin_a, pivot_out)
  ImGui_ShadeVertsTransformPos(draw_list, vert_start_idx, vert_end_idx, pivot_in, cos_a, sin_a, pivot_out)
end

.Shortcut(*arg) ⇒ Object



12786
12787
12788
12789
12790
12791
12792
12793
12794
12795
# File 'lib/imgui.rb', line 12786

def self.Shortcut(*arg)
  # arg: 0:key_chord(ImGuiKeyChord), 1:flags(ImGuiInputFlags)
  # ret: bool
  return ImGui_Shortcut(arg[0], 0) if arg.length == 1 && (arg[0].kind_of?(Integer))
  return ImGui_Shortcut(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer))
  # arg: 0:key_chord(ImGuiKeyChord), 1:flags(ImGuiInputFlags), 2:owner_id(ImGuiID)
  # ret: bool
  return ImGui_ShortcutID(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::Shortcut : No matching functions found (#{arg})")
end

.ShowAboutWindow(p_open = nil) ⇒ Object

arg: p_open(bool*) ret: void



7643
7644
7645
# File 'lib/imgui.rb', line 7643

def self.ShowAboutWindow(p_open = nil)
  ImGui_ShowAboutWindow(p_open)
end

.ShowDebugLogWindow(p_open = nil) ⇒ Object

arg: p_open(bool*) ret: void



7637
7638
7639
# File 'lib/imgui.rb', line 7637

def self.ShowDebugLogWindow(p_open = nil)
  ImGui_ShowDebugLogWindow(p_open)
end

.ShowDemoWindow(p_open = nil) ⇒ Object

arg: p_open(bool*) ret: void



7625
7626
7627
# File 'lib/imgui.rb', line 7625

def self.ShowDemoWindow(p_open = nil)
  ImGui_ShowDemoWindow(p_open)
end

.ShowFontAtlas(atlas) ⇒ Object

arg: atlas(ImFontAtlas*) ret: void



11234
11235
11236
# File 'lib/imgui.rb', line 11234

def self.ShowFontAtlas(atlas)
  ImGui_ShowFontAtlas(atlas)
end

.ShowFontSelector(label) ⇒ Object

arg: label(const char*) ret: void



7661
7662
7663
# File 'lib/imgui.rb', line 7661

def self.ShowFontSelector(label)
  ImGui_ShowFontSelector(label)
end

.ShowIDStackToolWindow(*arg) ⇒ Object



11404
11405
11406
11407
11408
11409
11410
11411
11412
11413
# File 'lib/imgui.rb', line 11404

def self.ShowIDStackToolWindow(*arg)
  # arg: 
  # ret: void
  return ImGui_ShowIDStackToolWindow() if arg.empty?
  # arg: 0:p_open(bool*)
  # ret: void
  return ImGui_ShowIDStackToolWindowEx(nil) if arg.length == 0 && (true)
  return ImGui_ShowIDStackToolWindowEx(arg[0]) if arg.length == 1 && (arg[0].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::ShowIDStackToolWindow : No matching functions found (#{arg})")
end

.ShowMetricsWindow(p_open = nil) ⇒ Object

arg: p_open(bool*) ret: void



7631
7632
7633
# File 'lib/imgui.rb', line 7631

def self.ShowMetricsWindow(p_open = nil)
  ImGui_ShowMetricsWindow(p_open)
end

.ShowStyleEditor(ref = nil) ⇒ Object

arg: ref(ImGuiStyle*) ret: void



7649
7650
7651
# File 'lib/imgui.rb', line 7649

def self.ShowStyleEditor(ref = nil)
  ImGui_ShowStyleEditor(ref)
end

.ShowStyleSelector(label) ⇒ Object

arg: label(const char*) ret: bool



7655
7656
7657
# File 'lib/imgui.rb', line 7655

def self.ShowStyleSelector(label)
  ImGui_ShowStyleSelector(label)
end

.ShowUserGuideObject

ret: void



7666
7667
7668
# File 'lib/imgui.rb', line 7666

def self.ShowUserGuide()
  ImGui_ShowUserGuide()
end

.ShrinkWidths(items, count, width_excess, width_min) ⇒ Object

arg: items(ImGuiShrinkWidthItem*), count(int), width_excess(float), width_min(float) ret: void



9922
9923
9924
# File 'lib/imgui.rb', line 9922

def self.ShrinkWidths(items, count, width_excess, width_min)
  ImGui_ShrinkWidths(items, count, width_excess, width_min)
end

.ShutdownObject

ret: void



9613
9614
9615
# File 'lib/imgui.rb', line 9613

def self.Shutdown()
  ImGui_Shutdown()
end

.SliderAngle(*arg) ⇒ Object



12040
12041
12042
12043
12044
12045
12046
12047
12048
12049
12050
12051
12052
# File 'lib/imgui.rb', line 12040

def self.SliderAngle(*arg)
  # arg: 0:label(const char*), 1:v_rad(float*)
  # ret: bool
  return ImGui_SliderAngle(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  # arg: 0:label(const char*), 1:v_rad(float*), 2:v_degrees_min(float), 3:v_degrees_max(float), 4:format(const char*), 5:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_SliderAngleEx(arg[0], arg[1], arg[2], arg[3], arg[4], 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(String))
  return ImGui_SliderAngleEx(arg[0], arg[1], arg[2], arg[3], "%.0f deg", 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float))
  return ImGui_SliderAngleEx(arg[0], arg[1], arg[2], +360.0, "%.0f deg", 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float))
  return ImGui_SliderAngleEx(arg[0], arg[1], -360.0, +360.0, "%.0f deg", 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer))
  return ImGui_SliderAngleEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(String) && arg[5].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::SliderAngle : No matching functions found (#{arg})")
end

.SliderBehavior(bb, id, data_type, p_v, p_min, p_max, format, flags, out_grab_bb) ⇒ Object

arg: bb(ImRect), id(ImGuiID), data_type(ImGuiDataType), p_v(void*), p_min(const void*), p_max(const void*), format(const char*), flags(ImGuiSliderFlags), out_grab_bb(ImRect*) ret: bool



10972
10973
10974
# File 'lib/imgui.rb', line 10972

def self.SliderBehavior(bb, id, data_type, p_v, p_min, p_max, format, flags, out_grab_bb)
  ImGui_SliderBehavior(bb, id, data_type, p_v, p_min, p_max, format, flags, out_grab_bb)
end

.SliderFloat(*arg) ⇒ Object



11992
11993
11994
11995
11996
11997
11998
11999
12000
12001
12002
# File 'lib/imgui.rb', line 11992

def self.SliderFloat(*arg)
  # arg: 0:label(const char*), 1:v(float*), 2:v_min(float), 3:v_max(float)
  # ret: bool
  return ImGui_SliderFloat(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float))
  # arg: 0:label(const char*), 1:v(float*), 2:v_min(float), 3:v_max(float), 4:format(const char*), 5:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_SliderFloatEx(arg[0], arg[1], arg[2], arg[3], arg[4], 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(String))
  return ImGui_SliderFloatEx(arg[0], arg[1], arg[2], arg[3], "%.3f", 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float))
  return ImGui_SliderFloatEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(String) && arg[5].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::SliderFloat : No matching functions found (#{arg})")
end

.SliderFloat2(*arg) ⇒ Object



12004
12005
12006
12007
12008
12009
12010
12011
12012
12013
12014
# File 'lib/imgui.rb', line 12004

def self.SliderFloat2(*arg)
  # arg: 0:label(const char*), 1:v(float[2]), 2:v_min(float), 3:v_max(float)
  # ret: bool
  return ImGui_SliderFloat2(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float))
  # arg: 0:label(const char*), 1:v(float[2]), 2:v_min(float), 3:v_max(float), 4:format(const char*), 5:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_SliderFloat2Ex(arg[0], arg[1], arg[2], arg[3], arg[4], 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(String))
  return ImGui_SliderFloat2Ex(arg[0], arg[1], arg[2], arg[3], "%.3f", 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float))
  return ImGui_SliderFloat2Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(String) && arg[5].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::SliderFloat2 : No matching functions found (#{arg})")
end

.SliderFloat3(*arg) ⇒ Object



12016
12017
12018
12019
12020
12021
12022
12023
12024
12025
12026
# File 'lib/imgui.rb', line 12016

def self.SliderFloat3(*arg)
  # arg: 0:label(const char*), 1:v(float[3]), 2:v_min(float), 3:v_max(float)
  # ret: bool
  return ImGui_SliderFloat3(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float))
  # arg: 0:label(const char*), 1:v(float[3]), 2:v_min(float), 3:v_max(float), 4:format(const char*), 5:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_SliderFloat3Ex(arg[0], arg[1], arg[2], arg[3], arg[4], 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(String))
  return ImGui_SliderFloat3Ex(arg[0], arg[1], arg[2], arg[3], "%.3f", 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float))
  return ImGui_SliderFloat3Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(String) && arg[5].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::SliderFloat3 : No matching functions found (#{arg})")
end

.SliderFloat4(*arg) ⇒ Object



12028
12029
12030
12031
12032
12033
12034
12035
12036
12037
12038
# File 'lib/imgui.rb', line 12028

def self.SliderFloat4(*arg)
  # arg: 0:label(const char*), 1:v(float[4]), 2:v_min(float), 3:v_max(float)
  # ret: bool
  return ImGui_SliderFloat4(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float))
  # arg: 0:label(const char*), 1:v(float[4]), 2:v_min(float), 3:v_max(float), 4:format(const char*), 5:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_SliderFloat4Ex(arg[0], arg[1], arg[2], arg[3], arg[4], 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(String))
  return ImGui_SliderFloat4Ex(arg[0], arg[1], arg[2], arg[3], "%.3f", 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float))
  return ImGui_SliderFloat4Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Float) && arg[4].kind_of?(String) && arg[5].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::SliderFloat4 : No matching functions found (#{arg})")
end

.SliderInt(*arg) ⇒ Object



12054
12055
12056
12057
12058
12059
12060
12061
12062
12063
12064
# File 'lib/imgui.rb', line 12054

def self.SliderInt(*arg)
  # arg: 0:label(const char*), 1:v(int*), 2:v_min(int), 3:v_max(int)
  # ret: bool
  return ImGui_SliderInt(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer))
  # arg: 0:label(const char*), 1:v(int*), 2:v_min(int), 3:v_max(int), 4:format(const char*), 5:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_SliderIntEx(arg[0], arg[1], arg[2], arg[3], arg[4], 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(String))
  return ImGui_SliderIntEx(arg[0], arg[1], arg[2], arg[3], "%d", 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer))
  return ImGui_SliderIntEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(String) && arg[5].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::SliderInt : No matching functions found (#{arg})")
end

.SliderInt2(*arg) ⇒ Object



12066
12067
12068
12069
12070
12071
12072
12073
12074
12075
12076
# File 'lib/imgui.rb', line 12066

def self.SliderInt2(*arg)
  # arg: 0:label(const char*), 1:v(int[2]), 2:v_min(int), 3:v_max(int)
  # ret: bool
  return ImGui_SliderInt2(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer))
  # arg: 0:label(const char*), 1:v(int[2]), 2:v_min(int), 3:v_max(int), 4:format(const char*), 5:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_SliderInt2Ex(arg[0], arg[1], arg[2], arg[3], arg[4], 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(String))
  return ImGui_SliderInt2Ex(arg[0], arg[1], arg[2], arg[3], "%d", 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer))
  return ImGui_SliderInt2Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(String) && arg[5].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::SliderInt2 : No matching functions found (#{arg})")
end

.SliderInt3(*arg) ⇒ Object



12078
12079
12080
12081
12082
12083
12084
12085
12086
12087
12088
# File 'lib/imgui.rb', line 12078

def self.SliderInt3(*arg)
  # arg: 0:label(const char*), 1:v(int[3]), 2:v_min(int), 3:v_max(int)
  # ret: bool
  return ImGui_SliderInt3(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer))
  # arg: 0:label(const char*), 1:v(int[3]), 2:v_min(int), 3:v_max(int), 4:format(const char*), 5:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_SliderInt3Ex(arg[0], arg[1], arg[2], arg[3], arg[4], 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(String))
  return ImGui_SliderInt3Ex(arg[0], arg[1], arg[2], arg[3], "%d", 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer))
  return ImGui_SliderInt3Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(String) && arg[5].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::SliderInt3 : No matching functions found (#{arg})")
end

.SliderInt4(*arg) ⇒ Object



12090
12091
12092
12093
12094
12095
12096
12097
12098
12099
12100
# File 'lib/imgui.rb', line 12090

def self.SliderInt4(*arg)
  # arg: 0:label(const char*), 1:v(int[4]), 2:v_min(int), 3:v_max(int)
  # ret: bool
  return ImGui_SliderInt4(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer))
  # arg: 0:label(const char*), 1:v(int[4]), 2:v_min(int), 3:v_max(int), 4:format(const char*), 5:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_SliderInt4Ex(arg[0], arg[1], arg[2], arg[3], arg[4], 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(String))
  return ImGui_SliderInt4Ex(arg[0], arg[1], arg[2], arg[3], "%d", 0) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer))
  return ImGui_SliderInt4Ex(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(FFI::Pointer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(String) && arg[5].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::SliderInt4 : No matching functions found (#{arg})")
end

.SliderScalar(*arg) ⇒ Object



12102
12103
12104
12105
12106
12107
12108
12109
12110
12111
12112
# File 'lib/imgui.rb', line 12102

def self.SliderScalar(*arg)
  # arg: 0:label(const char*), 1:data_type(ImGuiDataType), 2:p_data(void*), 3:p_min(const void*), 4:p_max(const void*)
  # ret: bool
  return ImGui_SliderScalar(arg[0], arg[1], arg[2], arg[3], arg[4]) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(FFI::Pointer))
  # arg: 0:label(const char*), 1:data_type(ImGuiDataType), 2:p_data(void*), 3:p_min(const void*), 4:p_max(const void*), 5:format(const char*), 6:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_SliderScalarEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], 0) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(String))
  return ImGui_SliderScalarEx(arg[0], arg[1], arg[2], arg[3], arg[4], nil, 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(FFI::Pointer))
  return ImGui_SliderScalarEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6]) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(String) && arg[6].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::SliderScalar : No matching functions found (#{arg})")
end

.SliderScalarN(*arg) ⇒ Object



12114
12115
12116
12117
12118
12119
12120
12121
12122
12123
12124
# File 'lib/imgui.rb', line 12114

def self.SliderScalarN(*arg)
  # arg: 0:label(const char*), 1:data_type(ImGuiDataType), 2:p_data(void*), 3:components(int), 4:p_min(const void*), 5:p_max(const void*)
  # ret: bool
  return ImGui_SliderScalarN(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(FFI::Pointer))
  # arg: 0:label(const char*), 1:data_type(ImGuiDataType), 2:p_data(void*), 3:components(int), 4:p_min(const void*), 5:p_max(const void*), 6:format(const char*), 7:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_SliderScalarNEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], 0) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(FFI::Pointer) && arg[6].kind_of?(String))
  return ImGui_SliderScalarNEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], nil, 0) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(FFI::Pointer))
  return ImGui_SliderScalarNEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7]) if arg.length == 8 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(FFI::Pointer) && arg[6].kind_of?(String) && arg[7].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::SliderScalarN : No matching functions found (#{arg})")
end

.SmallButton(label) ⇒ Object

arg: label(const char*) ret: bool



8091
8092
8093
# File 'lib/imgui.rb', line 8091

def self.SmallButton(label)
  ImGui_SmallButton(label)
end

.SpacingObject

ret: void



7997
7998
7999
# File 'lib/imgui.rb', line 7997

def self.Spacing()
  ImGui_Spacing()
end

.SplitterBehavior(*arg) ⇒ Object



13323
13324
13325
13326
13327
13328
13329
13330
13331
13332
13333
13334
# File 'lib/imgui.rb', line 13323

def self.SplitterBehavior(*arg)
  # arg: 0:bb(ImRect), 1:id(ImGuiID), 2:axis(ImGuiAxis), 3:size1(float*), 4:size2(float*), 5:min_size1(float), 6:min_size2(float)
  # ret: bool
  return ImGui_SplitterBehavior(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6]) if arg.length == 7 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(Float) && arg[6].kind_of?(Float))
  # arg: 0:bb(ImRect), 1:id(ImGuiID), 2:axis(ImGuiAxis), 3:size1(float*), 4:size2(float*), 5:min_size1(float), 6:min_size2(float), 7:hover_extend(float), 8:hover_visibility_delay(float), 9:bg_col(ImU32)
  # ret: bool
  return ImGui_SplitterBehaviorEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8], 0) if arg.length == 9 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(Float) && arg[6].kind_of?(Float) && arg[7].kind_of?(Float) && arg[8].kind_of?(Float))
  return ImGui_SplitterBehaviorEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], 0.0, 0) if arg.length == 8 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(Float) && arg[6].kind_of?(Float) && arg[7].kind_of?(Float))
  return ImGui_SplitterBehaviorEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], 0.0, 0.0, 0) if arg.length == 7 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(Float) && arg[6].kind_of?(Float))
  return ImGui_SplitterBehaviorEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8], arg[9]) if arg.length == 10 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(Float) && arg[6].kind_of?(Float) && arg[7].kind_of?(Float) && arg[8].kind_of?(Float) && arg[9].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::SplitterBehavior : No matching functions found (#{arg})")
end

.StartMouseMovingWindow(window) ⇒ Object

arg: window(ImGuiWindow*) ret: void



9661
9662
9663
# File 'lib/imgui.rb', line 9661

def self.StartMouseMovingWindow(window)
  ImGui_StartMouseMovingWindow(window)
end

.StartMouseMovingWindowOrNode(window, node, undock) ⇒ Object

arg: window(ImGuiWindow*), node(ImGuiDockNode*), undock(bool) ret: void



9667
9668
9669
# File 'lib/imgui.rb', line 9667

def self.StartMouseMovingWindowOrNode(window, node, undock)
  ImGui_StartMouseMovingWindowOrNode(window, node, undock)
end

.StopMouseMovingWindowObject

ret: void



9672
9673
9674
# File 'lib/imgui.rb', line 9672

def self.StopMouseMovingWindow()
  ImGui_StopMouseMovingWindow()
end

.StyleColorsClassic(dst = nil) ⇒ Object

arg: dst(ImGuiStyle*) ret: void



7689
7690
7691
# File 'lib/imgui.rb', line 7689

def self.StyleColorsClassic(dst = nil)
  ImGui_StyleColorsClassic(dst)
end

.StyleColorsDark(dst = nil) ⇒ Object

arg: dst(ImGuiStyle*) ret: void



7677
7678
7679
# File 'lib/imgui.rb', line 7677

def self.StyleColorsDark(dst = nil)
  ImGui_StyleColorsDark(dst)
end

.StyleColorsLight(dst = nil) ⇒ Object

arg: dst(ImGuiStyle*) ret: void



7683
7684
7685
# File 'lib/imgui.rb', line 7683

def self.StyleColorsLight(dst = nil)
  ImGui_StyleColorsLight(dst)
end

.TabBarAddTab(tab_bar, tab_flags, window) ⇒ Object

arg: tab_bar(ImGuiTabBar*), tab_flags(ImGuiTabItemFlags), window(ImGuiWindow*) ret: void



10762
10763
10764
# File 'lib/imgui.rb', line 10762

def self.TabBarAddTab(tab_bar, tab_flags, window)
  ImGui_TabBarAddTab(tab_bar, tab_flags, window)
end

.TabBarCloseTab(tab_bar, tab) ⇒ Object

arg: tab_bar(ImGuiTabBar*), tab(ImGuiTabItem*) ret: void



10774
10775
10776
# File 'lib/imgui.rb', line 10774

def self.TabBarCloseTab(tab_bar, tab)
  ImGui_TabBarCloseTab(tab_bar, tab)
end

.TabBarFindByID(id) ⇒ Object

arg: id(ImGuiID) ret: pointer



10708
10709
10710
# File 'lib/imgui.rb', line 10708

def self.TabBarFindByID(id)
  ImGui_TabBarFindByID(id)
end

.TabBarFindMostRecentlySelectedTabForActiveWindow(tab_bar) ⇒ Object

arg: tab_bar(ImGuiTabBar*) ret: pointer



10738
10739
10740
# File 'lib/imgui.rb', line 10738

def self.TabBarFindMostRecentlySelectedTabForActiveWindow(tab_bar)
  ImGui_TabBarFindMostRecentlySelectedTabForActiveWindow(tab_bar)
end

.TabBarFindTabByID(tab_bar, tab_id) ⇒ Object

arg: tab_bar(ImGuiTabBar*), tab_id(ImGuiID) ret: pointer



10726
10727
10728
# File 'lib/imgui.rb', line 10726

def self.TabBarFindTabByID(tab_bar, tab_id)
  ImGui_TabBarFindTabByID(tab_bar, tab_id)
end

.TabBarFindTabByOrder(tab_bar, order) ⇒ Object

arg: tab_bar(ImGuiTabBar*), order(int) ret: pointer



10732
10733
10734
# File 'lib/imgui.rb', line 10732

def self.TabBarFindTabByOrder(tab_bar, order)
  ImGui_TabBarFindTabByOrder(tab_bar, order)
end

.TabBarGetCurrentTab(tab_bar) ⇒ Object

arg: tab_bar(ImGuiTabBar*) ret: pointer



10744
10745
10746
# File 'lib/imgui.rb', line 10744

def self.TabBarGetCurrentTab(tab_bar)
  ImGui_TabBarGetCurrentTab(tab_bar)
end

.TabBarGetTabName(tab_bar, tab) ⇒ Object

arg: tab_bar(ImGuiTabBar*), tab(ImGuiTabItem*) ret: pointer



10756
10757
10758
# File 'lib/imgui.rb', line 10756

def self.TabBarGetTabName(tab_bar, tab)
  ImGui_TabBarGetTabName(tab_bar, tab)
end

.TabBarGetTabOrder(tab_bar, tab) ⇒ Object

arg: tab_bar(ImGuiTabBar*), tab(ImGuiTabItem*) ret: int



10750
10751
10752
# File 'lib/imgui.rb', line 10750

def self.TabBarGetTabOrder(tab_bar, tab)
  ImGui_TabBarGetTabOrder(tab_bar, tab)
end

.TabBarProcessReorder(tab_bar) ⇒ Object

arg: tab_bar(ImGuiTabBar*) ret: bool



10792
10793
10794
# File 'lib/imgui.rb', line 10792

def self.TabBarProcessReorder(tab_bar)
  ImGui_TabBarProcessReorder(tab_bar)
end

.TabBarQueueFocus(*arg) ⇒ Object



13141
13142
13143
13144
13145
13146
13147
13148
13149
# File 'lib/imgui.rb', line 13141

def self.TabBarQueueFocus(*arg)
  # arg: 0:tab_bar(ImGuiTabBar*), 1:tab(ImGuiTabItem*)
  # ret: void
  return ImGui_TabBarQueueFocus(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(FFI::Pointer))
  # arg: 0:tab_bar(ImGuiTabBar*), 1:tab_name(const char*)
  # ret: void
  return ImGui_TabBarQueueFocusStr(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(String))
  $stderr.puts("[Warning] ImGui::TabBarQueueFocus : No matching functions found (#{arg})")
end

.TabBarQueueReorder(tab_bar, tab, offset) ⇒ Object

arg: tab_bar(ImGuiTabBar*), tab(ImGuiTabItem*), offset(int) ret: void



10780
10781
10782
# File 'lib/imgui.rb', line 10780

def self.TabBarQueueReorder(tab_bar, tab, offset)
  ImGui_TabBarQueueReorder(tab_bar, tab, offset)
end

.TabBarQueueReorderFromMousePos(tab_bar, tab, mouse_pos) ⇒ Object

arg: tab_bar(ImGuiTabBar*), tab(ImGuiTabItem*), mouse_pos(ImVec2) ret: void



10786
10787
10788
# File 'lib/imgui.rb', line 10786

def self.TabBarQueueReorderFromMousePos(tab_bar, tab, mouse_pos)
  ImGui_TabBarQueueReorderFromMousePos(tab_bar, tab, mouse_pos)
end

.TabBarRemove(tab_bar) ⇒ Object

arg: tab_bar(ImGuiTabBar*) ret: void



10714
10715
10716
# File 'lib/imgui.rb', line 10714

def self.TabBarRemove(tab_bar)
  ImGui_TabBarRemove(tab_bar)
end

.TabBarRemoveTab(tab_bar, tab_id) ⇒ Object

arg: tab_bar(ImGuiTabBar*), tab_id(ImGuiID) ret: void



10768
10769
10770
# File 'lib/imgui.rb', line 10768

def self.TabBarRemoveTab(tab_bar, tab_id)
  ImGui_TabBarRemoveTab(tab_bar, tab_id)
end

.TabItemBackground(draw_list, bb, flags, col) ⇒ Object

arg: draw_list(ImDrawList*), bb(ImRect), flags(ImGuiTabItemFlags), col(ImU32) ret: void



10810
10811
10812
# File 'lib/imgui.rb', line 10810

def self.TabItemBackground(draw_list, bb, flags, col)
  ImGui_TabItemBackground(draw_list, bb, flags, col)
end

.TabItemButton(label, flags = 0) ⇒ Object

arg: label(const char*), flags(ImGuiTabItemFlags) ret: bool



8462
8463
8464
# File 'lib/imgui.rb', line 8462

def self.TabItemButton(label, flags = 0)
  ImGui_TabItemButton(label, flags)
end

.TabItemCalcSize(*arg) ⇒ Object



13151
13152
13153
13154
13155
13156
13157
13158
13159
# File 'lib/imgui.rb', line 13151

def self.TabItemCalcSize(*arg)
  # arg: 0:label(const char*), 1:has_close_button_or_unsaved_marker(bool)
  # ret: ImVec2.by_value
  return ImGui_TabItemCalcSizeStr(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && (arg[1].is_a?(TrueClass) || arg[1].is_a?(FalseClass)))
  # arg: 0:window(ImGuiWindow*)
  # ret: ImVec2.by_value
  return ImGui_TabItemCalcSize(arg[0]) if arg.length == 1 && (arg[0].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::TabItemCalcSize : No matching functions found (#{arg})")
end

.TabItemEx(tab_bar, label, p_open, flags, docked_window) ⇒ Object

arg: tab_bar(ImGuiTabBar*), label(const char*), p_open(bool*), flags(ImGuiTabItemFlags), docked_window(ImGuiWindow*) ret: bool



10798
10799
10800
# File 'lib/imgui.rb', line 10798

def self.TabItemEx(tab_bar, label, p_open, flags, docked_window)
  ImGui_TabItemEx(tab_bar, label, p_open, flags, docked_window)
end

.TabItemLabelAndCloseButton(draw_list, bb, flags, frame_padding, label, tab_id, close_button_id, is_contents_visible, out_just_closed, out_text_clipped) ⇒ Object

arg: draw_list(ImDrawList*), bb(ImRect), flags(ImGuiTabItemFlags), frame_padding(ImVec2), label(const char*), tab_id(ImGuiID), close_button_id(ImGuiID), is_contents_visible(bool), out_just_closed(bool*), out_text_clipped(bool*) ret: void



10816
10817
10818
# File 'lib/imgui.rb', line 10816

def self.TabItemLabelAndCloseButton(draw_list, bb, flags, frame_padding, label, tab_id, close_button_id, is_contents_visible, out_just_closed, out_text_clipped)
  ImGui_TabItemLabelAndCloseButton(draw_list, bb, flags, frame_padding, label, tab_id, close_button_id, is_contents_visible, out_just_closed, out_text_clipped)
end

.TabItemSpacing(str_id, flags, width) ⇒ Object

arg: str_id(const char*), flags(ImGuiTabItemFlags), width(float) ret: void



10804
10805
10806
# File 'lib/imgui.rb', line 10804

def self.TabItemSpacing(str_id, flags, width)
  ImGui_TabItemSpacing(str_id, flags, width)
end

.TableAngledHeadersRowObject

ret: void



8352
8353
8354
# File 'lib/imgui.rb', line 8352

def self.TableAngledHeadersRow()
  ImGui_TableAngledHeadersRow()
end

.TableAngledHeadersRowEx(row_id, angle, max_label_width, data, data_count) ⇒ Object

arg: row_id(ImGuiID), angle(float), max_label_width(float), data(const ImGuiTableHeaderData*), data_count(int) ret: void



9040
9041
9042
# File 'lib/imgui.rb', line 9040

def self.TableAngledHeadersRowEx(row_id, angle, max_label_width, data, data_count)
  ImGui_TableAngledHeadersRowEx(row_id, angle, max_label_width, data, data_count)
end

.TableApplyExternalUnclipRect(table, rect) ⇒ Object

arg: table(ImGuiTable*), rect(ImRect*) ret: void



9099
9100
9101
# File 'lib/imgui.rb', line 9099

def self.TableApplyExternalUnclipRect(table, rect)
  ImGui_TableApplyExternalUnclipRect(table, rect)
end

.TableApplyQueuedRequests(table) ⇒ Object

arg: table(ImGuiTable*) ret: void



9063
9064
9065
# File 'lib/imgui.rb', line 9063

def self.TableApplyQueuedRequests(table)
  ImGui_TableApplyQueuedRequests(table)
end

.TableBeginCell(table, column_n) ⇒ Object

arg: table(ImGuiTable*), column_n(int) ret: void



9195
9196
9197
# File 'lib/imgui.rb', line 9195

def self.TableBeginCell(table, column_n)
  ImGui_TableBeginCell(table, column_n)
end

.TableBeginContextMenuPopup(table) ⇒ Object

arg: table(ImGuiTable*) ret: bool



9117
9118
9119
# File 'lib/imgui.rb', line 9117

def self.TableBeginContextMenuPopup(table)
  ImGui_TableBeginContextMenuPopup(table)
end

.TableBeginInitMemory(table, columns_count) ⇒ Object

arg: table(ImGuiTable*), columns_count(int) ret: void



9057
9058
9059
# File 'lib/imgui.rb', line 9057

def self.TableBeginInitMemory(table, columns_count)
  ImGui_TableBeginInitMemory(table, columns_count)
end

.TableBeginRow(table) ⇒ Object

arg: table(ImGuiTable*) ret: void



9183
9184
9185
# File 'lib/imgui.rb', line 9183

def self.TableBeginRow(table)
  ImGui_TableBeginRow(table)
end

.TableCalcMaxColumnWidth(table, column_n) ⇒ Object

arg: table(const ImGuiTable*), column_n(int) ret: float



9213
9214
9215
# File 'lib/imgui.rb', line 9213

def self.TableCalcMaxColumnWidth(table, column_n)
  ImGui_TableCalcMaxColumnWidth(table, column_n)
end

.TableDrawBorders(table) ⇒ Object

arg: table(ImGuiTable*) ret: void



9105
9106
9107
# File 'lib/imgui.rb', line 9105

def self.TableDrawBorders(table)
  ImGui_TableDrawBorders(table)
end

.TableDrawDefaultContextMenu(table, flags_for_section_to_display) ⇒ Object

arg: table(ImGuiTable*), flags_for_section_to_display(ImGuiTableFlags) ret: void



9111
9112
9113
# File 'lib/imgui.rb', line 9111

def self.TableDrawDefaultContextMenu(table, flags_for_section_to_display)
  ImGui_TableDrawDefaultContextMenu(table, flags_for_section_to_display)
end

.TableEndCell(table) ⇒ Object

arg: table(ImGuiTable*) ret: void



9201
9202
9203
# File 'lib/imgui.rb', line 9201

def self.TableEndCell(table)
  ImGui_TableEndCell(table)
end

.TableEndRow(table) ⇒ Object

arg: table(ImGuiTable*) ret: void



9189
9190
9191
# File 'lib/imgui.rb', line 9189

def self.TableEndRow(table)
  ImGui_TableEndRow(table)
end

.TableFindByID(id) ⇒ Object

arg: id(ImGuiID) ret: pointer



9051
9052
9053
# File 'lib/imgui.rb', line 9051

def self.TableFindByID(id)
  ImGui_TableFindByID(id)
end

.TableFixColumnSortDirection(table, column) ⇒ Object

arg: table(ImGuiTable*), column(ImGuiTableColumn*) ret: void



9171
9172
9173
# File 'lib/imgui.rb', line 9171

def self.TableFixColumnSortDirection(table, column)
  ImGui_TableFixColumnSortDirection(table, column)
end

.TableFixDisplayOrder(table) ⇒ Object

arg: table(ImGuiTable*) ret: void



9141
9142
9143
# File 'lib/imgui.rb', line 9141

def self.TableFixDisplayOrder(table)
  ImGui_TableFixDisplayOrder(table)
end

.TableGcCompactSettingsObject

ret: void



9248
9249
9250
# File 'lib/imgui.rb', line 9248

def self.TableGcCompactSettings()
  ImGui_TableGcCompactSettings()
end

.TableGcCompactTransientBuffers(*arg) ⇒ Object



12936
12937
12938
12939
12940
12941
12942
12943
12944
# File 'lib/imgui.rb', line 12936

def self.TableGcCompactTransientBuffers(*arg)
  # arg: 0:table(ImGuiTable*)
  # ret: void
  return ImGui_TableGcCompactTransientBuffers(arg[0]) if arg.length == 1 && (arg[0].kind_of?(FFI::Pointer))
  # arg: 0:table(ImGuiTableTempData*)
  # ret: void
  return ImGui_TableGcCompactTransientBuffersImGuiTableTempDataPtr(arg[0]) if arg.length == 1 && (arg[0].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::TableGcCompactTransientBuffers : No matching functions found (#{arg})")
end

.TableGetBoundSettings(table) ⇒ Object

arg: table(ImGuiTable*) ret: pointer



9284
9285
9286
# File 'lib/imgui.rb', line 9284

def self.TableGetBoundSettings(table)
  ImGui_TableGetBoundSettings(table)
end

.TableGetCellBgRect(table, column_n) ⇒ Object

arg: table(const ImGuiTable*), column_n(int) ret: ImRect.by_value



9207
9208
9209
# File 'lib/imgui.rb', line 9207

def self.TableGetCellBgRect(table, column_n)
  ImGui_TableGetCellBgRect(table, column_n)
end

.TableGetColumnCountObject

ret: int



8362
8363
8364
# File 'lib/imgui.rb', line 8362

def self.TableGetColumnCount()
  ImGui_TableGetColumnCount()
end

.TableGetColumnFlags(column_n = -1)) ⇒ Object

arg: column_n(int) ret: int



8378
8379
8380
# File 'lib/imgui.rb', line 8378

def self.TableGetColumnFlags(column_n = -1)
  ImGui_TableGetColumnFlags(column_n)
end

.TableGetColumnIndexObject

ret: int



8367
8368
8369
# File 'lib/imgui.rb', line 8367

def self.TableGetColumnIndex()
  ImGui_TableGetColumnIndex()
end

.TableGetColumnName(*arg) ⇒ Object



12601
12602
12603
12604
12605
12606
12607
12608
12609
12610
# File 'lib/imgui.rb', line 12601

def self.TableGetColumnName(*arg)
  # arg: 0:column_n(int)
  # ret: pointer
  return ImGui_TableGetColumnName(-1) if arg.length == 0 && (true)
  return ImGui_TableGetColumnName(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  # arg: 0:table(const ImGuiTable*), 1:column_n(int)
  # ret: pointer
  return ImGui_TableGetColumnNameImGuiTablePtr(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::TableGetColumnName : No matching functions found (#{arg})")
end

.TableGetColumnNextSortDirection(column) ⇒ Object

arg: column(ImGuiTableColumn*) ret: uchar



9165
9166
9167
# File 'lib/imgui.rb', line 9165

def self.TableGetColumnNextSortDirection(column)
  ImGui_TableGetColumnNextSortDirection(column)
end

.TableGetColumnResizeID(*arg) ⇒ Object



12925
12926
12927
12928
12929
12930
12931
12932
12933
12934
# File 'lib/imgui.rb', line 12925

def self.TableGetColumnResizeID(*arg)
  # arg: 0:table(ImGuiTable*), 1:column_n(int)
  # ret: uint
  return ImGui_TableGetColumnResizeID(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(Integer))
  # arg: 0:table(ImGuiTable*), 1:column_n(int), 2:instance_no(int)
  # ret: uint
  return ImGui_TableGetColumnResizeIDEx(arg[0], arg[1], 0) if arg.length == 2 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(Integer))
  return ImGui_TableGetColumnResizeIDEx(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::TableGetColumnResizeID : No matching functions found (#{arg})")
end

.TableGetColumnWidthAuto(table, column) ⇒ Object

arg: table(ImGuiTable*), column(ImGuiTableColumn*) ret: float



9177
9178
9179
# File 'lib/imgui.rb', line 9177

def self.TableGetColumnWidthAuto(table, column)
  ImGui_TableGetColumnWidthAuto(table, column)
end

.TableGetHeaderAngledMaxLabelWidthObject

ret: float



9013
9014
9015
# File 'lib/imgui.rb', line 9013

def self.TableGetHeaderAngledMaxLabelWidth()
  ImGui_TableGetHeaderAngledMaxLabelWidth()
end

.TableGetHeaderRowHeightObject

ret: float



9008
9009
9010
# File 'lib/imgui.rb', line 9008

def self.TableGetHeaderRowHeight()
  ImGui_TableGetHeaderRowHeight()
end

.TableGetHoveredColumnObject

ret: int



8389
8390
8391
# File 'lib/imgui.rb', line 8389

def self.TableGetHoveredColumn()
  ImGui_TableGetHoveredColumn()
end

.TableGetHoveredRowObject

ret: int



9003
9004
9005
# File 'lib/imgui.rb', line 9003

def self.TableGetHoveredRow()
  ImGui_TableGetHoveredRow()
end

.TableGetInstanceData(table, instance_no) ⇒ Object

arg: table(ImGuiTable*), instance_no(int) ret: pointer



9129
9130
9131
# File 'lib/imgui.rb', line 9129

def self.TableGetInstanceData(table, instance_no)
  ImGui_TableGetInstanceData(table, instance_no)
end

.TableGetInstanceID(table, instance_no) ⇒ Object

arg: table(ImGuiTable*), instance_no(int) ret: uint



9135
9136
9137
# File 'lib/imgui.rb', line 9135

def self.TableGetInstanceID(table, instance_no)
  ImGui_TableGetInstanceID(table, instance_no)
end

.TableGetRowIndexObject

ret: int



8372
8373
8374
# File 'lib/imgui.rb', line 8372

def self.TableGetRowIndex()
  ImGui_TableGetRowIndex()
end

.TableGetSortSpecsObject

ret: pointer



8357
8358
8359
# File 'lib/imgui.rb', line 8357

def self.TableGetSortSpecs()
  ImGui_TableGetSortSpecs()
end

.TableHeader(label) ⇒ Object

arg: label(const char*) ret: void



8342
8343
8344
# File 'lib/imgui.rb', line 8342

def self.TableHeader(label)
  ImGui_TableHeader(label)
end

.TableHeadersRowObject

ret: void



8347
8348
8349
# File 'lib/imgui.rb', line 8347

def self.TableHeadersRow()
  ImGui_TableHeadersRow()
end

.TableInitColumnDefaults(table, column, init_mask) ⇒ Object

arg: table(ImGuiTable*), column(ImGuiTableColumn*), init_mask(ImGuiTableColumnFlags) ret: void



9159
9160
9161
# File 'lib/imgui.rb', line 9159

def self.TableInitColumnDefaults(table, column, init_mask)
  ImGui_TableInitColumnDefaults(table, column, init_mask)
end

.TableLoadSettings(table) ⇒ Object

arg: table(ImGuiTable*) ret: void



9254
9255
9256
# File 'lib/imgui.rb', line 9254

def self.TableLoadSettings(table)
  ImGui_TableLoadSettings(table)
end

.TableLoadSettingsForColumn(column, column_settings, load_flags) ⇒ Object

arg: column(ImGuiTableColumn*), column_settings(ImGuiTableColumnSettings*), load_flags(ImGuiTableFlags) ret: void



9266
9267
9268
# File 'lib/imgui.rb', line 9266

def self.TableLoadSettingsForColumn(column, column_settings, load_flags)
  ImGui_TableLoadSettingsForColumn(column, column_settings, load_flags)
end

.TableLoadSettingsForColumns(table) ⇒ Object

arg: table(ImGuiTable*) ret: void



9260
9261
9262
# File 'lib/imgui.rb', line 9260

def self.TableLoadSettingsForColumns(table)
  ImGui_TableLoadSettingsForColumns(table)
end

.TableMergeDrawChannels(table) ⇒ Object

arg: table(ImGuiTable*) ret: void



9123
9124
9125
# File 'lib/imgui.rb', line 9123

def self.TableMergeDrawChannels(table)
  ImGui_TableMergeDrawChannels(table)
end

.TableNextColumnObject

ret: bool



8324
8325
8326
# File 'lib/imgui.rb', line 8324

def self.TableNextColumn()
  ImGui_TableNextColumn()
end

.TableNextRow(*arg) ⇒ Object



12575
12576
12577
12578
12579
12580
12581
12582
12583
12584
12585
# File 'lib/imgui.rb', line 12575

def self.TableNextRow(*arg)
  # arg: 
  # ret: void
  return ImGui_TableNextRow() if arg.empty?
  # arg: 0:row_flags(ImGuiTableRowFlags), 1:min_row_height(float)
  # ret: void
  return ImGui_TableNextRowEx(arg[0], 0.0) if arg.length == 1 && (arg[0].kind_of?(Integer))
  return ImGui_TableNextRowEx(0, 0.0) if arg.length == 0 && (true)
  return ImGui_TableNextRowEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Float))
  $stderr.puts("[Warning] ImGui::TableNextRow : No matching functions found (#{arg})")
end

.TableOpenContextMenu(*arg) ⇒ Object



12900
12901
12902
12903
12904
12905
12906
12907
12908
12909
# File 'lib/imgui.rb', line 12900

def self.TableOpenContextMenu(*arg)
  # arg: 
  # ret: void
  return ImGui_TableOpenContextMenu() if arg.empty?
  # arg: 0:column_n(int)
  # ret: void
  return ImGui_TableOpenContextMenuEx(-1) if arg.length == 0 && (true)
  return ImGui_TableOpenContextMenuEx(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::TableOpenContextMenu : No matching functions found (#{arg})")
end

.TablePopBackgroundChannelObject

ret: void



9023
9024
9025
# File 'lib/imgui.rb', line 9023

def self.TablePopBackgroundChannel()
  ImGui_TablePopBackgroundChannel()
end

.TablePopColumnChannelObject

ret: void



9034
9035
9036
# File 'lib/imgui.rb', line 9034

def self.TablePopColumnChannel()
  ImGui_TablePopColumnChannel()
end

.TablePushBackgroundChannelObject

ret: void



9018
9019
9020
# File 'lib/imgui.rb', line 9018

def self.TablePushBackgroundChannel()
  ImGui_TablePushBackgroundChannel()
end

.TablePushColumnChannel(column_n) ⇒ Object

arg: column_n(int) ret: void



9029
9030
9031
# File 'lib/imgui.rb', line 9029

def self.TablePushColumnChannel(column_n)
  ImGui_TablePushColumnChannel(column_n)
end

.TableQueueSetColumnDisplayOrder(table, column_n, dst_order) ⇒ Object

arg: table(ImGuiTable*), column_n(int), dst_order(int) ret: void



9237
9238
9239
# File 'lib/imgui.rb', line 9237

def self.TableQueueSetColumnDisplayOrder(table, column_n, dst_order)
  ImGui_TableQueueSetColumnDisplayOrder(table, column_n, dst_order)
end

.TableReconcileColumns(table) ⇒ Object

arg: table(ImGuiTable*) ret: void



9075
9076
9077
# File 'lib/imgui.rb', line 9075

def self.TableReconcileColumns(table)
  ImGui_TableReconcileColumns(table)
end

.TableRemove(table) ⇒ Object

arg: table(ImGuiTable*) ret: void



9243
9244
9245
# File 'lib/imgui.rb', line 9243

def self.TableRemove(table)
  ImGui_TableRemove(table)
end

.TableResetSettings(table) ⇒ Object

arg: table(ImGuiTable*) ret: void



9278
9279
9280
# File 'lib/imgui.rb', line 9278

def self.TableResetSettings(table)
  ImGui_TableResetSettings(table)
end

.TableSaveSettings(table) ⇒ Object

arg: table(ImGuiTable*) ret: void



9272
9273
9274
# File 'lib/imgui.rb', line 9272

def self.TableSaveSettings(table)
  ImGui_TableSaveSettings(table)
end

.TableSetBgColor(target, color, column_n = -1)) ⇒ Object

arg: target(ImGuiTableBgTarget), color(ImU32), column_n(int) ret: void



8395
8396
8397
# File 'lib/imgui.rb', line 8395

def self.TableSetBgColor(target, color, column_n = -1)
  ImGui_TableSetBgColor(target, color, column_n)
end

.TableSetColumnDisplayOrder(table, column_n, dst_order) ⇒ Object

arg: table(ImGuiTable*), column_n(int), dst_order(int) ret: void



9231
9232
9233
# File 'lib/imgui.rb', line 9231

def self.TableSetColumnDisplayOrder(table, column_n, dst_order)
  ImGui_TableSetColumnDisplayOrder(table, column_n, dst_order)
end

.TableSetColumnEnabled(column_n, v) ⇒ Object

arg: column_n(int), v(bool) ret: void



8384
8385
8386
# File 'lib/imgui.rb', line 8384

def self.TableSetColumnEnabled(column_n, v)
  ImGui_TableSetColumnEnabled(column_n, v)
end

.TableSetColumnIndex(column_n) ⇒ Object

arg: column_n(int) ret: bool



8330
8331
8332
# File 'lib/imgui.rb', line 8330

def self.TableSetColumnIndex(column_n)
  ImGui_TableSetColumnIndex(column_n)
end

.TableSetColumnSortDirection(column_n, sort_direction, append_to_sort_specs) ⇒ Object

arg: column_n(int), sort_direction(ImGuiSortDirection), append_to_sort_specs(bool) ret: void



8998
8999
9000
# File 'lib/imgui.rb', line 8998

def self.TableSetColumnSortDirection(column_n, sort_direction, append_to_sort_specs)
  ImGui_TableSetColumnSortDirection(column_n, sort_direction, append_to_sort_specs)
end

.TableSetColumnWidth(column_n, width) ⇒ Object

arg: column_n(int), width(float) ret: void



8992
8993
8994
# File 'lib/imgui.rb', line 8992

def self.TableSetColumnWidth(column_n, width)
  ImGui_TableSetColumnWidth(column_n, width)
end

.TableSetColumnWidthAutoAll(table) ⇒ Object

arg: table(ImGuiTable*) ret: void



9225
9226
9227
# File 'lib/imgui.rb', line 9225

def self.TableSetColumnWidthAutoAll(table)
  ImGui_TableSetColumnWidthAutoAll(table)
end

.TableSetColumnWidthAutoSingle(table, column_n) ⇒ Object

arg: table(ImGuiTable*), column_n(int) ret: void



9219
9220
9221
# File 'lib/imgui.rb', line 9219

def self.TableSetColumnWidthAutoSingle(table, column_n)
  ImGui_TableSetColumnWidthAutoSingle(table, column_n)
end

.TableSettingsAddSettingsHandlerObject

ret: void



9289
9290
9291
# File 'lib/imgui.rb', line 9289

def self.TableSettingsAddSettingsHandler()
  ImGui_TableSettingsAddSettingsHandler()
end

.TableSettingsCreate(id, columns_count) ⇒ Object

arg: id(ImGuiID), columns_count(int) ret: pointer



9295
9296
9297
# File 'lib/imgui.rb', line 9295

def self.TableSettingsCreate(id, columns_count)
  ImGui_TableSettingsCreate(id, columns_count)
end

.TableSettingsFindByID(id) ⇒ Object

arg: id(ImGuiID) ret: pointer



9301
9302
9303
# File 'lib/imgui.rb', line 9301

def self.TableSettingsFindByID(id)
  ImGui_TableSettingsFindByID(id)
end

.TableSetupColumn(*arg) ⇒ Object



12587
12588
12589
12590
12591
12592
12593
12594
12595
12596
12597
12598
12599
# File 'lib/imgui.rb', line 12587

def self.TableSetupColumn(*arg)
  # arg: 0:label(const char*), 1:flags(ImGuiTableColumnFlags)
  # ret: void
  return ImGui_TableSetupColumn(arg[0], 0) if arg.length == 1 && (arg[0].kind_of?(String))
  return ImGui_TableSetupColumn(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer))
  # arg: 0:label(const char*), 1:flags(ImGuiTableColumnFlags), 2:init_width_or_weight(float), 3:user_data(ImGuiID)
  # ret: void
  return ImGui_TableSetupColumnEx(arg[0], arg[1], arg[2], 0) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Float))
  return ImGui_TableSetupColumnEx(arg[0], arg[1], 0.0, 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer))
  return ImGui_TableSetupColumnEx(arg[0], 0, 0.0, 0) if arg.length == 1 && (arg[0].kind_of?(String))
  return ImGui_TableSetupColumnEx(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(Float) && arg[3].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::TableSetupColumn : No matching functions found (#{arg})")
end

.TableSetupDrawChannels(table) ⇒ Object

arg: table(ImGuiTable*) ret: void



9069
9070
9071
# File 'lib/imgui.rb', line 9069

def self.TableSetupDrawChannels(table)
  ImGui_TableSetupDrawChannels(table)
end

.TableSetupScrollFreeze(cols, rows) ⇒ Object

arg: cols(int), rows(int) ret: void



8336
8337
8338
# File 'lib/imgui.rb', line 8336

def self.TableSetupScrollFreeze(cols, rows)
  ImGui_TableSetupScrollFreeze(cols, rows)
end

.TableSortSpecsBuild(table) ⇒ Object

arg: table(ImGuiTable*) ret: void



9153
9154
9155
# File 'lib/imgui.rb', line 9153

def self.TableSortSpecsBuild(table)
  ImGui_TableSortSpecsBuild(table)
end

.TableSortSpecsSanitize(table) ⇒ Object

arg: table(ImGuiTable*) ret: void



9147
9148
9149
# File 'lib/imgui.rb', line 9147

def self.TableSortSpecsSanitize(table)
  ImGui_TableSortSpecsSanitize(table)
end

.TableUpdateBorders(table) ⇒ Object

arg: table(ImGuiTable*) ret: void



9087
9088
9089
# File 'lib/imgui.rb', line 9087

def self.TableUpdateBorders(table)
  ImGui_TableUpdateBorders(table)
end

.TableUpdateColumnsWeightFromWidth(table) ⇒ Object

arg: table(ImGuiTable*) ret: void



9093
9094
9095
# File 'lib/imgui.rb', line 9093

def self.TableUpdateColumnsWeightFromWidth(table)
  ImGui_TableUpdateColumnsWeightFromWidth(table)
end

.TableUpdateLayout(table) ⇒ Object

arg: table(ImGuiTable*) ret: void



9081
9082
9083
# File 'lib/imgui.rb', line 9081

def self.TableUpdateLayout(table)
  ImGui_TableUpdateLayout(table)
end

.TeleportMousePos(pos) ⇒ Object

arg: pos(ImVec2) ret: void



10291
10292
10293
# File 'lib/imgui.rb', line 10291

def self.TeleportMousePos(pos)
  ImGui_TeleportMousePos(pos)
end

.TempInputIsActive(id) ⇒ Object

arg: id(ImGuiID) ret: bool



11050
11051
11052
# File 'lib/imgui.rb', line 11050

def self.TempInputIsActive(id)
  ImGui_TempInputIsActive(id)
end

.TempInputScalar(*arg) ⇒ Object



13384
13385
13386
13387
13388
13389
13390
13391
13392
13393
13394
# File 'lib/imgui.rb', line 13384

def self.TempInputScalar(*arg)
  # arg: 0:bb(ImRect), 1:id(ImGuiID), 2:label(const char*), 3:data_type(ImGuiDataType), 4:p_data(void*), 5:format(const char*)
  # ret: bool
  return ImGui_TempInputScalar(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer) && arg[2].kind_of?(String) && arg[3].kind_of?(Integer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(String))
  # arg: 0:bb(ImRect), 1:id(ImGuiID), 2:label(const char*), 3:data_type(ImGuiDataType), 4:p_data(void*), 5:format(const char*), 6:p_clamp_min(const void*), 7:p_clamp_max(const void*)
  # ret: bool
  return ImGui_TempInputScalarEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], nil) if arg.length == 7 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer) && arg[2].kind_of?(String) && arg[3].kind_of?(Integer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(String) && arg[6].kind_of?(FFI::Pointer))
  return ImGui_TempInputScalarEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], nil, nil) if arg.length == 6 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer) && arg[2].kind_of?(String) && arg[3].kind_of?(Integer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(String))
  return ImGui_TempInputScalarEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7]) if arg.length == 8 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer) && arg[2].kind_of?(String) && arg[3].kind_of?(Integer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(String) && arg[6].kind_of?(FFI::Pointer) && arg[7].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::TempInputScalar : No matching functions found (#{arg})")
end

.TempInputText(*arg) ⇒ Object



13370
13371
13372
13373
13374
13375
13376
13377
13378
13379
13380
13381
13382
# File 'lib/imgui.rb', line 13370

def self.TempInputText(*arg)
  # arg: 0:bb(ImRect), 1:id(ImGuiID), 2:label(const char*), 3:buf(char*), 4:buf_size(size_t), 5:flags(ImGuiInputTextFlags)
  # ret: bool
  return ImGui_TempInputText(arg[0], arg[1], arg[2], arg[3], arg[4], 0) if arg.length == 5 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer) && arg[2].kind_of?(String) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(Integer))
  return ImGui_TempInputText(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer) && arg[2].kind_of?(String) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(Integer))
  # arg: 0:bb(ImRect), 1:id(ImGuiID), 2:label(const char*), 3:buf(char*), 4:buf_size(size_t), 5:flags(ImGuiInputTextFlags), 6:callback(ImGuiInputTextCallback), 7:user_data(void*)
  # ret: bool
  return ImGui_TempInputTextEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], nil) if arg.length == 7 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer) && arg[2].kind_of?(String) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(Integer) && (arg[6].respond_to?(:call) || arg[6].kind_of?(FFI::Pointer)))
  return ImGui_TempInputTextEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], nil, nil) if arg.length == 6 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer) && arg[2].kind_of?(String) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(Integer))
  return ImGui_TempInputTextEx(arg[0], arg[1], arg[2], arg[3], arg[4], 0, nil, nil) if arg.length == 5 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer) && arg[2].kind_of?(String) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(Integer))
  return ImGui_TempInputTextEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7]) if arg.length == 8 && (arg[0].kind_of?(ImRect) && arg[1].kind_of?(Integer) && arg[2].kind_of?(String) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(Integer) && (arg[6].respond_to?(:call) || arg[6].kind_of?(FFI::Pointer)) && arg[7].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::TempInputText : No matching functions found (#{arg})")
end

.TestKeyOwner(key, owner_id) ⇒ Object

arg: key(ImGuiKey), owner_id(ImGuiID) ret: bool



10326
10327
10328
# File 'lib/imgui.rb', line 10326

def self.TestKeyOwner(key, owner_id)
  ImGui_TestKeyOwner(key, owner_id)
end

.TestShortcutRouting(key_chord, owner_id) ⇒ Object

arg: key_chord(ImGuiKeyChord), owner_id(ImGuiID) ret: bool



10344
10345
10346
# File 'lib/imgui.rb', line 10344

def self.TestShortcutRouting(key_chord, owner_id)
  ImGui_TestShortcutRouting(key_chord, owner_id)
end

.Text(fmt, *varargs) ⇒ Object

arg: fmt(const char*), unnamed_arg1(...) ret: void



8049
8050
8051
# File 'lib/imgui.rb', line 8049

def self.Text(fmt, *varargs)
  ImGui_Text(fmt, *varargs)
end

.TextAligned(align_x, size_x, fmt, *varargs) ⇒ Object

arg: align_x(float), size_x(float), fmt(const char*), unnamed_arg3(...) ret: void



10888
10889
10890
# File 'lib/imgui.rb', line 10888

def self.TextAligned(align_x, size_x, fmt, *varargs)
  ImGui_TextAligned(align_x, size_x, fmt, *varargs)
end

.TextColored(col, fmt, *varargs) ⇒ Object

arg: col(ImVec4), fmt(const char*), unnamed_arg2(...) ret: void



8055
8056
8057
# File 'lib/imgui.rb', line 8055

def self.TextColored(col, fmt, *varargs)
  ImGui_TextColored(col, fmt, *varargs)
end

.TextDisabled(fmt, *varargs) ⇒ Object

arg: fmt(const char*), unnamed_arg1(...) ret: void



8061
8062
8063
# File 'lib/imgui.rb', line 8061

def self.TextDisabled(fmt, *varargs)
  ImGui_TextDisabled(fmt, *varargs)
end

.TextEx(*arg) ⇒ Object



13277
13278
13279
13280
13281
13282
13283
13284
13285
13286
13287
# File 'lib/imgui.rb', line 13277

def self.TextEx(*arg)
  # arg: 0:text(const char*)
  # ret: void
  return ImGui_TextEx(arg[0]) if arg.length == 1 && (arg[0].kind_of?(String))
  # arg: 0:text(const char*), 1:text_end(const char*), 2:flags(ImGuiTextFlags)
  # ret: void
  return ImGui_TextExEx(arg[0], arg[1], 0) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(String))
  return ImGui_TextExEx(arg[0], nil, 0) if arg.length == 1 && (arg[0].kind_of?(String))
  return ImGui_TextExEx(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(String) && arg[2].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::TextEx : No matching functions found (#{arg})")
end

arg: label(const char*) ret: bool



8126
8127
8128
# File 'lib/imgui.rb', line 8126

def self.TextLink(label)
  ImGui_TextLink(label)
end

.TextLinkOpenURL(*arg) ⇒ Object



11731
11732
11733
11734
11735
11736
11737
11738
11739
11740
# File 'lib/imgui.rb', line 11731

def self.TextLinkOpenURL(*arg)
  # arg: 0:label(const char*)
  # ret: bool
  return ImGui_TextLinkOpenURL(arg[0]) if arg.length == 1 && (arg[0].kind_of?(String))
  # arg: 0:label(const char*), 1:url(const char*)
  # ret: bool
  return ImGui_TextLinkOpenURLEx(arg[0], nil) if arg.length == 1 && (arg[0].kind_of?(String))
  return ImGui_TextLinkOpenURLEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(String))
  $stderr.puts("[Warning] ImGui::TextLinkOpenURL : No matching functions found (#{arg})")
end

.TextUnformatted(*arg) ⇒ Object



11683
11684
11685
11686
11687
11688
11689
11690
11691
11692
# File 'lib/imgui.rb', line 11683

def self.TextUnformatted(*arg)
  # arg: 0:text(const char*)
  # ret: void
  return ImGui_TextUnformatted(arg[0]) if arg.length == 1 && (arg[0].kind_of?(String))
  # arg: 0:text(const char*), 1:text_end(const char*)
  # ret: void
  return ImGui_TextUnformattedEx(arg[0], nil) if arg.length == 1 && (arg[0].kind_of?(String))
  return ImGui_TextUnformattedEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(String))
  $stderr.puts("[Warning] ImGui::TextUnformatted : No matching functions found (#{arg})")
end

.TextWrapped(fmt, *varargs) ⇒ Object

arg: fmt(const char*), unnamed_arg1(...) ret: void



8067
8068
8069
# File 'lib/imgui.rb', line 8067

def self.TextWrapped(fmt, *varargs)
  ImGui_TextWrapped(fmt, *varargs)
end

.TranslateWindowsInViewport(viewport, old_pos, new_pos, old_size, new_size) ⇒ Object

arg: viewport(ImGuiViewportP*), old_pos(ImVec2), new_pos(ImVec2), old_size(ImVec2), new_size(ImVec2) ret: void



9688
9689
9690
# File 'lib/imgui.rb', line 9688

def self.TranslateWindowsInViewport(viewport, old_pos, new_pos, old_size, new_size)
  ImGui_TranslateWindowsInViewport(viewport, old_pos, new_pos, old_size, new_size)
end

.TreeNode(*arg) ⇒ Object



12322
12323
12324
12325
12326
12327
12328
12329
12330
12331
12332
12333
# File 'lib/imgui.rb', line 12322

def self.TreeNode(*arg)
  # arg: 0:label(const char*)
  # ret: bool
  return ImGui_TreeNode(arg[0]) if arg.length == 1 && (arg[0].kind_of?(String))
  # arg: 0:str_id(const char*), 1:fmt(const char*), 2:__unnamed_arg2__(...)
  # ret: bool
  return ImGui_TreeNodeStr(arg[0], arg[1], *arg[2..]) if arg.length >= 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(String))
  # arg: 0:ptr_id(const void*), 1:fmt(const char*), 2:__unnamed_arg2__(...)
  # ret: bool
  return ImGui_TreeNodePtr(arg[0], arg[1], *arg[2..]) if arg.length >= 2 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(String))
  $stderr.puts("[Warning] ImGui::TreeNode : No matching functions found (#{arg})")
end

.TreeNodeBehavior(*arg) ⇒ Object



13336
13337
13338
13339
13340
13341
13342
13343
13344
13345
# File 'lib/imgui.rb', line 13336

def self.TreeNodeBehavior(*arg)
  # arg: 0:id(ImGuiID), 1:flags(ImGuiTreeNodeFlags), 2:label(const char*)
  # ret: bool
  return ImGui_TreeNodeBehavior(arg[0], arg[1], arg[2]) if arg.length == 3 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer) && arg[2].kind_of?(String))
  # arg: 0:id(ImGuiID), 1:flags(ImGuiTreeNodeFlags), 2:label(const char*), 3:label_end(const char*)
  # ret: bool
  return ImGui_TreeNodeBehaviorEx(arg[0], arg[1], arg[2], nil) if arg.length == 3 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer) && arg[2].kind_of?(String))
  return ImGui_TreeNodeBehaviorEx(arg[0], arg[1], arg[2], arg[3]) if arg.length == 4 && (arg[0].kind_of?(Integer) && arg[1].kind_of?(Integer) && arg[2].kind_of?(String) && arg[3].kind_of?(String))
  $stderr.puts("[Warning] ImGui::TreeNodeBehavior : No matching functions found (#{arg})")
end

.TreeNodeDrawLineToChildNode(target_pos) ⇒ Object

arg: target_pos(ImVec2) ret: void



10978
10979
10980
# File 'lib/imgui.rb', line 10978

def self.TreeNodeDrawLineToChildNode(target_pos)
  ImGui_TreeNodeDrawLineToChildNode(target_pos)
end

.TreeNodeDrawLineToTreePop(data) ⇒ Object

arg: data(const ImGuiTreeNodeStackData*) ret: void



10984
10985
10986
# File 'lib/imgui.rb', line 10984

def self.TreeNodeDrawLineToTreePop(data)
  ImGui_TreeNodeDrawLineToTreePop(data)
end

.TreeNodeEx(*arg) ⇒ Object



12335
12336
12337
12338
12339
12340
12341
12342
12343
12344
12345
12346
12347
# File 'lib/imgui.rb', line 12335

def self.TreeNodeEx(*arg)
  # arg: 0:label(const char*), 1:flags(ImGuiTreeNodeFlags)
  # ret: bool
  return ImGui_TreeNodeEx(arg[0], 0) if arg.length == 1 && (arg[0].kind_of?(String))
  return ImGui_TreeNodeEx(arg[0], arg[1]) if arg.length == 2 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer))
  # arg: 0:str_id(const char*), 1:flags(ImGuiTreeNodeFlags), 2:fmt(const char*), 3:__unnamed_arg3__(...)
  # ret: bool
  return ImGui_TreeNodeExStr(arg[0], arg[1], arg[2], *arg[3..]) if arg.length >= 3 && (arg[0].kind_of?(String) && arg[1].kind_of?(Integer) && arg[2].kind_of?(String))
  # arg: 0:ptr_id(const void*), 1:flags(ImGuiTreeNodeFlags), 2:fmt(const char*), 3:__unnamed_arg3__(...)
  # ret: bool
  return ImGui_TreeNodeExPtr(arg[0], arg[1], arg[2], *arg[3..]) if arg.length >= 3 && (arg[0].kind_of?(FFI::Pointer) && arg[1].kind_of?(Integer) && arg[2].kind_of?(String))
  $stderr.puts("[Warning] ImGui::TreeNodeEx : No matching functions found (#{arg})")
end

.TreeNodeGetOpen(storage_id) ⇒ Object

arg: storage_id(ImGuiID) ret: bool



8207
8208
8209
# File 'lib/imgui.rb', line 8207

def self.TreeNodeGetOpen(storage_id)
  ImGui_TreeNodeGetOpen(storage_id)
end

.TreeNodeSetOpen(storage_id, open) ⇒ Object

arg: storage_id(ImGuiID), open(bool) ret: void



10996
10997
10998
# File 'lib/imgui.rb', line 10996

def self.TreeNodeSetOpen(storage_id, open)
  ImGui_TreeNodeSetOpen(storage_id, open)
end

.TreeNodeUpdateNextOpen(storage_id, flags) ⇒ Object

arg: storage_id(ImGuiID), flags(ImGuiTreeNodeFlags) ret: bool



11002
11003
11004
# File 'lib/imgui.rb', line 11002

def self.TreeNodeUpdateNextOpen(storage_id, flags)
  ImGui_TreeNodeUpdateNextOpen(storage_id, flags)
end

.TreePopObject

ret: void



8184
8185
8186
# File 'lib/imgui.rb', line 8184

def self.TreePop()
  ImGui_TreePop()
end

.TreePush(*arg) ⇒ Object



12349
12350
12351
12352
12353
12354
12355
12356
12357
# File 'lib/imgui.rb', line 12349

def self.TreePush(*arg)
  # arg: 0:str_id(const char*)
  # ret: void
  return ImGui_TreePush(arg[0]) if arg.length == 1 && (arg[0].kind_of?(String))
  # arg: 0:ptr_id(const void*)
  # ret: void
  return ImGui_TreePushPtr(arg[0]) if arg.length == 1 && (arg[0].kind_of?(FFI::Pointer))
  $stderr.puts("[Warning] ImGui::TreePush : No matching functions found (#{arg})")
end

.TreePushOverrideID(id) ⇒ Object

arg: id(ImGuiID) ret: void



10990
10991
10992
# File 'lib/imgui.rb', line 10990

def self.TreePushOverrideID(id)
  ImGui_TreePushOverrideID(id)
end

.TypingSelectFindBestLeadingMatch(req, items_count, get_item_name_func, user_data) ⇒ Object

arg: req(ImGuiTypingSelectRequest*), items_count(int), get_item_name_func(const char* (get_item_name_func)(void, int)), user_data(void*) ret: int



10655
10656
10657
# File 'lib/imgui.rb', line 10655

def self.TypingSelectFindBestLeadingMatch(req, items_count, get_item_name_func, user_data)
  ImGui_TypingSelectFindBestLeadingMatch(req, items_count, get_item_name_func, user_data)
end

.TypingSelectFindMatch(req, items_count, get_item_name_func, user_data, nav_item_idx) ⇒ Object

arg: req(ImGuiTypingSelectRequest*), items_count(int), get_item_name_func(const char* (get_item_name_func)(void, int)), user_data(void*), nav_item_idx(int) ret: int



10643
10644
10645
# File 'lib/imgui.rb', line 10643

def self.TypingSelectFindMatch(req, items_count, get_item_name_func, user_data, nav_item_idx)
  ImGui_TypingSelectFindMatch(req, items_count, get_item_name_func, user_data, nav_item_idx)
end

.TypingSelectFindNextSingleCharMatch(req, items_count, get_item_name_func, user_data, nav_item_idx) ⇒ Object

arg: req(ImGuiTypingSelectRequest*), items_count(int), get_item_name_func(const char* (get_item_name_func)(void, int)), user_data(void*), nav_item_idx(int) ret: int



10649
10650
10651
# File 'lib/imgui.rb', line 10649

def self.TypingSelectFindNextSingleCharMatch(req, items_count, get_item_name_func, user_data, nav_item_idx)
  ImGui_TypingSelectFindNextSingleCharMatch(req, items_count, get_item_name_func, user_data, nav_item_idx)
end

.Unindent(*arg) ⇒ Object



11640
11641
11642
11643
11644
11645
11646
11647
11648
11649
# File 'lib/imgui.rb', line 11640

def self.Unindent(*arg)
  # arg: 
  # ret: void
  return ImGui_Unindent() if arg.empty?
  # arg: 0:indent_w(float)
  # ret: void
  return ImGui_UnindentEx(0.0) if arg.length == 0 && (true)
  return ImGui_UnindentEx(arg[0]) if arg.length == 1 && (arg[0].kind_of?(Float))
  $stderr.puts("[Warning] ImGui::Unindent : No matching functions found (#{arg})")
end

.UnregisterFontAtlas(atlas) ⇒ Object

arg: atlas(ImFontAtlas*) ret: void



9553
9554
9555
# File 'lib/imgui.rb', line 9553

def self.UnregisterFontAtlas(atlas)
  ImGui_UnregisterFontAtlas(atlas)
end

.UnregisterUserTexture(tex) ⇒ Object

arg: tex(ImTextureData*) ret: void



9541
9542
9543
# File 'lib/imgui.rb', line 9541

def self.UnregisterUserTexture(tex)
  ImGui_UnregisterUserTexture(tex)
end

.UpdateCurrentFontSize(restore_font_size_after_scaling) ⇒ Object

arg: restore_font_size_after_scaling(float) ret: void



9565
9566
9567
# File 'lib/imgui.rb', line 9565

def self.UpdateCurrentFontSize(restore_font_size_after_scaling)
  ImGui_UpdateCurrentFontSize(restore_font_size_after_scaling)
end

.UpdateHoveredWindowAndCaptureFlags(mouse_pos) ⇒ Object

arg: mouse_pos(ImVec2) ret: void



9649
9650
9651
# File 'lib/imgui.rb', line 9649

def self.UpdateHoveredWindowAndCaptureFlags(mouse_pos)
  ImGui_UpdateHoveredWindowAndCaptureFlags(mouse_pos)
end

.UpdateInputEvents(trickle_fast_inputs) ⇒ Object

arg: trickle_fast_inputs(bool) ret: void



9643
9644
9645
# File 'lib/imgui.rb', line 9643

def self.UpdateInputEvents(trickle_fast_inputs)
  ImGui_UpdateInputEvents(trickle_fast_inputs)
end

.UpdateMouseMovingWindowEndFrameObject

ret: void



9682
9683
9684
# File 'lib/imgui.rb', line 9682

def self.UpdateMouseMovingWindowEndFrame()
  ImGui_UpdateMouseMovingWindowEndFrame()
end

.UpdateMouseMovingWindowNewFrameObject

ret: void



9677
9678
9679
# File 'lib/imgui.rb', line 9677

def self.UpdateMouseMovingWindowNewFrame()
  ImGui_UpdateMouseMovingWindowNewFrame()
end

.UpdatePlatformWindowsObject

ret: void



8920
8921
8922
# File 'lib/imgui.rb', line 8920

def self.UpdatePlatformWindows()
  ImGui_UpdatePlatformWindows()
end

arg: window(ImGuiWindow*), flags(ImGuiWindowFlags), parent_window(ImGuiWindow*) ret: void



9391
9392
9393
# File 'lib/imgui.rb', line 9391

def self.UpdateWindowParentAndRootLinks(window, flags, parent_window)
  ImGui_UpdateWindowParentAndRootLinks(window, flags, parent_window)
end

.UpdateWindowSkipRefresh(window) ⇒ Object

arg: window(ImGuiWindow*) ret: void



9397
9398
9399
# File 'lib/imgui.rb', line 9397

def self.UpdateWindowSkipRefresh(window)
  ImGui_UpdateWindowSkipRefresh(window)
end

.VSliderFloat(*arg) ⇒ Object



12126
12127
12128
12129
12130
12131
12132
12133
12134
12135
12136
# File 'lib/imgui.rb', line 12126

def self.VSliderFloat(*arg)
  # arg: 0:label(const char*), 1:size(ImVec2), 2:v(float*), 3:v_min(float), 4:v_max(float)
  # ret: bool
  return ImGui_VSliderFloat(arg[0], arg[1], arg[2], arg[3], arg[4]) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Float) && arg[4].kind_of?(Float))
  # arg: 0:label(const char*), 1:size(ImVec2), 2:v(float*), 3:v_min(float), 4:v_max(float), 5:format(const char*), 6:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_VSliderFloatEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], 0) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Float) && arg[4].kind_of?(Float) && arg[5].kind_of?(String))
  return ImGui_VSliderFloatEx(arg[0], arg[1], arg[2], arg[3], arg[4], "%.3f", 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Float) && arg[4].kind_of?(Float))
  return ImGui_VSliderFloatEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6]) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Float) && arg[4].kind_of?(Float) && arg[5].kind_of?(String) && arg[6].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::VSliderFloat : No matching functions found (#{arg})")
end

.VSliderInt(*arg) ⇒ Object



12138
12139
12140
12141
12142
12143
12144
12145
12146
12147
12148
# File 'lib/imgui.rb', line 12138

def self.VSliderInt(*arg)
  # arg: 0:label(const char*), 1:size(ImVec2), 2:v(int*), 3:v_min(int), 4:v_max(int)
  # ret: bool
  return ImGui_VSliderInt(arg[0], arg[1], arg[2], arg[3], arg[4]) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer))
  # arg: 0:label(const char*), 1:size(ImVec2), 2:v(int*), 3:v_min(int), 4:v_max(int), 5:format(const char*), 6:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_VSliderIntEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], 0) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(String))
  return ImGui_VSliderIntEx(arg[0], arg[1], arg[2], arg[3], arg[4], "%d", 0) if arg.length == 5 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer))
  return ImGui_VSliderIntEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6]) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(FFI::Pointer) && arg[3].kind_of?(Integer) && arg[4].kind_of?(Integer) && arg[5].kind_of?(String) && arg[6].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::VSliderInt : No matching functions found (#{arg})")
end

.VSliderScalar(*arg) ⇒ Object



12150
12151
12152
12153
12154
12155
12156
12157
12158
12159
12160
# File 'lib/imgui.rb', line 12150

def self.VSliderScalar(*arg)
  # arg: 0:label(const char*), 1:size(ImVec2), 2:data_type(ImGuiDataType), 3:p_data(void*), 4:p_min(const void*), 5:p_max(const void*)
  # ret: bool
  return ImGui_VSliderScalar(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(FFI::Pointer))
  # arg: 0:label(const char*), 1:size(ImVec2), 2:data_type(ImGuiDataType), 3:p_data(void*), 4:p_min(const void*), 5:p_max(const void*), 6:format(const char*), 7:flags(ImGuiSliderFlags)
  # ret: bool
  return ImGui_VSliderScalarEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], 0) if arg.length == 7 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(FFI::Pointer) && arg[6].kind_of?(String))
  return ImGui_VSliderScalarEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], nil, 0) if arg.length == 6 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(FFI::Pointer))
  return ImGui_VSliderScalarEx(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7]) if arg.length == 8 && (arg[0].kind_of?(String) && arg[1].kind_of?(ImVec2) && arg[2].kind_of?(Integer) && arg[3].kind_of?(FFI::Pointer) && arg[4].kind_of?(FFI::Pointer) && arg[5].kind_of?(FFI::Pointer) && arg[6].kind_of?(String) && arg[7].kind_of?(Integer))
  $stderr.puts("[Warning] ImGui::VSliderScalar : No matching functions found (#{arg})")
end

.WindowPosAbsToRel(window, p) ⇒ Object

arg: window(ImGuiWindow*), p(ImVec2) ret: ImVec2.by_value



9469
9470
9471
# File 'lib/imgui.rb', line 9469

def self.WindowPosAbsToRel(window, p)
  ImGui_WindowPosAbsToRel(window, p)
end

.WindowPosRelToAbs(window, p) ⇒ Object

arg: window(ImGuiWindow*), p(ImVec2) ret: ImVec2.by_value



9475
9476
9477
# File 'lib/imgui.rb', line 9475

def self.WindowPosRelToAbs(window, p)
  ImGui_WindowPosRelToAbs(window, p)
end

.WindowRectAbsToRel(window, r) ⇒ Object

arg: window(ImGuiWindow*), r(ImRect) ret: ImRect.by_value



9457
9458
9459
# File 'lib/imgui.rb', line 9457

def self.WindowRectAbsToRel(window, r)
  ImGui_WindowRectAbsToRel(window, r)
end

.WindowRectRelToAbs(window, r) ⇒ Object

arg: window(ImGuiWindow*), r(ImRect) ret: ImRect.by_value



9463
9464
9465
# File 'lib/imgui.rb', line 9463

def self.WindowRectRelToAbs(window, r)
  ImGui_WindowRectRelToAbs(window, r)
end