Skip to content

Commit

Permalink
1.7.10
Browse files Browse the repository at this point in the history
  • Loading branch information
a7359475 committed Sep 22, 2017
1 parent aa02eef commit f6e367e
Show file tree
Hide file tree
Showing 645 changed files with 73,745 additions and 44,432 deletions.
4 changes: 3 additions & 1 deletion bin/as/libs/src/Laya.as
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ package {
import laya.utils.Browser;
import laya.utils.CacheManger;
import laya.utils.Timer;
import laya.utils.WeakObject;

/**
* <code>Laya</code> 是全局对象的引用入口集。
Expand All @@ -34,7 +35,7 @@ package {
/** 加载管理器的引用。*/
public static var loader:LoaderManager = null;
/** 当前引擎版本。*/
public static var version:String = "1.7.8beta";
public static var version:String = "1.7.10";
/**@private Render 类的引用。*/
public static var render:Render;
/**@private */
Expand Down Expand Up @@ -66,6 +67,7 @@ package {
width = Browser.clientWidth;
/*[IF-FLASH]*/
height = Browser.clientHeight;
WeakObject.__init__();

for (var i:int = 0, n:int = plugins.length; i < n; i++) {
if (plugins[i].enable) plugins[i].enable();
Expand Down
85 changes: 46 additions & 39 deletions bin/as/libs/src/Laya3D.as
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ package {
import laya.utils.Handler;
import laya.utils.RunDriver;
import laya.webgl.WebGL;
import laya.webgl.WebGLContext;
import laya.webgl.atlas.AtlasResourceManager;

/**
* <code>Laya3D</code> 类用于初始化3D设置。
Expand Down Expand Up @@ -90,11 +92,7 @@ package {
/**
*@private
*/
private static function _initResourceLoad():void {
//ClassUtils.regClass("Sprite3D", Sprite3D);
//ClassUtils.regClass("MeshSprite3D", MeshSprite3D);
//ClassUtils.regClass("Material", BaseMaterial);

private static function __init__():void {
var createMap:Object = LoaderManager.createMap;
createMap["lh"] = [Sprite3D, Laya3D.HIERARCHY];
createMap["ls"] = [Scene, Laya3D.HIERARCHY];
Expand All @@ -105,6 +103,7 @@ package {
createMap["jpg"] = [Texture2D, "nativeimage"];
createMap["jpeg"] = [Texture2D, "nativeimage"];
createMap["png"] = [Texture2D, "nativeimage"];
createMap["pkm"] = [Texture2D, Loader.BUFFER];
createMap["lsani"] = [AnimationTemplet, Loader.BUFFER];
createMap["lrani"] = [AnimationTemplet, Loader.BUFFER];
createMap["raw"] = [DataTexture2D, Loader.BUFFER];
Expand All @@ -120,6 +119,11 @@ package {
Loader.parserMap[Laya3D.MATERIAL] = _loadMaterial;
Loader.parserMap[Laya3D.TEXTURECUBE] = _loadTextureCube;
Loader.parserMap[Laya3D.TERRAIN] = _loadTerrain;

_innerFirstLevelLoaderManager.on(Event.ERROR, null, _eventLoadManagerError);
_innerSecondLevelLoaderManager.on(Event.ERROR, null, _eventLoadManagerError);
_innerThirdLevelLoaderManager.on(Event.ERROR, null, _eventLoadManagerError);
_innerFourthLevelLoaderManager.on(Event.ERROR, null, _eventLoadManagerError);
}

/**
Expand Down Expand Up @@ -158,6 +162,13 @@ package {
return materialUrls;
}

/**
*@private
*/
private static function _eventLoadManagerError(msg:String):void {
Laya.loader.event(Event.ERROR, msg);
}

/**
*@private
*/
Expand Down Expand Up @@ -240,7 +251,6 @@ package {
for (i = 0, n = clipPaths.length; i < n; i++)
_addHierarchyInnerUrls(fourthLelUrls, urlMap, urlVersion, hierarchyBasePath, clipPaths[i], AnimationClip);
break;
default:
}
}

Expand All @@ -253,9 +263,8 @@ package {
*@private
*/
private static function _loadHierarchy(loader:Loader):void {
var lmLoader:Loader = new Loader();
lmLoader.on(Event.COMPLETE, null, _onHierarchylhLoaded, [loader]);
lmLoader.load(loader.url, Loader.TEXT, false, null, true);
loader.on(Event.LOADED, null, _onHierarchylhLoaded, [loader]);
loader.load(loader.url, Loader.TEXT, false, null, true);
}

/**
Expand Down Expand Up @@ -290,8 +299,8 @@ package {
private static function _onHierarchyInnerForthLevResouLoaded(loader:Loader, processHandler:Handler, lhData:Object, urlMap:Object, firstLevUrls:Array, secondLevUrls:Array, processOffset:Number, processCeil:Number):void {
(processHandler) && (processHandler.recover());
if (secondLevUrls.length > 0) {
var handler:Handler = Handler.create(null, _onProcessChange, [loader, processOffset, processCeil], false);
_innerSecondLevelLoaderManager.create(secondLevUrls, Handler.create(null, _onHierarchyInnerSecondLevResouLoaded, [loader, handler, lhData, urlMap, firstLevUrls, processOffset + processCeil * secondLevUrls.length, processCeil]), processHandler);
var process:Handler = Handler.create(null, _onProcessChange, [loader, processOffset, processCeil], false);
_innerSecondLevelLoaderManager.create(secondLevUrls, Handler.create(null, _onHierarchyInnerSecondLevResouLoaded, [loader, process, lhData, urlMap, firstLevUrls, processOffset + processCeil * secondLevUrls.length, processCeil]), processHandler);

} else {
_onHierarchyInnerSecondLevResouLoaded(loader, null, lhData, urlMap, firstLevUrls, processOffset, processCeil);
Expand All @@ -304,8 +313,8 @@ package {
private static function _onHierarchyInnerSecondLevResouLoaded(loader:Loader, processHandler:Handler, lhData:Object, urlMap:Object, firstLevUrls:Array, processOffset:Number, processCeil:Number):void {
(processHandler) && (processHandler.recover());
if (firstLevUrls.length > 0) {
var handler:Handler = Handler.create(null, _onProcessChange, [loader, processOffset, processCeil], false);
_innerFirstLevelLoaderManager.create(firstLevUrls, Handler.create(null, _onHierarchyInnerFirstLevResouLoaded, [loader, handler, lhData, urlMap, /*processOffset + processCeil * firstLevUrls.length, processCeil*/]), processHandler);
var process:Handler = Handler.create(null, _onProcessChange, [loader, processOffset, processCeil], false);
_innerFirstLevelLoaderManager.create(firstLevUrls, Handler.create(null, _onHierarchyInnerFirstLevResouLoaded, [loader, process, lhData, urlMap, /*processOffset + processCeil * firstLevUrls.length, processCeil*/]), processHandler);

} else {
_onHierarchyInnerFirstLevResouLoaded(loader, null, lhData, urlMap);
Expand All @@ -324,9 +333,8 @@ package {
*@private
*/
private static function _loadTerrain(loader:Loader):void {
var ltLoader:Loader = new Loader();
ltLoader.on(Event.COMPLETE, null, _onTerrainLtLoaded, [loader]);
ltLoader.load(loader.url, Loader.JSON, false, null, true);
loader.on(Event.LOADED, null, _onTerrainLtLoaded, [loader]);
loader.load(loader.url, Loader.JSON, false, null, true);
}

/**
Expand All @@ -350,19 +358,16 @@ package {
heightMapURL = formatUrl;

var detailTextures:Array = ltData.detailTexture;
for (i = 0, n = detailTextures.length; i < n; i++) {
textureURLs.push({url:detailTextures[i].diffuse});
}
for (i = 0, n = detailTextures.length; i < n; i++)
textureURLs.push({url: detailTextures[i].diffuse});

var normalMaps:Array = ltData.normalMap;
for (i = 0, n = normalMaps.length; i < n; i++) {
textureURLs.push({url:normalMaps[i]});
}
for (i = 0, n = normalMaps.length; i < n; i++)
textureURLs.push({url: normalMaps[i]});

var alphaMaps:Array = ltData.alphaMap;
for (i = 0, n = alphaMaps.length; i < n; i++) {
textureURLs.push( {url:alphaMaps[i], params:[false,false] } );
}
for (i = 0, n = alphaMaps.length; i < n; i++)
textureURLs.push({url: alphaMaps[i], params: [false, false, WebGLContext.RGBA, true]});

for (i = 0, n = textureURLs.length; i < n; i++) {
var subUrl:String = textureURLs[i].url;
Expand All @@ -372,7 +377,6 @@ package {
urlMap[subUrl] = formatUrl;
}


var texsUrlCount:int = textureURLs.length;
var totalProcessCount:int = texsUrlCount + 2;//heightMap始终为1个
var weight:Number = 1 / totalProcessCount;
Expand Down Expand Up @@ -412,9 +416,8 @@ package {
*@private
*/
private static function _loadMesh(loader:Loader):void {
var lmLoader:Loader = new Loader();
lmLoader.on(Event.COMPLETE, null, _onMeshLmLoaded, [loader]);
lmLoader.load(loader.url, Loader.BUFFER, false, null, true);
loader.on(Event.LOADED, null, _onMeshLmLoaded, [loader]);
loader.load(loader.url, Loader.BUFFER, false, null, true);
}

/**
Expand Down Expand Up @@ -514,9 +517,8 @@ package {
*@private
*/
private static function _loadMaterial(loader:Loader):void {
var lmatLoader:Loader = new Loader();
lmatLoader.on(Event.COMPLETE, null, _onMaterilLmatLoaded, [loader]);
lmatLoader.load(loader.url, Loader.JSON, false, null, true);
loader.on(Event.LOADED, null, _onMaterilLmatLoaded, [loader]);
loader.load(loader.url, Loader.JSON, false, null, true);
}

/**
Expand All @@ -536,10 +538,15 @@ package {
case "LAYAMATERIAL:01":
var textures:Array = lmatData.props.textures;
for (var i:int = 0, n:int = textures.length; i < n; i++) {
var path:String = textures[i].path;
var tex:Object = textures[i];
var path:String = tex.path;
if (path) {
formatSubUrl = _getMaterialTexturePath(path, urlVersion, materialBasePath);
urls.push(formatSubUrl);
var extenIndex:int = path.length - 4;
if (path.indexOf(".exr") == extenIndex || path.indexOf(".EXR") == extenIndex)
path = path.substr(0, extenIndex) + ".png";
formatSubUrl = URL.formatURL(path, materialBasePath);
(urlVersion) && (formatSubUrl = formatSubUrl + urlVersion);
urls.push({url: formatSubUrl, params: tex.params});
urlMap[path] = formatSubUrl;
}
}
Expand Down Expand Up @@ -626,9 +633,8 @@ package {
*@private
*/
private static function _loadTextureCube(loader:Loader):void {
var ltcLoader:Loader = new Loader();
ltcLoader.on(Event.COMPLETE, null, _onTextureCubeLtcLoaded, [loader]);
ltcLoader.load(loader.url, Loader.JSON, false, null, true);
loader.on(Event.LOADED, null, _onTextureCubeLtcLoaded, [loader]);
loader.load(loader.url, Loader.JSON, false, null, true);
}

/**
Expand Down Expand Up @@ -690,7 +696,8 @@ package {
ShaderInit3D.__init__();
MeshSprite3D.__init__();
AnimationNode.__init__();
_initResourceLoad();
__init__();
AtlasResourceManager.maxTextureCount = 2;

if (Laya3D.debugMode || OctreeNode.debugMode)
_debugPhasorSprite = new PhasorSpriter3D();
Expand Down
2 changes: 0 additions & 2 deletions bin/as/libs/src/laya/ani/AnimationParser01.as
Original file line number Diff line number Diff line change
Expand Up @@ -144,8 +144,6 @@ package laya.ani {
}

keyFrame.data = new Float32Array(keyframeDataCount);
keyFrame.dData = new Float32Array(keyframeDataCount);
keyFrame.nextData = new Float32Array(keyframeDataCount);
for (l = 0; l < keyframeDataCount; l++) {
keyFrame.data[l] = reader.getFloat32();
if (keyFrame.data[l] > -0.00000001 && keyFrame.data[l] < 0.00000001) keyFrame.data[l] = 0;
Expand Down
3 changes: 0 additions & 3 deletions bin/as/libs/src/laya/ani/AnimationParser02.as
Original file line number Diff line number Diff line change
Expand Up @@ -129,9 +129,6 @@ package laya.ani {

(lastKeyFrame) && (lastKeyFrame.duration = keyFrame.startTime - lastKeyFrame.startTime);

keyFrame.dData = new Float32Array(keyframeWidth);
keyFrame.nextData = new Float32Array(keyframeWidth);

var offset:int = _DATA.offset;

var keyframeDataOffset:int = reader.getUint32();
Expand Down
35 changes: 13 additions & 22 deletions bin/as/libs/src/laya/ani/AnimationTemplet.as
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ package laya.ani {
* @private
*/
private static function _LinearInterpolation_0(bone:AnimationNodeContent, index:int, out:Float32Array, outOfs:int, data:Float32Array, dt:Number, dData:Float32Array, duration:Number, nextData:Float32Array, interData:Array = null):int {
out[outOfs] = data[index] + dt * dData[index];
var amount:Number = duration === 0 ? 0 : dt / duration;
out[outOfs] = (1.0 - amount) * data[index] + amount * nextData[index];
return 1;
}

Expand Down Expand Up @@ -128,10 +129,7 @@ package laya.ani {
keyFrames[keyframeCount] = keyFrames[0];
for (var i:int = 0; i < keyframeCount; i++) {
var keyFrame:KeyFramesContent = keyFrames[i];
for (var j:int = 0; j < keyframeDataCount; j++) {
keyFrame.dData[j] = (keyFrame.duration === 0) ? 0 : (keyFrames[i + 1].data[j] - keyFrame.data[j]) / keyFrame.duration;//末帧dData数据为0
keyFrame.nextData[j] = keyFrames[i + 1].data[j];
}
keyFrame.nextData =(keyFrame.duration === 0) ? keyFrame.data : keyFrames[i + 1].data;
}
keyFrames.length--;
}
Expand Down Expand Up @@ -227,7 +225,7 @@ package laya.ani {
case 0:
case 1:
for (j = 0; j < node.keyframeWidth; )
j += node.interpolationMethod[j](node, j, originalData, outOfs + j, key.data, dt, key.dData, key.duration, key.nextData);
j += node.interpolationMethod[j](node, j, originalData, outOfs + j, key.data, dt, null, key.duration, key.nextData);
break;
case 2:
var interpolationData:Array = key.interpolationData;
Expand All @@ -237,13 +235,13 @@ package laya.ani {
var type:int = interpolationData[j];
switch (type) {
case 6:
j += interpolation[type](node, dataIndex, originalData, outOfs + dataIndex, key.data, dt, key.dData, key.duration, key.nextData, interpolationData, j + 1);
j += interpolation[type](node, dataIndex, originalData, outOfs + dataIndex, key.data, dt, null, key.duration, key.nextData, interpolationData, j + 1);
break;
case 7:
j += interpolation[type](node, dataIndex, originalData, outOfs + dataIndex, key.data, dt, key.dData, key.duration, key.nextData, interpolationData, j + 1);
j += interpolation[type](node, dataIndex, originalData, outOfs + dataIndex, key.data, dt, null, key.duration, key.nextData, interpolationData, j + 1);
break;
default:
j += interpolation[type](node, dataIndex, originalData, outOfs + dataIndex, key.data, dt, key.dData, key.duration, key.nextData);
j += interpolation[type](node, dataIndex, originalData, outOfs + dataIndex, key.data, dt, null, key.duration, key.nextData);

}
//if (type === 6)
Expand All @@ -256,7 +254,7 @@ package laya.ani {
}
} else {
for (j = 0; j < node.keyframeWidth; )
j += node.interpolationMethod[j](node, j, originalData, outOfs + j, key.data, dt, key.dData, key.duration, key.nextData);
j += node.interpolationMethod[j](node, j, originalData, outOfs + j, key.data, dt, null, key.duration, key.nextData);
}

outOfs += node.keyframeWidth;
Expand Down Expand Up @@ -328,7 +326,7 @@ package laya.ani {
case 0:
case 1:
for (j = 0; j < node.keyframeWidth; )
j += node.interpolationMethod[j](node, j, originalData, outOfs + j, key.data, dt, key.dData, key.duration, key.nextData);
j += node.interpolationMethod[j](node, j, originalData, outOfs + j, key.data, dt, null, key.duration, key.nextData);
break;
case 2:
var interpolationData:Array = key.interpolationData;
Expand All @@ -338,13 +336,13 @@ package laya.ani {
var type:int = interpolationData[j];
switch (type) {
case 6:
j += interpolation[type](node, dataIndex, originalData, outOfs + dataIndex, key.data, dt, key.dData, key.duration, key.nextData, interpolationData, j + 1);
j += interpolation[type](node, dataIndex, originalData, outOfs + dataIndex, key.data, dt, null, key.duration, key.nextData, interpolationData, j + 1);
break;
case 7:
j += interpolation[type](node, dataIndex, originalData, outOfs + dataIndex, key.data, dt, key.dData, key.duration, key.nextData, interpolationData, j + 1);
j += interpolation[type](node, dataIndex, originalData, outOfs + dataIndex, key.data, dt, null, key.duration, key.nextData, interpolationData, j + 1);
break;
default:
j += interpolation[type](node, dataIndex, originalData, outOfs + dataIndex, key.data, dt, key.dData, key.duration, key.nextData);
j += interpolation[type](node, dataIndex, originalData, outOfs + dataIndex, key.data, dt, null, key.duration, key.nextData);

}
//if (type === 6)
Expand All @@ -357,19 +355,12 @@ package laya.ani {
}
} else {
for (j = 0; j < node.keyframeWidth; )
j += node.interpolationMethod[j](node, j, originalData, outOfs + j, key.data, dt, key.dData, key.duration, key.nextData);
j += node.interpolationMethod[j](node, j, originalData, outOfs + j, key.data, dt, null, key.duration, key.nextData);
}

outOfs += node.keyframeWidth;
}
}

override public function dispose():void {
if (resourceManager)
resourceManager.removeResource(this);
super.dispose();
}

}
}

1 change: 0 additions & 1 deletion bin/as/libs/src/laya/ani/KeyFramesContent.as
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ package laya.ani {
public var duration:Number;
public var interpolationData:Array;//私有插值方式 [type0(插值类型),Data0(插值数据,可为空),type1(插值类型),Data1(插值数据,可为空)] 注意:254全线性插值,255全不插值
public var data:Float32Array;//= new Float32Array();
public var dData:Float32Array;//= new Float32Array();
public var nextData:Float32Array;//= new Float32Array();

}
Expand Down
Loading

0 comments on commit f6e367e

Please sign in to comment.