Commit 6aecf108

– make things compatible with current libglm releases
– make olives compile and run with recent libvulkan releases (WiP, breakage occurring still)
– fewer magic numbers

Maintenance changes, before that I was forced to downgrade to older versions of both in order to make OLives compile. Not a fun change, at all. 🙁
This is the first in a series of maintenance commits before going back to more feature driven development.

Commit dc8d192d

– add a (one way) binding from C++ to python for the time being
– automatically load scripts on a per object type basis
– add the ability to have optional configuration settings

This marks the introduction of Python by using pybind.
At this point it is not doing much except for laying groundwork for what is to come: adding new properties to the Object and ObjectType classes and extending the ObjectType configuration to define a script file that needs to be loaded when an Object is added to the GameState.
Right now, a script file is being loaded and a script interpreter instance is being instantiated when an object is being created and this is where the integration ends: no Python code is actually executed at this point.
The single Python file currently loaded looks like this:

It is relatively easy to tell where this is going by looking at the function names, but as mentioned before, so far the only important thing is that this is a syntactically correct Python file.

Commit 83b8e087

add new padding and sizing modes in order to allow for near pixel-perfect widget alignment

This took a while and was fairly frustrating. This is visually a considerably better result, but by no means perfect. It essentially tries to bring the concepts of “relative sizes” and “pixel specified sizes” closer together, but still suffers from some rounding problems. Be that as it may, it’s a clear improvement, as can be seen in this before/after shot: