UI rendering using Primitive Buffers

Over the years we have used a lot of different frameworks for creating user interfaces for various editors: wxWidgets, WinForms, WPF, QT, Chromium/HTML5 and others. To be honest we’ve never really liked any of them. Most of them feel bloated and they usually drag in huge dependencies. And when they don’t behave or perform as expected it can be very hard to navigate, debug and understand these monster frameworks.

»

Tobias Persson

The Importance of Diversity

If we look to nature, it’s easy to see that biodiversity has helped various species survive and adapt on Earth: from the variance of genetic code within a given species to prevent inbreeding, to the different ranges of ecosystems that require complex webs of interconnected species, life thrives on diversity. “One of the most important aspects of biodiversity is the inextricable interrelatedness of all the parts, be they genes, species, or populations,” writes a PhD researcher at the University of Montana, who studied the importance of biodiversity at Harvard’s Department of Organismic and Evolutionary Biology. In short, her findings show that biodiversity boosts the productivity of ecosystems, wherein each species has an important role to play.

»

Tricia Gray

Little Machines Working Together (Part 2)

In the previous post in this series I talked about our API registry that lets parts of our code register interfaces that other parts of the code can query for and call. The main advantage of doing this through a dynamic registry instead of through static linking is that the different modules can be written completely independent of one another, live in separate DLLs, and be loaded and unloaded dynamically. In this part I’ll show how we create a plugin from these parts.

»

Niklas Gray

Efficient binding of shader resources

Since my last post I’ve discovered a couple of more resource types that I feel it makes sense to expose through the tm_renderer_resource_command_buffer_i interface. Today we will take a closer look at one of them, which we call a resource binder. It can best be described as a graphics API agnostic object holding references to a number of resources (buffers, textures, etc) that should be bound to a shader.

»

Tobias Persson

Finding Alignment

Finding alignment in your work is imperative to a well-balanced life. There have been too many times when myself and my past colleagues have found ourselves misaligned on things, which can be disruptive, not only to the work at hand, but also to our mental well-being. I’ve witnessed this sort of misalignment send projects into disarray; sometimes this can be corrected back into place, but other times it can spell disaster over the long term. »

Tricia Gray