Package gaiasky.util.gdx.g3d.decals
Class CameraGroupStrategy
java.lang.Object
gaiasky.util.gdx.g3d.decals.CameraGroupStrategy
- All Implemented Interfaces:
com.badlogic.gdx.graphics.g3d.decals.GroupStrategy
,com.badlogic.gdx.utils.Disposable
public class CameraGroupStrategy
extends java.lang.Object
implements com.badlogic.gdx.graphics.g3d.decals.GroupStrategy, com.badlogic.gdx.utils.Disposable
Minimalistic grouping strategy that splits decals into opaque and transparent ones enabling and disabling blending as needed.
Opaque decals are rendered first (decal color is ignored in opacity check).
Use this strategy only if the vast majority of your decals are opaque and the few transparent ones are unlikely to overlap.
Can produce invisible artifacts when transparent decals overlap each other.
Needs to be explicitly disposed as it might allocate a ShaderProgram when GLSL 2.0 is used.
States (* = any, EV = entry value - same as value before flush):
expects | exits on | |
glDepthMask | true | EV |
GL_DEPTH_TEST | enabled | EV |
glDepthFunc | GL_LESS | GL_LEQUAL | EV |
GL_BLEND | disabled | EV | disabled |
glBlendFunc | * | * |
GL_TEXTURE_2D | * | disabled |
-
Constructor Summary
Constructors Constructor Description CameraGroupStrategy(com.badlogic.gdx.graphics.Camera camera)
CameraGroupStrategy(com.badlogic.gdx.graphics.Camera camera, java.util.Comparator<com.badlogic.gdx.graphics.g3d.decals.Decal> sorter)
-
Method Summary
Modifier and Type Method Description void
afterGroup(int group)
void
afterGroups()
void
beforeGroup(int group, com.badlogic.gdx.utils.Array<com.badlogic.gdx.graphics.g3d.decals.Decal> contents)
void
beforeGroups()
int
decideGroup(com.badlogic.gdx.graphics.g3d.decals.Decal decal)
void
dispose()
com.badlogic.gdx.graphics.Camera
getCamera()
com.badlogic.gdx.graphics.glutils.ShaderProgram
getGroupShader(int group)
void
setCamera(com.badlogic.gdx.graphics.Camera camera)
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Constructor Details
-
CameraGroupStrategy
public CameraGroupStrategy(com.badlogic.gdx.graphics.Camera camera) -
CameraGroupStrategy
public CameraGroupStrategy(com.badlogic.gdx.graphics.Camera camera, java.util.Comparator<com.badlogic.gdx.graphics.g3d.decals.Decal> sorter)
-
-
Method Details
-
setCamera
public void setCamera(com.badlogic.gdx.graphics.Camera camera) -
getCamera
public com.badlogic.gdx.graphics.Camera getCamera() -
decideGroup
public int decideGroup(com.badlogic.gdx.graphics.g3d.decals.Decal decal)- Specified by:
decideGroup
in interfacecom.badlogic.gdx.graphics.g3d.decals.GroupStrategy
-
beforeGroup
public void beforeGroup(int group, com.badlogic.gdx.utils.Array<com.badlogic.gdx.graphics.g3d.decals.Decal> contents)- Specified by:
beforeGroup
in interfacecom.badlogic.gdx.graphics.g3d.decals.GroupStrategy
-
afterGroup
public void afterGroup(int group)- Specified by:
afterGroup
in interfacecom.badlogic.gdx.graphics.g3d.decals.GroupStrategy
-
beforeGroups
public void beforeGroups()- Specified by:
beforeGroups
in interfacecom.badlogic.gdx.graphics.g3d.decals.GroupStrategy
-
afterGroups
public void afterGroups()- Specified by:
afterGroups
in interfacecom.badlogic.gdx.graphics.g3d.decals.GroupStrategy
-
getGroupShader
public com.badlogic.gdx.graphics.glutils.ShaderProgram getGroupShader(int group)- Specified by:
getGroupShader
in interfacecom.badlogic.gdx.graphics.g3d.decals.GroupStrategy
-
dispose
public void dispose()- Specified by:
dispose
in interfacecom.badlogic.gdx.utils.Disposable
-