libprimis icon indicating copy to clipboard operation
libprimis copied to clipboard

Libprimis: Imprimis' 3D destroyable world engine

Results 94 libprimis issues
Sort by recently updated
recently updated
newest added

After some discussion, it has been determined that changing the semantics for objects' (classes and structs) names to PascalCase (as opposed to the widely used, but not consistently applied, lowercase)...

inconsistency

`texture.h` defines the `LOCALPARAMI` and `LOCALPARAMF` macros as well as `GLOBALPARAMI` `GLOBALPARAMF`, `SETSHADER`, and `SETVARIANT`, all of which are variadic macros (can take arbitrary numbers of arguments). This is undesirable...

misimplementation

Vertex water "subdivision" actually just packs the same wave pattern into a smaller area, leading to no improvement (actually a reduction) in apparent water smoothness. Turning up the vertex water...

misimplementation

This function has an extremely high cyclomatic complexity and has multiple confusing `goto` statements that makes it hard to parse. It's also four hundred lines long.

misimplementation

https://github.com/project-imprimis/imprimis/blob/17eb9bc56cf668d8969a6bc3a3ecdacb4721d00f/src/shared/stream.cpp#L184-L226 This function uses a *lot* of `goto` statements which makes it hard to understand. Most of these should be axed, or failing that, well commented.

misimplementation

This construction is used to either implicitly coerce following added pointers to the type of the pointer in the construction, or to initialize new pointers as null ones. C++'s `nullptr`...

misimplementation

These two VA related functions can be moved to the file for rendering vertex arrays, `renderva.cpp`. https://github.com/project-imprimis/imprimis/blob/56195748f7908a88b2936ada0da58282afe89220/src/engine/render/octarender.cpp#L1961-L2002 https://github.com/project-imprimis/imprimis/blob/56195748f7908a88b2936ada0da58282afe89220/src/engine/render/octarender.cpp#L2042-L2125

inconsistency

The `rhtaps` var only applies for values of 12, 20, 32; intermediate values passed merely round down. This is not reflected in the var's implied behavior, as having 20 intermediate...

inconsistency
good first issue

The size of the reflective shadow map (RSM) is specified directly in terms of pixels, unlike the standard shadowmap which is specified in terms of powers of 2. As the...

inconsistency
good first issue

Currently, the engine uses `hdr` for both high dynamic range-related parts of the renderer and for the header section of maps. Changing to `header` for map header objects would remove...

misimplementation
good first issue