实现2.4.11版本
13
2.4.11/assets/lcc-ui-sorting-group.meta
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"ver": "1.1.3",
|
||||
"uuid": "67d51efb-7233-4c27-b96c-386cc3d5e810",
|
||||
"importer": "folder",
|
||||
"isBundle": false,
|
||||
"bundleName": "",
|
||||
"priority": 1,
|
||||
"compressionType": {},
|
||||
"optimizeHotUpdate": {},
|
||||
"inlineSpriteFrames": {},
|
||||
"isRemoteBundle": {},
|
||||
"subMetas": {}
|
||||
}
|
||||
13
2.4.11/assets/lcc-ui-sorting-group/engine-extend.meta
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"ver": "1.1.3",
|
||||
"uuid": "0998106b-40d7-467a-aa96-9eb7bc459a51",
|
||||
"importer": "folder",
|
||||
"isBundle": false,
|
||||
"bundleName": "",
|
||||
"priority": 1,
|
||||
"compressionType": {},
|
||||
"optimizeHotUpdate": {},
|
||||
"inlineSpriteFrames": {},
|
||||
"isRemoteBundle": {},
|
||||
"subMetas": {}
|
||||
}
|
||||
111
2.4.11/assets/lcc-ui-sorting-group/engine-extend/node.ts
Normal file
@@ -0,0 +1,111 @@
|
||||
|
||||
//@ts-ignore
|
||||
const nodeMemPool = require('./trans-pool/index').NodeMemPool
|
||||
|
||||
declare module cc {
|
||||
export interface Node {
|
||||
|
||||
/**
|
||||
* 排序优先级 - private
|
||||
*/
|
||||
_sortingPriority:number;
|
||||
|
||||
/**
|
||||
* 排序优先级
|
||||
*/
|
||||
sortingPriority:number;
|
||||
|
||||
/**
|
||||
* 排序优使能 - private
|
||||
*/
|
||||
_sortingEnabled:boolean;
|
||||
|
||||
/**
|
||||
* 排序优使能
|
||||
*/
|
||||
sortingEnabled:boolean;
|
||||
}
|
||||
}
|
||||
|
||||
if(!('sortingPriority' in cc.Node.prototype)){
|
||||
Object.defineProperty(cc.Node.prototype, 'sortingPriority', {
|
||||
get: function() {
|
||||
return this._sortingPriority;
|
||||
},
|
||||
set: function(value) {
|
||||
this._sortingPriority = value;
|
||||
// console.log(`sortingPriority ${this.name} ${value}`);
|
||||
if(CC_JSB){
|
||||
this._sortingPriorityProxy[0] = value;
|
||||
}
|
||||
},
|
||||
enumerable: true
|
||||
});
|
||||
|
||||
Object.defineProperty(cc.Node.prototype, 'sortingEnabled', {
|
||||
get: function() {
|
||||
return this._sortingEnabled;
|
||||
},
|
||||
set: function(value) {
|
||||
this._sortingEnabled = value;
|
||||
// console.log(`sortingEnabled ${this.name} ${value}`);
|
||||
if(CC_JSB){
|
||||
this._sortingEnabledProxy[0] = value ? 1 : 0;
|
||||
}
|
||||
},
|
||||
enumerable: true
|
||||
});
|
||||
}
|
||||
|
||||
if(CC_JSB){
|
||||
//@ts-ignore
|
||||
cc.Node.prototype._initDataFromPool = function(){
|
||||
if (!this._spaceInfo) {
|
||||
if (CC_EDITOR || CC_TEST) {
|
||||
this._spaceInfo = {
|
||||
trs: new Float64Array(10),
|
||||
localMat: new Float64Array(16),
|
||||
worldMat: new Float64Array(16),
|
||||
};
|
||||
} else {
|
||||
this._spaceInfo = nodeMemPool.pop();
|
||||
}
|
||||
}
|
||||
|
||||
let spaceInfo = this._spaceInfo;
|
||||
this._matrix = cc.mat4(spaceInfo.localMat);
|
||||
cc.Mat4.identity(this._matrix);
|
||||
this._worldMatrix = cc.mat4(spaceInfo.worldMat);
|
||||
cc.Mat4.identity(this._worldMatrix);
|
||||
this._localMatDirty = 0xffff;
|
||||
this._worldMatDirty = true;
|
||||
this._sortingPriorityProxy = spaceInfo.sortingPriority;
|
||||
this._sortingEnabledProxy = spaceInfo.sortingEnabled;
|
||||
|
||||
let trs = this._trs = spaceInfo.trs;
|
||||
trs[0] = 0; // position.x
|
||||
trs[1] = 0; // position.y
|
||||
trs[2] = 0; // position.z
|
||||
trs[3] = 0; // rotation.x
|
||||
trs[4] = 0; // rotation.y
|
||||
trs[5] = 0; // rotation.z
|
||||
trs[6] = 1; // rotation.w
|
||||
trs[7] = 1; // scale.x
|
||||
trs[8] = 1; // scale.y
|
||||
trs[9] = 1; // scale.z
|
||||
}
|
||||
|
||||
//@ts-ignore
|
||||
cc.Node.prototype._backDataIntoPool = function() {
|
||||
if (!(CC_EDITOR || CC_TEST)) {
|
||||
// push back to pool
|
||||
nodeMemPool.push(this._spaceInfo);
|
||||
this._sortingPriorityProxy = null;
|
||||
this._sortingEnabledProxy = null;
|
||||
this._matrix = null;
|
||||
this._worldMatrix = null;
|
||||
this._trs = null;
|
||||
this._spaceInfo = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"ver": "1.1.0",
|
||||
"uuid": "f0c38288-db93-4468-ab2a-0e3bc2059d15",
|
||||
"importer": "typescript",
|
||||
"isPlugin": false,
|
||||
"loadPluginInWeb": true,
|
||||
"loadPluginInNative": true,
|
||||
"loadPluginInEditor": false,
|
||||
"subMetas": {}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
|
||||
declare module cc {
|
||||
export interface RenderComponent {
|
||||
|
||||
/**
|
||||
* 渲染优先级
|
||||
*/
|
||||
renderPriority:number;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"ver": "1.1.0",
|
||||
"uuid": "910f4c68-0289-4422-a65c-6dc64f77511e",
|
||||
"importer": "typescript",
|
||||
"isPlugin": false,
|
||||
"loadPluginInWeb": true,
|
||||
"loadPluginInNative": true,
|
||||
"loadPluginInEditor": false,
|
||||
"subMetas": {}
|
||||
}
|
||||
153
2.4.11/assets/lcc-ui-sorting-group/engine-extend/render-flow.ts
Normal file
@@ -0,0 +1,153 @@
|
||||
|
||||
let _batcher;
|
||||
let _cullingMask = 0;
|
||||
|
||||
/**
|
||||
* 当前渲染优先级
|
||||
*/
|
||||
let renderPriority = 0;
|
||||
|
||||
/**
|
||||
* 渲染器缓存
|
||||
*/
|
||||
let rendererCache:cc.RenderComponent[] = [];
|
||||
|
||||
/**
|
||||
* 渲染器排序
|
||||
*/
|
||||
let rendererOrder:boolean = false;
|
||||
|
||||
/**
|
||||
* 刷新渲染缓存
|
||||
*/
|
||||
function flushRendererCache(){
|
||||
if(rendererCache.length > 0){
|
||||
if(rendererOrder){
|
||||
rendererCache.sort((a, b)=>{ return a.renderPriority - b.renderPriority; });
|
||||
}
|
||||
for(let render of rendererCache){
|
||||
// console.log(`${render.node.name} - ${render.renderPriority}`);
|
||||
//@ts-ignore
|
||||
render._checkBacth(_batcher, render.node._cullingMask);
|
||||
//@ts-ignore
|
||||
render._assembler.fillBuffers(render, _batcher);
|
||||
}
|
||||
rendererCache.length = 0;
|
||||
}
|
||||
rendererOrder = false;
|
||||
}
|
||||
|
||||
//@ts-ignore
|
||||
cc.RenderFlow.visitRootNode = function (rootNode){
|
||||
renderPriority = 0;
|
||||
rendererCache.length = 0;
|
||||
rendererOrder = false;
|
||||
|
||||
//@ts-ignore
|
||||
_batcher = cc.RenderFlow.getBachther();
|
||||
|
||||
//@ts-ignore
|
||||
cc.RenderFlow.validateRenderers();
|
||||
|
||||
let preCullingMask = _cullingMask;
|
||||
_cullingMask = rootNode._cullingMask;
|
||||
|
||||
//@ts-ignore
|
||||
if (rootNode._renderFlag & cc.RenderFlow.FLAG_WORLD_TRANSFORM) {
|
||||
_batcher.worldMatDirty ++;
|
||||
rootNode._calculWorldMatrix();
|
||||
//@ts-ignore
|
||||
rootNode._renderFlag &= ~cc.RenderFlow.FLAG_WORLD_TRANSFORM;
|
||||
|
||||
//@ts-ignore
|
||||
cc.RenderFlow.flows[rootNode._renderFlag]._func(rootNode);
|
||||
flushRendererCache();
|
||||
|
||||
_batcher.worldMatDirty --;
|
||||
}
|
||||
else {
|
||||
//@ts-ignore
|
||||
cc.RenderFlow.flows[rootNode._renderFlag]._func(rootNode);
|
||||
flushRendererCache();
|
||||
}
|
||||
|
||||
_cullingMask = preCullingMask;
|
||||
}
|
||||
|
||||
//@ts-ignore
|
||||
cc.RenderFlow.prototype._render = function (node) {
|
||||
let comp = node._renderComponent;
|
||||
if(comp instanceof cc.Mask){
|
||||
flushRendererCache();
|
||||
|
||||
//@ts-ignore
|
||||
comp._checkBacth(_batcher, node._cullingMask);
|
||||
//@ts-ignore
|
||||
comp._assembler.fillBuffers(comp, _batcher);
|
||||
}else{
|
||||
if (_batcher.worldMatDirty && comp._assembler.updateWorldVerts) {
|
||||
comp._assembler.updateWorldVerts(comp);
|
||||
}
|
||||
rendererCache.push(comp);
|
||||
comp.renderPriority = node._sortingEnabled ? node._sortingPriority : renderPriority;
|
||||
if(renderPriority != 0){
|
||||
rendererOrder = true;
|
||||
}
|
||||
}
|
||||
this._next._func(node);
|
||||
};
|
||||
|
||||
//@ts-ignore
|
||||
cc.RenderFlow.prototype._postRender = function (node) {
|
||||
let comp = node._renderComponent;
|
||||
if(comp instanceof cc.Mask){
|
||||
flushRendererCache();
|
||||
}
|
||||
comp._checkBacth(_batcher, node._cullingMask);
|
||||
comp._assembler.postFillBuffers(comp, _batcher);
|
||||
this._next._func(node);
|
||||
};
|
||||
|
||||
//@ts-ignore
|
||||
cc.RenderFlow.prototype._children = function (node) {
|
||||
let cullingMask = _cullingMask;
|
||||
let batcher = _batcher;
|
||||
|
||||
let preRenderPriority = renderPriority;
|
||||
|
||||
let parentOpacity = batcher.parentOpacity;
|
||||
let opacity = (batcher.parentOpacity *= (node._opacity / 255));
|
||||
|
||||
renderPriority = node._sortingEnabled ? node._sortingPriority : renderPriority;
|
||||
// console.log(`${node.name} ${renderPriority}`);
|
||||
|
||||
//@ts-ignore
|
||||
let worldTransformFlag = batcher.worldMatDirty ? cc.RenderFlow.FLAG_WORLD_TRANSFORM : 0;
|
||||
//@ts-ignore
|
||||
let worldOpacityFlag = batcher.parentOpacityDirty ? cc.RenderFlow.FLAG_OPACITY_COLOR : 0;
|
||||
let worldDirtyFlag = worldTransformFlag | worldOpacityFlag;
|
||||
|
||||
let children = node._children;
|
||||
for (let i = 0, l = children.length; i < l; i++) {
|
||||
let c = children[i];
|
||||
|
||||
// Advance the modification of the flag to avoid node attribute modification is invalid when opacity === 0.
|
||||
c._renderFlag |= worldDirtyFlag;
|
||||
if (!c._activeInHierarchy || c._opacity === 0) continue;
|
||||
|
||||
_cullingMask = c._cullingMask = c.groupIndex === 0 ? cullingMask : 1 << c.groupIndex;
|
||||
|
||||
// TODO: Maybe has better way to implement cascade opacity
|
||||
let colorVal = c._color._val;
|
||||
c._color._fastSetA(c._opacity * opacity);
|
||||
// @ts-ignore
|
||||
cc.RenderFlow.flows[c._renderFlag]._func(c);
|
||||
c._color._val = colorVal;
|
||||
}
|
||||
|
||||
batcher.parentOpacity = parentOpacity;
|
||||
|
||||
renderPriority = preRenderPriority;
|
||||
|
||||
this._next._func(node);
|
||||
};
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"ver": "1.1.0",
|
||||
"uuid": "d9ee1293-73e0-4588-a058-685d75be1912",
|
||||
"importer": "typescript",
|
||||
"isPlugin": false,
|
||||
"loadPluginInWeb": true,
|
||||
"loadPluginInNative": true,
|
||||
"loadPluginInEditor": false,
|
||||
"subMetas": {}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"ver": "1.1.3",
|
||||
"uuid": "10d7cfa4-65ae-4b25-8725-2630ae630cd3",
|
||||
"importer": "folder",
|
||||
"isBundle": false,
|
||||
"bundleName": "",
|
||||
"priority": 1,
|
||||
"compressionType": {},
|
||||
"optimizeHotUpdate": {},
|
||||
"inlineSpriteFrames": {},
|
||||
"isRemoteBundle": {},
|
||||
"subMetas": {}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
/****************************************************************************
|
||||
Copyright (c) 2019 Xiamen Yaji Software Co., Ltd.
|
||||
|
||||
https://www.cocos.com/
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated engine source code (the "Software"), a limited,
|
||||
worldwide, royalty-free, non-assignable, revocable and non-exclusive license
|
||||
to use Cocos Creator solely to develop games on your target platforms. You shall
|
||||
not use Cocos Creator software for developing other software or tools that's
|
||||
used for developing games. You are not granted to publish, distribute,
|
||||
sublicense, and/or sell copies of Cocos Creator.
|
||||
|
||||
The software or tools in this License Agreement are licensed, not sold.
|
||||
Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
****************************************************************************/
|
||||
|
||||
let NodeUnit = require('./node-unit');
|
||||
let NodeMemPool = require('./node-mem-pool');
|
||||
|
||||
module.exports = {
|
||||
NodeMemPool: new NodeMemPool(NodeUnit)
|
||||
};
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"ver": "1.1.0",
|
||||
"uuid": "eb098cc5-0be2-48ee-8103-989d20216bda",
|
||||
"importer": "javascript",
|
||||
"isPlugin": false,
|
||||
"loadPluginInWeb": true,
|
||||
"loadPluginInNative": true,
|
||||
"loadPluginInEditor": false,
|
||||
"subMetas": {}
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
/****************************************************************************
|
||||
Copyright (c) 2019 Xiamen Yaji Software Co., Ltd.
|
||||
|
||||
https://www.cocos.com/
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated engine source code (the "Software"), a limited,
|
||||
worldwide, royalty-free, non-assignable, revocable and non-exclusive license
|
||||
to use Cocos Creator solely to develop games on your target platforms. You shall
|
||||
not use Cocos Creator software for developing other software or tools that's
|
||||
used for developing games. You are not granted to publish, distribute,
|
||||
sublicense, and/or sell copies of Cocos Creator.
|
||||
|
||||
The software or tools in this License Agreement are licensed, not sold.
|
||||
Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
****************************************************************************/
|
||||
|
||||
let MemPool = function (unitClass) {
|
||||
this._unitClass = unitClass;
|
||||
this._pool = [];
|
||||
this._findOrder = [];
|
||||
|
||||
if (CC_JSB && CC_NATIVERENDERER) {
|
||||
this._initNative();
|
||||
}
|
||||
};
|
||||
|
||||
let proto = MemPool.prototype;
|
||||
proto._initNative = function () {
|
||||
this._nativeMemPool = new renderer.MemPool();
|
||||
};
|
||||
|
||||
proto._buildUnit = function (unitID) {
|
||||
let unit = new this._unitClass(unitID, this);
|
||||
if (CC_JSB && CC_NATIVERENDERER) {
|
||||
this._nativeMemPool.updateCommonData(unitID, unit._data, unit._signData);
|
||||
}
|
||||
return unit;
|
||||
};
|
||||
|
||||
proto._destroyUnit = function (unitID) {
|
||||
this._pool[unitID] = null;
|
||||
for (let idx = 0, n = this._findOrder.length; idx < n; idx++) {
|
||||
let unit = this._findOrder[idx];
|
||||
if (unit && unit.unitID == unitID) {
|
||||
this._findOrder.splice(idx, 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (CC_JSB && CC_NATIVERENDERER) {
|
||||
this._nativeMemPool.removeCommonData(unitID);
|
||||
}
|
||||
};
|
||||
|
||||
proto._findUnitID = function () {
|
||||
let unitID = 0;
|
||||
let pool = this._pool;
|
||||
while (pool[unitID]) unitID++;
|
||||
return unitID;
|
||||
};
|
||||
|
||||
proto.pop = function () {
|
||||
let findUnit = null;
|
||||
let idx = 0;
|
||||
let findOrder = this._findOrder;
|
||||
let pool = this._pool;
|
||||
for (let n = findOrder.length; idx < n; idx++) {
|
||||
let unit = findOrder[idx];
|
||||
if (unit && unit.hasSpace()) {
|
||||
findUnit = unit;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!findUnit) {
|
||||
let unitID = this._findUnitID();
|
||||
findUnit = this._buildUnit(unitID);
|
||||
pool[unitID] = findUnit;
|
||||
findOrder.push(findUnit);
|
||||
idx = findOrder.length - 1;
|
||||
}
|
||||
|
||||
// swap has space unit to first position, so next find will fast
|
||||
let firstUnit = findOrder[0];
|
||||
if (firstUnit !== findUnit) {
|
||||
findOrder[0] = findUnit;
|
||||
findOrder[idx] = firstUnit;
|
||||
}
|
||||
|
||||
return findUnit.pop();
|
||||
};
|
||||
|
||||
proto.push = function (info) {
|
||||
let unit = this._pool[info.unitID];
|
||||
unit.push(info.index);
|
||||
if (this._findOrder.length > 1 && unit.isAllFree()) {
|
||||
this._destroyUnit(info.unitID);
|
||||
}
|
||||
return unit;
|
||||
};
|
||||
module.exports = MemPool;
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"ver": "1.1.0",
|
||||
"uuid": "13cfc2d4-b859-42dc-917a-561662386b76",
|
||||
"importer": "javascript",
|
||||
"isPlugin": false,
|
||||
"loadPluginInWeb": true,
|
||||
"loadPluginInNative": true,
|
||||
"loadPluginInEditor": false,
|
||||
"subMetas": {}
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
/****************************************************************************
|
||||
Copyright (c) 2019 Xiamen Yaji Software Co., Ltd.
|
||||
|
||||
https://www.cocos.com/
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated engine source code (the "Software"), a limited,
|
||||
worldwide, royalty-free, non-assignable, revocable and non-exclusive license
|
||||
to use Cocos Creator solely to develop games on your target platforms. You shall
|
||||
not use Cocos Creator software for developing other software or tools that's
|
||||
used for developing games. You are not granted to publish, distribute,
|
||||
sublicense, and/or sell copies of Cocos Creator.
|
||||
|
||||
The software or tools in this License Agreement are licensed, not sold.
|
||||
Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
****************************************************************************/
|
||||
|
||||
let MemPool = require('./mem-pool');
|
||||
let NodeMemPool = function (unitClass) {
|
||||
MemPool.call(this, unitClass);
|
||||
};
|
||||
|
||||
(function(){
|
||||
let Super = function(){};
|
||||
Super.prototype = MemPool.prototype;
|
||||
NodeMemPool.prototype = new Super();
|
||||
})();
|
||||
|
||||
let proto = NodeMemPool.prototype;
|
||||
proto._initNative = function () {
|
||||
this._nativeMemPool = new renderer.NodeMemPool();
|
||||
};
|
||||
|
||||
proto._destroyUnit = function (unitID) {
|
||||
MemPool.prototype._destroyUnit.call(this, unitID);
|
||||
if (CC_JSB && CC_NATIVERENDERER) {
|
||||
this._nativeMemPool.removeNodeData(unitID);
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = NodeMemPool;
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"ver": "1.1.0",
|
||||
"uuid": "caa4d37a-9df4-4a7b-9407-eafa3c27df76",
|
||||
"importer": "javascript",
|
||||
"isPlugin": false,
|
||||
"loadPluginInWeb": true,
|
||||
"loadPluginInNative": true,
|
||||
"loadPluginInEditor": false,
|
||||
"subMetas": {}
|
||||
}
|
||||
@@ -0,0 +1,158 @@
|
||||
/****************************************************************************
|
||||
Copyright (c) 2019 Xiamen Yaji Software Co., Ltd.
|
||||
|
||||
https://www.cocos.com/
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated engine source code (the "Software"), a limited,
|
||||
worldwide, royalty-free, non-assignable, revocable and non-exclusive license
|
||||
to use Cocos Creator solely to develop games on your target platforms. You shall
|
||||
not use Cocos Creator software for developing other software or tools that's
|
||||
used for developing games. You are not granted to publish, distribute,
|
||||
sublicense, and/or sell copies of Cocos Creator.
|
||||
|
||||
The software or tools in this License Agreement are licensed, not sold.
|
||||
Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
****************************************************************************/
|
||||
|
||||
const FLOAT_ARRAY_TYPE = (CC_JSB && CC_NATIVERENDERER) ? Float32Array : Float64Array;
|
||||
const FLOAT_BYTES = (CC_JSB && CC_NATIVERENDERER) ? 4 : 8;
|
||||
|
||||
const Uint32_Bytes = 4;
|
||||
const Uint8_Bytes = 1;
|
||||
|
||||
// Space : [Dirty] [Size:4 Uint32]
|
||||
const Dirty_Type = Uint32Array;
|
||||
const Dirty_Members = 1;
|
||||
const Dirty_Stride = Dirty_Members * Uint32_Bytes;
|
||||
|
||||
// Space : [TRS] [Size:4 * 10 Float32|Float64]
|
||||
const TRS_Members = 10;
|
||||
const TRS_Stride = TRS_Members * FLOAT_BYTES;
|
||||
|
||||
// Space : [LocalMatrix] [Size:4 * 16 Float32|Float64]
|
||||
const LocalMatrix_Members = 16;
|
||||
const LocalMatrix_Stride = LocalMatrix_Members * FLOAT_BYTES;
|
||||
|
||||
// Space : [WorldMatrix] [Size:4 * 16 Float32|Float64]
|
||||
const WorldMatrix_Members = 16;
|
||||
const WorldMatrix_Stride = WorldMatrix_Members * FLOAT_BYTES;
|
||||
|
||||
// Space : [sortingPriority] [Size:4 * 1 Float32|Float64]
|
||||
const SortingPriority_Members = 1;
|
||||
const SortingPriority_Stride = SortingPriority_Members * FLOAT_BYTES;
|
||||
|
||||
// Space : [Parent Unit] [Size:4 Uint32]
|
||||
// Space : [Parent Index] [Size:4 Uint32]
|
||||
const Parent_Type = Uint32Array;
|
||||
const Parent_Members = 2;
|
||||
const Parent_Stride = Parent_Members * Uint32_Bytes;
|
||||
|
||||
// Space : [ZOrder] [Size:4 Uint32]
|
||||
const ZOrder_Type = Uint32Array;
|
||||
const ZOrder_Members = 1;
|
||||
const ZOrder_Stride = ZOrder_Members * Uint32_Bytes;
|
||||
|
||||
// Space : [CullingMask] [Size:4 Int32]
|
||||
const CullingMask_Type = Int32Array;
|
||||
const CullingMask_Members = 1;
|
||||
const CullingMask_Stride = CullingMask_Members * Uint32_Bytes;
|
||||
|
||||
// Space : [Opacity] [Size:1 Uint8]
|
||||
const Opacity_Type = Uint8Array;
|
||||
const Opacity_Members = 1;
|
||||
const Opacity_Stride = Opacity_Members * Uint8_Bytes;
|
||||
|
||||
// Space : [Is3D] [Size:1 Uint8]
|
||||
const Is3D_Type = Uint8Array;
|
||||
const Is3D_Members = 1;
|
||||
const Is3D_Stride = Is3D_Members * Uint8_Bytes;
|
||||
|
||||
// Space : [sortingEnabled] [Size:1 Uint8]
|
||||
const SortingEnabled_Type = Uint8Array;
|
||||
const SortingEnabled_Members = 1;
|
||||
const SortingEnabled_Stride = SortingEnabled_Members * Uint8_Bytes;
|
||||
|
||||
// Space : [NodePtr] [Size:4 * 2 Uint32]
|
||||
const Node_Type = Uint32Array;
|
||||
const Node_Members = 2;
|
||||
|
||||
// Space : [Skew] [Size:4 * 2 Float32]
|
||||
const Skew_Members = 2;
|
||||
const Skew_Stride = Skew_Members * FLOAT_BYTES;
|
||||
|
||||
let UnitBase = require('./unit-base');
|
||||
let NodeUnit = function (unitID, memPool) {
|
||||
UnitBase.call(this, unitID, memPool);
|
||||
|
||||
let contentNum = this._contentNum;
|
||||
this.trsList = new FLOAT_ARRAY_TYPE(contentNum * TRS_Members);
|
||||
this.localMatList = new FLOAT_ARRAY_TYPE(contentNum * LocalMatrix_Members);
|
||||
this.worldMatList = new FLOAT_ARRAY_TYPE(contentNum * WorldMatrix_Members);
|
||||
|
||||
if (CC_JSB && CC_NATIVERENDERER) {
|
||||
this.dirtyList = new Dirty_Type(contentNum * Dirty_Members);
|
||||
this.parentList = new Parent_Type(contentNum * Parent_Members);
|
||||
this.zOrderList = new ZOrder_Type(contentNum * ZOrder_Members);
|
||||
this.cullingMaskList = new CullingMask_Type(contentNum * CullingMask_Members);
|
||||
this.opacityList = new Opacity_Type(contentNum * Opacity_Members);
|
||||
this.is3DList = new Is3D_Type(contentNum * Is3D_Members);
|
||||
this.nodeList = new Node_Type(contentNum * Node_Members);
|
||||
this.skewList = new FLOAT_ARRAY_TYPE(contentNum * Skew_Members);
|
||||
this.sortingPriorityList = new FLOAT_ARRAY_TYPE(contentNum * SortingPriority_Stride);
|
||||
this.sortingEnabledList = new SortingEnabled_Type(contentNum * SortingEnabled_Stride);
|
||||
|
||||
this._memPool._nativeMemPool.updateNodeData(
|
||||
unitID,
|
||||
this.dirtyList,
|
||||
this.trsList,
|
||||
this.localMatList,
|
||||
this.worldMatList,
|
||||
this.parentList,
|
||||
this.zOrderList,
|
||||
this.cullingMaskList,
|
||||
this.opacityList,
|
||||
this.is3DList,
|
||||
this.nodeList,
|
||||
this.skewList,
|
||||
this.sortingPriorityList,
|
||||
this.sortingEnabledList
|
||||
);
|
||||
}
|
||||
|
||||
for (let i = 0; i < contentNum; i ++) {
|
||||
let space = this._spacesData[i];
|
||||
|
||||
space.trs = new FLOAT_ARRAY_TYPE(this.trsList.buffer, i * TRS_Stride, TRS_Members);
|
||||
space.localMat = new FLOAT_ARRAY_TYPE(this.localMatList.buffer, i * LocalMatrix_Stride, LocalMatrix_Members);
|
||||
space.worldMat = new FLOAT_ARRAY_TYPE(this.worldMatList.buffer, i * WorldMatrix_Stride, WorldMatrix_Members);
|
||||
|
||||
if (CC_JSB && CC_NATIVERENDERER) {
|
||||
space.dirty = new Dirty_Type(this.dirtyList.buffer, i * Dirty_Stride, Dirty_Members);
|
||||
space.parent = new Parent_Type(this.parentList.buffer, i * Parent_Stride, Parent_Members);
|
||||
space.zOrder = new ZOrder_Type(this.zOrderList.buffer, i * ZOrder_Stride, ZOrder_Members);
|
||||
space.cullingMask = new CullingMask_Type(this.cullingMaskList.buffer, i * CullingMask_Stride, CullingMask_Members);
|
||||
space.opacity = new Opacity_Type(this.opacityList.buffer, i * Opacity_Stride, Opacity_Members);
|
||||
space.is3D = new Is3D_Type(this.is3DList.buffer, i * Is3D_Stride, Is3D_Members);
|
||||
space.skew = new FLOAT_ARRAY_TYPE(this.skewList.buffer, i * Skew_Stride, Skew_Members);
|
||||
space.sortingPriority = new FLOAT_ARRAY_TYPE(this.sortingPriorityList.buffer, i * SortingPriority_Stride, SortingPriority_Members);
|
||||
space.sortingEnabled = new SortingEnabled_Type(this.sortingEnabledList.buffer, i * SortingEnabled_Stride, SortingEnabled_Members);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
(function(){
|
||||
let Super = function(){};
|
||||
Super.prototype = UnitBase.prototype;
|
||||
NodeUnit.prototype = new Super();
|
||||
})();
|
||||
|
||||
module.exports = NodeUnit;
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"ver": "1.1.0",
|
||||
"uuid": "3e3243b6-45a4-4eec-9abb-805de55e8b1f",
|
||||
"importer": "javascript",
|
||||
"isPlugin": false,
|
||||
"loadPluginInWeb": true,
|
||||
"loadPluginInNative": true,
|
||||
"loadPluginInEditor": false,
|
||||
"subMetas": {}
|
||||
}
|
||||
@@ -0,0 +1,167 @@
|
||||
/****************************************************************************
|
||||
Copyright (c) 2019 Xiamen Yaji Software Co., Ltd.
|
||||
|
||||
https://www.cocos.com/
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated engine source code (the "Software"), a limited,
|
||||
worldwide, royalty-free, non-assignable, revocable and non-exclusive license
|
||||
to use Cocos Creator solely to develop games on your target platforms. You shall
|
||||
not use Cocos Creator software for developing other software or tools that's
|
||||
used for developing games. You are not granted to publish, distribute,
|
||||
sublicense, and/or sell copies of Cocos Creator.
|
||||
|
||||
The software or tools in this License Agreement are licensed, not sold.
|
||||
Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
****************************************************************************/
|
||||
|
||||
// Unit has many segment, layout such as :
|
||||
// Head Free Pointer + Using Segment Num + Segment 1 + Segment 2 + Segment 3 ...
|
||||
|
||||
// sign data format
|
||||
// Space : [If Free Flag] [Size:1 Uint16]
|
||||
// Space : [Next Free Index] [Size:1 Uint16]
|
||||
|
||||
// invalid pointer value
|
||||
let POINTER_INVALID_FLAG = 0xffff;
|
||||
let SPACE_FREE_FLAG = 0x0;
|
||||
let SPACE_USE_FLAG = 0x1;
|
||||
let POS_NEXT_FREE = 0;
|
||||
let POS_FREE_FLAG = 1;
|
||||
|
||||
let UnitBase = function (unitID, memPool, contentNum) {
|
||||
contentNum = contentNum || 128;
|
||||
|
||||
// set unit id
|
||||
this.unitID = unitID;
|
||||
this._memPool = memPool;
|
||||
|
||||
this._data = new Uint16Array(2);
|
||||
// head of the free content index
|
||||
this._data[0] = 0;
|
||||
// using segment num
|
||||
this._data[1] = 0;
|
||||
|
||||
this._contentNum = contentNum;
|
||||
this._signData = new Uint16Array(this._contentNum * 2);
|
||||
this._spacesData = [];
|
||||
|
||||
for (let i = 0; i < contentNum; i++) {
|
||||
let signIndex = i * 2;
|
||||
// store content block index but not sign array index
|
||||
this._signData[signIndex + POS_NEXT_FREE] = i + 1;
|
||||
this._signData[signIndex + POS_FREE_FLAG] = SPACE_FREE_FLAG;
|
||||
|
||||
this._spacesData[i] = {
|
||||
index: i,
|
||||
unitID: unitID,
|
||||
};
|
||||
}
|
||||
// last one has no next space;
|
||||
this._signData[(contentNum - 1) * 2] = POINTER_INVALID_FLAG;
|
||||
};
|
||||
|
||||
let UnitBaseProto = UnitBase.prototype;
|
||||
UnitBaseProto.hasSpace = function () {
|
||||
return this._data[0] !== POINTER_INVALID_FLAG;
|
||||
};
|
||||
|
||||
UnitBaseProto.isAllFree = function () {
|
||||
return this._data[1] == 0;
|
||||
};
|
||||
|
||||
// pop space from unit
|
||||
UnitBaseProto.pop = function () {
|
||||
let headFreeIndex = this._data[0];
|
||||
if (headFreeIndex === POINTER_INVALID_FLAG) return null;
|
||||
|
||||
let index = headFreeIndex;
|
||||
let signIndex = index * 2;
|
||||
let space = this._spacesData[index];
|
||||
|
||||
// set use flag
|
||||
this._signData[signIndex + POS_FREE_FLAG] = SPACE_USE_FLAG;
|
||||
|
||||
// store new next free space index
|
||||
this._data[0] = this._signData[signIndex + POS_NEXT_FREE];
|
||||
// add using segment num
|
||||
this._data[1]++;
|
||||
return space;
|
||||
};
|
||||
|
||||
// push back to unit
|
||||
UnitBaseProto.push = function (index) {
|
||||
let signIndex = index * 2;
|
||||
|
||||
// set free flag
|
||||
this._signData[signIndex + POS_FREE_FLAG] = SPACE_FREE_FLAG;
|
||||
|
||||
// store head free index to the space
|
||||
this._signData[signIndex + POS_NEXT_FREE] = this._data[0];
|
||||
// update head free index
|
||||
this._data[0] = index;
|
||||
// sub using segment num
|
||||
this._data[1]--;
|
||||
};
|
||||
|
||||
// dump all space info
|
||||
UnitBaseProto.dump = function () {
|
||||
let spaceNum = 0;
|
||||
let index = this._data[0];
|
||||
let freeStr = "";
|
||||
|
||||
while (index != POINTER_INVALID_FLAG) {
|
||||
spaceNum ++;
|
||||
freeStr += index + "->";
|
||||
index = this._signData[index * 2 + POS_NEXT_FREE];
|
||||
}
|
||||
|
||||
let usingNum = 0;
|
||||
let usingStr = "";
|
||||
let contentNum = this._contentNum;
|
||||
for (let i = 0; i < contentNum; i++) {
|
||||
let freeFlag = this._signData[i * 2 + POS_FREE_FLAG];
|
||||
if (freeFlag == SPACE_USE_FLAG) {
|
||||
usingNum ++;
|
||||
usingStr += i + "->";
|
||||
}
|
||||
}
|
||||
|
||||
let totalNum = spaceNum + usingNum;
|
||||
console.log(
|
||||
"unitID:", this.unitID,
|
||||
"spaceNum:", spaceNum,
|
||||
"calc using num:", usingNum,
|
||||
'store using num:', this._data[1],
|
||||
'calc total num:', totalNum,
|
||||
'actually total num:', this._contentNum
|
||||
);
|
||||
console.log("free info:", freeStr);
|
||||
console.log("using info:", usingStr);
|
||||
|
||||
if (usingNum != this._data[1]) {
|
||||
cc.error(
|
||||
'using num error',
|
||||
"calc using num:", usingNum,
|
||||
'store using num:', this._data[1]
|
||||
);
|
||||
}
|
||||
|
||||
if (spaceNum + usingNum != this._contentNum) {
|
||||
cc.error(
|
||||
'total num error',
|
||||
'calc total num:', totalNum,
|
||||
'actually total num:', this._contentNum
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = UnitBase;
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"ver": "1.1.0",
|
||||
"uuid": "b1e0a00c-ca02-49ba-9561-19c4ca3078df",
|
||||
"importer": "javascript",
|
||||
"isPlugin": false,
|
||||
"loadPluginInWeb": true,
|
||||
"loadPluginInNative": true,
|
||||
"loadPluginInEditor": false,
|
||||
"subMetas": {}
|
||||
}
|
||||
23
2.4.11/assets/lcc-ui-sorting-group/sorting-define.ts
Normal file
@@ -0,0 +1,23 @@
|
||||
|
||||
/**
|
||||
* 排序层级
|
||||
*/
|
||||
export enum SortingLayer {
|
||||
|
||||
//-- 自定义,在此之上,小于 DEFAULT 的层级
|
||||
|
||||
/**
|
||||
* 默认层级,在没有应用排序的UI渲染上的默认层级 *不要修改此枚举*
|
||||
*/
|
||||
DEFAULT = 0,
|
||||
|
||||
//-- 自定义,在此之下,大于 DEFAULT 的层级
|
||||
|
||||
// 测试定义,可以直接移除
|
||||
TEST_LIST_ITEM = 1,
|
||||
}
|
||||
|
||||
/**
|
||||
* 在层级中最大排序值
|
||||
*/
|
||||
export const ORDER_IN_LAYER_MAX = 100000;
|
||||
10
2.4.11/assets/lcc-ui-sorting-group/sorting-define.ts.meta
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"ver": "1.1.0",
|
||||
"uuid": "8f6e89ff-d851-45d4-bab8-d32cd5371760",
|
||||
"importer": "typescript",
|
||||
"isPlugin": false,
|
||||
"loadPluginInWeb": true,
|
||||
"loadPluginInNative": true,
|
||||
"loadPluginInEditor": false,
|
||||
"subMetas": {}
|
||||
}
|
||||
55
2.4.11/assets/lcc-ui-sorting-group/sorting-group.ts
Normal file
@@ -0,0 +1,55 @@
|
||||
|
||||
import { ORDER_IN_LAYER_MAX, SortingLayer } from './sorting-define';
|
||||
|
||||
const { ccclass, property, disallowMultiple, executeInEditMode } = cc._decorator;
|
||||
|
||||
@ccclass('lcc-ui/SortingGroup')
|
||||
@disallowMultiple()
|
||||
@executeInEditMode()
|
||||
export class SortingGroup extends cc.Component {
|
||||
/**
|
||||
* 排序层
|
||||
*/
|
||||
@property({type: cc.Enum(SortingLayer)})
|
||||
private _sortingLayer:SortingLayer = SortingLayer.DEFAULT;
|
||||
|
||||
/**
|
||||
* 排序层
|
||||
*/
|
||||
@property({type: cc.Enum(SortingLayer)})
|
||||
get sortingLayer(){
|
||||
return this._sortingLayer;
|
||||
}
|
||||
set sortingLayer(value:SortingLayer){
|
||||
this._sortingLayer = value;
|
||||
// this.node.sortingPriority = Math.sign(this._sortingLayer) * (Math.abs(this._sortingLayer) * ORDER_IN_LAYER_MAX + this._orderInLayer);
|
||||
}
|
||||
|
||||
/**
|
||||
* 排序值
|
||||
*/
|
||||
@property({ type:cc.Float, min: 0, max : ORDER_IN_LAYER_MAX })
|
||||
private _orderInLayer:number = 0;
|
||||
|
||||
/**
|
||||
* 排序值
|
||||
*/
|
||||
@property({ type:cc.Float, min: 0, max : ORDER_IN_LAYER_MAX })
|
||||
get orderInLayer(){
|
||||
return this._orderInLayer;
|
||||
}
|
||||
set orderInLayer(value:number){
|
||||
this._orderInLayer = value;
|
||||
// this.node.sortingPriority = Math.sign(this._sortingLayer) * (Math.abs(this._sortingLayer) * ORDER_IN_LAYER_MAX + this._orderInLayer);
|
||||
}
|
||||
|
||||
onEnable(){
|
||||
this.node.sortingPriority = Math.sign(this._sortingLayer) * (Math.abs(this._sortingLayer) * ORDER_IN_LAYER_MAX + this._orderInLayer);
|
||||
this.node.sortingEnabled = true;
|
||||
}
|
||||
|
||||
onDisable(){
|
||||
this.node.sortingPriority = 0;
|
||||
this.node.sortingEnabled = false;
|
||||
}
|
||||
}
|
||||
10
2.4.11/assets/lcc-ui-sorting-group/sorting-group.ts.meta
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"ver": "1.1.0",
|
||||
"uuid": "ac8d9166-422c-4cd3-a0be-0bdcddb52da2",
|
||||
"importer": "typescript",
|
||||
"isPlugin": false,
|
||||
"loadPluginInWeb": true,
|
||||
"loadPluginInNative": true,
|
||||
"loadPluginInEditor": false,
|
||||
"subMetas": {}
|
||||
}
|
||||
13
2.4.11/assets/test.meta
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"ver": "1.1.3",
|
||||
"uuid": "d29d0f8f-d7b1-4b60-a834-224ebe63fb72",
|
||||
"importer": "folder",
|
||||
"isBundle": false,
|
||||
"bundleName": "",
|
||||
"priority": 1,
|
||||
"compressionType": {},
|
||||
"optimizeHotUpdate": {},
|
||||
"inlineSpriteFrames": {},
|
||||
"isRemoteBundle": {},
|
||||
"subMetas": {}
|
||||
}
|
||||
13
2.4.11/assets/test/prefabs.meta
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"ver": "1.1.3",
|
||||
"uuid": "b5d585a3-e6d1-4710-aa13-dc6f42f7bbd1",
|
||||
"importer": "folder",
|
||||
"isBundle": false,
|
||||
"bundleName": "",
|
||||
"priority": 1,
|
||||
"compressionType": {},
|
||||
"optimizeHotUpdate": {},
|
||||
"inlineSpriteFrames": {},
|
||||
"isRemoteBundle": {},
|
||||
"subMetas": {}
|
||||
}
|
||||
1322
2.4.11/assets/test/prefabs/ListTestItem-sorting.prefab
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"ver": "1.3.2",
|
||||
"uuid": "5319446a-3497-48fc-99a7-9806589fd3c6",
|
||||
"importer": "prefab",
|
||||
"optimizationPolicy": "AUTO",
|
||||
"asyncLoadAssets": false,
|
||||
"readonly": false,
|
||||
"subMetas": {}
|
||||
}
|
||||
1172
2.4.11/assets/test/prefabs/ListTestItem.prefab
Normal file
9
2.4.11/assets/test/prefabs/ListTestItem.prefab.meta
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"ver": "1.3.2",
|
||||
"uuid": "77b9c6bb-79b1-4086-86fa-ac30b56d67cc",
|
||||
"importer": "prefab",
|
||||
"optimizationPolicy": "AUTO",
|
||||
"asyncLoadAssets": false,
|
||||
"readonly": false,
|
||||
"subMetas": {}
|
||||
}
|
||||
13
2.4.11/assets/test/scenes.meta
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"ver": "1.1.3",
|
||||
"uuid": "e2dc59cc-2d8b-4b93-adab-48a29cdcf581",
|
||||
"importer": "folder",
|
||||
"isBundle": false,
|
||||
"bundleName": "",
|
||||
"priority": 1,
|
||||
"compressionType": {},
|
||||
"optimizeHotUpdate": {},
|
||||
"inlineSpriteFrames": {},
|
||||
"isRemoteBundle": {},
|
||||
"subMetas": {}
|
||||
}
|
||||
1124
2.4.11/assets/test/scenes/test-scene-sorting.fire
Normal file
8
2.4.11/assets/test/scenes/test-scene-sorting.fire.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"ver": "1.3.2",
|
||||
"uuid": "c6ba3258-b873-4d4f-b31a-60f4c79e523a",
|
||||
"importer": "scene",
|
||||
"asyncLoadAssets": false,
|
||||
"autoReleaseAssets": false,
|
||||
"subMetas": {}
|
||||
}
|
||||
1124
2.4.11/assets/test/scenes/test-scene.fire
Normal file
8
2.4.11/assets/test/scenes/test-scene.fire.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"ver": "1.3.2",
|
||||
"uuid": "6b1f9620-447d-4dcc-aeac-09aca68c29e7",
|
||||
"importer": "scene",
|
||||
"asyncLoadAssets": false,
|
||||
"autoReleaseAssets": false,
|
||||
"subMetas": {}
|
||||
}
|
||||
13
2.4.11/assets/test/scripts.meta
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"ver": "1.1.3",
|
||||
"uuid": "845ea615-d321-4ea5-ab0e-4c6292a58d18",
|
||||
"importer": "folder",
|
||||
"isBundle": false,
|
||||
"bundleName": "",
|
||||
"priority": 1,
|
||||
"compressionType": {},
|
||||
"optimizeHotUpdate": {},
|
||||
"inlineSpriteFrames": {},
|
||||
"isRemoteBundle": {},
|
||||
"subMetas": {}
|
||||
}
|
||||
43
2.4.11/assets/test/scripts/list-test-item.ts
Normal file
@@ -0,0 +1,43 @@
|
||||
// Learn TypeScript:
|
||||
// - https://docs.cocos.com/creator/2.4/manual/en/scripting/typescript.html
|
||||
// Learn Attribute:
|
||||
// - https://docs.cocos.com/creator/2.4/manual/en/scripting/reference/attributes.html
|
||||
// Learn life-cycle callbacks:
|
||||
// - https://docs.cocos.com/creator/2.4/manual/en/scripting/life-cycle-callbacks.html
|
||||
|
||||
const {ccclass, property} = cc._decorator;
|
||||
|
||||
@ccclass
|
||||
export default class ListTestItem extends cc.Component {
|
||||
|
||||
@property({type: cc.Label})
|
||||
rankText:cc.Label = null;
|
||||
|
||||
@property({type: cc.Label})
|
||||
goldText:cc.Label = null;
|
||||
|
||||
@property({type: cc.Sprite})
|
||||
flagImage:cc.Sprite = null;
|
||||
|
||||
@property({type: cc.Label})
|
||||
levelText:cc.Label = null;
|
||||
|
||||
@property({type: cc.ProgressBar})
|
||||
levelBar:cc.ProgressBar = null;
|
||||
|
||||
@property({type: cc.Label})
|
||||
descText:cc.Label = null;
|
||||
|
||||
@property({type: cc.Node})
|
||||
uiOpacity:cc.Node = null;
|
||||
|
||||
randomData(index:number, flagSpriteFrame:cc.SpriteFrame){
|
||||
this.rankText.string = String(index);
|
||||
this.goldText.string = String(Math.floor(1000 + Math.random()* 1000));
|
||||
this.flagImage.spriteFrame = flagSpriteFrame;
|
||||
this.levelText.string = `lv.${Math.floor(Math.random()* 100)}`;
|
||||
this.levelBar.progress = Math.random();
|
||||
this.descText.string = `什么也没留下 - ${index}`;
|
||||
this.uiOpacity.opacity = 100 + Math.floor(Math.random() * 155);
|
||||
}
|
||||
}
|
||||
10
2.4.11/assets/test/scripts/list-test-item.ts.meta
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"ver": "1.1.0",
|
||||
"uuid": "9f5387d6-696a-4491-82ea-1a443403ed3c",
|
||||
"importer": "typescript",
|
||||
"isPlugin": false,
|
||||
"loadPluginInWeb": true,
|
||||
"loadPluginInNative": true,
|
||||
"loadPluginInEditor": false,
|
||||
"subMetas": {}
|
||||
}
|
||||
28
2.4.11/assets/test/scripts/test-scene.ts
Normal file
@@ -0,0 +1,28 @@
|
||||
import ListTestItem from "./list-test-item";
|
||||
|
||||
const { ccclass, property } = cc._decorator;
|
||||
|
||||
@ccclass
|
||||
export class TestScene extends cc.Component {
|
||||
|
||||
@property({type:cc.Prefab})
|
||||
listTestItemPrefab:cc.Prefab = null;
|
||||
|
||||
@property({type:cc.Node})
|
||||
listContent:cc.Node = null;
|
||||
|
||||
@property({type:[cc.SpriteFrame]})
|
||||
flagSpriteFrames:cc.SpriteFrame[] = [];
|
||||
|
||||
@property
|
||||
listItemMax:number = 200;
|
||||
|
||||
start() {
|
||||
for(let i = 0; i < this.listItemMax; i++){
|
||||
let node = cc.instantiate(this.listTestItemPrefab);
|
||||
node.parent = this.listContent;
|
||||
let item = node.getComponent(ListTestItem);
|
||||
item?.randomData(i + 1, this.flagSpriteFrames[Math.floor(Math.random() * this.flagSpriteFrames.length)])
|
||||
}
|
||||
}
|
||||
}
|
||||
10
2.4.11/assets/test/scripts/test-scene.ts.meta
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"ver": "1.1.0",
|
||||
"uuid": "66495605-543c-44a7-b208-dfc48bdce8b8",
|
||||
"importer": "typescript",
|
||||
"isPlugin": false,
|
||||
"loadPluginInWeb": true,
|
||||
"loadPluginInNative": true,
|
||||
"loadPluginInEditor": false,
|
||||
"subMetas": {}
|
||||
}
|
||||
13
2.4.11/assets/test/textures.meta
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"ver": "1.1.3",
|
||||
"uuid": "0927e59d-b693-4ac2-9e53-0eeffbd0e543",
|
||||
"importer": "folder",
|
||||
"isBundle": false,
|
||||
"bundleName": "",
|
||||
"priority": 1,
|
||||
"compressionType": {},
|
||||
"optimizeHotUpdate": {},
|
||||
"inlineSpriteFrames": {},
|
||||
"isRemoteBundle": {},
|
||||
"subMetas": {}
|
||||
}
|
||||
3
2.4.11/assets/test/textures/AutoAtlas.pac
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"__type__": "cc.SpriteAtlas"
|
||||
}
|
||||
23
2.4.11/assets/test/textures/AutoAtlas.pac.meta
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"ver": "1.2.5",
|
||||
"uuid": "42c27816-9000-4fb5-a99e-5aea6002d77b",
|
||||
"importer": "auto-atlas",
|
||||
"maxWidth": 1024,
|
||||
"maxHeight": 1024,
|
||||
"padding": 2,
|
||||
"compressionLevel": 6,
|
||||
"allowRotation": true,
|
||||
"forceSquared": false,
|
||||
"powerOfTwo": false,
|
||||
"algorithm": "MaxRects",
|
||||
"format": "png",
|
||||
"quality": 80,
|
||||
"contourBleed": true,
|
||||
"paddingBleed": true,
|
||||
"filterUnused": true,
|
||||
"packable": false,
|
||||
"premultiplyAlpha": false,
|
||||
"filterMode": "bilinear",
|
||||
"platformSettings": {},
|
||||
"subMetas": {}
|
||||
}
|
||||
BIN
2.4.11/assets/test/textures/box-1.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
38
2.4.11/assets/test/textures/box-1.png.meta
Normal file
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"ver": "2.3.7",
|
||||
"uuid": "a095424e-cf6f-4be2-a7b1-34a3ccc2f2ec",
|
||||
"importer": "texture",
|
||||
"type": "sprite",
|
||||
"wrapMode": "clamp",
|
||||
"filterMode": "bilinear",
|
||||
"premultiplyAlpha": false,
|
||||
"genMipmaps": false,
|
||||
"packable": true,
|
||||
"width": 105,
|
||||
"height": 100,
|
||||
"platformSettings": {},
|
||||
"subMetas": {
|
||||
"box-1": {
|
||||
"ver": "1.0.6",
|
||||
"uuid": "1e6042b1-be42-4958-aed1-1b837ad8b6ab",
|
||||
"importer": "sprite-frame",
|
||||
"rawTextureUuid": "a095424e-cf6f-4be2-a7b1-34a3ccc2f2ec",
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 105,
|
||||
"height": 100,
|
||||
"rawWidth": 105,
|
||||
"rawHeight": 100,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"subMetas": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
2.4.11/assets/test/textures/box-2.png
Normal file
|
After Width: | Height: | Size: 873 B |
38
2.4.11/assets/test/textures/box-2.png.meta
Normal file
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"ver": "2.3.7",
|
||||
"uuid": "3a1e47f2-e0c6-48af-8c8c-e48f9f95a7d5",
|
||||
"importer": "texture",
|
||||
"type": "sprite",
|
||||
"wrapMode": "clamp",
|
||||
"filterMode": "bilinear",
|
||||
"premultiplyAlpha": false,
|
||||
"genMipmaps": false,
|
||||
"packable": true,
|
||||
"width": 171,
|
||||
"height": 27,
|
||||
"platformSettings": {},
|
||||
"subMetas": {
|
||||
"box-2": {
|
||||
"ver": "1.0.6",
|
||||
"uuid": "48a96f63-2eeb-4165-a0ca-654da41ec4ae",
|
||||
"importer": "sprite-frame",
|
||||
"rawTextureUuid": "3a1e47f2-e0c6-48af-8c8c-e48f9f95a7d5",
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 171,
|
||||
"height": 27,
|
||||
"rawWidth": 171,
|
||||
"rawHeight": 27,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"subMetas": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
2.4.11/assets/test/textures/box-3.png
Normal file
|
After Width: | Height: | Size: 451 B |
38
2.4.11/assets/test/textures/box-3.png.meta
Normal file
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"ver": "2.3.7",
|
||||
"uuid": "02a30094-7497-4650-81e0-0c49c1c28a2a",
|
||||
"importer": "texture",
|
||||
"type": "sprite",
|
||||
"wrapMode": "clamp",
|
||||
"filterMode": "bilinear",
|
||||
"premultiplyAlpha": false,
|
||||
"genMipmaps": false,
|
||||
"packable": true,
|
||||
"width": 171,
|
||||
"height": 27,
|
||||
"platformSettings": {},
|
||||
"subMetas": {
|
||||
"box-3": {
|
||||
"ver": "1.0.6",
|
||||
"uuid": "6b84a7e0-d31a-42ab-90de-bb04c9ea0d2f",
|
||||
"importer": "sprite-frame",
|
||||
"rawTextureUuid": "02a30094-7497-4650-81e0-0c49c1c28a2a",
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 171,
|
||||
"height": 27,
|
||||
"rawWidth": 171,
|
||||
"rawHeight": 27,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"subMetas": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
2.4.11/assets/test/textures/box-4.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
38
2.4.11/assets/test/textures/box-4.png.meta
Normal file
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"ver": "2.3.7",
|
||||
"uuid": "a218f909-f8aa-4325-9d22-af05af387299",
|
||||
"importer": "texture",
|
||||
"type": "sprite",
|
||||
"wrapMode": "clamp",
|
||||
"filterMode": "bilinear",
|
||||
"premultiplyAlpha": false,
|
||||
"genMipmaps": false,
|
||||
"packable": true,
|
||||
"width": 240,
|
||||
"height": 241,
|
||||
"platformSettings": {},
|
||||
"subMetas": {
|
||||
"box-4": {
|
||||
"ver": "1.0.6",
|
||||
"uuid": "f122dcc2-a3bf-4eb3-a7a1-e93654669f51",
|
||||
"importer": "sprite-frame",
|
||||
"rawTextureUuid": "a218f909-f8aa-4325-9d22-af05af387299",
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0.5,
|
||||
"offsetY": 0.5,
|
||||
"trimX": 5,
|
||||
"trimY": 5,
|
||||
"width": 231,
|
||||
"height": 230,
|
||||
"rawWidth": 240,
|
||||
"rawHeight": 241,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"subMetas": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
2.4.11/assets/test/textures/box-5.png
Normal file
|
After Width: | Height: | Size: 952 B |
38
2.4.11/assets/test/textures/box-5.png.meta
Normal file
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"ver": "2.3.7",
|
||||
"uuid": "b77831b2-df3a-4606-9a8e-0423d0a664a5",
|
||||
"importer": "texture",
|
||||
"type": "sprite",
|
||||
"wrapMode": "clamp",
|
||||
"filterMode": "bilinear",
|
||||
"premultiplyAlpha": false,
|
||||
"genMipmaps": false,
|
||||
"packable": true,
|
||||
"width": 240,
|
||||
"height": 241,
|
||||
"platformSettings": {},
|
||||
"subMetas": {
|
||||
"box-5": {
|
||||
"ver": "1.0.6",
|
||||
"uuid": "9b9dc23d-1001-44d7-9c36-a7d960f7a49d",
|
||||
"importer": "sprite-frame",
|
||||
"rawTextureUuid": "b77831b2-df3a-4606-9a8e-0423d0a664a5",
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0.5,
|
||||
"offsetY": 0.5,
|
||||
"trimX": 5,
|
||||
"trimY": 5,
|
||||
"width": 231,
|
||||
"height": 230,
|
||||
"rawWidth": 240,
|
||||
"rawHeight": 241,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"subMetas": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
2.4.11/assets/test/textures/box-6.png
Normal file
|
After Width: | Height: | Size: 200 B |
38
2.4.11/assets/test/textures/box-6.png.meta
Normal file
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"ver": "2.3.7",
|
||||
"uuid": "2f2e41cc-a8a8-4438-9ff2-014f9282ed06",
|
||||
"importer": "texture",
|
||||
"type": "sprite",
|
||||
"wrapMode": "clamp",
|
||||
"filterMode": "bilinear",
|
||||
"premultiplyAlpha": false,
|
||||
"genMipmaps": false,
|
||||
"packable": true,
|
||||
"width": 70,
|
||||
"height": 32,
|
||||
"platformSettings": {},
|
||||
"subMetas": {
|
||||
"box-6": {
|
||||
"ver": "1.0.6",
|
||||
"uuid": "f195da9c-9b72-4765-9535-724d8383e63e",
|
||||
"importer": "sprite-frame",
|
||||
"rawTextureUuid": "2f2e41cc-a8a8-4438-9ff2-014f9282ed06",
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 70,
|
||||
"height": 32,
|
||||
"rawWidth": 70,
|
||||
"rawHeight": 32,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"subMetas": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
2.4.11/assets/test/textures/box-7.png
Normal file
|
After Width: | Height: | Size: 105 B |
38
2.4.11/assets/test/textures/box-7.png.meta
Normal file
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"ver": "2.3.7",
|
||||
"uuid": "1fe24969-ad78-4ca9-b410-4ba370b3a890",
|
||||
"importer": "texture",
|
||||
"type": "sprite",
|
||||
"wrapMode": "clamp",
|
||||
"filterMode": "bilinear",
|
||||
"premultiplyAlpha": false,
|
||||
"genMipmaps": false,
|
||||
"packable": true,
|
||||
"width": 63,
|
||||
"height": 43,
|
||||
"platformSettings": {},
|
||||
"subMetas": {
|
||||
"box-7": {
|
||||
"ver": "1.0.6",
|
||||
"uuid": "f625fa33-7315-4748-89a5-cf48448980c9",
|
||||
"importer": "sprite-frame",
|
||||
"rawTextureUuid": "1fe24969-ad78-4ca9-b410-4ba370b3a890",
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 63,
|
||||
"height": 43,
|
||||
"rawWidth": 63,
|
||||
"rawHeight": 43,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"subMetas": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
2.4.11/assets/test/textures/box-8.png
Normal file
|
After Width: | Height: | Size: 119 B |
38
2.4.11/assets/test/textures/box-8.png.meta
Normal file
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"ver": "2.3.7",
|
||||
"uuid": "5849d769-7609-4f98-9510-fb88660f795a",
|
||||
"importer": "texture",
|
||||
"type": "sprite",
|
||||
"wrapMode": "clamp",
|
||||
"filterMode": "bilinear",
|
||||
"premultiplyAlpha": false,
|
||||
"genMipmaps": false,
|
||||
"packable": true,
|
||||
"width": 64,
|
||||
"height": 41,
|
||||
"platformSettings": {},
|
||||
"subMetas": {
|
||||
"box-8": {
|
||||
"ver": "1.0.6",
|
||||
"uuid": "2e46e265-3945-4ae5-99d4-8f4eb56f391a",
|
||||
"importer": "sprite-frame",
|
||||
"rawTextureUuid": "5849d769-7609-4f98-9510-fb88660f795a",
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 64,
|
||||
"height": 41,
|
||||
"rawWidth": 64,
|
||||
"rawHeight": 41,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"subMetas": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
2.4.11/assets/test/textures/box-9.png
Normal file
|
After Width: | Height: | Size: 153 B |
38
2.4.11/assets/test/textures/box-9.png.meta
Normal file
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"ver": "2.3.7",
|
||||
"uuid": "240b0fb6-a282-4b50-881f-559e9d9363e4",
|
||||
"importer": "texture",
|
||||
"type": "sprite",
|
||||
"wrapMode": "clamp",
|
||||
"filterMode": "bilinear",
|
||||
"premultiplyAlpha": false,
|
||||
"genMipmaps": false,
|
||||
"packable": true,
|
||||
"width": 63,
|
||||
"height": 29,
|
||||
"platformSettings": {},
|
||||
"subMetas": {
|
||||
"box-9": {
|
||||
"ver": "1.0.6",
|
||||
"uuid": "157e8a85-da38-415f-93f2-ccda0b947415",
|
||||
"importer": "sprite-frame",
|
||||
"rawTextureUuid": "240b0fb6-a282-4b50-881f-559e9d9363e4",
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 63,
|
||||
"height": 29,
|
||||
"rawWidth": 63,
|
||||
"rawHeight": 29,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"subMetas": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
2.4.11/assets/test/textures/btn-black.png
Normal file
|
After Width: | Height: | Size: 569 B |
38
2.4.11/assets/test/textures/btn-black.png.meta
Normal file
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"ver": "2.3.7",
|
||||
"uuid": "78813583-64ea-4df9-90dc-410129a1d07d",
|
||||
"importer": "texture",
|
||||
"type": "sprite",
|
||||
"wrapMode": "clamp",
|
||||
"filterMode": "bilinear",
|
||||
"premultiplyAlpha": false,
|
||||
"genMipmaps": false,
|
||||
"packable": true,
|
||||
"width": 210,
|
||||
"height": 80,
|
||||
"platformSettings": {},
|
||||
"subMetas": {
|
||||
"btn-black": {
|
||||
"ver": "1.0.6",
|
||||
"uuid": "ea1039ee-663b-4557-be34-c1c9adf6a822",
|
||||
"importer": "sprite-frame",
|
||||
"rawTextureUuid": "78813583-64ea-4df9-90dc-410129a1d07d",
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 210,
|
||||
"height": 80,
|
||||
"rawWidth": 210,
|
||||
"rawHeight": 80,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"subMetas": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
2.4.11/assets/test/textures/btn-white-2.png
Normal file
|
After Width: | Height: | Size: 838 B |
38
2.4.11/assets/test/textures/btn-white-2.png.meta
Normal file
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"ver": "2.3.7",
|
||||
"uuid": "acd864b8-87e0-46c3-aaaa-d8585dd24570",
|
||||
"importer": "texture",
|
||||
"type": "sprite",
|
||||
"wrapMode": "clamp",
|
||||
"filterMode": "bilinear",
|
||||
"premultiplyAlpha": false,
|
||||
"genMipmaps": false,
|
||||
"packable": true,
|
||||
"width": 68,
|
||||
"height": 36,
|
||||
"platformSettings": {},
|
||||
"subMetas": {
|
||||
"btn-white-2": {
|
||||
"ver": "1.0.6",
|
||||
"uuid": "f7af8780-666e-4912-b0f4-963319c0afb4",
|
||||
"importer": "sprite-frame",
|
||||
"rawTextureUuid": "acd864b8-87e0-46c3-aaaa-d8585dd24570",
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 68,
|
||||
"height": 36,
|
||||
"rawWidth": 68,
|
||||
"rawHeight": 36,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"subMetas": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
2.4.11/assets/test/textures/btn-white.png
Normal file
|
After Width: | Height: | Size: 809 B |
38
2.4.11/assets/test/textures/btn-white.png.meta
Normal file
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"ver": "2.3.7",
|
||||
"uuid": "954ea7ef-12bb-43aa-8077-ed7a567b460c",
|
||||
"importer": "texture",
|
||||
"type": "sprite",
|
||||
"wrapMode": "clamp",
|
||||
"filterMode": "bilinear",
|
||||
"premultiplyAlpha": false,
|
||||
"genMipmaps": false,
|
||||
"packable": true,
|
||||
"width": 214,
|
||||
"height": 84,
|
||||
"platformSettings": {},
|
||||
"subMetas": {
|
||||
"btn-white": {
|
||||
"ver": "1.0.6",
|
||||
"uuid": "b8da036a-31c8-4ea9-8332-e33929b16e38",
|
||||
"importer": "sprite-frame",
|
||||
"rawTextureUuid": "954ea7ef-12bb-43aa-8077-ed7a567b460c",
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 1,
|
||||
"trimY": 1,
|
||||
"width": 212,
|
||||
"height": 82,
|
||||
"rawWidth": 214,
|
||||
"rawHeight": 84,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"subMetas": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
2.4.11/assets/test/textures/circle-countdown.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
38
2.4.11/assets/test/textures/circle-countdown.png.meta
Normal file
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"ver": "2.3.7",
|
||||
"uuid": "ca4624dc-b082-4c76-871d-c96cb21fc8fd",
|
||||
"importer": "texture",
|
||||
"type": "sprite",
|
||||
"wrapMode": "clamp",
|
||||
"filterMode": "bilinear",
|
||||
"premultiplyAlpha": false,
|
||||
"genMipmaps": false,
|
||||
"packable": true,
|
||||
"width": 249,
|
||||
"height": 249,
|
||||
"platformSettings": {},
|
||||
"subMetas": {
|
||||
"circle-countdown": {
|
||||
"ver": "1.0.6",
|
||||
"uuid": "097e1875-d5b0-43cc-8aad-64ae21d92aac",
|
||||
"importer": "sprite-frame",
|
||||
"rawTextureUuid": "ca4624dc-b082-4c76-871d-c96cb21fc8fd",
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 2,
|
||||
"trimY": 2,
|
||||
"width": 245,
|
||||
"height": 245,
|
||||
"rawWidth": 249,
|
||||
"rawHeight": 249,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"subMetas": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
2.4.11/assets/test/textures/flag-disconnection.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
38
2.4.11/assets/test/textures/flag-disconnection.png.meta
Normal file
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"ver": "2.3.7",
|
||||
"uuid": "0e81c7eb-0241-43a9-b503-0f91db7e0f37",
|
||||
"importer": "texture",
|
||||
"type": "sprite",
|
||||
"wrapMode": "clamp",
|
||||
"filterMode": "bilinear",
|
||||
"premultiplyAlpha": false,
|
||||
"genMipmaps": false,
|
||||
"packable": true,
|
||||
"width": 84,
|
||||
"height": 84,
|
||||
"platformSettings": {},
|
||||
"subMetas": {
|
||||
"flag-disconnection": {
|
||||
"ver": "1.0.6",
|
||||
"uuid": "9f408d81-d67e-4968-b885-0edece9785f3",
|
||||
"importer": "sprite-frame",
|
||||
"rawTextureUuid": "0e81c7eb-0241-43a9-b503-0f91db7e0f37",
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0.5,
|
||||
"offsetY": 0,
|
||||
"trimX": 2,
|
||||
"trimY": 2,
|
||||
"width": 81,
|
||||
"height": 80,
|
||||
"rawWidth": 84,
|
||||
"rawHeight": 84,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"subMetas": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
2.4.11/assets/test/textures/flag-eliminated.png
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
38
2.4.11/assets/test/textures/flag-eliminated.png.meta
Normal file
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"ver": "2.3.7",
|
||||
"uuid": "d3490a01-c27e-4704-950f-dcd87a95d179",
|
||||
"importer": "texture",
|
||||
"type": "sprite",
|
||||
"wrapMode": "clamp",
|
||||
"filterMode": "bilinear",
|
||||
"premultiplyAlpha": false,
|
||||
"genMipmaps": false,
|
||||
"packable": true,
|
||||
"width": 84,
|
||||
"height": 84,
|
||||
"platformSettings": {},
|
||||
"subMetas": {
|
||||
"flag-eliminated": {
|
||||
"ver": "1.0.6",
|
||||
"uuid": "4528c934-0086-44da-8923-a956a624cb75",
|
||||
"importer": "sprite-frame",
|
||||
"rawTextureUuid": "d3490a01-c27e-4704-950f-dcd87a95d179",
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0.5,
|
||||
"offsetY": 0,
|
||||
"trimX": 2,
|
||||
"trimY": 2,
|
||||
"width": 81,
|
||||
"height": 80,
|
||||
"rawWidth": 84,
|
||||
"rawHeight": 84,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"subMetas": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
2.4.11/assets/test/textures/flag-escape.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
38
2.4.11/assets/test/textures/flag-escape.png.meta
Normal file
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"ver": "2.3.7",
|
||||
"uuid": "eaa9875d-572c-46ea-b275-f0bd36cc6697",
|
||||
"importer": "texture",
|
||||
"type": "sprite",
|
||||
"wrapMode": "clamp",
|
||||
"filterMode": "bilinear",
|
||||
"premultiplyAlpha": false,
|
||||
"genMipmaps": false,
|
||||
"packable": true,
|
||||
"width": 84,
|
||||
"height": 84,
|
||||
"platformSettings": {},
|
||||
"subMetas": {
|
||||
"flag-escape": {
|
||||
"ver": "1.0.6",
|
||||
"uuid": "5dde49b3-365a-4e01-b7a5-a079116b7d7c",
|
||||
"importer": "sprite-frame",
|
||||
"rawTextureUuid": "eaa9875d-572c-46ea-b275-f0bd36cc6697",
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0.5,
|
||||
"offsetY": 0,
|
||||
"trimX": 2,
|
||||
"trimY": 2,
|
||||
"width": 81,
|
||||
"height": 80,
|
||||
"rawWidth": 84,
|
||||
"rawHeight": 84,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"subMetas": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
2.4.11/assets/test/textures/gold.png
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
38
2.4.11/assets/test/textures/gold.png.meta
Normal file
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"ver": "2.3.7",
|
||||
"uuid": "bc529642-594d-4486-aafb-bfd2d3edf02c",
|
||||
"importer": "texture",
|
||||
"type": "sprite",
|
||||
"wrapMode": "clamp",
|
||||
"filterMode": "bilinear",
|
||||
"premultiplyAlpha": false,
|
||||
"genMipmaps": false,
|
||||
"packable": true,
|
||||
"width": 60,
|
||||
"height": 61,
|
||||
"platformSettings": {},
|
||||
"subMetas": {
|
||||
"gold": {
|
||||
"ver": "1.0.6",
|
||||
"uuid": "f74c16b3-291b-41b4-8542-9b85fbca505b",
|
||||
"importer": "sprite-frame",
|
||||
"rawTextureUuid": "bc529642-594d-4486-aafb-bfd2d3edf02c",
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 60,
|
||||
"height": 61,
|
||||
"rawWidth": 60,
|
||||
"rawHeight": 61,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"subMetas": {}
|
||||
}
|
||||
}
|
||||
}
|
||||