Difference between revisions of "Dear ImGui"
From GiderosMobile
(added example) |
|||
Line 19: | Line 19: | ||
=== Examples === | === Examples === | ||
+ | '''The basics of Dear ImGui''' | ||
+ | <source lang="lua"> | ||
+ | require "ImGui" | ||
+ | |||
+ | -- a Dear ImGui instance | ||
+ | local imgui = ImGui.new() | ||
+ | |||
+ | -- we scale the font up | ||
+ | imgui:ioSetFontGlobalScale(2) | ||
+ | |||
+ | -- we choose a style (default = Dark) | ||
+ | --imgui:setLightStyle() | ||
+ | --imgui:setDarkStyle() | ||
+ | imgui:setClassicStyle() | ||
+ | |||
+ | -- we add imgui to the stage | ||
+ | stage:addChild(imgui) | ||
+ | |||
+ | -- we create 2 variables to hold our main window status | ||
+ | local mainWindowOpen, mainWindowDrawn | ||
+ | |||
+ | -- Dear ImGui runs on the game loop | ||
+ | function enterFrame(e) | ||
+ | -- 1 we start ImGui | ||
+ | imgui:newFrame(e) | ||
+ | |||
+ | -- 2 we build our GUI | ||
+ | mainWindowOpen, mainWindowDrawn = | ||
+ | imgui:beginWindow( | ||
+ | "Hello ImGui v"..ImGui._VERSION, -- main window title | ||
+ | true -- main window is expanded | ||
+ | ) | ||
+ | if (mainWindowDrawn) then -- the variable is false when main window is collapsed | ||
+ | imgui:text("Hello Dear ImGui!") -- we add a text element to our GUI | ||
+ | end | ||
+ | imgui:endWindow() | ||
+ | |||
+ | -- 3 we render our window | ||
+ | imgui:endFrame() | ||
+ | imgui:render() | ||
+ | end | ||
+ | |||
+ | -- this wouldn't work without listeners | ||
+ | stage:addEventListener("mouseDown", function(e) imgui:onMouseDown(e) end) | ||
+ | stage:addEventListener("mouseUp", function(e) imgui:onMouseUp(e) end) | ||
+ | stage:addEventListener("mouseHover", function(e) imgui:onMouseHover(e) end) | ||
+ | stage:addEventListener("mouseMove", function(e) imgui:onMouseMove(e) end) | ||
+ | stage:addEventListener("mouseWheel", function(e) imgui:onMouseWheel(e) end) | ||
+ | stage:addEventListener("keyDown", function(e) imgui:onKeyDown(e) end) | ||
+ | stage:addEventListener("keyUp", function(e) imgui:onKeyUp(e) end) | ||
+ | stage:addEventListener("keyChar", function(e) imgui:onKeyChar(e) end) | ||
+ | stage:addEventListener("enterFrame", enterFrame) | ||
+ | </source> | ||
{|- | {|- |
Revision as of 05:12, 30 August 2020
Supported platforms:
Available since: Gideros 2020.9
Description
This is an implementation of the Dear ImGui library.
See full original documentation here: https://pthom.github.io/imgui_manual_online/manual/imgui_manual.html
This is brand new in Gideros Studio so it may take some time to document it thoroughly.
In the meantime, the author's GitHub is the best place to start using Dear ImGui in Gideros Studio.
https://github.com/MultiPain/Gideros_ImGui
require 'ImGui'
Examples
The basics of Dear ImGui
require "ImGui"
-- a Dear ImGui instance
local imgui = ImGui.new()
-- we scale the font up
imgui:ioSetFontGlobalScale(2)
-- we choose a style (default = Dark)
--imgui:setLightStyle()
--imgui:setDarkStyle()
imgui:setClassicStyle()
-- we add imgui to the stage
stage:addChild(imgui)
-- we create 2 variables to hold our main window status
local mainWindowOpen, mainWindowDrawn
-- Dear ImGui runs on the game loop
function enterFrame(e)
-- 1 we start ImGui
imgui:newFrame(e)
-- 2 we build our GUI
mainWindowOpen, mainWindowDrawn =
imgui:beginWindow(
"Hello ImGui v"..ImGui._VERSION, -- main window title
true -- main window is expanded
)
if (mainWindowDrawn) then -- the variable is false when main window is collapsed
imgui:text("Hello Dear ImGui!") -- we add a text element to our GUI
end
imgui:endWindow()
-- 3 we render our window
imgui:endFrame()
imgui:render()
end
-- this wouldn't work without listeners
stage:addEventListener("mouseDown", function(e) imgui:onMouseDown(e) end)
stage:addEventListener("mouseUp", function(e) imgui:onMouseUp(e) end)
stage:addEventListener("mouseHover", function(e) imgui:onMouseHover(e) end)
stage:addEventListener("mouseMove", function(e) imgui:onMouseMove(e) end)
stage:addEventListener("mouseWheel", function(e) imgui:onMouseWheel(e) end)
stage:addEventListener("keyDown", function(e) imgui:onKeyDown(e) end)
stage:addEventListener("keyUp", function(e) imgui:onKeyUp(e) end)
stage:addEventListener("keyChar", function(e) imgui:onKeyChar(e) end)
stage:addEventListener("enterFrame", enterFrame)
Methods |
EventsConstants |