Lua: ImGui
From Nomad DB
Revision as of 20:56, 19 December 2021 by Administrator (talk | contribs) (Created page with "{{Page_WDL}} Watch Dogs: Legion ScriptHook 2.0 offers the ability to use ImGui from Lua. This page documents the available functions and a general overview...")
Watch Dogs: Legion ScriptHook 2.0 offers the ability to use ImGui from Lua. This page documents the available functions and a general overview on how to use them.
Event
You must use ImGui only within the OnRenderImGui event, which can also be used to identify what kind of input can be received. By default, no input is processed from ImGui!
local script = Script()
function script:OnRenderImGui()
if ImGui.Begin("Demo") then
ImGui.Text("Hello World")
ImGui.End()
end
return ImGuiInputType.MouseForceShow + ImGuiInputType.MousePreventGameInput
end
ImGuiInputType
If you do not return a value in OnRenderImGui, then no input will be received by default. The following code snippet contains documentation of the different types. Please note that if multiple scripts want to render ImGui content, all flags will be combined.
-- Flags to specify how ImGui receives input
ImGuiInputType = {
Default = 0,
-- Force mouse to be visible
MouseForceShow = 1,
-- Prevent the game from receiving mouse input
MousePreventGameInput = 2,
-- Prevent the game from receiving keyboard input
KeyboardPreventGameInput = 4
}
Functions
All common functions are available through Lua, e.g. imgui.Begin:
EndFrame, GetVersion, Begin, End, BeginChild, BeginChild_4, EndChild, IsWindowAppearing, IsWindowCollapsed, GetWindowPos, GetWindowSize, GetWindowWidth, GetWindowHeight, GetContentRegionMax, GetContentRegionAvail, GetContentRegionAvailWidth, GetWindowContentRegionMin, GetWindowContentRegionMax, GetWindowContentRegionWidth, SetNextWindowContentSize, SetNextWindowFocus, SetNextWindowBgAlpha, SetWindowFocus, SetWindowFontScale, SetWindowFocus_1, GetScrollX, GetScrollY, GetScrollMaxX, GetScrollMaxY, SetScrollX, SetScrollY, SetScrollFromPosY, PopFont, PushStyleColor, PushStyleColor_2, PopStyleColor, PushStyleVar, PushStyleVar_2, PopStyleVar, GetFontSize, GetFontTexUvWhitePixel, GetColorU32, GetColorU32_1, GetColorU32_1_1, PushItemWidth, PopItemWidth, CalcItemWidth, PushTextWrapPos, PopTextWrapPos, PushAllowKeyboardFocus, PopAllowKeyboardFocus, PushButtonRepeat, PopButtonRepeat, Separator, SameLine, NewLine, Spacing, Dummy, Indent, Unindent, BeginGroup, EndGroup, GetCursorPos, GetCursorPosX, GetCursorPosY, SetCursorPos, SetCursorPosX, SetCursorPosY, GetCursorStartPos, GetCursorScreenPos, SetCursorScreenPos, AlignTextToFramePadding, GetTextLineHeight, GetTextLineHeightWithSpacing, GetFrameHeight, GetFrameHeightWithSpacing, PushID, PushID_2, PushID_1, PopID, GetID, GetID_2, TextUnformatted, Button, SmallButton, InvisibleButton, Image, ImageButton, Checkbox, CheckboxFlags, RadioButton, RadioButton_3, ProgressBar, Bullet, EndCombo, Combo, DragFloat, DragFloatRange2, DragInt, DragIntRange2, InputFloat, InputInt, SliderFloat, SliderAngle, SliderInt, VSliderFloat, VSliderInt, TreeNode, TreePush, TreePop, TreeAdvanceToLabelPos, GetTreeNodeToLabelSpacing, Selectable, Selectable_4, ListBoxHeader, ListBoxHeader_3, ListBoxFooter, Value, Value_2, Value_2_2, Value_3, BeginTooltip, EndTooltip, BeginMainMenuBar, EndMainMenuBar, BeginMenuBar, EndMenuBar, BeginMenu, EndMenu, MenuItem, MenuItem_4, OpenPopup, BeginPopup, BeginPopupContextItem, BeginPopupContextWindow, BeginPopupContextVoid, BeginPopupModal, EndPopup, IsPopupOpen, CloseCurrentPopup, Columns, NextColumn, GetColumnWidth, SetColumnWidth, GetColumnOffset, SetColumnOffset, LogToTTY, LogToFile, LogToClipboard, LogFinish, LogButtons, EndDragDropSource, BeginDragDropTarget, EndDragDropTarget, PushClipRect, PopClipRect, SetItemDefaultFocus, SetKeyboardFocusHere, IsItemActive, IsItemFocused, IsItemClicked, IsItemVisible, IsAnyItemHovered, IsAnyItemActive, IsAnyItemFocused, GetItemRectMin, GetItemRectMax, GetItemRectSize, SetItemAllowOverlap, IsRectVisible, IsRectVisible_2, GetTime, GetStyleColorName, CalcTextSize, CalcListClipping, BeginChildFrame, EndChildFrame, ColorConvertFloat4ToU32, IsKeyDown, IsKeyPressed, IsKeyReleased, IsMouseDown, IsAnyMouseDown, IsMouseClicked, IsMouseDoubleClicked, IsMouseReleased, IsMouseDragging, IsMouseHoveringRect, GetMousePos, GetMousePosOnOpeningCurrentPopup, GetMouseDragDelta, ResetMouseDragDelta, SetMouseCursor, CaptureKeyboardFromApp, CaptureMouseFromApp, GetClipboardText, SetClipboardText,
DrawList (via imgui.DrawList_)
PushClipRect, PushClipRectFullScreen, PopClipRect, PushTextureID, PopTextureID, AddLine, AddRect, AddRectFilled, AddRectFilledMultiColor, AddQuad, AddQuadFilled, AddTriangle, AddTriangleFilled, AddCircle, AddCircleFilled, AddText, AddImage, AddImageQuad, AddImageRounded, AddBezierCurve, PathArcTo, PathArcToFast, PathBezierCurveTo, PathRect, ChannelsSplit, ChannelsMerge, ChannelsSetCurrent, AddDrawCmd, PrimReserve, PrimRect, PrimRectUV, PrimQuadUV)