No Game Engine Game Dev: Word Sleuth 030B: TextEdit Cursor and long word wrapping

4 months ago
9

Streamed on 2024-08-13 (https://www.twitch.tv/thediscouragerofhesitancy)

Game Engines are for sissies!

Sorry the stream cut short; my internet died. There is a part A.

I finally finished tracking down all the bookkeeping for cursor position with different text alignments. With that out of the way, I added a callback for Text to signal when the cursor positions have been updated and a small change to TextEdit to skip over windows end of line (\n\r) in a single key stroke.

With that out of the way, we added clipping to the cursor so it won't render outside the TextEdit area. This required a refactor that I wanted to do anyway. Instead of passing View-Projection matrix * localTransform down to child elements for rendering, we instead pass only the View-Projection matrix down to children and rely on worldTransform to apply all parent transforms. In the worst case this shouldn't be worse than what we had before, and in the general case it should be more efficient. Then it was similar shader work to what we did with Text clipping.

Next, I reworked my Makefile so we don't produce precompiled headers. I think the precompiled headers were causing more trouble in my build process then they were at saving time. We'll let this cook for a while, but I suspect we won't have to clean before building as often.

Lastly, I started on long word wrapping. This adds yet more bookkeeping to be done with counting characters and quads in the VertexBuffer and cursor positions. We got close, but there is still one open issue with the implementation that we'll wrap up next time.

Loading 1 comment...