فهرست منبع

Fixing a bug with opacity channel

David Catuhe 11 سال پیش
والد
کامیت
bb96266f0c
3فایلهای تغییر یافته به همراه24 افزوده شده و 11 حذف شده
  1. 21 8
      Babylon/Loading/babylon.sceneLoader.js
  2. 1 1
      Babylon/babylon.engine.js
  3. 2 2
      babylon.1.9.0.js

+ 21 - 8
Babylon/Loading/babylon.sceneLoader.js

@@ -27,7 +27,7 @@ var BABYLON = BABYLON || {};
             this._registeredPlugins.push(plugin);
         },
 
-        ImportMesh: function (meshesNames, rootUrl, sceneFilename, scene, then, progressCallBack) {
+        ImportMesh: function (meshesNames, rootUrl, sceneFilename, scene, onsuccess, progressCallBack, onerror) {
             // Checking if a manifest file has been set for this scene and if offline mode has been requested
             var database = new BABYLON.Database(rootUrl + sceneFilename);
             scene.database = database;
@@ -39,15 +39,21 @@ var BABYLON = BABYLON || {};
                 var particleSystems = [];
                 var skeletons = [];
 
-                plugin.importMesh(meshesNames, scene, data, rootUrl, meshes, particleSystems, skeletons);
+                if (!plugin.importMesh(meshesNames, scene, data, rootUrl, meshes, particleSystems, skeletons)) {
+                    if (onerror) {
+                        onerror(scene);
+                    }
 
-                if (then) {
-                    then(meshes, particleSystems, skeletons);
+                    return;
+                }
+
+                if (onsuccess) {
+                    onsuccess(meshes, particleSystems, skeletons);
                 }
             }, progressCallBack, database);
         },
 
-        Load: function (rootUrl, sceneFilename, engine, then, progressCallBack) {
+        Load: function (rootUrl, sceneFilename, engine, onsuccess, progressCallBack, onerror) {
 
             var plugin = this._getPluginForFilename(sceneFilename);
             var database;
@@ -55,10 +61,17 @@ var BABYLON = BABYLON || {};
             var loadSceneFromData = function (data) {
                 var scene = new BABYLON.Scene(engine);
                 scene.database = database;
-                plugin.load(scene, data, rootUrl);
 
-                if (then) {
-                    then(scene);
+                if (!plugin.load(scene, data, rootUrl)) {
+                    if (onerror) {
+                        onerror(scene);
+                    }
+
+                    return;
+                }
+
+                if (onsuccess) {
+                    onsuccess(scene);
                 }
             };
 

+ 1 - 1
Babylon/babylon.engine.js

@@ -558,7 +558,7 @@ var BABYLON = BABYLON || {};
                 break;
             case BABYLON.Engine.ALPHA_COMBINE:
                 this.setDepthWrite(false);
-                this._gl.blendFuncSeparate(this._gl.SRC_ALPHA, this._gl.ONE_MINUS_SRC_ALPHA, this._gl.ZERO, this._gl.ONE);
+                this._gl.blendFuncSeparate(this._gl.SRC_ALPHA, this._gl.ONE_MINUS_SRC_ALPHA, this._gl.ONE, this._gl.ONE);
                 this._gl.enable(this._gl.BLEND);
                 break;
             case BABYLON.Engine.ALPHA_ADD:

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 2 - 2
babylon.1.9.0.js