dragonbones-runtime
Version:
the tools to build dragonbones file for diffrent framework
119 lines (109 loc) • 4.23 kB
text/typescript
/**
* The MIT License (MIT)
*
* Copyright (c) 2012-2017 DragonBones team and other contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* 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.
*/
namespace dragonBones {
/**
* - The Phaser texture atlas data.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - Phaser 贴图集数据。
* @version DragonBones 3.0
* @language zh_CN
*/
export class PhaserTextureAtlasData extends TextureAtlasData {
public static toString(): string {
return "[class dragonBones.PhaserTextureAtlasData]";
}
private _renderTexture: PIXI.BaseTexture | null = null; // Initial value.
/**
* @inheritDoc
*/
protected _onClear(): void {
super._onClear();
if (this._renderTexture !== null) {
// this._renderTexture.dispose();
}
this._renderTexture = null;
}
/**
* @inheritDoc
*/
public createTexture(): TextureData {
return BaseObject.borrowObject(PhaserTextureData);
}
/**
* - The Phaser texture.
* @version DragonBones 3.0
* @language en_US
*/
/**
* - Phaser 贴图。
* @version DragonBones 3.0
* @language zh_CN
*/
public get renderTexture(): PIXI.BaseTexture | null {
return this._renderTexture;
}
public set renderTexture(value: PIXI.BaseTexture | null) {
if (this._renderTexture === value) {
return;
}
this._renderTexture = value;
if (this._renderTexture !== null) {
for (let k in this.textures) {
const textureData = this.textures[k] as PhaserTextureData;
textureData.renderTexture = new PIXI.Texture(
this._renderTexture,
<any>textureData.region as PIXI.Rectangle, // No need to set frame.
<any>textureData.region as PIXI.Rectangle,
new PIXI.Rectangle(0, 0, textureData.region.width, textureData.region.height),
); // Phaser-ce can not support texture rotate. TODO
}
}
else {
for (let k in this.textures) {
const textureData = this.textures[k] as PhaserTextureData;
textureData.renderTexture = null;
}
}
}
}
/**
* @internal
* @private
*/
export class PhaserTextureData extends TextureData {
public static toString(): string {
return "[class dragonBones.PhaserTextureData]";
}
public renderTexture: PIXI.Texture | null = null; // Initial value.
protected _onClear(): void {
super._onClear();
if (this.renderTexture !== null) {
this.renderTexture.destroy(false);
}
this.renderTexture = null;
}
}
}