add the first part of the WiP model concept, currently broken
This introduces the ModelManager, a class that can load arbitrary models as well as caching data about already loaded models, so requesting the same model twice will not result in the same model being loaded more than once.
In this state the code was already added, but broke the build, also even if it worked, it would have been unused by the renderer, which was still using hardcoded model references.
implement the first iteration of the logger
This introduces the logger, the main features are different logging levels (Normal, Error and Debug) as well as automatic logging into stdout/stderr respectively as well as into a main logging file (olives.log) for the Normal/Debug messages and an error file (olives.err.log) for the Error type log entries. Using it looks something like this:
std::string message = “Renderer: Could not create logical device”;
even more consts
See the previous commit. 🙂
add some consts
As OLives is written in C++, go figure. This is more or less just peppering the code with consts.
implement mouse triggered scrolling
This greatly fleshes out the glfw based input handling and adds mouse based scrolling to the keyboard scrolling.
The basic idea here is to consider the outer 15% of the current viewport as scrolling trigger areas and use the same behaviour as if the user were pressing the cursors case in the selected direction.
implement keyboard scrolling (somewhat rough feeling, good enough for now)
Similar to the previous commit this also implements scrolling, not just rotation. Also, once again inspired by the rotation, it will accelerate/decelerate the movement instead of just having a constant speed.
Add user triggered rotation
This actually implements the rotation hinted at in the previous commit. This also has a simple acceleration/deceleration function, so the rotation feels relatively smooth.
refactor and flesh out key input handling
The input handling is improved by adding the ability to support ongoing key presses as opposed to the simply registering simple one-off key strokes.
This also adds support for rotation, something that does not actually do anything yet, this yet and is just meant as a proof-of-concept.
Catch our first keyboard input event
Nothing much to add to this commit message. A bare-bones input handler was created that simply ignored all input except for the user to press Q to quit OLives.
Catch our first keyboard input event (add missing changes)
No functional changes to the previous commit, simply some missing files added to the commit.