mirror of
https://github.com/bloeys/nmage.git
synced 2025-12-29 13:28:20 +00:00
Enable imgui docking + minor changes
This commit is contained in:
@ -4,7 +4,6 @@ import (
|
|||||||
"runtime"
|
"runtime"
|
||||||
|
|
||||||
imgui "github.com/AllenDang/cimgui-go"
|
imgui "github.com/AllenDang/cimgui-go"
|
||||||
newimgui "github.com/AllenDang/cimgui-go"
|
|
||||||
"github.com/bloeys/nmage/assert"
|
"github.com/bloeys/nmage/assert"
|
||||||
"github.com/bloeys/nmage/input"
|
"github.com/bloeys/nmage/input"
|
||||||
"github.com/bloeys/nmage/renderer"
|
"github.com/bloeys/nmage/renderer"
|
||||||
@ -28,7 +27,7 @@ type Window struct {
|
|||||||
func (w *Window) handleInputs() {
|
func (w *Window) handleInputs() {
|
||||||
|
|
||||||
input.EventLoopStart()
|
input.EventLoopStart()
|
||||||
imIO := newimgui.CurrentIO()
|
imIo := imgui.CurrentIO()
|
||||||
|
|
||||||
// @TODO: Would be nice to have imgui package process its own events via a callback instead of it being part of engine code
|
// @TODO: Would be nice to have imgui package process its own events via a callback instead of it being part of engine code
|
||||||
for event := sdl.PollEvent(); event != nil; event = sdl.PollEvent() {
|
for event := sdl.PollEvent(); event != nil; event = sdl.PollEvent() {
|
||||||
@ -46,32 +45,32 @@ func (w *Window) handleInputs() {
|
|||||||
input.HandleMouseWheelEvent(e)
|
input.HandleMouseWheelEvent(e)
|
||||||
|
|
||||||
xDelta, yDelta := input.GetMouseWheelMotion()
|
xDelta, yDelta := input.GetMouseWheelMotion()
|
||||||
imIO.AddMouseWheelDelta(float32(xDelta), float32(yDelta))
|
imIo.AddMouseWheelDelta(float32(xDelta), float32(yDelta))
|
||||||
|
|
||||||
case *sdl.KeyboardEvent:
|
case *sdl.KeyboardEvent:
|
||||||
|
|
||||||
input.HandleKeyboardEvent(e)
|
input.HandleKeyboardEvent(e)
|
||||||
imIO.AddKeyEvent(nmageimgui.SdlScancodeToImGuiKey(e.Keysym.Scancode), e.Type == sdl.KEYDOWN)
|
imIo.AddKeyEvent(nmageimgui.SdlScancodeToImGuiKey(e.Keysym.Scancode), e.Type == sdl.KEYDOWN)
|
||||||
|
|
||||||
// Send modifier key updates to imgui
|
// Send modifier key updates to imgui
|
||||||
if e.Keysym.Sym == sdl.K_LCTRL || e.Keysym.Sym == sdl.K_RCTRL {
|
if e.Keysym.Sym == sdl.K_LCTRL || e.Keysym.Sym == sdl.K_RCTRL {
|
||||||
imIO.SetKeyCtrl(e.Type == sdl.KEYDOWN)
|
imIo.SetKeyCtrl(e.Type == sdl.KEYDOWN)
|
||||||
}
|
}
|
||||||
|
|
||||||
if e.Keysym.Sym == sdl.K_LSHIFT || e.Keysym.Sym == sdl.K_RSHIFT {
|
if e.Keysym.Sym == sdl.K_LSHIFT || e.Keysym.Sym == sdl.K_RSHIFT {
|
||||||
imIO.SetKeyShift(e.Type == sdl.KEYDOWN)
|
imIo.SetKeyShift(e.Type == sdl.KEYDOWN)
|
||||||
}
|
}
|
||||||
|
|
||||||
if e.Keysym.Sym == sdl.K_LALT || e.Keysym.Sym == sdl.K_RALT {
|
if e.Keysym.Sym == sdl.K_LALT || e.Keysym.Sym == sdl.K_RALT {
|
||||||
imIO.SetKeyAlt(e.Type == sdl.KEYDOWN)
|
imIo.SetKeyAlt(e.Type == sdl.KEYDOWN)
|
||||||
}
|
}
|
||||||
|
|
||||||
if e.Keysym.Sym == sdl.K_LGUI || e.Keysym.Sym == sdl.K_RGUI {
|
if e.Keysym.Sym == sdl.K_LGUI || e.Keysym.Sym == sdl.K_RGUI {
|
||||||
imIO.SetKeySuper(e.Type == sdl.KEYDOWN)
|
imIo.SetKeySuper(e.Type == sdl.KEYDOWN)
|
||||||
}
|
}
|
||||||
|
|
||||||
case *sdl.TextInputEvent:
|
case *sdl.TextInputEvent:
|
||||||
imIO.AddInputCharactersUTF8(e.GetText())
|
imIo.AddInputCharactersUTF8(e.GetText())
|
||||||
|
|
||||||
case *sdl.MouseButtonEvent:
|
case *sdl.MouseButtonEvent:
|
||||||
input.HandleMouseBtnEvent(e)
|
input.HandleMouseBtnEvent(e)
|
||||||
@ -91,11 +90,11 @@ func (w *Window) handleInputs() {
|
|||||||
|
|
||||||
// If a mouse press event came, always pass it as "mouse held this frame", so we don't miss click-release events that are shorter than 1 frame.
|
// If a mouse press event came, always pass it as "mouse held this frame", so we don't miss click-release events that are shorter than 1 frame.
|
||||||
x, y, _ := sdl.GetMouseState()
|
x, y, _ := sdl.GetMouseState()
|
||||||
imIO.SetMousePos(imgui.Vec2{X: float32(x), Y: float32(y)})
|
imIo.SetMousePos(imgui.Vec2{X: float32(x), Y: float32(y)})
|
||||||
|
|
||||||
imIO.SetMouseButtonDown(0, input.MouseDown(sdl.BUTTON_LEFT))
|
imIo.SetMouseButtonDown(0, input.MouseDown(sdl.BUTTON_LEFT))
|
||||||
imIO.SetMouseButtonDown(1, input.MouseDown(sdl.BUTTON_RIGHT))
|
imIo.SetMouseButtonDown(1, input.MouseDown(sdl.BUTTON_RIGHT))
|
||||||
imIO.SetMouseButtonDown(2, input.MouseDown(sdl.BUTTON_MIDDLE))
|
imIo.SetMouseButtonDown(2, input.MouseDown(sdl.BUTTON_MIDDLE))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (w *Window) handleWindowResize() {
|
func (w *Window) handleWindowResize() {
|
||||||
|
|||||||
18
main.go
18
main.go
@ -4,7 +4,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"runtime"
|
"runtime"
|
||||||
|
|
||||||
newimgui "github.com/AllenDang/cimgui-go"
|
imgui "github.com/AllenDang/cimgui-go"
|
||||||
"github.com/bloeys/gglm/gglm"
|
"github.com/bloeys/gglm/gglm"
|
||||||
"github.com/bloeys/nmage/assets"
|
"github.com/bloeys/nmage/assets"
|
||||||
"github.com/bloeys/nmage/camera"
|
"github.com/bloeys/nmage/camera"
|
||||||
@ -267,28 +267,31 @@ func (g *OurGame) Update() {
|
|||||||
g.updateCameraLookAround()
|
g.updateCameraLookAround()
|
||||||
g.updateCameraPos()
|
g.updateCameraPos()
|
||||||
|
|
||||||
|
imgui.ShowDemoWindow()
|
||||||
|
|
||||||
//Rotating cubes
|
//Rotating cubes
|
||||||
if input.KeyDown(sdl.K_SPACE) {
|
if input.KeyDown(sdl.K_SPACE) {
|
||||||
cubeModelMat.Rotate(10*timing.DT()*gglm.Deg2Rad, gglm.NewVec3(1, 1, 1).Normalize())
|
cubeModelMat.Rotate(10*timing.DT()*gglm.Deg2Rad, gglm.NewVec3(1, 1, 1).Normalize())
|
||||||
}
|
}
|
||||||
|
|
||||||
if newimgui.DragFloat3("Cam Pos", &cam.Pos.Data) {
|
imgui.Begin("Debug controls")
|
||||||
|
if imgui.DragFloat3("Cam Pos", &cam.Pos.Data) {
|
||||||
updateViewMat()
|
updateViewMat()
|
||||||
}
|
}
|
||||||
if newimgui.DragFloat3("Cam Forward", &cam.Forward.Data) {
|
if imgui.DragFloat3("Cam Forward", &cam.Forward.Data) {
|
||||||
updateViewMat()
|
updateViewMat()
|
||||||
}
|
}
|
||||||
|
|
||||||
if newimgui.DragFloat3("Light Pos 1", &lightPos1.Data) {
|
if imgui.DragFloat3("Light Pos 1", &lightPos1.Data) {
|
||||||
simpleMat.SetUnifVec3("lightPos1", lightPos1)
|
simpleMat.SetUnifVec3("lightPos1", lightPos1)
|
||||||
}
|
}
|
||||||
|
|
||||||
if newimgui.DragFloat3("Light Color 1", &lightColor1.Data) {
|
if imgui.DragFloat3("Light Color 1", &lightColor1.Data) {
|
||||||
simpleMat.SetUnifVec3("lightColor1", lightColor1)
|
simpleMat.SetUnifVec3("lightColor1", lightColor1)
|
||||||
}
|
}
|
||||||
|
|
||||||
// an cimgui text box using cimgui
|
imgui.Checkbox("Debug depth buffer", &debugDrawDepthBuffer)
|
||||||
newimgui.InputTextWithHint("Test", "", &testString, newimgui.InputTextFlagsAllowTabInput, nil)
|
imgui.End()
|
||||||
|
|
||||||
if input.KeyClicked(sdl.K_F4) {
|
if input.KeyClicked(sdl.K_F4) {
|
||||||
fmt.Printf("Pos: %s; Forward: %s; |Forward|: %f\n", cam.Pos.String(), cam.Forward.String(), cam.Forward.Mag())
|
fmt.Printf("Pos: %s; Forward: %s; |Forward|: %f\n", cam.Pos.String(), cam.Forward.String(), cam.Forward.Mag())
|
||||||
@ -360,7 +363,6 @@ func (g *OurGame) updateCameraPos() {
|
|||||||
func (g *OurGame) Render() {
|
func (g *OurGame) Render() {
|
||||||
|
|
||||||
matToUse := simpleMat
|
matToUse := simpleMat
|
||||||
newimgui.Checkbox("Debug depth buffer", &debugDrawDepthBuffer)
|
|
||||||
if debugDrawDepthBuffer {
|
if debugDrawDepthBuffer {
|
||||||
matToUse = debugDepthMat
|
matToUse = debugDepthMat
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
package nmageimgui
|
package nmageimgui
|
||||||
|
|
||||||
import (
|
import (
|
||||||
newimgui "github.com/AllenDang/cimgui-go"
|
imgui "github.com/AllenDang/cimgui-go"
|
||||||
"github.com/bloeys/gglm/gglm"
|
"github.com/bloeys/gglm/gglm"
|
||||||
"github.com/bloeys/nmage/materials"
|
"github.com/bloeys/nmage/materials"
|
||||||
"github.com/bloeys/nmage/timing"
|
"github.com/bloeys/nmage/timing"
|
||||||
@ -10,8 +10,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type ImguiInfo struct {
|
type ImguiInfo struct {
|
||||||
ImCtx newimgui.Context
|
ImCtx imgui.Context
|
||||||
// ImCtx2 *imgui.Context
|
|
||||||
|
|
||||||
Mat *materials.Material
|
Mat *materials.Material
|
||||||
VaoID uint32
|
VaoID uint32
|
||||||
@ -26,11 +25,11 @@ func (i *ImguiInfo) FrameStart(winWidth, winHeight float32) {
|
|||||||
// assert.T(false, "Setting imgui ctx as current failed. Err: "+err.Error())
|
// assert.T(false, "Setting imgui ctx as current failed. Err: "+err.Error())
|
||||||
// }
|
// }
|
||||||
|
|
||||||
imIO := newimgui.CurrentIO()
|
imIO := imgui.CurrentIO()
|
||||||
imIO.SetDisplaySize(newimgui.Vec2{X: float32(winWidth), Y: float32(winHeight)})
|
imIO.SetDisplaySize(imgui.Vec2{X: float32(winWidth), Y: float32(winHeight)})
|
||||||
imIO.SetDeltaTime(timing.DT())
|
imIO.SetDeltaTime(timing.DT())
|
||||||
|
|
||||||
newimgui.NewFrame()
|
imgui.NewFrame()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (i *ImguiInfo) Render(winWidth, winHeight float32, fbWidth, fbHeight int32) {
|
func (i *ImguiInfo) Render(winWidth, winHeight float32, fbWidth, fbHeight int32) {
|
||||||
@ -39,15 +38,15 @@ func (i *ImguiInfo) Render(winWidth, winHeight float32, fbWidth, fbHeight int32)
|
|||||||
// assert.T(false, "Setting imgui ctx as current failed. Err: "+err.Error())
|
// assert.T(false, "Setting imgui ctx as current failed. Err: "+err.Error())
|
||||||
// }
|
// }
|
||||||
|
|
||||||
newimgui.Render()
|
imgui.Render()
|
||||||
|
|
||||||
// Avoid rendering when minimized, scale coordinates for retina displays (screen coordinates != framebuffer coordinates)
|
// Avoid rendering when minimized, scale coordinates for retina displays (screen coordinates != framebuffer coordinates)
|
||||||
if fbWidth <= 0 || fbHeight <= 0 {
|
if fbWidth <= 0 || fbHeight <= 0 {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
drawData := newimgui.CurrentDrawData()
|
drawData := imgui.CurrentDrawData()
|
||||||
drawData.ScaleClipRects(newimgui.Vec2{
|
drawData.ScaleClipRects(imgui.Vec2{
|
||||||
X: float32(fbWidth) / float32(winWidth),
|
X: float32(fbWidth) / float32(winWidth),
|
||||||
Y: float32(fbHeight) / float32(winHeight),
|
Y: float32(fbHeight) / float32(winHeight),
|
||||||
})
|
})
|
||||||
@ -79,7 +78,7 @@ func (i *ImguiInfo) Render(winWidth, winHeight float32, fbWidth, fbHeight int32)
|
|||||||
gl.BindVertexArray(i.VaoID)
|
gl.BindVertexArray(i.VaoID)
|
||||||
gl.BindBuffer(gl.ARRAY_BUFFER, i.VboID)
|
gl.BindBuffer(gl.ARRAY_BUFFER, i.VboID)
|
||||||
|
|
||||||
vertexSize, vertexOffsetPos, vertexOffsetUv, vertexOffsetCol := newimgui.VertexBufferLayout()
|
vertexSize, vertexOffsetPos, vertexOffsetUv, vertexOffsetCol := imgui.VertexBufferLayout()
|
||||||
i.Mat.EnableAttribute("Position")
|
i.Mat.EnableAttribute("Position")
|
||||||
i.Mat.EnableAttribute("UV")
|
i.Mat.EnableAttribute("UV")
|
||||||
i.Mat.EnableAttribute("Color")
|
i.Mat.EnableAttribute("Color")
|
||||||
@ -87,7 +86,7 @@ func (i *ImguiInfo) Render(winWidth, winHeight float32, fbWidth, fbHeight int32)
|
|||||||
gl.VertexAttribPointerWithOffset(uint32(i.Mat.GetAttribLoc("UV")), 2, gl.FLOAT, false, int32(vertexSize), uintptr(vertexOffsetUv))
|
gl.VertexAttribPointerWithOffset(uint32(i.Mat.GetAttribLoc("UV")), 2, gl.FLOAT, false, int32(vertexSize), uintptr(vertexOffsetUv))
|
||||||
gl.VertexAttribPointerWithOffset(uint32(i.Mat.GetAttribLoc("Color")), 4, gl.UNSIGNED_BYTE, true, int32(vertexSize), uintptr(vertexOffsetCol))
|
gl.VertexAttribPointerWithOffset(uint32(i.Mat.GetAttribLoc("Color")), 4, gl.UNSIGNED_BYTE, true, int32(vertexSize), uintptr(vertexOffsetCol))
|
||||||
|
|
||||||
indexSize := newimgui.IndexBufferLayout()
|
indexSize := imgui.IndexBufferLayout()
|
||||||
drawType := gl.UNSIGNED_SHORT
|
drawType := gl.UNSIGNED_SHORT
|
||||||
if indexSize == 4 {
|
if indexSize == 4 {
|
||||||
drawType = gl.UNSIGNED_INT
|
drawType = gl.UNSIGNED_INT
|
||||||
@ -124,19 +123,19 @@ func (i *ImguiInfo) Render(winWidth, winHeight float32, fbWidth, fbHeight int32)
|
|||||||
gl.Enable(gl.DEPTH_TEST)
|
gl.Enable(gl.DEPTH_TEST)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (i *ImguiInfo) AddFontTTF(fontPath string, fontSize float32, fontConfig *newimgui.FontConfig, glyphRanges *newimgui.GlyphRange) newimgui.Font {
|
func (i *ImguiInfo) AddFontTTF(fontPath string, fontSize float32, fontConfig *imgui.FontConfig, glyphRanges *imgui.GlyphRange) imgui.Font {
|
||||||
|
|
||||||
fontConfigToUse := newimgui.NewFontConfig()
|
fontConfigToUse := imgui.NewFontConfig()
|
||||||
if fontConfig != nil {
|
if fontConfig != nil {
|
||||||
fontConfigToUse = *fontConfig
|
fontConfigToUse = *fontConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
glyphRangesToUse := newimgui.NewGlyphRange()
|
glyphRangesToUse := imgui.NewGlyphRange()
|
||||||
if glyphRanges != nil {
|
if glyphRanges != nil {
|
||||||
glyphRangesToUse = *glyphRanges
|
glyphRangesToUse = *glyphRanges
|
||||||
}
|
}
|
||||||
|
|
||||||
imIO := newimgui.CurrentIO()
|
imIO := imgui.CurrentIO()
|
||||||
|
|
||||||
a := imIO.Fonts()
|
a := imIO.Fonts()
|
||||||
f := a.AddFontFromFileTTFV(fontPath, fontSize, fontConfigToUse, glyphRangesToUse.Data())
|
f := a.AddFontFromFileTTFV(fontPath, fontSize, fontConfigToUse, glyphRangesToUse.Data())
|
||||||
@ -187,14 +186,13 @@ void main()
|
|||||||
func NewImGui() ImguiInfo {
|
func NewImGui() ImguiInfo {
|
||||||
|
|
||||||
imguiInfo := ImguiInfo{
|
imguiInfo := ImguiInfo{
|
||||||
// ImCtx2: imgui.CreateContext(nil),
|
ImCtx: imgui.CreateContext(),
|
||||||
ImCtx: newimgui.CreateContext(),
|
Mat: materials.NewMaterialSrc("ImGUI Mat", []byte(imguiShdrSrc)),
|
||||||
|
|
||||||
Mat: materials.NewMaterialSrc("ImGUI Mat", []byte(imguiShdrSrc)),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
imIO := newimgui.CurrentIO()
|
io := imgui.CurrentIO()
|
||||||
imIO.SetBackendFlags(imIO.BackendFlags() | newimgui.BackendFlagsRendererHasVtxOffset)
|
io.SetConfigFlags(io.ConfigFlags() | imgui.ConfigFlagsDockingEnable)
|
||||||
|
io.SetBackendFlags(io.BackendFlags() | imgui.BackendFlagsRendererHasVtxOffset)
|
||||||
|
|
||||||
gl.GenVertexArrays(1, &imguiInfo.VaoID)
|
gl.GenVertexArrays(1, &imguiInfo.VaoID)
|
||||||
gl.GenBuffers(1, &imguiInfo.VboID)
|
gl.GenBuffers(1, &imguiInfo.VboID)
|
||||||
@ -207,11 +205,11 @@ func NewImGui() ImguiInfo {
|
|||||||
gl.TexParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR)
|
gl.TexParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR)
|
||||||
gl.PixelStorei(gl.UNPACK_ROW_LENGTH, 0)
|
gl.PixelStorei(gl.UNPACK_ROW_LENGTH, 0)
|
||||||
|
|
||||||
pixels, width, height, _ := imIO.Fonts().GetTextureDataAsAlpha8()
|
pixels, width, height, _ := io.Fonts().GetTextureDataAsAlpha8()
|
||||||
gl.TexImage2D(gl.TEXTURE_2D, 0, gl.RED, int32(width), int32(height), 0, gl.RED, gl.UNSIGNED_BYTE, pixels)
|
gl.TexImage2D(gl.TEXTURE_2D, 0, gl.RED, int32(width), int32(height), 0, gl.RED, gl.UNSIGNED_BYTE, pixels)
|
||||||
|
|
||||||
// Store our identifier
|
// Store our identifier
|
||||||
imIO.Fonts().SetTexID(newimgui.TextureID(uintptr(imguiInfo.TexID)))
|
io.Fonts().SetTexID(imgui.TextureID(uintptr(imguiInfo.TexID)))
|
||||||
|
|
||||||
//Shader attributes
|
//Shader attributes
|
||||||
imguiInfo.Mat.Bind()
|
imguiInfo.Mat.Bind()
|
||||||
@ -223,220 +221,220 @@ func NewImGui() ImguiInfo {
|
|||||||
return imguiInfo
|
return imguiInfo
|
||||||
}
|
}
|
||||||
|
|
||||||
func SdlScancodeToImGuiKey(scancode sdl.Scancode) newimgui.Key {
|
func SdlScancodeToImGuiKey(scancode sdl.Scancode) imgui.Key {
|
||||||
|
|
||||||
switch scancode {
|
switch scancode {
|
||||||
case sdl.SCANCODE_TAB:
|
case sdl.SCANCODE_TAB:
|
||||||
return newimgui.KeyTab
|
return imgui.KeyTab
|
||||||
case sdl.SCANCODE_LEFT:
|
case sdl.SCANCODE_LEFT:
|
||||||
return newimgui.KeyLeftArrow
|
return imgui.KeyLeftArrow
|
||||||
case sdl.SCANCODE_RIGHT:
|
case sdl.SCANCODE_RIGHT:
|
||||||
return newimgui.KeyRightArrow
|
return imgui.KeyRightArrow
|
||||||
case sdl.SCANCODE_UP:
|
case sdl.SCANCODE_UP:
|
||||||
return newimgui.KeyUpArrow
|
return imgui.KeyUpArrow
|
||||||
case sdl.SCANCODE_DOWN:
|
case sdl.SCANCODE_DOWN:
|
||||||
return newimgui.KeyDownArrow
|
return imgui.KeyDownArrow
|
||||||
case sdl.SCANCODE_PAGEUP:
|
case sdl.SCANCODE_PAGEUP:
|
||||||
return newimgui.KeyPageUp
|
return imgui.KeyPageUp
|
||||||
case sdl.SCANCODE_PAGEDOWN:
|
case sdl.SCANCODE_PAGEDOWN:
|
||||||
return newimgui.KeyPageDown
|
return imgui.KeyPageDown
|
||||||
case sdl.SCANCODE_HOME:
|
case sdl.SCANCODE_HOME:
|
||||||
return newimgui.KeyHome
|
return imgui.KeyHome
|
||||||
case sdl.SCANCODE_END:
|
case sdl.SCANCODE_END:
|
||||||
return newimgui.KeyEnd
|
return imgui.KeyEnd
|
||||||
case sdl.SCANCODE_INSERT:
|
case sdl.SCANCODE_INSERT:
|
||||||
return newimgui.KeyInsert
|
return imgui.KeyInsert
|
||||||
case sdl.SCANCODE_DELETE:
|
case sdl.SCANCODE_DELETE:
|
||||||
return newimgui.KeyDelete
|
return imgui.KeyDelete
|
||||||
case sdl.SCANCODE_BACKSPACE:
|
case sdl.SCANCODE_BACKSPACE:
|
||||||
return newimgui.KeyBackspace
|
return imgui.KeyBackspace
|
||||||
case sdl.SCANCODE_SPACE:
|
case sdl.SCANCODE_SPACE:
|
||||||
return newimgui.KeySpace
|
return imgui.KeySpace
|
||||||
case sdl.SCANCODE_RETURN:
|
case sdl.SCANCODE_RETURN:
|
||||||
return newimgui.KeyEnter
|
return imgui.KeyEnter
|
||||||
case sdl.SCANCODE_ESCAPE:
|
case sdl.SCANCODE_ESCAPE:
|
||||||
return newimgui.KeyEscape
|
return imgui.KeyEscape
|
||||||
case sdl.SCANCODE_APOSTROPHE:
|
case sdl.SCANCODE_APOSTROPHE:
|
||||||
return newimgui.KeyApostrophe
|
return imgui.KeyApostrophe
|
||||||
case sdl.SCANCODE_COMMA:
|
case sdl.SCANCODE_COMMA:
|
||||||
return newimgui.KeyComma
|
return imgui.KeyComma
|
||||||
case sdl.SCANCODE_MINUS:
|
case sdl.SCANCODE_MINUS:
|
||||||
return newimgui.KeyMinus
|
return imgui.KeyMinus
|
||||||
case sdl.SCANCODE_PERIOD:
|
case sdl.SCANCODE_PERIOD:
|
||||||
return newimgui.KeyPeriod
|
return imgui.KeyPeriod
|
||||||
case sdl.SCANCODE_SLASH:
|
case sdl.SCANCODE_SLASH:
|
||||||
return newimgui.KeySlash
|
return imgui.KeySlash
|
||||||
case sdl.SCANCODE_SEMICOLON:
|
case sdl.SCANCODE_SEMICOLON:
|
||||||
return newimgui.KeySemicolon
|
return imgui.KeySemicolon
|
||||||
case sdl.SCANCODE_EQUALS:
|
case sdl.SCANCODE_EQUALS:
|
||||||
return newimgui.KeyEqual
|
return imgui.KeyEqual
|
||||||
case sdl.SCANCODE_LEFTBRACKET:
|
case sdl.SCANCODE_LEFTBRACKET:
|
||||||
return newimgui.KeyLeftBracket
|
return imgui.KeyLeftBracket
|
||||||
case sdl.SCANCODE_BACKSLASH:
|
case sdl.SCANCODE_BACKSLASH:
|
||||||
return newimgui.KeyBackslash
|
return imgui.KeyBackslash
|
||||||
case sdl.SCANCODE_RIGHTBRACKET:
|
case sdl.SCANCODE_RIGHTBRACKET:
|
||||||
return newimgui.KeyRightBracket
|
return imgui.KeyRightBracket
|
||||||
case sdl.SCANCODE_GRAVE:
|
case sdl.SCANCODE_GRAVE:
|
||||||
return newimgui.KeyGraveAccent
|
return imgui.KeyGraveAccent
|
||||||
case sdl.SCANCODE_CAPSLOCK:
|
case sdl.SCANCODE_CAPSLOCK:
|
||||||
return newimgui.KeyCapsLock
|
return imgui.KeyCapsLock
|
||||||
case sdl.SCANCODE_SCROLLLOCK:
|
case sdl.SCANCODE_SCROLLLOCK:
|
||||||
return newimgui.KeyScrollLock
|
return imgui.KeyScrollLock
|
||||||
case sdl.SCANCODE_NUMLOCKCLEAR:
|
case sdl.SCANCODE_NUMLOCKCLEAR:
|
||||||
return newimgui.KeyNumLock
|
return imgui.KeyNumLock
|
||||||
case sdl.SCANCODE_PRINTSCREEN:
|
case sdl.SCANCODE_PRINTSCREEN:
|
||||||
return newimgui.KeyPrintScreen
|
return imgui.KeyPrintScreen
|
||||||
case sdl.SCANCODE_PAUSE:
|
case sdl.SCANCODE_PAUSE:
|
||||||
return newimgui.KeyPause
|
return imgui.KeyPause
|
||||||
case sdl.SCANCODE_KP_0:
|
case sdl.SCANCODE_KP_0:
|
||||||
return newimgui.KeyKeypad0
|
return imgui.KeyKeypad0
|
||||||
case sdl.SCANCODE_KP_1:
|
case sdl.SCANCODE_KP_1:
|
||||||
return newimgui.KeyKeypad1
|
return imgui.KeyKeypad1
|
||||||
case sdl.SCANCODE_KP_2:
|
case sdl.SCANCODE_KP_2:
|
||||||
return newimgui.KeyKeypad2
|
return imgui.KeyKeypad2
|
||||||
case sdl.SCANCODE_KP_3:
|
case sdl.SCANCODE_KP_3:
|
||||||
return newimgui.KeyKeypad3
|
return imgui.KeyKeypad3
|
||||||
case sdl.SCANCODE_KP_4:
|
case sdl.SCANCODE_KP_4:
|
||||||
return newimgui.KeyKeypad4
|
return imgui.KeyKeypad4
|
||||||
case sdl.SCANCODE_KP_5:
|
case sdl.SCANCODE_KP_5:
|
||||||
return newimgui.KeyKeypad5
|
return imgui.KeyKeypad5
|
||||||
case sdl.SCANCODE_KP_6:
|
case sdl.SCANCODE_KP_6:
|
||||||
return newimgui.KeyKeypad6
|
return imgui.KeyKeypad6
|
||||||
case sdl.SCANCODE_KP_7:
|
case sdl.SCANCODE_KP_7:
|
||||||
return newimgui.KeyKeypad7
|
return imgui.KeyKeypad7
|
||||||
case sdl.SCANCODE_KP_8:
|
case sdl.SCANCODE_KP_8:
|
||||||
return newimgui.KeyKeypad8
|
return imgui.KeyKeypad8
|
||||||
case sdl.SCANCODE_KP_9:
|
case sdl.SCANCODE_KP_9:
|
||||||
return newimgui.KeyKeypad9
|
return imgui.KeyKeypad9
|
||||||
case sdl.SCANCODE_KP_PERIOD:
|
case sdl.SCANCODE_KP_PERIOD:
|
||||||
return newimgui.KeyKeypadDecimal
|
return imgui.KeyKeypadDecimal
|
||||||
case sdl.SCANCODE_KP_DIVIDE:
|
case sdl.SCANCODE_KP_DIVIDE:
|
||||||
return newimgui.KeyKeypadDivide
|
return imgui.KeyKeypadDivide
|
||||||
case sdl.SCANCODE_KP_MULTIPLY:
|
case sdl.SCANCODE_KP_MULTIPLY:
|
||||||
return newimgui.KeyKeypadMultiply
|
return imgui.KeyKeypadMultiply
|
||||||
case sdl.SCANCODE_KP_MINUS:
|
case sdl.SCANCODE_KP_MINUS:
|
||||||
return newimgui.KeyKeypadSubtract
|
return imgui.KeyKeypadSubtract
|
||||||
case sdl.SCANCODE_KP_PLUS:
|
case sdl.SCANCODE_KP_PLUS:
|
||||||
return newimgui.KeyKeypadAdd
|
return imgui.KeyKeypadAdd
|
||||||
case sdl.SCANCODE_KP_ENTER:
|
case sdl.SCANCODE_KP_ENTER:
|
||||||
return newimgui.KeyKeypadEnter
|
return imgui.KeyKeypadEnter
|
||||||
case sdl.SCANCODE_KP_EQUALS:
|
case sdl.SCANCODE_KP_EQUALS:
|
||||||
return newimgui.KeyKeypadEqual
|
return imgui.KeyKeypadEqual
|
||||||
case sdl.SCANCODE_LSHIFT:
|
case sdl.SCANCODE_LSHIFT:
|
||||||
return newimgui.KeyLeftShift
|
return imgui.KeyLeftShift
|
||||||
case sdl.SCANCODE_LCTRL:
|
case sdl.SCANCODE_LCTRL:
|
||||||
return newimgui.KeyLeftCtrl
|
return imgui.KeyLeftCtrl
|
||||||
case sdl.SCANCODE_LALT:
|
case sdl.SCANCODE_LALT:
|
||||||
return newimgui.KeyLeftAlt
|
return imgui.KeyLeftAlt
|
||||||
case sdl.SCANCODE_LGUI:
|
case sdl.SCANCODE_LGUI:
|
||||||
return newimgui.KeyLeftSuper
|
return imgui.KeyLeftSuper
|
||||||
case sdl.SCANCODE_RSHIFT:
|
case sdl.SCANCODE_RSHIFT:
|
||||||
return newimgui.KeyRightShift
|
return imgui.KeyRightShift
|
||||||
case sdl.SCANCODE_RCTRL:
|
case sdl.SCANCODE_RCTRL:
|
||||||
return newimgui.KeyRightCtrl
|
return imgui.KeyRightCtrl
|
||||||
case sdl.SCANCODE_RALT:
|
case sdl.SCANCODE_RALT:
|
||||||
return newimgui.KeyRightAlt
|
return imgui.KeyRightAlt
|
||||||
case sdl.SCANCODE_RGUI:
|
case sdl.SCANCODE_RGUI:
|
||||||
return newimgui.KeyRightSuper
|
return imgui.KeyRightSuper
|
||||||
case sdl.SCANCODE_MENU:
|
case sdl.SCANCODE_MENU:
|
||||||
return newimgui.KeyMenu
|
return imgui.KeyMenu
|
||||||
case sdl.SCANCODE_0:
|
case sdl.SCANCODE_0:
|
||||||
return newimgui.Key0
|
return imgui.Key0
|
||||||
case sdl.SCANCODE_1:
|
case sdl.SCANCODE_1:
|
||||||
return newimgui.Key1
|
return imgui.Key1
|
||||||
case sdl.SCANCODE_2:
|
case sdl.SCANCODE_2:
|
||||||
return newimgui.Key2
|
return imgui.Key2
|
||||||
case sdl.SCANCODE_3:
|
case sdl.SCANCODE_3:
|
||||||
return newimgui.Key3
|
return imgui.Key3
|
||||||
case sdl.SCANCODE_4:
|
case sdl.SCANCODE_4:
|
||||||
return newimgui.Key4
|
return imgui.Key4
|
||||||
case sdl.SCANCODE_5:
|
case sdl.SCANCODE_5:
|
||||||
return newimgui.Key5
|
return imgui.Key5
|
||||||
case sdl.SCANCODE_6:
|
case sdl.SCANCODE_6:
|
||||||
return newimgui.Key6
|
return imgui.Key6
|
||||||
case sdl.SCANCODE_7:
|
case sdl.SCANCODE_7:
|
||||||
return newimgui.Key7
|
return imgui.Key7
|
||||||
case sdl.SCANCODE_8:
|
case sdl.SCANCODE_8:
|
||||||
return newimgui.Key8
|
return imgui.Key8
|
||||||
case sdl.SCANCODE_9:
|
case sdl.SCANCODE_9:
|
||||||
return newimgui.Key9
|
return imgui.Key9
|
||||||
case sdl.SCANCODE_A:
|
case sdl.SCANCODE_A:
|
||||||
return newimgui.KeyA
|
return imgui.KeyA
|
||||||
case sdl.SCANCODE_B:
|
case sdl.SCANCODE_B:
|
||||||
return newimgui.KeyB
|
return imgui.KeyB
|
||||||
case sdl.SCANCODE_C:
|
case sdl.SCANCODE_C:
|
||||||
return newimgui.KeyC
|
return imgui.KeyC
|
||||||
case sdl.SCANCODE_D:
|
case sdl.SCANCODE_D:
|
||||||
return newimgui.KeyD
|
return imgui.KeyD
|
||||||
case sdl.SCANCODE_E:
|
case sdl.SCANCODE_E:
|
||||||
return newimgui.KeyE
|
return imgui.KeyE
|
||||||
case sdl.SCANCODE_F:
|
case sdl.SCANCODE_F:
|
||||||
return newimgui.KeyF
|
return imgui.KeyF
|
||||||
case sdl.SCANCODE_G:
|
case sdl.SCANCODE_G:
|
||||||
return newimgui.KeyG
|
return imgui.KeyG
|
||||||
case sdl.SCANCODE_H:
|
case sdl.SCANCODE_H:
|
||||||
return newimgui.KeyH
|
return imgui.KeyH
|
||||||
case sdl.SCANCODE_I:
|
case sdl.SCANCODE_I:
|
||||||
return newimgui.KeyI
|
return imgui.KeyI
|
||||||
case sdl.SCANCODE_J:
|
case sdl.SCANCODE_J:
|
||||||
return newimgui.KeyJ
|
return imgui.KeyJ
|
||||||
case sdl.SCANCODE_K:
|
case sdl.SCANCODE_K:
|
||||||
return newimgui.KeyK
|
return imgui.KeyK
|
||||||
case sdl.SCANCODE_L:
|
case sdl.SCANCODE_L:
|
||||||
return newimgui.KeyL
|
return imgui.KeyL
|
||||||
case sdl.SCANCODE_M:
|
case sdl.SCANCODE_M:
|
||||||
return newimgui.KeyM
|
return imgui.KeyM
|
||||||
case sdl.SCANCODE_N:
|
case sdl.SCANCODE_N:
|
||||||
return newimgui.KeyN
|
return imgui.KeyN
|
||||||
case sdl.SCANCODE_O:
|
case sdl.SCANCODE_O:
|
||||||
return newimgui.KeyO
|
return imgui.KeyO
|
||||||
case sdl.SCANCODE_P:
|
case sdl.SCANCODE_P:
|
||||||
return newimgui.KeyP
|
return imgui.KeyP
|
||||||
case sdl.SCANCODE_Q:
|
case sdl.SCANCODE_Q:
|
||||||
return newimgui.KeyQ
|
return imgui.KeyQ
|
||||||
case sdl.SCANCODE_R:
|
case sdl.SCANCODE_R:
|
||||||
return newimgui.KeyR
|
return imgui.KeyR
|
||||||
case sdl.SCANCODE_S:
|
case sdl.SCANCODE_S:
|
||||||
return newimgui.KeyS
|
return imgui.KeyS
|
||||||
case sdl.SCANCODE_T:
|
case sdl.SCANCODE_T:
|
||||||
return newimgui.KeyT
|
return imgui.KeyT
|
||||||
case sdl.SCANCODE_U:
|
case sdl.SCANCODE_U:
|
||||||
return newimgui.KeyU
|
return imgui.KeyU
|
||||||
case sdl.SCANCODE_V:
|
case sdl.SCANCODE_V:
|
||||||
return newimgui.KeyV
|
return imgui.KeyV
|
||||||
case sdl.SCANCODE_W:
|
case sdl.SCANCODE_W:
|
||||||
return newimgui.KeyW
|
return imgui.KeyW
|
||||||
case sdl.SCANCODE_X:
|
case sdl.SCANCODE_X:
|
||||||
return newimgui.KeyX
|
return imgui.KeyX
|
||||||
case sdl.SCANCODE_Y:
|
case sdl.SCANCODE_Y:
|
||||||
return newimgui.KeyY
|
return imgui.KeyY
|
||||||
case sdl.SCANCODE_Z:
|
case sdl.SCANCODE_Z:
|
||||||
return newimgui.KeyZ
|
return imgui.KeyZ
|
||||||
case sdl.SCANCODE_F1:
|
case sdl.SCANCODE_F1:
|
||||||
return newimgui.KeyF1
|
return imgui.KeyF1
|
||||||
case sdl.SCANCODE_F2:
|
case sdl.SCANCODE_F2:
|
||||||
return newimgui.KeyF2
|
return imgui.KeyF2
|
||||||
case sdl.SCANCODE_F3:
|
case sdl.SCANCODE_F3:
|
||||||
return newimgui.KeyF3
|
return imgui.KeyF3
|
||||||
case sdl.SCANCODE_F4:
|
case sdl.SCANCODE_F4:
|
||||||
return newimgui.KeyF4
|
return imgui.KeyF4
|
||||||
case sdl.SCANCODE_F5:
|
case sdl.SCANCODE_F5:
|
||||||
return newimgui.KeyF5
|
return imgui.KeyF5
|
||||||
case sdl.SCANCODE_F6:
|
case sdl.SCANCODE_F6:
|
||||||
return newimgui.KeyF6
|
return imgui.KeyF6
|
||||||
case sdl.SCANCODE_F7:
|
case sdl.SCANCODE_F7:
|
||||||
return newimgui.KeyF7
|
return imgui.KeyF7
|
||||||
case sdl.SCANCODE_F8:
|
case sdl.SCANCODE_F8:
|
||||||
return newimgui.KeyF8
|
return imgui.KeyF8
|
||||||
case sdl.SCANCODE_F9:
|
case sdl.SCANCODE_F9:
|
||||||
return newimgui.KeyF9
|
return imgui.KeyF9
|
||||||
case sdl.SCANCODE_F10:
|
case sdl.SCANCODE_F10:
|
||||||
return newimgui.KeyF10
|
return imgui.KeyF10
|
||||||
case sdl.SCANCODE_F11:
|
case sdl.SCANCODE_F11:
|
||||||
return newimgui.KeyF11
|
return imgui.KeyF11
|
||||||
case sdl.SCANCODE_F12:
|
case sdl.SCANCODE_F12:
|
||||||
return newimgui.KeyF12
|
return imgui.KeyF12
|
||||||
default:
|
default:
|
||||||
return newimgui.KeyNone
|
return imgui.KeyNone
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user