C++ library for simplified setup & management of OpenGL shader-based texture rendering
Hello! Welcome to the repository of my newest project, the Basil graphics library. I'm excited to provide more information about it, but this README is currently under construction as I approach the first official release of this project. Check back soon for more information, or feel free to reach out to me.
The following core tenets comprise Basil's design philosophy.
I have made the following pointed assumptions about my future self, around which the project is designed:
More than once since starting my foray into software development, a project of mine has attracted a much larger viewing audience than I could have expected. This always starts out as a great ego boost, until some well meaning person with ten times my experience and wisdom dives into the repository and discovers a pile of highly fragrant spaghetti code.
For this project, I want the code to:
I was either born with, or raised into, the terrible affliction of absolutely loving process and automation. Since this is a personal project, nobody can talk me out of both including and enforcing all the bells and whistles I could ever want.
Major features include:
In previous OpenGL projects, I have either limited scope or migrated to the Unity game engine due to the effort required to implement more mature features. I hope to eliminate these sharp corners for future projects.
Intended features include:
One of the simultaneous highs and lows of diving deeper into the world of C++ is discovering that very few things are standardized in terms of recommended file structures, patterns, or toolchains.
Given this reluctant freedom, I have focused on using patterns and structures that make sense to my brain at its current level of experience and exposure to other technologies. To some degree, this is going to be reflective of patterns that I have had a lot of repetition with during my employment, with the project using Java-style file-per-class, or defaulting to a Builder pattern for the "foolproof" version of things.
Other choices will simply come down to taste, but in all cases, my main goal is to be consistent above all else.
Adopting a new technology on promise and premise alone is a tough sell. I hope to include examples that really show off the worth of the Basil library, while also serving as an instruction manual, and a showcase. I have some things in mind, such as rewriting old projects using Basil to see how much effort is saved, or mocking up a duplicate of the functionality of Shadertoy, but more concrete plans will be made further down in the line in development, after more features begin to reach maturity.
Installation, build, and usage instructions will be fleshed out in upcoming release.