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 groupShaderProgram
int 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()
Copyright © 2016. All rights reserved.