Fixing bugs, refactoring and general improvements were the main things I worked on this week. Althogh, I did get some of the code editing features that were missing up and running.
I can now run, suspend and kill the processes from the transport controls with the code editor. I can also adjust the speed at which the output appears in the code editor. Which is all necessary to have a basic code editing environment that does not involve any alien interfaces or magic keys to get up and running.
As I was working on this and improving the code editor, I exposed an annoying problem that I will have to address. Basically, these game engine text boxes are not suitable for large amounts of textual data. They have hard limits and I would have to create some culling tricks around those to be able to use them properly.
On the other hand, I was actually at one point considering just using Scintilla as a background process to generate a texture image for the code editing, so that I could utilize an efficient native back end to deal with all the nifty code editing features and just blit the texture to a quad 30 times a second.
It would simplify my sollution as it is right now and make it a lot faster. I would not have to maintain these code highlighting layers of UI items and make things simpler at the front end.
Or I could stick to what I have, have a hard limit on how many characters you can put into a single line and just place the visible lines in the controls themselves. A primitive culling mechanic so that I can make the current solution work.
I am going to try the latter approach first to see if that works properly since I have most of that work done already. Otherwise, it is Scintilla and background processes rendering to textures.
This weekend is going to be spent on moving house for the second time this summer. This time we have a long term lease…
Lots of exciting things to do as soon as I have settled in at the new place.