@safe-engine/cocos 2.3.4 → 2.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/box2d-wasm/PhysicsComponent.d.ts.map +1 -1
- package/dist/box2d-wasm/PhysicsComponent.js +3 -0
- package/dist/box2d-wasm/PhysicsSprite.d.ts.map +1 -1
- package/dist/box2d-wasm/PhysicsSprite.js +2 -1
- package/dist/box2d-wasm/PhysicsSystem.d.ts +1 -0
- package/dist/box2d-wasm/PhysicsSystem.d.ts.map +1 -1
- package/dist/box2d-wasm/PhysicsSystem.js +20 -16
- package/dist/box2d-wasm/debugDraw.d.ts +0 -15
- package/dist/box2d-wasm/debugDraw.d.ts.map +1 -1
- package/dist/box2d-wasm/debugDraw.js +8 -20
- package/dist/box2d-wasm/index.d.ts +19 -1
- package/dist/box2d-wasm/index.d.ts.map +1 -1
- package/dist/box2d-wasm/index.js +2 -2
- package/dist/core/index.d.ts +6 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +5 -0
- package/dist/dragonbones/PixiDragonBonesSprite.d.ts +19 -0
- package/dist/dragonbones/PixiDragonBonesSprite.d.ts.map +1 -0
- package/dist/dragonbones/PixiDragonBonesSprite.js +75 -0
- package/dist/dragonbones/db-cocos/CocosFactory.d.ts +2 -3
- package/dist/dragonbones/db-cocos/CocosFactory.d.ts.map +1 -1
- package/dist/dragonbones/db-cocos/CocosFactory.js +4 -8
- package/dist/dragonbones/db-cocos/CocosSlot.d.ts +6 -3
- package/dist/dragonbones/db-cocos/CocosSlot.d.ts.map +1 -1
- package/dist/dragonbones/db-cocos/CocosSlot.js +36 -40
- package/dist/dragonbones/db-cocos/CocosTextureAtlasData.d.ts +1 -1
- package/dist/dragonbones/db-cocos/CocosTextureAtlasData.d.ts.map +1 -1
- package/dist/dragonbones/db-cocos/CocosTextureAtlasData.js +6 -6
- package/dist/dragonbones/db-cocos/SimpleMeshNode.d.ts +36 -0
- package/dist/dragonbones/db-cocos/SimpleMeshNode.d.ts.map +1 -0
- package/dist/dragonbones/db-cocos/SimpleMeshNode.js +354 -0
- package/dist/gworld/EnhancedComponent.d.ts +22 -0
- package/dist/gworld/EnhancedComponent.d.ts.map +1 -0
- package/dist/gworld/EnhancedComponent.js +44 -0
- package/dist/gworld/NodeComp.d.ts +153 -0
- package/dist/gworld/NodeComp.d.ts.map +1 -0
- package/dist/gworld/NodeComp.js +337 -0
- package/dist/gworld/NodePool.d.ts +9 -0
- package/dist/gworld/NodePool.d.ts.map +1 -0
- package/dist/gworld/NodePool.js +23 -0
- package/dist/gworld/Scene.d.ts +5 -0
- package/dist/gworld/Scene.d.ts.map +1 -0
- package/dist/gworld/Scene.js +14 -0
- package/dist/gworld/decorator.d.ts +8 -0
- package/dist/gworld/decorator.d.ts.map +1 -0
- package/dist/gworld/decorator.js +12 -0
- package/dist/gworld/index.d.ts +8 -0
- package/dist/gworld/index.d.ts.map +1 -0
- package/dist/gworld/index.js +14 -0
- package/dist/render/TiledSprite.d.ts +13 -0
- package/dist/render/TiledSprite.d.ts.map +1 -0
- package/dist/render/TiledSprite.js +69 -0
- package/dist/safex.d.ts +10 -0
- package/dist/safex.d.ts.map +1 -0
- package/dist/safex.js +1 -0
- package/dist/spine/CCSkeleton.d.ts +189 -0
- package/dist/spine/CCSkeleton.d.ts.map +1 -0
- package/dist/spine/CCSkeleton.js +320 -0
- package/dist/spine/CCSkeletonAnimation.d.ts +146 -0
- package/dist/spine/CCSkeletonAnimation.d.ts.map +1 -0
- package/dist/spine/CCSkeletonAnimation.js +311 -0
- package/dist/spine/CCSkeletonCanvasRenderCmd.d.ts +2 -0
- package/dist/spine/CCSkeletonCanvasRenderCmd.d.ts.map +1 -0
- package/dist/spine/CCSkeletonCanvasRenderCmd.js +228 -0
- package/dist/spine/CCSkeletonTexture.d.ts +25 -0
- package/dist/spine/CCSkeletonTexture.d.ts.map +1 -0
- package/dist/spine/CCSkeletonTexture.js +60 -0
- package/dist/spine/CCSkeletonWebGLRenderCmd.d.ts +28 -0
- package/dist/spine/CCSkeletonWebGLRenderCmd.d.ts.map +1 -0
- package/dist/spine/CCSkeletonWebGLRenderCmd.js +277 -0
- package/dist/spine/PixiSpineSprite.d.ts +19 -0
- package/dist/spine/PixiSpineSprite.d.ts.map +1 -0
- package/dist/spine/PixiSpineSprite.js +72 -0
- package/dist/spine/spine-cocos/CCSkeletonAnimation.d.ts +2 -1
- package/dist/spine/spine-cocos/CCSkeletonAnimation.d.ts.map +1 -1
- package/dist/spine/spine-cocos/CCSkeletonAnimation.js +1 -1
- package/dist/spine/spine-cocos/CCSkeletonTexture.d.ts +12 -1
- package/dist/spine/spine-cocos/CCSkeletonTexture.d.ts.map +1 -1
- package/dist/spine/spine-cocos/CCSkeletonTexture.js +18 -19
- package/package.json +3 -3
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
1
|
/**
|
|
3
2
|
* The MIT License (MIT)
|
|
4
3
|
*
|
|
@@ -28,45 +27,43 @@ export class CocosSlot extends Slot {
|
|
|
28
27
|
static toString() {
|
|
29
28
|
return '[class dragonBones.CocosSlot]';
|
|
30
29
|
}
|
|
30
|
+
_ccMeshDirty = false;
|
|
31
31
|
_textureScale;
|
|
32
32
|
_renderDisplay;
|
|
33
|
+
_geometryData;
|
|
34
|
+
_geometryBones;
|
|
33
35
|
_onClear() {
|
|
34
36
|
super._onClear();
|
|
35
37
|
this._textureScale = 1.0;
|
|
36
38
|
this._renderDisplay = null;
|
|
37
39
|
// this._updateTransform = cc[0] === '3' ? this._updateTransformV3 : this._updateTransformV4;
|
|
38
40
|
}
|
|
39
|
-
_initDisplay(
|
|
40
|
-
// tslint:disable-next-line:no-unused-expression
|
|
41
|
-
value;
|
|
42
|
-
// tslint:disable-next-line:no-unused-expression
|
|
43
|
-
isRetain;
|
|
44
|
-
}
|
|
41
|
+
_initDisplay() { }
|
|
45
42
|
_disposeDisplay(value, isRelease) {
|
|
46
|
-
// tslint:disable-next-line:no-unused-expression
|
|
47
|
-
value;
|
|
48
43
|
if (!isRelease) {
|
|
49
|
-
;
|
|
50
44
|
value.release();
|
|
51
45
|
}
|
|
52
46
|
}
|
|
53
47
|
_onUpdateDisplay() {
|
|
54
|
-
this._renderDisplay =
|
|
48
|
+
this._renderDisplay = this._display ? this._display : this._rawDisplay;
|
|
55
49
|
}
|
|
56
50
|
_addDisplay() {
|
|
57
51
|
const container = this._armature.display;
|
|
58
|
-
container.addChild(this._renderDisplay);
|
|
52
|
+
container.addChild(this._renderDisplay, this._zOrder);
|
|
59
53
|
}
|
|
60
54
|
_replaceDisplay(value) {
|
|
61
55
|
const container = this._armature.display;
|
|
62
56
|
const prevDisplay = value;
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
57
|
+
if (this._renderDisplay.parent !== container) {
|
|
58
|
+
container.addChild(this._renderDisplay, prevDisplay.getLocalZOrder());
|
|
59
|
+
}
|
|
60
|
+
// container.removeChild(prevDisplay, false);
|
|
61
|
+
// this._renderDisplay.active = true
|
|
62
|
+
// prevDisplay.active = false
|
|
66
63
|
this._textureScale = 1.0;
|
|
67
64
|
}
|
|
68
65
|
_removeDisplay() {
|
|
69
|
-
this._renderDisplay.parent.removeChild(this._renderDisplay);
|
|
66
|
+
this._renderDisplay.parent.removeChild(this._renderDisplay, false);
|
|
70
67
|
}
|
|
71
68
|
_updateZOrder() {
|
|
72
69
|
if (this._renderDisplay.getLocalZOrder() === this._zOrder) {
|
|
@@ -81,20 +78,18 @@ export class CocosSlot extends Slot {
|
|
|
81
78
|
this._renderDisplay.visible = this._parent.visible && this._visible;
|
|
82
79
|
}
|
|
83
80
|
_updateBlendMode() {
|
|
84
|
-
if (this.
|
|
81
|
+
if (this._childArmature) {
|
|
82
|
+
const childSlots = this._childArmature.getSlots();
|
|
83
|
+
for (let i = 0, l = childSlots.length; i < l; i++) {
|
|
84
|
+
const slot = childSlots[i];
|
|
85
|
+
slot._blendMode = this._blendMode;
|
|
86
|
+
slot._updateBlendMode();
|
|
87
|
+
}
|
|
85
88
|
}
|
|
86
|
-
// TODO child armature.
|
|
87
89
|
}
|
|
88
90
|
_updateColor() {
|
|
89
|
-
const
|
|
90
|
-
this._renderDisplay.
|
|
91
|
-
if (this._renderDisplay instanceof cc.Sprite || this._renderDisplay instanceof Cocos.SimpleMesh) {
|
|
92
|
-
const color = (Math.round(this._colorTransform.redMultiplier * 0xff) << 16) +
|
|
93
|
-
(Math.round(this._colorTransform.greenMultiplier * 0xff) << 8) +
|
|
94
|
-
Math.round(this._colorTransform.blueMultiplier * 0xff);
|
|
95
|
-
this._renderDisplay.tint = color;
|
|
96
|
-
}
|
|
97
|
-
// TODO child armature.
|
|
91
|
+
const color = cc.color(Math.round(this._colorTransform.redMultiplier * 255), Math.round(this._colorTransform.greenMultiplier * 255), Math.round(this._colorTransform.blueMultiplier * 255), Math.round(this._colorTransform.alphaMultiplier * 255));
|
|
92
|
+
this._renderDisplay.color = color;
|
|
98
93
|
}
|
|
99
94
|
_updateFrame() {
|
|
100
95
|
let currentTextureData = this._textureData;
|
|
@@ -113,16 +108,16 @@ export class CocosSlot extends Slot {
|
|
|
113
108
|
}
|
|
114
109
|
currentTextureData = currentTextureAtlasData.getTexture(currentTextureData.name);
|
|
115
110
|
}
|
|
116
|
-
const renderTexture = currentTextureData.
|
|
111
|
+
const renderTexture = currentTextureData.spriteFrame;
|
|
117
112
|
if (renderTexture !== null) {
|
|
118
113
|
if (this._geometryData) {
|
|
119
114
|
// Mesh.
|
|
120
115
|
const data = this._geometryData.data;
|
|
121
116
|
const intArray = data.intArray;
|
|
122
117
|
const floatArray = data.floatArray;
|
|
123
|
-
const vertexCount = intArray[this._geometryData.offset + BinaryOffset.
|
|
124
|
-
const triangleCount = intArray[this._geometryData.offset + BinaryOffset.
|
|
125
|
-
let vertexOffset = intArray[this._geometryData.offset + BinaryOffset.
|
|
118
|
+
const vertexCount = intArray[this._geometryData.offset + BinaryOffset.MeshVertexCount];
|
|
119
|
+
const triangleCount = intArray[this._geometryData.offset + BinaryOffset.MeshTriangleCount];
|
|
120
|
+
let vertexOffset = intArray[this._geometryData.offset + BinaryOffset.MeshFloatOffset];
|
|
126
121
|
if (vertexOffset < 0) {
|
|
127
122
|
vertexOffset += 65536; // Fixed out of bouds bug.
|
|
128
123
|
}
|
|
@@ -136,7 +131,7 @@ export class CocosSlot extends Slot {
|
|
|
136
131
|
vertices[i] = floatArray[vertexOffset + i] * scale;
|
|
137
132
|
}
|
|
138
133
|
for (let i = 0; i < triangleCount * 3; ++i) {
|
|
139
|
-
indices[i] = intArray[this._geometryData.offset + BinaryOffset.
|
|
134
|
+
indices[i] = intArray[this._geometryData.offset + BinaryOffset.MeshVertexIndices + i];
|
|
140
135
|
}
|
|
141
136
|
for (let i = 0, l = vertexCount * 2; i < l; i += 2) {
|
|
142
137
|
const u = floatArray[uvOffset + i];
|
|
@@ -151,10 +146,10 @@ export class CocosSlot extends Slot {
|
|
|
151
146
|
}
|
|
152
147
|
}
|
|
153
148
|
this._textureScale = 1.0;
|
|
154
|
-
meshDisplay.
|
|
155
|
-
meshDisplay.vertices
|
|
156
|
-
meshDisplay.uvBuffer.update(uvs)
|
|
157
|
-
meshDisplay.geometry.addIndex(indices)
|
|
149
|
+
meshDisplay.setTexture(renderTexture);
|
|
150
|
+
meshDisplay.setVertices(vertices);
|
|
151
|
+
// meshDisplay.uvBuffer.update(uvs)
|
|
152
|
+
// meshDisplay.geometry.addIndex(indices)
|
|
158
153
|
const isSkinned = this._geometryData.weight !== null;
|
|
159
154
|
const isSurface = this._parent._boneData.type !== BoneType.Bone;
|
|
160
155
|
if (isSkinned || isSurface) {
|
|
@@ -165,6 +160,7 @@ export class CocosSlot extends Slot {
|
|
|
165
160
|
// Normal texture.
|
|
166
161
|
this._textureScale = currentTextureData.parent.scale * this._armature._armatureData.scale;
|
|
167
162
|
const normalDisplay = this._renderDisplay;
|
|
163
|
+
// console.log(normalDisplay, renderTexture)
|
|
168
164
|
normalDisplay.setSpriteFrame(renderTexture);
|
|
169
165
|
}
|
|
170
166
|
this._visibleDirty = true;
|
|
@@ -173,7 +169,7 @@ export class CocosSlot extends Slot {
|
|
|
173
169
|
}
|
|
174
170
|
if (this._geometryData) {
|
|
175
171
|
const meshDisplay = this._renderDisplay;
|
|
176
|
-
meshDisplay.
|
|
172
|
+
meshDisplay.setTexture(null);
|
|
177
173
|
meshDisplay.x = 0.0;
|
|
178
174
|
meshDisplay.y = 0.0;
|
|
179
175
|
meshDisplay.visible = false;
|
|
@@ -194,7 +190,7 @@ export class CocosSlot extends Slot {
|
|
|
194
190
|
const bones = this._geometryBones;
|
|
195
191
|
const geometryData = this._geometryData;
|
|
196
192
|
const weightData = deformVertices.verticesData.weight;
|
|
197
|
-
const hasDeform = deformVertices.length > 0 && deformVertices.verticesData.inheritDeform;
|
|
193
|
+
const hasDeform = deformVertices.vertices.length > 0 && deformVertices.verticesData.inheritDeform;
|
|
198
194
|
// const meshDisplay = (this._renderDisplay.getComponent(cc.Sprite) as any)._sgNode; // as cc.Scale9Sprite;
|
|
199
195
|
const polygonInfo = this._meshDisplay._polygonInfo;
|
|
200
196
|
if (!polygonInfo) {
|
|
@@ -295,8 +291,8 @@ export class CocosSlot extends Slot {
|
|
|
295
291
|
boundsRect.width -= boundsRect.x;
|
|
296
292
|
boundsRect.height -= boundsRect.y;
|
|
297
293
|
polygonInfo.rect = boundsRect;
|
|
298
|
-
meshDisplay.setContentSize(cc.size(boundsRect.width, boundsRect.height));
|
|
299
|
-
meshDisplay.setMeshPolygonInfo(polygonInfo);
|
|
294
|
+
this.meshDisplay.setContentSize(cc.size(boundsRect.width, boundsRect.height));
|
|
295
|
+
this.meshDisplay.setMeshPolygonInfo(polygonInfo);
|
|
300
296
|
if (weightData !== null) {
|
|
301
297
|
this._identityTransform();
|
|
302
298
|
}
|
|
@@ -47,7 +47,7 @@ export declare class CocosTextureAtlasData extends TextureAtlasData {
|
|
|
47
47
|
*/
|
|
48
48
|
export declare class CocosTextureData extends TextureData {
|
|
49
49
|
static toString(): string;
|
|
50
|
-
|
|
50
|
+
spriteFrame: cc.SpriteFrame | null;
|
|
51
51
|
protected _onClear(): void;
|
|
52
52
|
}
|
|
53
53
|
//# sourceMappingURL=CocosTextureAtlasData.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CocosTextureAtlasData.d.ts","sourceRoot":"","sources":["../../../src/dragonbones/db-cocos/CocosTextureAtlasData.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAc,gBAAgB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAEjF,qBAAa,qBAAsB,SAAQ,gBAAgB;WAC3C,QAAQ,IAAI,MAAM;IAIhC,OAAO,CAAC,cAAc,CAA4B;IAElD,SAAS,CAAC,QAAQ,IAAI,IAAI;IAS1B;;OAEG;IACI,aAAa,IAAI,WAAW;IAGnC;;;;OAIG;IACH;;;;OAIG;IACH,IAAW,aAAa,IAAI,EAAE,CAAC,SAAS,GAAG,IAAI,CAE9C;IACD,IAAW,aAAa,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,GAAG,IAAI,EAoDlD;CACF;AACD;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,WAAW;WACjC,QAAQ,IAAI,MAAM;IAIzB,
|
|
1
|
+
{"version":3,"file":"CocosTextureAtlasData.d.ts","sourceRoot":"","sources":["../../../src/dragonbones/db-cocos/CocosTextureAtlasData.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAc,gBAAgB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAEjF,qBAAa,qBAAsB,SAAQ,gBAAgB;WAC3C,QAAQ,IAAI,MAAM;IAIhC,OAAO,CAAC,cAAc,CAA4B;IAElD,SAAS,CAAC,QAAQ,IAAI,IAAI;IAS1B;;OAEG;IACI,aAAa,IAAI,WAAW;IAGnC;;;;OAIG;IACH;;;;OAIG;IACH,IAAW,aAAa,IAAI,EAAE,CAAC,SAAS,GAAG,IAAI,CAE9C;IACD,IAAW,aAAa,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,GAAG,IAAI,EAoDlD;CACF;AACD;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,WAAW;WACjC,QAAQ,IAAI,MAAM;IAIzB,WAAW,EAAE,EAAE,CAAC,WAAW,GAAG,IAAI,CAAO;IAEhD,SAAS,CAAC,QAAQ,IAAI,IAAI;CAS3B"}
|
|
@@ -89,7 +89,7 @@ export class CocosTextureAtlasData extends TextureAtlasData {
|
|
|
89
89
|
// sprite
|
|
90
90
|
const spriteFrame = new cc.SpriteFrame(this._renderTexture, rect, textureData.rotated, offset, originSize);
|
|
91
91
|
// console.log('sf', sf)
|
|
92
|
-
textureData.
|
|
92
|
+
textureData.spriteFrame = spriteFrame;
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
95
|
else {
|
|
@@ -98,7 +98,7 @@ export class CocosTextureAtlasData extends TextureAtlasData {
|
|
|
98
98
|
// if (textureData.renderTexture !== null) {
|
|
99
99
|
// textureData.renderTexture.destroy();
|
|
100
100
|
// }
|
|
101
|
-
textureData.
|
|
101
|
+
textureData.spriteFrame = null;
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
104
|
}
|
|
@@ -110,12 +110,12 @@ export class CocosTextureData extends TextureData {
|
|
|
110
110
|
static toString() {
|
|
111
111
|
return '[class dragonBones.CocosTextureData]';
|
|
112
112
|
}
|
|
113
|
-
|
|
113
|
+
spriteFrame = null; // Initial value.
|
|
114
114
|
_onClear() {
|
|
115
115
|
super._onClear();
|
|
116
|
-
// if (this.
|
|
117
|
-
// this.
|
|
116
|
+
// if (this.spriteFrame !== null) {
|
|
117
|
+
// this.spriteFrame.destroy();
|
|
118
118
|
// }
|
|
119
|
-
this.
|
|
119
|
+
this.spriteFrame = null;
|
|
120
120
|
}
|
|
121
121
|
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export declare class SimpleMeshNode extends cc.Node {
|
|
2
|
+
_texture: any;
|
|
3
|
+
_vertices: Float32Array | null;
|
|
4
|
+
_uvs: Float32Array | null;
|
|
5
|
+
_indices: Uint16Array | null;
|
|
6
|
+
_gl: WebGLRenderingContext | null;
|
|
7
|
+
_program: WebGLProgram | null;
|
|
8
|
+
_vbo: WebGLBuffer | null;
|
|
9
|
+
_uvbo: WebGLBuffer | null;
|
|
10
|
+
_ibo: WebGLBuffer | null;
|
|
11
|
+
_needsUpload: boolean;
|
|
12
|
+
_alpha: number;
|
|
13
|
+
_fallbackDraw: cc.DrawNode;
|
|
14
|
+
_useWebGL: boolean;
|
|
15
|
+
constructor(texture?: cc.Texture2D, vertices?: Float32Array, uvs?: Float32Array, indices?: Uint16Array);
|
|
16
|
+
_updateContentSizeFromVertices(): void;
|
|
17
|
+
setVertices(verts: Float32Array): void;
|
|
18
|
+
setUVs(uvs: Float32Array): void;
|
|
19
|
+
setIndices(inds: Uint16Array): void;
|
|
20
|
+
setTexture(tex: cc.Texture2D): void;
|
|
21
|
+
setSpriteFrame(renderTexture: any): void;
|
|
22
|
+
visit(ctx?: unknown): void;
|
|
23
|
+
_drawMesh(): void;
|
|
24
|
+
_ensureGL(): void;
|
|
25
|
+
_computeModelMatrixFromNode(): Float32Array;
|
|
26
|
+
_drawMeshWebGL(): void;
|
|
27
|
+
_drawMeshCanvasFallback(): void;
|
|
28
|
+
setAlpha(a: number): void;
|
|
29
|
+
static createQuad(x: number, y: number, w: number, h: number, u0: number, v0: number, uw: number, vh: number): {
|
|
30
|
+
vertices: Float32Array<ArrayBuffer>;
|
|
31
|
+
uvs: Float32Array<ArrayBuffer>;
|
|
32
|
+
indices: Uint16Array<ArrayBuffer>;
|
|
33
|
+
};
|
|
34
|
+
onExit(): void;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=SimpleMeshNode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SimpleMeshNode.d.ts","sourceRoot":"","sources":["../../../src/dragonbones/db-cocos/SimpleMeshNode.ts"],"names":[],"mappings":"AAOA,qBAAa,cAAe,SAAQ,EAAE,CAAC,IAAI;IAEzC,QAAQ,EAAE,GAAG,CAAO;IACpB,SAAS,EAAE,YAAY,GAAG,IAAI,CAAO;IACrC,IAAI,EAAE,YAAY,GAAG,IAAI,CAAO;IAChC,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAO;IAGnC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CAAO;IACxC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAO;IACpC,IAAI,EAAE,WAAW,GAAG,IAAI,CAAO;IAC/B,KAAK,EAAE,WAAW,GAAG,IAAI,CAAO;IAChC,IAAI,EAAE,WAAW,GAAG,IAAI,CAAO;IAC/B,YAAY,UAAO;IACnB,MAAM,SAAM;IAGZ,aAAa,EAAE,EAAE,CAAC,QAAQ,CAAO;IACjC,SAAS,UAAO;gBAEJ,OAAO,CAAC,EAAE,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,WAAW;IAiBtG,8BAA8B,IAAI,IAAI;IAmBtC,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAMtC,MAAM,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI;IAK/B,UAAU,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAKnC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,GAAG,IAAI;IAGnC,cAAc,CAAC,aAAa,KAAA;IAK5B,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,IAAI;IAU1B,SAAS,IAAI,IAAI;IAQjB,SAAS,IAAI,IAAI;IAuEjB,2BAA2B,IAAI,YAAY;IA0D3C,cAAc,IAAI,IAAI;IAkGtB,uBAAuB,IAAI,IAAI;IAuB/B,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAKzB,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;;;;;IAU5G,MAAM,IAAI,IAAI;CAcf"}
|
|
@@ -0,0 +1,354 @@
|
|
|
1
|
+
// cc.SimpleMeshNode.ts
|
|
2
|
+
// SimpleMesh as a cc.Node for Cocos2d-html5 (WebGL primary).
|
|
3
|
+
// Converted to ES6/TypeScript class from legacy Cocos-style object literal.
|
|
4
|
+
// Usage:
|
|
5
|
+
// const node = new SimpleMeshNode(texture, verts, uvs, inds);
|
|
6
|
+
// node.setPosition(x,y); node.setRotation(angleDeg); node.setScale(s);
|
|
7
|
+
export class SimpleMeshNode extends cc.Node {
|
|
8
|
+
// public mesh data (Float32Array / Uint16Array)
|
|
9
|
+
_texture = null;
|
|
10
|
+
_vertices = null;
|
|
11
|
+
_uvs = null;
|
|
12
|
+
_indices = null;
|
|
13
|
+
// GL internals
|
|
14
|
+
_gl = null;
|
|
15
|
+
_program = null;
|
|
16
|
+
_vbo = null;
|
|
17
|
+
_uvbo = null;
|
|
18
|
+
_ibo = null;
|
|
19
|
+
_needsUpload = true;
|
|
20
|
+
_alpha = 1.0;
|
|
21
|
+
// fallback drawnode for Canvas or debug
|
|
22
|
+
_fallbackDraw = null;
|
|
23
|
+
_useWebGL = true;
|
|
24
|
+
constructor(texture, vertices, uvs, indices) {
|
|
25
|
+
super();
|
|
26
|
+
super.ctor();
|
|
27
|
+
this._texture = texture || null;
|
|
28
|
+
this._vertices = vertices || new Float32Array(0);
|
|
29
|
+
this._uvs = uvs || new Float32Array(0);
|
|
30
|
+
this._indices = indices || new Uint16Array(0);
|
|
31
|
+
this._fallbackDraw = new cc.DrawNode();
|
|
32
|
+
this._useWebGL = !!cc._renderContext;
|
|
33
|
+
// size/anchor auto-estimate from vertex bounds (optional)
|
|
34
|
+
this._updateContentSizeFromVertices();
|
|
35
|
+
}
|
|
36
|
+
// helper to estimate contentSize and anchor if needed
|
|
37
|
+
_updateContentSizeFromVertices() {
|
|
38
|
+
if (!this._vertices || this._vertices.length < 2)
|
|
39
|
+
return;
|
|
40
|
+
let minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY;
|
|
41
|
+
let maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY;
|
|
42
|
+
for (let i = 0; i < this._vertices.length; i += 2) {
|
|
43
|
+
const x = this._vertices[i], y = this._vertices[i + 1];
|
|
44
|
+
if (x < minX)
|
|
45
|
+
minX = x;
|
|
46
|
+
if (y < minY)
|
|
47
|
+
minY = y;
|
|
48
|
+
if (x > maxX)
|
|
49
|
+
maxX = x;
|
|
50
|
+
if (y > maxY)
|
|
51
|
+
maxY = y;
|
|
52
|
+
}
|
|
53
|
+
if (minX === Infinity)
|
|
54
|
+
return;
|
|
55
|
+
this.setContentSize(maxX - minX, maxY - minY);
|
|
56
|
+
// set anchor relative to local coordinates (default 0,0), keep at 0,0 for compatibility
|
|
57
|
+
}
|
|
58
|
+
setVertices(verts) {
|
|
59
|
+
this._vertices = verts;
|
|
60
|
+
this._needsUpload = true;
|
|
61
|
+
this._updateContentSizeFromVertices();
|
|
62
|
+
}
|
|
63
|
+
setUVs(uvs) {
|
|
64
|
+
this._uvs = uvs;
|
|
65
|
+
this._needsUpload = true;
|
|
66
|
+
}
|
|
67
|
+
setIndices(inds) {
|
|
68
|
+
this._indices = inds;
|
|
69
|
+
this._needsUpload = true;
|
|
70
|
+
}
|
|
71
|
+
setTexture(tex) {
|
|
72
|
+
this._texture = tex;
|
|
73
|
+
}
|
|
74
|
+
setSpriteFrame(renderTexture) {
|
|
75
|
+
this._texture = renderTexture._texture;
|
|
76
|
+
}
|
|
77
|
+
// override visit to draw mesh at correct point in scene graph
|
|
78
|
+
visit(ctx) {
|
|
79
|
+
// normal visit to draw children etc.
|
|
80
|
+
super.visit(ctx);
|
|
81
|
+
// draw our mesh after node's transform is applied (so position/rotation/scale are final)
|
|
82
|
+
// Note: calling AFTER visit ensures it's rendered on top of children; change if you want otherwise.
|
|
83
|
+
this._drawMesh();
|
|
84
|
+
}
|
|
85
|
+
// core drawing function
|
|
86
|
+
_drawMesh() {
|
|
87
|
+
if (this._useWebGL && cc._renderContext) {
|
|
88
|
+
this._drawMeshWebGL();
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
this._drawMeshCanvasFallback();
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
_ensureGL() {
|
|
95
|
+
if (this._gl && this._program)
|
|
96
|
+
return;
|
|
97
|
+
const gl = cc._renderContext;
|
|
98
|
+
if (!gl) {
|
|
99
|
+
this._useWebGL = false;
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
this._gl = gl;
|
|
103
|
+
const vsSrc = [
|
|
104
|
+
'attribute vec2 a_position;',
|
|
105
|
+
'attribute vec2 a_texcoord;',
|
|
106
|
+
'uniform mat3 u_model;',
|
|
107
|
+
'uniform vec2 u_resolution;',
|
|
108
|
+
'varying vec2 v_uv;',
|
|
109
|
+
'void main() {',
|
|
110
|
+
' vec2 pos = (u_model * vec3(a_position, 1.0)).xy;',
|
|
111
|
+
' vec2 zeroToOne = pos / u_resolution;',
|
|
112
|
+
' vec2 zeroToTwo = zeroToOne * 2.0;',
|
|
113
|
+
' vec2 clipSpace = zeroToTwo - 1.0;',
|
|
114
|
+
' gl_Position = vec4(clipSpace * vec2(1.0, -1.0), 0.0, 1.0);',
|
|
115
|
+
' v_uv = a_texcoord;',
|
|
116
|
+
'}',
|
|
117
|
+
].join('\n');
|
|
118
|
+
const fsSrc = [
|
|
119
|
+
'precision mediump float;',
|
|
120
|
+
'varying vec2 v_uv;',
|
|
121
|
+
'uniform sampler2D u_texture;',
|
|
122
|
+
'uniform float u_alpha;',
|
|
123
|
+
'void main() {',
|
|
124
|
+
' vec4 c = texture2D(u_texture, v_uv);',
|
|
125
|
+
' gl_FragColor = vec4(c.rgb, c.a * u_alpha);',
|
|
126
|
+
'}',
|
|
127
|
+
].join('\n');
|
|
128
|
+
const compileShader = function (gl, src, type) {
|
|
129
|
+
const s = gl.createShader(type);
|
|
130
|
+
if (!s)
|
|
131
|
+
return null;
|
|
132
|
+
gl.shaderSource(s, src);
|
|
133
|
+
gl.compileShader(s);
|
|
134
|
+
if (!gl.getShaderParameter(s, gl.COMPILE_STATUS)) {
|
|
135
|
+
cc.log(`SimpleMesh shader compile error:\n${gl.getShaderInfoLog(s)}`);
|
|
136
|
+
gl.deleteShader(s);
|
|
137
|
+
return null;
|
|
138
|
+
}
|
|
139
|
+
return s;
|
|
140
|
+
};
|
|
141
|
+
const vs = compileShader(gl, vsSrc, gl.VERTEX_SHADER);
|
|
142
|
+
const fs = compileShader(gl, fsSrc, gl.FRAGMENT_SHADER);
|
|
143
|
+
if (!vs || !fs)
|
|
144
|
+
return;
|
|
145
|
+
const prog = gl.createProgram();
|
|
146
|
+
if (!prog)
|
|
147
|
+
return;
|
|
148
|
+
gl.attachShader(prog, vs);
|
|
149
|
+
gl.attachShader(prog, fs);
|
|
150
|
+
gl.linkProgram(prog);
|
|
151
|
+
if (!gl.getProgramParameter(prog, gl.LINK_STATUS)) {
|
|
152
|
+
cc.log(`SimpleMesh program link error:\n${gl.getProgramInfoLog(prog)}`);
|
|
153
|
+
gl.deleteProgram(prog);
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
this._program = prog;
|
|
157
|
+
// buffers
|
|
158
|
+
this._vbo = gl.createBuffer();
|
|
159
|
+
this._uvbo = gl.createBuffer();
|
|
160
|
+
this._ibo = gl.createBuffer();
|
|
161
|
+
}
|
|
162
|
+
// compute model matrix using node's transform: we want map local mesh coords (as-specified) through node's world transform
|
|
163
|
+
_computeModelMatrixFromNode() {
|
|
164
|
+
// get node world transform: use node's nodeToWorldAffine / getNodeToParentTransform?
|
|
165
|
+
// Simpler: use node.getNodeToWorldTransform() if available to get 4x4 matrix,
|
|
166
|
+
// but to keep it engine-agnostic we build 2D model from node's world position/rotation/scale.
|
|
167
|
+
const worldRotation = this.getNodeToWorldTransform
|
|
168
|
+
? (function () {
|
|
169
|
+
try {
|
|
170
|
+
const t = this.getNodeToWorldTransform();
|
|
171
|
+
const a = t.a, b = t.b, c = t.c, d = t.d, tx = t.tx, ty = t.ty;
|
|
172
|
+
const rot = (Math.atan2(b, a) * 180) / Math.PI;
|
|
173
|
+
const sx = Math.sqrt(a * a + b * b);
|
|
174
|
+
const sy = Math.sqrt(c * c + d * d);
|
|
175
|
+
return { rot: rot, sx: sx, sy: sy, tx: tx, ty: ty };
|
|
176
|
+
}
|
|
177
|
+
catch {
|
|
178
|
+
return null;
|
|
179
|
+
}
|
|
180
|
+
})()
|
|
181
|
+
: null;
|
|
182
|
+
let tx, ty, rotDeg, sx, sy;
|
|
183
|
+
if (worldRotation) {
|
|
184
|
+
tx = worldRotation.tx;
|
|
185
|
+
ty = worldRotation.ty;
|
|
186
|
+
rotDeg = worldRotation.rot;
|
|
187
|
+
sx = worldRotation.sx;
|
|
188
|
+
sy = worldRotation.sy;
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
const worldPt = this.convertToWorldSpaceAR ? this.convertToWorldSpaceAR(cc.p(0, 0)) : { x: 0, y: 0 };
|
|
192
|
+
tx = worldPt.x;
|
|
193
|
+
ty = worldPt.y;
|
|
194
|
+
rotDeg = this.getRotation ? this.getRotation() : this.rotation || 0;
|
|
195
|
+
sx = this.getScaleX ? this.getScaleX() : this.scaleX || 1;
|
|
196
|
+
sy = this.getScaleY ? this.getScaleY() : this.scaleY || 1;
|
|
197
|
+
}
|
|
198
|
+
const rad = ((rotDeg || 0) * Math.PI) / 180.0;
|
|
199
|
+
const cos = Math.cos(rad), sin = Math.sin(rad);
|
|
200
|
+
const a = cos * sx;
|
|
201
|
+
const b = sin * sx;
|
|
202
|
+
const c = -sin * sy;
|
|
203
|
+
const d = cos * sy;
|
|
204
|
+
const anchor = this.getAnchorPoint ? this.getAnchorPoint() : { x: 0, y: 0 };
|
|
205
|
+
const aw = anchor.x * this.width;
|
|
206
|
+
const ah = anchor.y * this.height;
|
|
207
|
+
const e = tx - (a * aw + c * ah);
|
|
208
|
+
const f = ty - (b * aw + d * ah);
|
|
209
|
+
return new Float32Array([a, b, 0, c, d, 0, e, f, 1]);
|
|
210
|
+
}
|
|
211
|
+
_drawMeshWebGL() {
|
|
212
|
+
const gl = cc._renderContext;
|
|
213
|
+
if (!gl) {
|
|
214
|
+
this._useWebGL = false;
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
217
|
+
this._ensureGL();
|
|
218
|
+
if (!this._program)
|
|
219
|
+
return;
|
|
220
|
+
if (!this._vertices || !this._uvs || !this._indices)
|
|
221
|
+
return;
|
|
222
|
+
if (this._vertices.length / 2 !== this._uvs.length / 2)
|
|
223
|
+
return;
|
|
224
|
+
gl.useProgram(this._program);
|
|
225
|
+
// upload if needed
|
|
226
|
+
if (this._needsUpload) {
|
|
227
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, this._vbo);
|
|
228
|
+
gl.bufferData(gl.ARRAY_BUFFER, this._vertices, gl.DYNAMIC_DRAW);
|
|
229
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, this._uvbo);
|
|
230
|
+
gl.bufferData(gl.ARRAY_BUFFER, this._uvs, gl.STATIC_DRAW);
|
|
231
|
+
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._ibo);
|
|
232
|
+
gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, this._indices, gl.STATIC_DRAW);
|
|
233
|
+
this._needsUpload = false;
|
|
234
|
+
}
|
|
235
|
+
else {
|
|
236
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, this._vbo);
|
|
237
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, this._uvbo);
|
|
238
|
+
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._ibo);
|
|
239
|
+
}
|
|
240
|
+
const aPosLoc = gl.getAttribLocation(this._program, 'a_position');
|
|
241
|
+
const aUVLoc = gl.getAttribLocation(this._program, 'a_texcoord');
|
|
242
|
+
// vertices
|
|
243
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, this._vbo);
|
|
244
|
+
gl.enableVertexAttribArray(aPosLoc);
|
|
245
|
+
gl.vertexAttribPointer(aPosLoc, 2, gl.FLOAT, false, 0, 0);
|
|
246
|
+
// uvs
|
|
247
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, this._uvbo);
|
|
248
|
+
gl.enableVertexAttribArray(aUVLoc);
|
|
249
|
+
gl.vertexAttribPointer(aUVLoc, 2, gl.FLOAT, false, 0, 0);
|
|
250
|
+
// bind texture
|
|
251
|
+
if (this._texture) {
|
|
252
|
+
gl.activeTexture(gl.TEXTURE0);
|
|
253
|
+
const webTex = this._texture._webTextureObj || (this._texture.getTexture ? this._texture.getTexture() : null);
|
|
254
|
+
// console.log(gl.TEXTURE_2D, webTex)
|
|
255
|
+
if (webTex) {
|
|
256
|
+
gl.bindTexture(gl.TEXTURE_2D, webTex._webTextureObj);
|
|
257
|
+
}
|
|
258
|
+
else {
|
|
259
|
+
const img = this._texture.getHtmlElementObj ? this._texture.getHtmlElementObj() : this._texture;
|
|
260
|
+
if (img) {
|
|
261
|
+
const tmp = gl.createTexture();
|
|
262
|
+
gl.bindTexture(gl.TEXTURE_2D, tmp);
|
|
263
|
+
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, img);
|
|
264
|
+
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
|
|
265
|
+
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
const uTexLoc = gl.getUniformLocation(this._program, 'u_texture');
|
|
269
|
+
gl.uniform1i(uTexLoc, 0);
|
|
270
|
+
}
|
|
271
|
+
else {
|
|
272
|
+
gl.bindTexture(gl.TEXTURE_2D, null);
|
|
273
|
+
}
|
|
274
|
+
// resolution
|
|
275
|
+
const uResLoc = gl.getUniformLocation(this._program, 'u_resolution');
|
|
276
|
+
const viewAny = cc.view;
|
|
277
|
+
const sz = viewAny.getFrameSize
|
|
278
|
+
? viewAny.getFrameSize()
|
|
279
|
+
: { width: cc.director.getWinSize().width, height: cc.director.getWinSize().height };
|
|
280
|
+
gl.uniform2f(uResLoc, sz.width, sz.height);
|
|
281
|
+
// model matrix from node
|
|
282
|
+
const uModelLoc = gl.getUniformLocation(this._program, 'u_model');
|
|
283
|
+
const modelMat = this._computeModelMatrixFromNode();
|
|
284
|
+
gl.uniformMatrix3fv(uModelLoc, false, modelMat);
|
|
285
|
+
// alpha
|
|
286
|
+
const uAlphaLoc = gl.getUniformLocation(this._program, 'u_alpha');
|
|
287
|
+
gl.uniform1f(uAlphaLoc, this._alpha || 1.0);
|
|
288
|
+
// blending
|
|
289
|
+
gl.enable(gl.BLEND);
|
|
290
|
+
gl.blendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA);
|
|
291
|
+
// draw
|
|
292
|
+
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._ibo);
|
|
293
|
+
gl.drawElements(gl.TRIANGLES, this._indices.length, gl.UNSIGNED_SHORT, 0);
|
|
294
|
+
// cleanup
|
|
295
|
+
gl.disableVertexAttribArray(aPosLoc);
|
|
296
|
+
gl.disableVertexAttribArray(aUVLoc);
|
|
297
|
+
}
|
|
298
|
+
// simple canvas fallback: just draw bounding box for visibility
|
|
299
|
+
_drawMeshCanvasFallback() {
|
|
300
|
+
if (!this._fallbackDraw.parent) {
|
|
301
|
+
this.addChild(this._fallbackDraw);
|
|
302
|
+
}
|
|
303
|
+
this._fallbackDraw.clear();
|
|
304
|
+
if (!this._vertices || this._vertices.length < 2)
|
|
305
|
+
return;
|
|
306
|
+
let minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY;
|
|
307
|
+
let maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY;
|
|
308
|
+
for (let i = 0; i < this._vertices.length; i += 2) {
|
|
309
|
+
const x = this._vertices[i], y = this._vertices[i + 1];
|
|
310
|
+
if (x < minX)
|
|
311
|
+
minX = x;
|
|
312
|
+
if (y < minY)
|
|
313
|
+
minY = y;
|
|
314
|
+
if (x > maxX)
|
|
315
|
+
maxX = x;
|
|
316
|
+
if (y > maxY)
|
|
317
|
+
maxY = y;
|
|
318
|
+
}
|
|
319
|
+
const rect = [cc.p(minX, minY), cc.p(maxX, minY), cc.p(maxX, maxY), cc.p(minX, maxY)];
|
|
320
|
+
this._fallbackDraw.drawPoly(rect, null, 1, cc.color(255, 0, 0, 255));
|
|
321
|
+
}
|
|
322
|
+
// set alpha multiplier
|
|
323
|
+
setAlpha(a) {
|
|
324
|
+
this._alpha = a;
|
|
325
|
+
}
|
|
326
|
+
// convenience static to create a quad mesh
|
|
327
|
+
static createQuad(x, y, w, h, u0, v0, uw, vh) {
|
|
328
|
+
const verts = new Float32Array([x, y, x + w, y, x + w, y + h, x, y + h]);
|
|
329
|
+
const u1 = u0 + uw, v1 = v0 + vh;
|
|
330
|
+
const uvs = new Float32Array([u0, v0, u1, v0, u1, v1, u0, v1]);
|
|
331
|
+
const inds = new Uint16Array([0, 1, 2, 0, 2, 3]);
|
|
332
|
+
return { vertices: verts, uvs: uvs, indices: inds };
|
|
333
|
+
}
|
|
334
|
+
// cleanup GL buffers on exit
|
|
335
|
+
onExit() {
|
|
336
|
+
super.onExit();
|
|
337
|
+
if (this._gl) {
|
|
338
|
+
try {
|
|
339
|
+
if (this._vbo)
|
|
340
|
+
this._gl.deleteBuffer(this._vbo);
|
|
341
|
+
if (this._uvbo)
|
|
342
|
+
this._gl.deleteBuffer(this._uvbo);
|
|
343
|
+
if (this._ibo)
|
|
344
|
+
this._gl.deleteBuffer(this._ibo);
|
|
345
|
+
if (this._program)
|
|
346
|
+
this._gl.deleteProgram(this._program);
|
|
347
|
+
}
|
|
348
|
+
catch (e) {
|
|
349
|
+
console.log('onExit', e);
|
|
350
|
+
}
|
|
351
|
+
this._gl = null;
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Constructor } from 'entityx-ts';
|
|
2
|
+
import { BaseComponentProps } from '../safex';
|
|
3
|
+
import { NodeComp } from './NodeComp';
|
|
4
|
+
export declare class EnhancedComponent<Props = object, N extends NodeComp<any> = NodeComp<any>> {
|
|
5
|
+
static hasRender: boolean;
|
|
6
|
+
props: Props;
|
|
7
|
+
node: N;
|
|
8
|
+
enabled: boolean;
|
|
9
|
+
constructor(data?: BaseComponentProps<EnhancedComponent> & Props);
|
|
10
|
+
init(data?: Props): void;
|
|
11
|
+
addComponent<T extends EnhancedComponent>(instance: T): T;
|
|
12
|
+
getComponent<T extends EnhancedComponent>(component: Constructor<T>): T;
|
|
13
|
+
schedule(callback: (arg: any) => void, interval: number, repeat?: number, delay?: number): void;
|
|
14
|
+
unschedule(callback: (arg: any) => void): void;
|
|
15
|
+
unscheduleAllCallbacks(): void;
|
|
16
|
+
scheduleOnce(callback: (arg: any) => void, delay: number, key?: string): void;
|
|
17
|
+
getComponentsInChildren<T extends ComponentType>(component: Constructor<T>): T[];
|
|
18
|
+
getComponentInChildren<T extends ComponentType>(component: Constructor<T>): T;
|
|
19
|
+
isEqual(other: EnhancedComponent): boolean;
|
|
20
|
+
}
|
|
21
|
+
export type ComponentType = EnhancedComponent | NodeComp;
|
|
22
|
+
//# sourceMappingURL=EnhancedComponent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EnhancedComponent.d.ts","sourceRoot":"","sources":["../../src/gworld/EnhancedComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExC,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,qBAAa,iBAAiB,CAAC,KAAK,GAAG,MAAM,EAAE,CAAC,SAAS,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC;IACpF,MAAM,CAAC,SAAS,UAAO;IACvB,KAAK,EAAE,KAAK,CAAY;IACxB,IAAI,EAAE,CAAC,CAAA;IACP,OAAO,UAAO;gBACF,IAAI,CAAC,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,GAAG,KAAK;IAGhE,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK;IASjB,YAAY,CAAC,CAAC,SAAS,iBAAiB,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC;IAGzD,YAAY,CAAC,CAAC,SAAS,iBAAiB,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC;IAGvE,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,MAAgC,EAAE,KAAK,SAAI;IAG5G,UAAU,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI;IAGvC,sBAAsB;IAGtB,YAAY,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM;IAGtE,uBAAuB,CAAC,CAAC,SAAS,aAAa,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;IAGhF,sBAAsB,CAAC,CAAC,SAAS,aAAa,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC;IAG7E,OAAO,CAAC,KAAK,EAAE,iBAAiB;CAGjC;AAED,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAAG,QAAQ,CAAA"}
|