render (display) geometry buffers on F3 via ImGUI
This commit is contained in:
parent
06cd549eb7
commit
a17a43505c
@ -7,6 +7,7 @@ import (
|
||||
"unsafe"
|
||||
|
||||
"edgaru089.ml/go/gl01/internal/asset"
|
||||
"edgaru089.ml/go/gl01/internal/igwrap"
|
||||
"edgaru089.ml/go/gl01/internal/io"
|
||||
"edgaru089.ml/go/gl01/internal/util"
|
||||
"edgaru089.ml/go/gl01/internal/util/itype"
|
||||
@ -269,6 +270,10 @@ func (r *WorldRenderer) Init(w *world.World) (err error) {
|
||||
// attach textures
|
||||
r.output.shader.SetUniformTextureHandle("tex", r.output.tex)
|
||||
|
||||
// set the texture flags for ImGUI
|
||||
igwrap.SetTextureFlag(r.gbuffer.color, igwrap.TextureFlag_Linear)
|
||||
igwrap.SetTextureFlag(r.ssao.ambient, igwrap.TextureFlag_Red)
|
||||
|
||||
gl.BindFramebuffer(gl.FRAMEBUFFER, 0)
|
||||
r.lastDisplaySize = io.DisplaySize
|
||||
r.startTime = time.Now()
|
||||
@ -421,8 +426,22 @@ func (r *WorldRenderer) Render(world *world.World, view *View) {
|
||||
DrawScreenQuad()
|
||||
|
||||
// Show G-buffers?
|
||||
/*if io.ShowDebugInfo {
|
||||
DrawTexture(r.gbuffer.pos, itype.Rectf{0.5, 0.5, 0.5, 0.5}, DrawTextureChannels_R|DrawTextureChannels_G|DrawTextureChannels_B, 0, 32)
|
||||
DrawTexture(r.gbuffer.depth, itype.Rectf{0.5, 0, 0.5, 0.5}, DrawTextureChannels_R, 0, 1)
|
||||
}*/
|
||||
if io.ShowDebugInfo {
|
||||
imgui.SetNextWindowPosV(imgui.Vec2{X: float32(r.lastDisplaySize[0]), Y: 0}, imgui.ConditionAlways, imgui.Vec2{X: 1, Y: 0})
|
||||
if igwrap.Begin("Renderer Textures/Outputs", nil, imgui.WindowFlagsAlwaysAutoResize|imgui.WindowFlagsNoBackground|imgui.WindowFlagsNoNavFocus|imgui.WindowFlagsNoDecoration|imgui.WindowFlagsNoInputs|imgui.WindowFlagsNoSavedSettings|imgui.WindowFlagsNoFocusOnAppearing) {
|
||||
imgui.PushStyleVarVec2(imgui.StyleVarItemSpacing, imgui.Vec2{})
|
||||
|
||||
imageSize := r.lastDisplaySize.ToFloat32().Multiply(0.25)
|
||||
imageSize[1] -= imgui.CurrentStyle().WindowPadding().Y / 2
|
||||
imageSize[0] = imageSize[1] / float32(r.lastDisplaySize[1]) * float32(r.lastDisplaySize[0])
|
||||
|
||||
igwrap.Image(r.gbuffer.pos, imageSize, itype.Rectf{0, 0, 1, 1})
|
||||
igwrap.Image(r.gbuffer.norm, imageSize, itype.Rectf{0, 0, 1, 1})
|
||||
igwrap.Image(r.gbuffer.color, imageSize, itype.Rectf{0, 0, 1, 1})
|
||||
igwrap.Image(r.ssao.ambient, imageSize, itype.Rectf{0, 0, 1, 1})
|
||||
|
||||
imgui.PopStyleVar()
|
||||
imgui.End()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user