Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Refactor: New mechanism for configuring render list texture units
The previous implementation made texture unit configuration a function of primitive writing, therefore every time one wanted to write a polygon to the lists, the texture unit config had to be reconstructed. This interface mechanic was a architectural bottleneck (not helped by the fact that acquiring the config to construct the texture unit state itself had some performance issues). This commit addresses this bottleneck thus: 1) Render list primitive write interface was extended with a state based texture unit configuration mechanic. It is also now possible to configure this state once, before then writing multiple polygons to the list(s). 2) Render list interface was extended with the ability to reference directly prepared rtexmapunit_t states owned by another module. 3) World renderer was enhanced to take advantage of the new mechanics of the render list inteface, mapping the preprocessed rtexmapunit_t state (owned by MaterialSnapshot) when writing to the lists. 4) Added new logical texture units for shiny textures and their masks and moved writing of the shiny polygons into the render list module. The interface presented by the render list module now deals entirely with "logical" texture units. Users of this module should not need to be concerned with whether there are enough "physical" texture units available. The render list module will itself dynamically determine when insufficent units are available and use a new render pass as is necessary. Therefore the primitive write for shiny textures belongs in this module. Cleanup of the Material type hierarchy.
- Loading branch information
1 parent
96a92be
commit 5c78017
Showing
31 changed files
with
1,464 additions
and
1,031 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.