public interface GroupStrategy
This class provides hooks which are invoked by DecalBatch to evaluate the group a sprite falls into, as well as to
adjust settings before and after rendering a group.
A group is identified by an integer. The beforeGroup() method provides the strategy with a list
of all the decals, which are contained in the group itself, and will be rendered before the associated call to
afterGroup(int).
A call to beforeGroup() is always followed by a call to afterGroup().
Groups are always invoked based on their ascending int values. Group -10 will be rendered before group -5, group -5
before group 0, group 0 before group 6 and so on.
The call order for a single flush is always beforeGroups(), beforeGroup1(), afterGroup1(), ... beforeGroupN(),
afterGroupN(), afterGroups().
The contents of the beforeGroup() call can be modified at will to realize view frustum culling, material & depth
sorting, ... all based on the requirements of the current group. The batch itself does not change OpenGL settings except for
whichever changes are entailed DecalMaterial.set(). If the group requires a special shader, blending,
getGroupShader(int) should return it so that DecalBatch can apply it while rendering the group.
| Modifier and Type | Method and Description |
|---|---|
void |
afterGroup(int group)
Invoked directly after rendering of a group has completed
|
void |
afterGroups()
Invoked after having rendered all groups
|
void |
beforeGroup(int group,
Array<Decal> contents)
Invoked directly before rendering the contents of a group
|
void |
beforeGroups()
Invoked before rendering any group
|
int |
decideGroup(Decal decal)
Assigns a group to a decal
|
ShaderProgram |
getGroupShader(int group)
Returns the shader to be used for the group.
|
ShaderProgram getGroupShader(int group)
group - the groupShaderProgramint decideGroup(Decal decal)
decal - Decal to assign group tovoid beforeGroup(int group,
Array<Decal> contents)
group - Group that will be renderedcontents - Array of entries of arrays containing all the decals in the groupvoid afterGroup(int group)
group - Group which completed renderingvoid beforeGroups()
void afterGroups()