Package gaiasky.render.system
Class AbstractRenderSystem
- java.lang.Object
-
- gaiasky.render.system.AbstractRenderSystem
-
- All Implemented Interfaces:
IRenderSystem
- Direct Known Subclasses:
BillboardSpriteRenderSystem
,BillboardStarRenderSystem
,FontRenderSystem
,ImmediateRenderSystem
,ModelBatchRenderSystem
,ModelBatchTessellationRenderSystem
,ShapeRenderSystem
public abstract class AbstractRenderSystem extends java.lang.Object implements IRenderSystem
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
AbstractRenderSystem.RenderSystemRunnable
-
Field Summary
Fields Modifier and Type Field Description protected float[]
alphas
protected com.badlogic.gdx.math.Vector3
aux
protected Vector3d
auxd
protected java.util.Comparator<IRenderable>
comp
Comparator of renderables, in case of needstatic boolean
POINT_UPDATE_FLAG
When this is true, new point information is available, so new data is streamed to the GPUprotected com.badlogic.gdx.utils.Array<AbstractRenderSystem.RenderSystemRunnable>
postRunnables
protected com.badlogic.gdx.utils.Array<AbstractRenderSystem.RenderSystemRunnable>
preRunnables
protected ExtShaderProgram[]
programs
RenderingContext
rc
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractRenderSystem(SceneGraphNode.RenderGroup rg, float[] alphas, ExtShaderProgram[] programs)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected void
addDepthBufferUniforms(ExtShaderProgram shaderProgram, ICamera camera)
Uniforms needed to compute the logarithmic depth buffer.protected void
addEffectsUniforms(ExtShaderProgram shaderProgram, ICamera camera)
protected void
addGravWaveUniforms(ExtShaderProgram shaderProgram)
void
addPostRunnables(AbstractRenderSystem.RenderSystemRunnable... r)
void
addPreRunnables(AbstractRenderSystem.RenderSystemRunnable... r)
protected void
addPreviousFrameUniforms(ExtShaderProgram shaderProgram, ICamera camera)
Uniforms needed for the velocity bufferprotected void
addRelativisticUniforms(ExtShaderProgram shaderProgram, ICamera camera)
protected void
addVRScale(ExtShaderProgram shaderProgram)
float
getAlpha(ComponentTypes ct)
float
getAlpha(IRenderable renderable)
Computes the alpha opacity value of a given renderable using its component typesSceneGraphNode.RenderGroup
getRenderGroup()
protected ExtShaderProgram
getShaderProgram()
void
render(com.badlogic.gdx.utils.Array<IRenderable> renderables, ICamera camera, double t, RenderingContext rc)
abstract void
renderStud(com.badlogic.gdx.utils.Array<IRenderable> renderables, ICamera camera, double t)
void
resize(int w, int h)
protected void
run(com.badlogic.gdx.utils.Array<AbstractRenderSystem.RenderSystemRunnable> runnables, com.badlogic.gdx.utils.Array<IRenderable> renderables, ICamera camera)
void
updateBatchSize(int w, int h)
-
-
-
Field Detail
-
POINT_UPDATE_FLAG
public static boolean POINT_UPDATE_FLAG
When this is true, new point information is available, so new data is streamed to the GPU
-
programs
protected ExtShaderProgram[] programs
-
alphas
protected float[] alphas
-
comp
protected java.util.Comparator<IRenderable> comp
Comparator of renderables, in case of need
-
rc
public RenderingContext rc
-
aux
protected com.badlogic.gdx.math.Vector3 aux
-
auxd
protected Vector3d auxd
-
preRunnables
protected com.badlogic.gdx.utils.Array<AbstractRenderSystem.RenderSystemRunnable> preRunnables
-
postRunnables
protected com.badlogic.gdx.utils.Array<AbstractRenderSystem.RenderSystemRunnable> postRunnables
-
-
Constructor Detail
-
AbstractRenderSystem
protected AbstractRenderSystem(SceneGraphNode.RenderGroup rg, float[] alphas, ExtShaderProgram[] programs)
-
-
Method Detail
-
getRenderGroup
public SceneGraphNode.RenderGroup getRenderGroup()
- Specified by:
getRenderGroup
in interfaceIRenderSystem
-
render
public void render(com.badlogic.gdx.utils.Array<IRenderable> renderables, ICamera camera, double t, RenderingContext rc)
- Specified by:
render
in interfaceIRenderSystem
-
renderStud
public abstract void renderStud(com.badlogic.gdx.utils.Array<IRenderable> renderables, ICamera camera, double t)
-
addPreRunnables
public void addPreRunnables(AbstractRenderSystem.RenderSystemRunnable... r)
-
addPostRunnables
public void addPostRunnables(AbstractRenderSystem.RenderSystemRunnable... r)
-
run
protected void run(com.badlogic.gdx.utils.Array<AbstractRenderSystem.RenderSystemRunnable> runnables, com.badlogic.gdx.utils.Array<IRenderable> renderables, ICamera camera)
-
getAlpha
public float getAlpha(IRenderable renderable)
Computes the alpha opacity value of a given renderable using its component types- Parameters:
renderable
- The renderable- Returns:
- The alpha value as the product of all the alphas of its component types.
-
getAlpha
public float getAlpha(ComponentTypes ct)
-
resize
public void resize(int w, int h)
- Specified by:
resize
in interfaceIRenderSystem
-
updateBatchSize
public void updateBatchSize(int w, int h)
- Specified by:
updateBatchSize
in interfaceIRenderSystem
-
addEffectsUniforms
protected void addEffectsUniforms(ExtShaderProgram shaderProgram, ICamera camera)
-
addVRScale
protected void addVRScale(ExtShaderProgram shaderProgram)
-
addRelativisticUniforms
protected void addRelativisticUniforms(ExtShaderProgram shaderProgram, ICamera camera)
-
addGravWaveUniforms
protected void addGravWaveUniforms(ExtShaderProgram shaderProgram)
-
addDepthBufferUniforms
protected void addDepthBufferUniforms(ExtShaderProgram shaderProgram, ICamera camera)
Uniforms needed to compute the logarithmic depth buffer. They never change, so only add if not present- Parameters:
shaderProgram
- The programcamera
- The camera
-
addPreviousFrameUniforms
protected void addPreviousFrameUniforms(ExtShaderProgram shaderProgram, ICamera camera)
Uniforms needed for the velocity buffer- Parameters:
shaderProgram
- The programcamera
- The camera
-
getShaderProgram
protected ExtShaderProgram getShaderProgram()
-
-