* Sorting ID now reset properly when shader or texture changed

git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@7377 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
3.0
sha..rd 14 years ago
parent b5a8080f61
commit 3ed2824cc3
  1. 16
      engine/src/core/com/jme3/material/Material.java

@ -377,9 +377,9 @@ public class Material implements Cloneable, Savable, Comparable<Material> {
name = checkSetParam(null, name);
MatParamTexture val = getTextureParam(name);
if (val == null) {
if (val == null)
throw new IllegalArgumentException("The given texture parameter is not set.");
} else {
int texUnit = val.getUnit();
paramValues.remove(name);
nextTexUnit--;
@ -391,7 +391,8 @@ public class Material implements Cloneable, Savable, Comparable<Material> {
}
}
}
}
sortingId = -1;
}
public void setTextureParam(String name, VarType type, Texture value) {
@ -410,6 +411,9 @@ public class Material implements Cloneable, Savable, Comparable<Material> {
if (technique != null) {
technique.notifySetParam(name, type, nextTexUnit - 1);
}
// need to recompute sort ID
sortingId = -1;
}
/**
@ -547,8 +551,7 @@ public class Material implements Cloneable, Savable, Comparable<Material> {
* @param lightList
*/
protected void updateLightListUniforms(Shader shader, Geometry g, int numLights) {
if (numLights == 0) // this shader does not do lighting, ignore.
{
if (numLights == 0){ // this shader does not do lighting, ignore.
return;
}
@ -732,6 +735,9 @@ public class Material implements Cloneable, Savable, Comparable<Material> {
technique = tech;
tech.makeCurrent(def.getAssetManager());
// shader was changed
sortingId = -1;
}
private void autoSelectTechnique(RenderManager rm) {

Loading…
Cancel
Save