in-pass-shadows: fix syntax errors

in-pass-shadows
Kirill Vainer 7 years ago
parent caad16626e
commit 5b800952f0
  1. 3
      jme3-core/src/main/java/com/jme3/shadow/ShadowUtil.java
  2. 37
      jme3-core/src/plugins/java/com/jme3/shader/plugins/GLSLLoader.java

@ -32,7 +32,9 @@
package com.jme3.shadow; package com.jme3.shadow;
import com.jme3.bounding.BoundingBox; import com.jme3.bounding.BoundingBox;
import com.jme3.bounding.BoundingSphere;
import com.jme3.bounding.BoundingVolume; import com.jme3.bounding.BoundingVolume;
import com.jme3.collision.UnsupportedCollisionException;
import com.jme3.math.FastMath; import com.jme3.math.FastMath;
import com.jme3.math.Matrix4f; import com.jme3.math.Matrix4f;
import com.jme3.math.Transform; import com.jme3.math.Transform;
@ -42,6 +44,7 @@ import com.jme3.renderer.Camera;
import com.jme3.renderer.ViewPort; import com.jme3.renderer.ViewPort;
import com.jme3.renderer.queue.GeometryList; import com.jme3.renderer.queue.GeometryList;
import com.jme3.renderer.queue.RenderQueue; import com.jme3.renderer.queue.RenderQueue;
import com.jme3.renderer.queue.RenderQueue.ShadowMode;
import com.jme3.scene.Geometry; import com.jme3.scene.Geometry;
import com.jme3.scene.Node; import com.jme3.scene.Node;
import com.jme3.scene.Spatial; import com.jme3.scene.Spatial;

@ -34,10 +34,7 @@ package com.jme3.shader.plugins;
import com.jme3.asset.*; import com.jme3.asset.*;
import com.jme3.asset.cache.AssetCache; import com.jme3.asset.cache.AssetCache;
import java.io.BufferedReader; import java.io.*;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
import java.util.*; import java.util.*;
/** /**
@ -160,18 +157,27 @@ public class GLSLLoader implements AssetLoader {
if (node.getDependencies().isEmpty()) { if (node.getDependencies().isEmpty()) {
return node.getSource(); return node.getSource();
} else { } else {
StringBuilder sb = new StringBuilder(node.getSource()); if (injectDependencies) {
List<String> resolvedShaderNodes = new ArrayList<>(); StringBuilder sb = new StringBuilder(node.getSource());
List<String> resolvedShaderNodes = new ArrayList<>();
for (ShaderDependencyNode dependencyNode : node.getDependencies()) { for (ShaderDependencyNode dependencyNode : node.getDependencies()) {
resolvedShaderNodes.add(resolveDependencies(dependencyNode, alreadyInjectedSet, extensions)); resolvedShaderNodes.add(resolveDependencies(dependencyNode, alreadyInjectedSet, extensions, injectDependencies));
} }
List<Integer> injectIndices = node.getDependencyInjectIndices();
for (int i = resolvedShaderNodes.size() - 1; i >= 0; i--) { List<Integer> injectIndices = node.getDependencyInjectIndices();
// Must insert them backwards .. for (int i = resolvedShaderNodes.size() - 1; i >= 0; i--) {
sb.insert(injectIndices.get(i), resolvedShaderNodes.get(i)); // Must insert them backwards ..
sb.insert(injectIndices.get(i), resolvedShaderNodes.get(i));
}
return sb.toString();
} else {
for (ShaderDependencyNode dependencyNode : node.getDependencies()) {
resolveDependencies(dependencyNode, alreadyInjectedSet, extensions, injectDependencies);
}
return null;
} }
return sb.toString();
} }
} }
@ -185,8 +191,7 @@ public class GLSLLoader implements AssetLoader {
if (info.getKey() instanceof ShaderAssetKey) { if (info.getKey() instanceof ShaderAssetKey) {
injectDependencies = ((ShaderAssetKey) info.getKey()).isInjectDependencies(); injectDependencies = ((ShaderAssetKey) info.getKey()).isInjectDependencies();
} }
String extension = info.getKey().getExtension(); if (info.getKey().getExtension().equals("glsllib")) {
if (extension.equals("glsllib") || extension.equals("glsl")) {
// NOTE: Loopback, GLSLLIB is loaded by this loader // NOTE: Loopback, GLSLLIB is loaded by this loader
// and needs data as InputStream // and needs data as InputStream
return reader; return reader;

Loading…
Cancel
Save