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 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
ConstructorsConstructorDescriptionCameraGroupStrategy(com.badlogic.gdx.graphics.Camera camera) CameraGroupStrategy(com.badlogic.gdx.graphics.Camera camera, Comparator<com.badlogic.gdx.graphics.g3d.decals.Decal> sorter) -
Method Summary
Modifier and TypeMethodDescriptionvoidafterGroup(int group) voidvoidbeforeGroup(int group, com.badlogic.gdx.utils.Array<com.badlogic.gdx.graphics.g3d.decals.Decal> contents) voidintdecideGroup(com.badlogic.gdx.graphics.g3d.decals.Decal decal) voiddispose()com.badlogic.gdx.graphics.Cameracom.badlogic.gdx.graphics.glutils.ShaderProgramgetGroupShader(int group) voidsetCamera(com.badlogic.gdx.graphics.Camera camera)
-
Constructor Details
-
CameraGroupStrategy
public CameraGroupStrategy(com.badlogic.gdx.graphics.Camera camera) -
CameraGroupStrategy
public CameraGroupStrategy(com.badlogic.gdx.graphics.Camera camera, Comparator<com.badlogic.gdx.graphics.g3d.decals.Decal> sorter)
-
-
Method Details
-
getCamera
public com.badlogic.gdx.graphics.Camera getCamera() -
setCamera
public void setCamera(com.badlogic.gdx.graphics.Camera camera) -
decideGroup
public int decideGroup(com.badlogic.gdx.graphics.g3d.decals.Decal decal) - Specified by:
decideGroupin 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:
beforeGroupin interfacecom.badlogic.gdx.graphics.g3d.decals.GroupStrategy
-
afterGroup
public void afterGroup(int group) - Specified by:
afterGroupin interfacecom.badlogic.gdx.graphics.g3d.decals.GroupStrategy
-
beforeGroups
public void beforeGroups()- Specified by:
beforeGroupsin interfacecom.badlogic.gdx.graphics.g3d.decals.GroupStrategy
-
afterGroups
public void afterGroups()- Specified by:
afterGroupsin interfacecom.badlogic.gdx.graphics.g3d.decals.GroupStrategy
-
getGroupShader
public com.badlogic.gdx.graphics.glutils.ShaderProgram getGroupShader(int group) - Specified by:
getGroupShaderin interfacecom.badlogic.gdx.graphics.g3d.decals.GroupStrategy
-
dispose
public void dispose()- Specified by:
disposein interfacecom.badlogic.gdx.utils.Disposable
-