Progress on Text Rendering

August 21, 2020

Hi everyone!

As I have mentioned in the previous post, I took a little break, but I'm now back working on VGC :-) More precisely, I've been working on text rendering for the past few weeks: the image above is one of the very first renders of text in the VGC graphics engine!

Why do I need to implement text rendering?

Typically, when developing a desktop application, showing text on screen is quite easy: you can simply use the built-in text functionality of your chosen UI framework (example: Qt, GTK, Win32, Cocoa, Skia, etc.). Basically, you just write something like "drawText('Hello!')", and you're done.

However, as I explained at the beginning of the year, I decided to implement my own graphics engine so that I can fine-tune it and optimize it to the specific use case of VGC. In fact, the requirements for VGC are somewhat more similar to a 3D game than a typical user interface, not only because we need a 3D view, but also because we need extremely low latency, otherwise drawing doesn't feel good (lag between mouse and drawn line).

Implementing a custom graphics engine is not a decision I took lightly, and one of the things that made me hesitate the most is text rendering. I knew it would be one of the most time-consuming thing to implement: text is more complicated than it seems. Anyway, because of this choice, I need to implement some custom code for rendering text, which most applications typically don't have to do.

What is already implemented?

I've made a lot of progress the past few weeks:

What should still be implemented?

There are three big remaining algorithms to implement:

What's nice about the two remaining steps is that they will be super useful in the future! I also need these for rendering VGC faces. I just happen to need it now for text rendering, but even if I hadn't decided to implement some custom text rendering, those are algorithms that were needed anyway :-)

Once again, thanks a lot for your support and patience!

Boris

Stay tuned

Found this news interesting? We can send the next ones straight to your inbox (around twice a month). Or we can simply let you know when VGC 1.0 is released. No spam guaranteed. You can unsubscribe at any time.