January Update: Some small GUI progress
Again, this month I haven’t had much time to devote to HUMBUG. <INSERT LAME EXCUSES HERE> I did however get a couple good days and have inched forward on getting the GUI code done. I have a fairly full featured text box widget. I am pretty happy with it, it does undo, mouse select, and fully functional line editing. I was initially going to try to use STB’s text edit, but I actually decided that it would be much simpler for me to just implement what I needed from scratch. I also have scrolling panels now that work much better for me than what Dear ImGUI was doing for me before. The simplest way to use the immediate mode GUIs for list type things, is to render the entire list in a loop and it clips to the visible region. However for me I was having prohibitively large numbers of items in my lists and it was contributing a noticeable lag without some workarounds. My new way of doing the lists is to have the panel tell me which item to start rendering and I can just skip to that one. I also of course have buttons. I don’t really think that HUMBUG will really require much more than that, as I am not really using anything more than that in the current GUI.
I think moving forward I will not need movable/floating panels, so I think Im going to skip implementing that for now. I don’t think that the floating panels really contributed to the user experience, and I was only using them because that was the easiest way to get started with DearIMGui, I think I would be interested in maybe doing resizable/dock-able type things that you see in visual studio, but I think for now I’l just try something fixed, probably a 3 panel layout with the source code as the largest with watch and stack panels on the bottom and right. Other things like break-points and console I could just have show up in momentary modal dialogs… Anyone have thoughts on this?
I just have a few things left to do like keyboard focus and turning the GUI prototype code into more of a library. I am hoping that those items shouldn’t take very long and I can start re-implementing the HUMBUG soon. Hopefully I can get some good feedback from testers and then assess if its time to expand the testing pool or not.
PS Random question: I am using glScissor to trim up the edges of my panels, but I find that it being in window coordinates is a little awkward… is this something that I should consider putting into my shader? I’d be interested in seeing some example code for that…