diff --git a/sdk/jme3-materialeditor/src/com/jme3/gde/materialdefinition/icons/add.png b/sdk/jme3-materialeditor/src/com/jme3/gde/materialdefinition/icons/add.png
new file mode 100644
index 000000000..91ca68d67
Binary files /dev/null and b/sdk/jme3-materialeditor/src/com/jme3/gde/materialdefinition/icons/add.png differ
diff --git a/sdk/jme3-materialeditor/src/com/jme3/gde/materialdefinition/icons/remove.png b/sdk/jme3-materialeditor/src/com/jme3/gde/materialdefinition/icons/remove.png
new file mode 100644
index 000000000..a5d7950af
Binary files /dev/null and b/sdk/jme3-materialeditor/src/com/jme3/gde/materialdefinition/icons/remove.png differ
diff --git a/sdk/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/SNDefTemplate.j3sn b/sdk/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/SNDefTemplate.j3sn
index 4c5256034..9b283af2a 100644
--- a/sdk/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/SNDefTemplate.j3sn
+++ b/sdk/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/SNDefTemplate.j3sn
@@ -1,7 +1,11 @@
ShaderNodeDefinitions{
ShaderNodeDefinition ${defName} {
Type: ${defType}
- Shader GLSL100: ${shaderSnippet}
+
+ <#list glslVersions as version>
+ Shader GLSL${version}: ${shaderSnippet}${version}${ext}
+ #list>
+
Documentation{
${description}
<#list inputParams as param>
diff --git a/sdk/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/sNDef.html b/sdk/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/sNDef.html
deleted file mode 100644
index a0a7ab547..000000000
--- a/sdk/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/sNDef.html
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
- A new Shader Node Definition file that can be instantiated as a Shader Node in the Shader Node editor
-
-
diff --git a/sdk/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/wizard/Bundle.properties b/sdk/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/wizard/Bundle.properties
index 5a8a44796..53ec2b33e 100644
--- a/sdk/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/wizard/Bundle.properties
+++ b/sdk/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/wizard/Bundle.properties
@@ -3,8 +3,17 @@ SNDefVisualPanel1.defNameTextField.toolTipText=
SNDefVisualPanel1.defNameTextField.text=
SNDefVisualPanel1.jLabel2.text=Shader type
SNDefVisualPanel1.jPanel2.border.title=Description
-SNDefVisualPanel2.addButton.text=
+SNDefVisualPanel2.addButton.text=Add
SNDefVisualPanel2.titleLabel.text=Inputs
SNDefVisualPanel2.addButton.toolTipText=Add an entry
SNDefVisualPanel2.delButton.toolTipText=Delete an entry
-SNDefVisualPanel2.delButton.text=
+SNDefVisualPanel2.delButton.text=Remove
+SNDefVisualPanel1.jLabel3.text=Glsl version
+SNDefVisualPanel1.glsl100.text=1.0
+SNDefVisualPanel1.glsl110.text=1.1
+SNDefVisualPanel1.glsl120.text=1.2
+SNDefVisualPanel1.glsl130.text=1.3
+SNDefVisualPanel1.glsl140.text=1.4
+SNDefVisualPanel1.glsl150.text=1.5
+SNDefVisualPanel1.glslCustom.text=custom
+SNDefVisualPanel1.customGlslVer.text=
diff --git a/sdk/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/wizard/SNDefVisualPanel1.form b/sdk/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/wizard/SNDefVisualPanel1.form
index e0b0605aa..a506578cb 100644
--- a/sdk/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/wizard/SNDefVisualPanel1.form
+++ b/sdk/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/wizard/SNDefVisualPanel1.form
@@ -31,22 +31,46 @@
-
+
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -57,7 +81,7 @@
-
+
@@ -68,6 +92,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
@@ -125,7 +161,7 @@
-
+
@@ -152,6 +188,74 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sdk/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/wizard/SNDefVisualPanel1.java b/sdk/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/wizard/SNDefVisualPanel1.java
index a015b5398..c569617f2 100644
--- a/sdk/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/wizard/SNDefVisualPanel1.java
+++ b/sdk/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/wizard/SNDefVisualPanel1.java
@@ -6,6 +6,8 @@
package com.jme3.gde.shadernodedefinition.wizard;
import com.jme3.shader.Shader;
+import java.util.ArrayList;
+import java.util.List;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JPanel;
@@ -20,7 +22,9 @@ public final class SNDefVisualPanel1 extends JPanel {
initComponents();
DefaultComboBoxModel model = new DefaultComboBoxModel();
for (Shader.ShaderType shaderType : Shader.ShaderType.values()) {
- model.addElement(shaderType.name());
+ if(!shaderType.name().equalsIgnoreCase("geometry")){//hack to not have geometry shader remove that when geometry shader are in
+ model.addElement(shaderType.name());
+ }
}
shaderTypeCB.setModel(model);
}
@@ -42,6 +46,34 @@ public final class SNDefVisualPanel1 extends JPanel {
return descriptionTextArea.getText();
}
+ public List getGlslVersions(){
+ List versions = new ArrayList();
+
+ if(glsl100.isSelected()){
+ versions.add("100");
+ }
+ if(glsl110.isSelected()){
+ versions.add("110");
+ }
+ if(glsl120.isSelected()){
+ versions.add("120");
+ }
+ if(glsl130.isSelected()){
+ versions.add("130");
+ }
+ if(glsl140.isSelected()){
+ versions.add("140");
+ }
+ if(glsl150.isSelected()){
+ versions.add("150");
+ }
+ if(glslCustom.isSelected()){
+ versions.add(customGlslVer.getText().replace(".", "")+"0");
+ }
+
+
+ return versions;
+ }
/**
* This method is called from within the constructor to initialize the form.
@@ -59,6 +91,15 @@ public final class SNDefVisualPanel1 extends JPanel {
jPanel2 = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane();
descriptionTextArea = new javax.swing.JTextArea();
+ customGlslVer = new javax.swing.JTextField();
+ glsl110 = new javax.swing.JCheckBox();
+ glsl100 = new javax.swing.JCheckBox();
+ glsl120 = new javax.swing.JCheckBox();
+ glsl130 = new javax.swing.JCheckBox();
+ glsl150 = new javax.swing.JCheckBox();
+ glsl140 = new javax.swing.JCheckBox();
+ jLabel3 = new javax.swing.JLabel();
+ glslCustom = new javax.swing.JCheckBox();
org.openide.awt.Mnemonics.setLocalizedText(jLabel1, org.openide.util.NbBundle.getMessage(SNDefVisualPanel1.class, "SNDefVisualPanel1.jLabel1.text")); // NOI18N
@@ -79,37 +120,83 @@ public final class SNDefVisualPanel1 extends JPanel {
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 376, Short.MAX_VALUE)
+ .addComponent(jScrollPane1)
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 157, Short.MAX_VALUE)
);
+ customGlslVer.setEditable(false);
+ customGlslVer.setText(org.openide.util.NbBundle.getMessage(SNDefVisualPanel1.class, "SNDefVisualPanel1.customGlslVer.text")); // NOI18N
+
+ org.openide.awt.Mnemonics.setLocalizedText(glsl110, org.openide.util.NbBundle.getMessage(SNDefVisualPanel1.class, "SNDefVisualPanel1.glsl110.text")); // NOI18N
+
+ glsl100.setSelected(true);
+ org.openide.awt.Mnemonics.setLocalizedText(glsl100, org.openide.util.NbBundle.getMessage(SNDefVisualPanel1.class, "SNDefVisualPanel1.glsl100.text")); // NOI18N
+
+ org.openide.awt.Mnemonics.setLocalizedText(glsl120, org.openide.util.NbBundle.getMessage(SNDefVisualPanel1.class, "SNDefVisualPanel1.glsl120.text")); // NOI18N
+
+ org.openide.awt.Mnemonics.setLocalizedText(glsl130, org.openide.util.NbBundle.getMessage(SNDefVisualPanel1.class, "SNDefVisualPanel1.glsl130.text")); // NOI18N
+
+ org.openide.awt.Mnemonics.setLocalizedText(glsl150, org.openide.util.NbBundle.getMessage(SNDefVisualPanel1.class, "SNDefVisualPanel1.glsl150.text")); // NOI18N
+
+ org.openide.awt.Mnemonics.setLocalizedText(glsl140, org.openide.util.NbBundle.getMessage(SNDefVisualPanel1.class, "SNDefVisualPanel1.glsl140.text")); // NOI18N
+
+ org.openide.awt.Mnemonics.setLocalizedText(jLabel3, org.openide.util.NbBundle.getMessage(SNDefVisualPanel1.class, "SNDefVisualPanel1.jLabel3.text")); // NOI18N
+
+ org.openide.awt.Mnemonics.setLocalizedText(glslCustom, org.openide.util.NbBundle.getMessage(SNDefVisualPanel1.class, "SNDefVisualPanel1.glslCustom.text")); // NOI18N
+ glslCustom.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ glslCustomActionPerformed(evt);
+ }
+ });
+
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
+ .addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
- .addGroup(jPanel1Layout.createSequentialGroup()
+ .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel1Layout.createSequentialGroup()
.addGap(14, 14, 14)
- .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
- .addComponent(jLabel2)
- .addComponent(jLabel1))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(defNameTextField)
- .addComponent(shaderTypeCB, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
+ .addGroup(jPanel1Layout.createSequentialGroup()
+ .addGap(19, 19, 19)
+ .addComponent(jLabel3)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+ .addComponent(glsl100)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(glsl110)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+ .addComponent(glsl120)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+ .addComponent(glsl130)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(glsl140)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(glsl150)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 18, Short.MAX_VALUE)
+ .addComponent(glslCustom)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(customGlslVer, javax.swing.GroupLayout.PREFERRED_SIZE, 37, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addGroup(jPanel1Layout.createSequentialGroup()
+ .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+ .addComponent(jLabel2)
+ .addComponent(jLabel1))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(defNameTextField)
+ .addComponent(shaderTypeCB, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))))
.addContainerGap())
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
- .addGap(40, 40, 40)
+ .addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(defNameTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
@@ -118,6 +205,17 @@ public final class SNDefVisualPanel1 extends JPanel {
.addComponent(jLabel2)
.addComponent(shaderTypeCB, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(customGlslVer, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(glsl110)
+ .addComponent(glsl100)
+ .addComponent(glsl120)
+ .addComponent(glsl130)
+ .addComponent(glsl150)
+ .addComponent(glsl140)
+ .addComponent(jLabel3)
+ .addComponent(glslCustom))
+ .addGap(7, 7, 7)
.addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
@@ -134,11 +232,28 @@ public final class SNDefVisualPanel1 extends JPanel {
);
}// //GEN-END:initComponents
+ private void glslCustomActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_glslCustomActionPerformed
+ if (glslCustom.isSelected()) {
+ customGlslVer.setEditable(true);
+ }else{
+ customGlslVer.setEditable(false);
+ }
+ }//GEN-LAST:event_glslCustomActionPerformed
+
// Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JTextField customGlslVer;
private javax.swing.JTextField defNameTextField;
private javax.swing.JTextArea descriptionTextArea;
+ private javax.swing.JCheckBox glsl100;
+ private javax.swing.JCheckBox glsl110;
+ private javax.swing.JCheckBox glsl120;
+ private javax.swing.JCheckBox glsl130;
+ private javax.swing.JCheckBox glsl140;
+ private javax.swing.JCheckBox glsl150;
+ private javax.swing.JCheckBox glslCustom;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
+ private javax.swing.JLabel jLabel3;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JScrollPane jScrollPane1;
diff --git a/sdk/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/wizard/SNDefVisualPanel2.form b/sdk/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/wizard/SNDefVisualPanel2.form
index 4c9ed4d2b..564860974 100644
--- a/sdk/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/wizard/SNDefVisualPanel2.form
+++ b/sdk/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/wizard/SNDefVisualPanel2.form
@@ -16,84 +16,52 @@
-
+
+
-
+
+
+
+
+
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
@@ -101,10 +69,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -121,7 +107,7 @@
-
+
diff --git a/sdk/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/wizard/SNDefVisualPanel2.java b/sdk/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/wizard/SNDefVisualPanel2.java
index c46b595c0..5ab3d5747 100644
--- a/sdk/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/wizard/SNDefVisualPanel2.java
+++ b/sdk/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/wizard/SNDefVisualPanel2.java
@@ -93,10 +93,11 @@ public final class SNDefVisualPanel2 extends JPanel {
// //GEN-BEGIN:initComponents
private void initComponents() {
- jPanel1 = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane();
varTable = new javax.swing.JTable();
+ jToolBar1 = new javax.swing.JToolBar();
titleLabel = new javax.swing.JLabel();
+ jPanel1 = new javax.swing.JPanel();
addButton = new javax.swing.JButton();
delButton = new javax.swing.JButton();
@@ -119,9 +120,28 @@ public final class SNDefVisualPanel2 extends JPanel {
});
jScrollPane1.setViewportView(varTable);
+ jToolBar1.setFloatable(false);
+ jToolBar1.setRollover(true);
+
org.openide.awt.Mnemonics.setLocalizedText(titleLabel, org.openide.util.NbBundle.getMessage(SNDefVisualPanel2.class, "SNDefVisualPanel2.titleLabel.text")); // NOI18N
+ jToolBar1.add(titleLabel);
+
+ jPanel1.setOpaque(false);
+
+ javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
+ jPanel1.setLayout(jPanel1Layout);
+ jPanel1Layout.setHorizontalGroup(
+ jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGap(0, 412, Short.MAX_VALUE)
+ );
+ jPanel1Layout.setVerticalGroup(
+ jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGap(0, 21, Short.MAX_VALUE)
+ );
- addButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/jme3/gde/materials/multiview/widgets/icons/picture_add.png"))); // NOI18N
+ jToolBar1.add(jPanel1);
+
+ addButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/jme3/gde/materialdefinition/icons/add.png"))); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(addButton, org.openide.util.NbBundle.getMessage(SNDefVisualPanel2.class, "SNDefVisualPanel2.addButton.text")); // NOI18N
addButton.setToolTipText(org.openide.util.NbBundle.getMessage(SNDefVisualPanel2.class, "SNDefVisualPanel2.addButton.toolTipText")); // NOI18N
addButton.setAlignmentX(0.5F);
@@ -130,8 +150,9 @@ public final class SNDefVisualPanel2 extends JPanel {
addButtonActionPerformed(evt);
}
});
+ jToolBar1.add(addButton);
- delButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/jme3/gde/materials/multiview/widgets/icons/picture_delete.png"))); // NOI18N
+ delButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/jme3/gde/materialdefinition/icons/remove.png"))); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(delButton, org.openide.util.NbBundle.getMessage(SNDefVisualPanel2.class, "SNDefVisualPanel2.delButton.text")); // NOI18N
delButton.setToolTipText(org.openide.util.NbBundle.getMessage(SNDefVisualPanel2.class, "SNDefVisualPanel2.delButton.toolTipText")); // NOI18N
delButton.setAlignmentX(0.5F);
@@ -140,49 +161,21 @@ public final class SNDefVisualPanel2 extends JPanel {
delButtonActionPerformed(evt);
}
});
-
- javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
- jPanel1.setLayout(jPanel1Layout);
- jPanel1Layout.setHorizontalGroup(
- jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel1Layout.createSequentialGroup()
- .addContainerGap()
- .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 388, Short.MAX_VALUE)
- .addGroup(jPanel1Layout.createSequentialGroup()
- .addComponent(titleLabel)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(addButton)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(delButton)))
- .addContainerGap())
- );
- jPanel1Layout.setVerticalGroup(
- jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
- .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel1Layout.createSequentialGroup()
- .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(titleLabel))
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
- .addComponent(delButton)
- .addGap(0, 0, Short.MAX_VALUE))
- .addGroup(jPanel1Layout.createSequentialGroup()
- .addGap(0, 0, Short.MAX_VALUE)
- .addComponent(addButton)))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 278, javax.swing.GroupLayout.PREFERRED_SIZE))
- );
+ jToolBar1.add(delButton);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(jToolBar1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.TRAILING)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addGroup(layout.createSequentialGroup()
+ .addComponent(jToolBar1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 455, Short.MAX_VALUE))
);
}// //GEN-END:initComponents
@@ -204,6 +197,7 @@ public final class SNDefVisualPanel2 extends JPanel {
private javax.swing.JButton delButton;
private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1;
+ private javax.swing.JToolBar jToolBar1;
private javax.swing.JLabel titleLabel;
private javax.swing.JTable varTable;
// End of variables declaration//GEN-END:variables
diff --git a/sdk/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/wizard/SNDefWizardIterator.java b/sdk/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/wizard/SNDefWizardIterator.java
index 8bbcc4a3a..0fdabe192 100644
--- a/sdk/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/wizard/SNDefWizardIterator.java
+++ b/sdk/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/wizard/SNDefWizardIterator.java
@@ -32,8 +32,8 @@ import org.openide.util.NbBundle.Messages;
// TODO define position attribute
@TemplateRegistrations({
-@TemplateRegistration(folder = "Material", content = "../SNDefTemplate.j3sn", displayName = "#SNDefWizardIterator_displayName", iconBase = "com/jme3/gde/materialdefinition/icons/node.png", description = "../sNDef.html", scriptEngine = "freemarker"),
-@TemplateRegistration(folder = "Material", content = "../ShaderNodeSource", scriptEngine = "freemarker")
+ @TemplateRegistration(folder = "Material", content = "../SNDefTemplate.j3sn", displayName = "Shader Node Definition", iconBase = "com/jme3/gde/materialdefinition/icons/node.png", description = "./sNDef.html", scriptEngine = "freemarker"),
+ @TemplateRegistration(folder = "Material", content = "../ShaderNodeSource", scriptEngine = "freemarker")
})
@Messages("SNDefWizardIterator_displayName=Shader Node Definition")
@SuppressWarnings({"unchecked", "rawtypes"})
@@ -103,38 +103,36 @@ public final class SNDefWizardIterator implements WizardDescriptor.Instantiating
//Get the template and convert it:
FileObject tplSnd = Templates.getTemplate(wizard);
FileObject tplShd = tplSnd.getParent().getChildren()[1];
-
+
DataObject templateSnd = DataObject.find(tplSnd);
DataObject templateShd = DataObject.find(tplShd);
-
-
//Get the package:
FileObject dir = Templates.getTargetFolder(wizard);
DataFolder df = DataFolder.findFolder(dir);
- ProjectAssetManager assetManager = new ProjectAssetManager(Templates.getProject(wizard),"assets");
-
+ ProjectAssetManager assetManager = new ProjectAssetManager(Templates.getProject(wizard), "assets");
+
//Get the class:
String targetName = Templates.getTargetName(wizard);
String shaderName = targetName;
- if (panel1.getDefType().equals("Fragment")) {
- shaderName += ".frag";
- } else if (panel1.getDefType().equals("Vertex")) {
- shaderName += ".vert";
- } else {
- shaderName += ".frag";
+ String ext = ".frag";
+ if (panel1.getDefType().equals("Vertex")) {
+ ext = ".vert";
}
-
- args.put("shaderSnippet",assetManager.getRelativeAssetPath(dir.getPath()+"/"+shaderName));
+ args.put("ext", ext);
+ args.put("glslVersions", panel1.getGlslVersions());
+
+ args.put("shaderSnippet", assetManager.getRelativeAssetPath(dir.getPath() + "/" + shaderName));
//Define the template from the above,
//passing the package, the file name, and the map of strings to the template:
- // DataObject dobj = templateSnd.createFromTemplate(df, targetName, args);
-
-
- DataObject sobj = templateShd.createFromTemplate(df, shaderName, args);
- DataObject dobj = templateSnd.createFromTemplate(df, targetName, args);
+ // DataObject dobj = templateSnd.createFromTemplate(df, targetName, args);
+ for (String ver : panel1.getGlslVersions()) {
+ templateShd.createFromTemplate(df, shaderName + ver + ext, args);
+ }
+
+ DataObject dobj = templateSnd.createFromTemplate(df, targetName, args);
//Obtain a FileObject:
createdFile = dobj.getPrimaryFile();
diff --git a/sdk/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/wizard/sNDef.html b/sdk/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/wizard/sNDef.html
index 7996c72b7..a0a7ab547 100644
--- a/sdk/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/wizard/sNDef.html
+++ b/sdk/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/wizard/sNDef.html
@@ -7,10 +7,7 @@ and open the template in the editor.
-
-
+
+ A new Shader Node Definition file that can be instantiated as a Shader Node in the Shader Node editor