Project

General

Profile

« Previous | Next » 

Revision 5c78017a

Added by danij almost 13 years ago

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.

Files

  • added
  • modified
  • copied
  • renamed
  • deleted

View differences