use of com.badlogic.gdx.graphics.g3d.attributes.IntAttribute in project libgdx by libgdx.
the class DefaultShader method bindMaterial.
protected void bindMaterial(final Attributes attributes) {
int cullFace = config.defaultCullFace == -1 ? defaultCullFace : config.defaultCullFace;
int depthFunc = config.defaultDepthFunc == -1 ? defaultDepthFunc : config.defaultDepthFunc;
float depthRangeNear = 0f;
float depthRangeFar = 1f;
boolean depthMask = true;
for (final Attribute attr : attributes) {
final long t = attr.type;
if (BlendingAttribute.is(t)) {
context.setBlending(true, ((BlendingAttribute) attr).sourceFunction, ((BlendingAttribute) attr).destFunction);
set(u_opacity, ((BlendingAttribute) attr).opacity);
} else if ((t & IntAttribute.CullFace) == IntAttribute.CullFace)
cullFace = ((IntAttribute) attr).value;
else if ((t & FloatAttribute.AlphaTest) == FloatAttribute.AlphaTest)
set(u_alphaTest, ((FloatAttribute) attr).value);
else if ((t & DepthTestAttribute.Type) == DepthTestAttribute.Type) {
DepthTestAttribute dta = (DepthTestAttribute) attr;
depthFunc = dta.depthFunc;
depthRangeNear = dta.depthRangeNear;
depthRangeFar = dta.depthRangeFar;
depthMask = dta.depthMask;
} else if (!config.ignoreUnimplemented)
throw new GdxRuntimeException("Unknown material attribute: " + attr.toString());
}
context.setCullFace(cullFace);
context.setDepthTest(depthFunc, depthRangeNear, depthRangeFar);
context.setDepthMask(depthMask);
}
use of com.badlogic.gdx.graphics.g3d.attributes.IntAttribute in project bdx by GoranM.
the class BDXShaderProvider method render.
public void render(Renderable renderable, Attributes combinedAttributes) {
if (renderable.material.has(BlendingAttribute.Type)) {
BlendingAttribute ba = (BlendingAttribute) renderable.material.get(BlendingAttribute.Type);
Gdx.gl.glBlendFuncSeparate(ba.sourceFunction, ba.destFunction, GL20.GL_ONE, GL20.GL_ONE_MINUS_SRC_ALPHA);
}
IntAttribute shadeless = (IntAttribute) renderable.material.get(Scene.BDXIntAttribute.Shadeless);
if (shadeless == null)
set(u_shadeless, 0);
else
set(u_shadeless, shadeless.value);
ColorAttribute tint = (ColorAttribute) renderable.material.get(Scene.BDXColorAttribute.Tint);
if (tint == null)
set(u_tintColor, new Color());
else
set(u_tintColor, tint.color);
ColorAttribute emit = (ColorAttribute) renderable.material.get(Scene.BDXColorAttribute.Emit);
if (emit == null)
set(u_emitColor, new Color());
else
set(u_emitColor, emit.color);
if (shaderProvider.scene != null) {
ColorAttribute fog = (ColorAttribute) renderable.environment.get(ColorAttribute.Fog);
if (fog == null)
set(u_fogRange, 0f, 0f);
else
set(u_fogRange, shaderProvider.scene.fogRange().x, shaderProvider.scene.fogRange().y);
set(u_camRange, shaderProvider.scene.camera.near(), shaderProvider.scene.camera.far());
}
super.render(renderable, combinedAttributes);
}
Aggregations