Przeglądaj źródła

IncludeShaderStore

sebastien 6 lat temu
rodzic
commit
c3d350f2ed

+ 14 - 11
Tools/Gulp/helpers/gulp-processShaders.js

@@ -3,13 +3,13 @@ var PluginError = require('gulp-util').PluginError;
 let path = require('path');
 let fs = require('fs');
 
-let tsTemplate = 
+let tsShaderTemplate = 
 `import { Effect } from "babylonjs";
 
 let name = '##NAME_PLACEHOLDER##';
 let shader = \`##SHADER_PLACEHOLDER##\`;
 
-Effect.ShadersStore[name] = shader;
+Effect.##SHADERSTORE_PLACEHOLDER##[name] = shader;
 
 export { shader, name };
 `;
@@ -33,18 +33,21 @@ function main() {
                 cb(new PluginError("Remove Shader Comments", "Streaming not supported."));
             }
     
-            let filename = path.basename(file.path);
-            let normalized = path.normalize(file.path);
-            let directory = path.dirname(normalized);
-            let shaderName = getShaderName(filename);
-            let tsFilename = filename.replace('.fx', '.ts');
-            let data = file.contents.toString();
+            const filename = path.basename(file.path);
+            const normalized = path.normalize(file.path);
+            const directory = path.dirname(normalized);
+            const shaderName = getShaderName(filename);
+            const tsFilename = filename.replace('.fx', '.ts');
 
+            let fxData = file.contents.toString();
             // Trailing whitespace...
-            data = data.replace(/[^\S\r\n]+$/gm, "");
+            fxData = fxData.replace(/[^\S\r\n]+$/gm, "");
 
-            let tsContent = tsTemplate.replace('##NAME_PLACEHOLDER##', shaderName);
-            tsContent = tsContent.replace('##SHADER_PLACEHOLDER##', data);
+            const shaderStore = directory.indexOf("ShadersInclude") > -1 ? "IncludesShadersStore" : "ShadersStore";
+
+            let tsContent = tsShaderTemplate.replace('##NAME_PLACEHOLDER##', shaderName);
+            tsContent = tsContent.replace('##SHADER_PLACEHOLDER##', fxData);
+            tsContent = tsContent.replace('##SHADERSTORE_PLACEHOLDER##', shaderStore);
 
             fs.writeFileSync(directory + '/' + tsFilename, tsContent);
 

+ 1 - 1
Tools/Gulp/tasks/gulpTasks-libraries.js

@@ -7,8 +7,8 @@ var merge2 = require("merge2");
 var path = require("path");
 
 // Gulp Helpers
-var processShaders = require("../helpers/gulp-processShaders");
 var uncommentShaders = require('../helpers/gulp-removeShaderComments');
+var processShaders = require("../helpers/gulp-processShaders");
 var processDeclaration = require('../helpers/gulp-processTypescriptDeclaration');
 var rmDir = require("../helpers/gulp-rmDir");
 

+ 2 - 2
Tools/Gulp/tasks/gulpTasks-tsLint.js

@@ -24,7 +24,7 @@ var config = require("../config.json");
  * TsLint all typescript files from the src directory.
  */
 gulp.task("typescript-tsLint", function() {
-    const dtsFilter = filter(['**', '!**/*.d.ts', '!**/*.fragment.ts', '!**/*.vertex.ts'], { restore: false });
+    const dtsFilter = filter(['**', '!**/*.d.ts', '!**/*.fragment.ts', '!**/*.vertex.ts', '!**/ShadersInclude/**'], { restore: false });
     return gulp.src(config.typescript)
         .pipe(dtsFilter)
         .pipe(gulpTslint(tsLintConfig))
@@ -35,7 +35,7 @@ gulp.task("typescript-tsLint", function() {
  * TsLint all typescript files from the src directory.
  */
 var tsLintExternalLibrary = function(library, settings, watch) {
-    const fxFilter = filter(['**', '!**/*.fragment.ts', '!**/*.vertex.ts'], { restore: false });
+    const fxFilter = filter(['**', '!**/*.fragment.ts', '!**/*.vertex.ts', '!**/ShadersInclude/**'], { restore: false });
     return gulp.src((settings.build.srcDirectory) + "/**/*.ts")
         .pipe(fxFilter)
         .pipe(gulpTslint(tsLintConfig))

+ 4 - 2
Tools/Gulp/tasks/gulpTasks-watch.js

@@ -24,7 +24,8 @@ gulp.task("srcTscWatch", function() {
 /**
  * Watch ts files and fire repective tasks.
  */
-gulp.task("watch", gulp.series("srcTscWatch", function startWatch() {
+//gulp.task("watch", gulp.series("srcTscWatch", function startWatch() {
+gulp.task("watch", function startWatch() {
     var tasks = [];
 
     config.modules.map(function(module) {
@@ -65,4 +66,5 @@ gulp.task("watch", gulp.series("srcTscWatch", function startWatch() {
     });
 
     return Promise.resolve();
-}));
+});
+//}));