no longer randomny crash when resizing the window (fix the way we lock the mutex when recording the render commands) (sic)
Mutexes can be tricky. But now resizing works like a charm, not just randomly:
Ramblings about hobbyist game development
no longer randomny crash when resizing the window (fix the way we lock the mutex when recording the render commands) (sic)
Mutexes can be tricky. But now resizing works like a charm, not just randomly:
properly resize the UI when the window size changes
This makes sure that window sizes changes do not result in crashes by adding a UI change mutex as well as making sure that child elements in containers get notified about the changes as well:
– implement missing wall type selection in the UI
– fix bug when removing walls that caused warnings when removing walls
– finally remove temporary input code that was used to circumvent the missing UI
Wallpapers can now be set through the UI as is removing walls. That luckily also means that the ‘o’ hotkey is no longer needed, as the UI now supports everything that up to this point was only possible through the hotkeys.
– fully implement preliminary version of the tile menu
– do not refresh the UI and revert back to the generic build selection when clicking anything
– add more wallpapers and floor tiles
That basically says it all, why don’t you have a look:
fix bug that made almost every object undetectable by isPositionBlocked
Signedness is a powerful thing.
– add support for listing and adding all available object types dynamically through the UI
– make the render synchronisation code for the UI safer against crashes through race conditions
– add crappy temp icons for the object types
Aaaand once again, fewer crashes. The main point here is that we can place any object in shop mode now, enjoy the lovely icons:
– introduce functionality to just refresh the ui
– expose more of the gamestate through the main app class (to be consumed by the interface)
– simplify the button creation code by adding a small factory function
– flesh out the UI some more
– move the textures around a bit (introduce a rudimentary directory structure)
So far, every time we needed to update the UI the entirety of the rendering data was updated, which does not make sense, since the UI is a lot more likely to change on a frequent basis. Time to mitigate that.
The rest is of the message is more or less self-explanatory I hope.
– flesh out the UI a bit more (some of this is strictly temporary)
– fix a bug that gave us the same state hash for widgets that were identical (excep the widget id) (sic)
– do not rebuild descriptor sets and command buffers unnecessarily – also do not do it without ensuring we are in a sane state
So, once again quite a few renderer improvements. And once again, the more interesting part is the extension of the UI:
This time we see the addition of proper behaviour being added in the shop mode, once an object gets selected the user is presented with the cancel button to unselected as well as a rubbish button to delete it.
– fix a few conditions in relation to texture/descritpr set mapping in the UI pipeline (sic)
– fix a condition in the model pipeline that was never triggered
– add a lot of new icons
– partially implement the build mode UI
The renderer did not properly clean up some texture related data structures after removing the last usage of a texture, this is now fixed!
More exciting are the user facing changes, so that we are partially able to replace the terrible ‘o’ hotkey experience when wanting to build something. Currently it is possible to build new walls and set a wall type just using the UI and no hotkeys. It is not complete yet, but certainly feels a lot nice to use:
add textures to the game mode buttons
Check out the texture support, it almost looks like a UI now: