libprimis
libprimis copied to clipboard
Libprimis: Imprimis' 3D destroyable world engine
It would appear that water can sometimes "cut" parts of gun off:  Notice how the red cover over barrel is partially cut out. here it is working correctly 2...
octaedit.cpp's `rendertexturepanel` has an assignment with mysteriously arbitrary values assigned to a throwaway variable, which should be commented properly. ```c++ int s = (i == 3 ? 285 : 220),...
`renderstate` is a data-only structure used for carrying around rendering data. However, it has a large number of associated functions which essentially act as member variables. Moving them into the...
The libprimis-headers file `glexts.h` defines a series of deprecated OpenGL bindings, such as `GL_QUADS` and `GL_ALPHA`, that have been deprecated as of OpenGL 3.0. Since libprimis only targets OpenGL 4.0...
The renderva object `shadowmesh` is a POD-type object that has multiple functions related to it carry out very member function-like behavior upon its fields. Integrating these functions into the object...
The current class `vec`, while useful, requires the user to use an unusual means of calculating operations: named methods corresponding to the desired operation. However, C++ gives us operator overloads,...
There are many options that are either not needed anymore or don't function properly. The list is incomplete and likely to change in the future. - Since the removal of...
`renderva.cpp` is a very long (~3.4k) line file which is internally separated into two sections: occlusion (hiding geometry hidden by geometry) and vfc (hiding geometry not in the view of...
C++11 and above have a `constexpr` storage type for values which can be evaluated and are fixed during compilation. Using `constexpr` for these values makes it more clear when values...
It sounds hard to believe, but using macros to construct function names makes them hard to find. Indeed, since `GETMATIDXVAR` creates a function name by concatenating arguments, it is impossible...