瀏覽代碼

Merge pull request #1454 from MackeyK24/master

ShaderMaterial Base64 Encoded Vertex And Fragment Programs
David Catuhe 8 年之前
父節點
當前提交
8b0ab45350
共有 2 個文件被更改,包括 26 次插入0 次删除
  1. 12 0
      src/Materials/babylon.effect.js
  2. 14 0
      src/Materials/babylon.effect.ts

+ 12 - 0
src/Materials/babylon.effect.js

@@ -133,6 +133,12 @@ var BABYLON;
                 callback(vertexCode);
                 return;
             }
+            // Base64 encoded ?
+            if (vertex.startsWith("base64:")) {
+            	var vertexBinary = window.atob(vertex.substr(7));
+            	callback(vertexBinary);
+            	return;
+            }
             // Is in local store ?
             if (Effect.ShadersStore[vertex + "VertexShader"]) {
                 callback(Effect.ShadersStore[vertex + "VertexShader"]);
@@ -155,6 +161,12 @@ var BABYLON;
                 callback(fragmentCode);
                 return;
             }
+            // Base64 encoded ?
+            if (fragment.startsWith("base64:")) {
+            	var fragmentBinary = window.atob(fragment.substr(7));
+            	callback(fragmentBinary);
+            	return;
+            }
             // Is in local store ?
             if (Effect.ShadersStore[fragment + "PixelShader"]) {
                 callback(Effect.ShadersStore[fragment + "PixelShader"]);

+ 14 - 0
src/Materials/babylon.effect.ts

@@ -177,6 +177,13 @@
                 return;
             }
 
+            // Base64 encoded ?
+            if (vertex.startsWith("base64:")) {
+            	var vertexBinary = window.atob(vertex.substr(7));
+            	callback(vertexBinary);
+            	return;
+            }
+
             // Is in local store ?
             if (Effect.ShadersStore[vertex + "VertexShader"]) {
                 callback(Effect.ShadersStore[vertex + "VertexShader"]);
@@ -203,6 +210,13 @@
                 return;
             }
 
+            // Base64 encoded ?
+            if (fragment.startsWith("base64:")) {
+            	var fragmentBinary = window.atob(fragment.substr(7));
+            	callback(fragmentBinary);
+            	return;
+            }
+
             // Is in local store ?
             if (Effect.ShadersStore[fragment + "PixelShader"]) {
                 callback(Effect.ShadersStore[fragment + "PixelShader"]);