|
@@ -32,6 +32,7 @@
|
|
|
package com.jme3.material;
|
|
|
|
|
|
import com.jme3.asset.AssetManager;
|
|
|
+import com.jme3.renderer.Caps;
|
|
|
import com.jme3.shader.VarType;
|
|
|
import com.jme3.texture.image.ColorSpace;
|
|
|
import java.util.*;
|
|
@@ -51,8 +52,7 @@ public class MaterialDef {
|
|
|
private String assetName;
|
|
|
private AssetManager assetManager;
|
|
|
|
|
|
- private List<TechniqueDef> defaultTechs;
|
|
|
- private Map<String, TechniqueDef> techniques;
|
|
|
+ private Map<String, List<TechniqueDef>> techniques;
|
|
|
private Map<String, MatParam> matParams;
|
|
|
|
|
|
/**
|
|
@@ -70,9 +70,8 @@ public class MaterialDef {
|
|
|
public MaterialDef(AssetManager assetManager, String name){
|
|
|
this.assetManager = assetManager;
|
|
|
this.name = name;
|
|
|
- techniques = new HashMap<String, TechniqueDef>();
|
|
|
+ techniques = new HashMap<String, List<TechniqueDef>>();
|
|
|
matParams = new HashMap<String, MatParam>();
|
|
|
- defaultTechs = new ArrayList<TechniqueDef>();
|
|
|
logger.log(Level.FINE, "Loaded material definition: {0}", name);
|
|
|
}
|
|
|
|
|
@@ -164,40 +163,26 @@ public class MaterialDef {
|
|
|
|
|
|
/**
|
|
|
* Adds a new technique definition to this material definition.
|
|
|
- * <p>
|
|
|
- * If the technique name is "Default", it will be added
|
|
|
- * to the list of {@link MaterialDef#getDefaultTechniques() default techniques}.
|
|
|
- *
|
|
|
+ *
|
|
|
* @param technique The technique definition to add.
|
|
|
*/
|
|
|
public void addTechniqueDef(TechniqueDef technique) {
|
|
|
- if (technique.getName().equals("Default")) {
|
|
|
- defaultTechs.add(technique);
|
|
|
- } else {
|
|
|
- techniques.put(technique.getName(), technique);
|
|
|
+ List<TechniqueDef> list = techniques.get(technique.getName());
|
|
|
+ if (list == null) {
|
|
|
+ list = new ArrayList<>();
|
|
|
+ techniques.put(technique.getName(), list);
|
|
|
}
|
|
|
+ list.add(technique);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * Returns a list of all default techniques.
|
|
|
- *
|
|
|
- * @return a list of all default techniques.
|
|
|
- */
|
|
|
- public List<TechniqueDef> getDefaultTechniques(){
|
|
|
- return defaultTechs;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * Returns a technique definition with the given name.
|
|
|
- * This does not include default techniques which can be
|
|
|
- * retrieved via {@link MaterialDef#getDefaultTechniques() }.
|
|
|
- *
|
|
|
- * @param name The name of the technique definition to find
|
|
|
- *
|
|
|
- * @return The technique definition, or null if cannot be found.
|
|
|
+ * Returns technique definitions with the given name.
|
|
|
+ *
|
|
|
+ * @param name The name of the technique definitions to find
|
|
|
+ *
|
|
|
+ * @return The technique definitions, or null if cannot be found.
|
|
|
*/
|
|
|
- public TechniqueDef getTechniqueDef(String name) {
|
|
|
+ public List<TechniqueDef> getTechniqueDefs(String name) {
|
|
|
return techniques.get(name);
|
|
|
}
|
|
|
-
|
|
|
}
|