Development Day 9: Release

I am excited to announce the first release of ChronoWatch v2.

Version 2.0: Orange Juice on my Head, is now available for download here. It also includes ChronoDog, finally making it possible to read ChronoWatch’s output in a simple format… kind of.


Sorting systems by running time, and other user-experience improvements are planned, but I wanted to release what I had since it was officially in a usable state.

Please, enjoy. Feel free to contact me ( if there are any issues.

~Nolan T Yoo

Development Day 7: dear, beloved imgui

Perhaps for the better, there is no method to blindly and agnostically draw text onto the game engine’s window:

  • OpenGL or DirectX?
    • Which version?
  • SDL or GLFW?
  • Windows, Mac OS X, or Linux?

There are simply too many variables. For this reason, I have chosen to use dear imgui to help leverage my need to draw data on the screen. However, I quickly realized that adding a helper library to dear imgui would allow:

  • The user to use his own dear imgui helper library.
  • Me to save time when looking up/binding imgui GUI elements.

… This was back when GGEngine was initially being developed, of course. So ChronoWatch depended on GGEngine’s dear imgui helper.

This helper has now been reimplemented in a separate library so that the following is possible:


Simply, calling ChronoWatch::SysInfo.ImguiCommands() before ImGui::Render() will have ChronoWatch draw all of its profiling data. Cool!

Time spent: 8 hours. (Dependencies are hard!)

Development Day 3+4: Readable Output

Commit history for the curious, as far as this work segment goes:


So as I re-remember, just because something can update every frame, doesn’t mean that it should. Any text that changes every frame probably isn’t going to be that readable. At least, I know that I can’t read 60 numbers per second.

… So why did ChronoWatch v1.0 insist on updating text every frame? Oops!

While ChronoWatch isn’t outputting profile information into a text file, the text that it does display should probably be readable. As such, it is now possible to change how often ChronoWatch updates its display.


Unfortunately that is a number of frames: the display will update every 12 frames rather than every frame… and rather than every 12 milliseconds.

Oh well. This is approximately 5 updates per second assuming 60 FPS. Obviously that isn’t reality, but I’m happy with this achievement nonetheless.


Time spent: 8.5 hours. (Other engine decoupling changes were made.)

~Nolan T Yoo