Commit 53edc6a8

Remove redunant code from the renderer and make things more generic (sic)

This moves all the render pipelines that have been class members into a std::map so that we can iterate over them, this makes it a lot easier to get rid of some code duplication.
It also introduces a FileReader class which is only used for now to read the shader code. Before that, that same code was on the renderer itself since the beginnings of (OLives) times, where it obviously did not belong.

Commit 06e1e131

– 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.

Commit fdfed299

– 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:

Commit c33f3978

– 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.

Commit ead4bdf9

– 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.