Rev 1080 |
Blame |
Compare with Previous |
Last modification |
View Log
| RSS feed
package com.gebauz.bauzoid.graphics;
import com.badlogic.gdx.Gdx;
import com.gebauz.bauzoid.graphics.shader.ShaderProgram;
import com.gebauz.bauzoid.graphics.shader.ShaderUniform;
import com.gebauz.bauzoid.graphics.shader.ShaderUtil;
import com.gebauz.bauzoid.math.Vector4;
/** Simple Shader for primitive rendering (lines, etc.) such as for debugging. */
public class PrimitiveShader
extends GraphicsObject
{
// Constants========================================================================================
// Embedded Types===================================================================================
// Fields===========================================================================================
private ShaderProgram mShader =
null;
private ShaderUniform mColorHandle =
null;
// Methods==========================================================================================
public PrimitiveShader
(Graphics graphics
)
{
super(graphics
);
mShader = ShaderUtil.
createShaderFromFile(graphics,
Gdx.
files.
internal("data/bauzoid/shaders/primitive.vert"),
Gdx.
files.
internal("data/bauzoid/shaders/primitive.frag"));
if (mShader
!=
null)
{
mColorHandle = mShader.
getUniform("uColor");
}
// TODO: fail condition -> terminate program
}
/** Destroy Primitive Shader. */
public void dispose
()
{
if (mShader
!=
null)
{
mShader.
dispose();
mShader =
null;
}
}
/** Get reference to shader. */
public final ShaderProgram getShader
()
{
return mShader
;
}
/** Activate shader with specified variables. */
public void activate
(Vector4 color
)
{
mShader.
activate();
mColorHandle.
set(color
);
}
/** Deactivate shader. */
public void deactivate
()
{
mShader.
deactivate();
}
// Getters/Setters==================================================================================
}