Improved ShaderNodes:

* Fixed a NPE when trying to select a Node. Now you can properly remove/edit nodes
 * "smartLog" now compares the hash across different instances (Two Material Previews led to duplicate log messages)
 * Using smartLog for CompilationErrors now to not spam the log with 60 FPS
experimental
MeFisto94 9 years ago
parent d0c7bd988e
commit a920d9c611
  1. 2
      sdk/jme3-materialeditor/src/com/jme3/gde/materialdefinition/EditableMatDefFile.java
  2. 1
      sdk/jme3-materialeditor/src/com/jme3/gde/materialdefinition/MatDefDataObject.java
  3. 5
      sdk/jme3-materialeditor/src/com/jme3/gde/materials/MaterialPreviewRenderer.java

@ -186,7 +186,7 @@ public class EditableMatDefFile {
return ""; return "";
} catch (Exception e) { } catch (Exception e) {
Exceptions.printStackTrace(e); Exceptions.printStackTrace(e);
return "error generating shader " + e.getMessage(); return "Error generating shader: " + e.getMessage();
} }
} }

@ -142,6 +142,7 @@ public class MatDefDataObject extends MultiDataObject {
findAssetManager(); findAssetManager();
final MatDefMetaData metaData = new MatDefMetaData(this); final MatDefMetaData metaData = new MatDefMetaData(this);
lookupContents.add(metaData); lookupContents.add(metaData);
lookupContents.add(new MatDefNavigatorPanel());
pf.addFileChangeListener(new FileChangeAdapter() { pf.addFileChangeListener(new FileChangeAdapter() {
@Override @Override
public void fileChanged(FileEvent fe) { public void fileChanged(FileEvent fe) {

@ -148,7 +148,7 @@ public class MaterialPreviewRenderer implements SceneListener {
}); });
} }
private int lastErrorHash = 0; private static int lastErrorHash = 0;
private void smartLog(String expText, String message) { private void smartLog(String expText, String message) {
int hash = message.hashCode(); int hash = message.hashCode();
@ -183,7 +183,8 @@ public class MaterialPreviewRenderer implements SceneListener {
//compilation error, the shader code will be output to the console //compilation error, the shader code will be output to the console
//the following code will output the error //the following code will output the error
//System.err.println(e.getMessage()); //System.err.println(e.getMessage());
Logger.getLogger(MaterialDebugAppState.class.getName()).log(Level.SEVERE, e.getMessage()); //Logger.getLogger(MaterialDebugAppState.class.getName()).log(Level.SEVERE, e.getMessage());
smartLog("{0}", e.getMessage());
java.awt.EventQueue.invokeLater(new Runnable() { java.awt.EventQueue.invokeLater(new Runnable() {
public void run() { public void run() {

Loading…
Cancel
Save