Browse Source

using getParamsMap() for jME3 performance improvements in DefineList

git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@11010 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
phr00t 11 years ago
parent
commit
7bb046730f
1 changed files with 6 additions and 5 deletions
  1. 6 5
      engine/src/core/com/jme3/material/Technique.java

+ 6 - 5
engine/src/core/com/jme3/material/Technique.java

@@ -34,8 +34,8 @@ package com.jme3.material;
 import com.jme3.asset.AssetManager;
 import com.jme3.renderer.Caps;
 import com.jme3.shader.*;
+import com.jme3.util.ListMap;
 import java.util.ArrayList;
-import java.util.Collection;
 import java.util.EnumSet;
 import java.util.List;
 import java.util.logging.Logger;
@@ -182,12 +182,13 @@ public class Technique /* implements Savable */ {
             // If the technique was switched, check if the define list changed
             // based on material parameters.
             
-            Collection<MatParam> params = owner.getParams();
-                        
-            if (!defines.equalsParams(params,def)) {
+            ListMap params = owner.getParamsMap();
+            
+            if (!defines.equalsParams(params, def)) {
                 // Defines were changed, update define list
                 defines.clear();
-                for (MatParam param : params) {
+                for(int i=0;i<params.size();i++) {
+                    MatParam param = (MatParam)params.getValue(i);
                     String defineName = def.getShaderParamDefine(param.getName());
                     if (defineName != null) {
                         defines.set(defineName, param.getVarType(), param.getValue());