initial imgui integration
This commit is contained in:
parent
750fffe015
commit
a761ed8d5a
46
editor/imview.lua
Normal file
46
editor/imview.lua
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
local imgui = require("imgui")
|
||||||
|
|
||||||
|
local enqueue_love_event = system.enqueue_love_event
|
||||||
|
function system.enqueue_love_event(ev, a, b, c, d, e, f)
|
||||||
|
local keyevents = {
|
||||||
|
textinput = function() imgui.TextInput(a) end,
|
||||||
|
keypressed = function() imgui.KeyPressed(a) end,
|
||||||
|
keyreleased = function() imgui.KeyReleased(a) end,
|
||||||
|
}
|
||||||
|
local mouseevents = {
|
||||||
|
mousemoved = function() imgui.MouseMoved(a, b) end,
|
||||||
|
mousepressed = function() imgui.MousePressed(c) end,
|
||||||
|
mousereleased = function() imgui.MouseReleased(c) end,
|
||||||
|
wheelmoved = function() imgui.WheelMoved(b) end
|
||||||
|
}
|
||||||
|
local pass_event_to_lite = true
|
||||||
|
if keyevents[ev] then
|
||||||
|
keyevents[ev]()
|
||||||
|
pass_event_to_lite = not imgui.GetWantCaptureKeyboard()
|
||||||
|
elseif mouseevents[ev] then
|
||||||
|
mouseevents[ev]()
|
||||||
|
pass_event_to_lite = not imgui.GetWantCaptureMouse()
|
||||||
|
elseif ev == 'quit' then
|
||||||
|
imgui.ShutDown()
|
||||||
|
end
|
||||||
|
if pass_event_to_lite then enqueue_love_event(ev, a, b, c, d, e, f) end
|
||||||
|
end
|
||||||
|
|
||||||
|
local View = require("core.view")
|
||||||
|
local ImView = View:extend()
|
||||||
|
|
||||||
|
function ImView.gui(self)
|
||||||
|
end
|
||||||
|
|
||||||
|
function ImView.draw(self)
|
||||||
|
imgui.NewFrame()
|
||||||
|
imgui.SetNextWindowPos(self.position.x, self.position.y, "Always")
|
||||||
|
imgui.SetNextWindowSize(self.size.x, self.size.y, "Always")
|
||||||
|
imgui.Begin(self:get_name(), nil, { "NoTitleBar", "NoResize", "NoMove", "NoCollapse" })
|
||||||
|
self:gui()
|
||||||
|
imgui.End()
|
||||||
|
imgui.EndFrame()
|
||||||
|
imgui.Render()
|
||||||
|
end
|
||||||
|
|
||||||
|
return ImView
|
32
wrap.fnl
32
wrap.fnl
|
@ -70,36 +70,4 @@
|
||||||
"alt+l" "honeylisp:reload"
|
"alt+l" "honeylisp:reload"
|
||||||
})
|
})
|
||||||
|
|
||||||
(fn love.load [])
|
|
||||||
|
|
||||||
(fn love.update [dt]
|
|
||||||
(imgui.NewFrame))
|
|
||||||
|
|
||||||
(fn love.draw []
|
|
||||||
(imgui.Render))
|
|
||||||
|
|
||||||
(fn love.quit []
|
|
||||||
(imgui.ShutDown))
|
|
||||||
|
|
||||||
(fn love.textinput [t]
|
|
||||||
(imgui.TextInput t))
|
|
||||||
|
|
||||||
(fn love.keypressed [key]
|
|
||||||
(imgui.KeyPressed key))
|
|
||||||
|
|
||||||
(fn love.keyreleased [key]
|
|
||||||
(imgui.KeyReleased key))
|
|
||||||
|
|
||||||
(fn love.mousemoved [x y]
|
|
||||||
(imgui.MouseMoved x y))
|
|
||||||
|
|
||||||
(fn love.mousepressed [x y button]
|
|
||||||
(imgui.MousePressed button))
|
|
||||||
|
|
||||||
(fn love.mousereleased [x y button]
|
|
||||||
(imgui.MouseReleased button))
|
|
||||||
|
|
||||||
(fn love.wheelmoved [x y]
|
|
||||||
(imgui.WheelMoved y))
|
|
||||||
|
|
||||||
{}
|
{}
|
||||||
|
|
Loading…
Reference in a new issue