Jelajahi Sumber

Merge pull request #1458 from MackeyK24/master

Base64 Encoded Shader Program Support
David Catuhe 8 tahun lalu
induk
melakukan
f90e0e4e75
2 mengubah file dengan 26 tambahan dan 0 penghapusan
  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.substr(0, 7) === "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(0, 7) === "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.substr(0, 7) === "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(0, 7) === "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"]);