Просмотр исходного кода

ShaderMaterial Base64 Encoded Vertex And Fragment Programs

Added support for ShaderMaterial Base64 Encoded Vertex And Fragment
Programs:
{
   vertextElement: “base64:xxxxxxxx”,
   fragmentElement: “base64:xxxxxxxx”
}
MackeyK24 8 лет назад
Родитель
Сommit
44a29e5940
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"]);