123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910 |
- declare module cc {
- /**
- * Cocos Creator Enhance Kit 命名空间
- */
- module sp {
- /**
- * 是否初始化完成
- */
- const inited: boolean,
- /**
- * 版本号
- */
- const version: string,
- /**
- * 最大纹理插槽数量
- *
- * 固定为 8
- */
- const MAX_MULTITEXTURE_NUM: number;
- /**
- * 渲染组件是否默认自动切换至贴图关联的多纹理材质
- */
- let autoSwitchMaterial: boolean;
- /**
- * 渲染组件是否默认参与动态合图
- */
- let allowDynamicAtlas: boolean;
- /**
- * Label 组件是否默认启用渲染时进行缩放以适配高 DPI 屏幕
- */
- let enableLabelRetina: boolean;
- /**
- * Label 组件渲染时进行缩放的缩放比例
- */
- let labelRetinaScale: number;
- /**
- * Char 图集会进行自动多纹理合批的数量
- */
- let charAtlasAutoBatchCount: number;
- /**
- * Char 图集是否在场景切换时清空
- */
- let charAtlasAutoResetBeforeSceneLoad: boolean;
- /**
- * 内置的多纹理合批 Effect Asset
- */
- const multi2dSpriteEffectAsset: cc.EffectAsset;
- /**
- * property index to name
- */
- function propertyIndex2Name(index: number): string;
- /**
- * property name to index
- */
- function propertyName2Index(name: string): number;
- /**
- * 多纹理 Material 管理类
- */
- class MultiHandler {
- /**
- * 材质
- */
- material: cc.Material;
- /**
- * Texture 数组
- *
- * 注意:不是 cc.Texture2D
- */
- protected textures: any[];
- /**
- * 有空槽(缓存值,并不是完全正确,只是为了降低当材质没有空槽时避免数组遍历的性能消耗)
- */
- protected hasEmptySlot: boolean;
- constructor(material?: cc.Material);
- /**
- * 同步 Material 的纹理插槽数据
- *
- * 当自行设置插槽可调用此函数同步 Material 上的插槽数据至 textures 数组
- */
- syncTextures(): void;
- /**
- * 设置纹理插槽(提供 cc.Texture2D)
- */
- setTexture(index: number, texture: cc.Texture2D): void;
- /**
- * 移除指定纹理
- *
- * 注意:不是 cc.Texture2D
- */
- removeTexture(texture: any): void;
- /**
- * 纹理是否在插槽中
- *
- * 注意:不是 cc.Texture2D
- */
- hasTexture(texture: any): boolean;
- /**
- * 获取纹理在插槽中的 Index,没有返回 -1
- *
- * 注意:不是 cc.Texture2D
- */
- getIndex(texture: any): number;
- /**
- * 获取指定 index 中的纹理
- *
- * 注意:不是 cc.Texture2D
- */
- getTexture(index: number): any;
- /**
- * 获取空插槽 Index,没有返回 -1
- */
- getEmptyIndex(): number;
- /**
- * 自动设置纹理到空插槽,返回插槽下标,失败返回 -1(提供 cc.Texture2D)
- */
- autoSetTexture(texture: cc.Texture2D): number;
- }
- /**
- * 多纹理合批管理器
- */
- class MultiBatcher {
- /**
- * 多纹理材质管理器数组
- */
- handlers: MultiHandler[];
- /**
- * 有空槽的材质
- */
- nextHandler: MultiHandler;
- /**
- * 初始化
- */
- init(): void;
- /**
- * 传入 cc.Texture2D,会关联并返回一个多纹理材质,如果已经有关联的材质则会返回已关联的材质
- */
- requsetMaterial(texture: cc.Texture2D): cc.Material;
- /**
- * 重置多纹理材质数组,再次使用请先初始化
- */
- reset(): void;
- }
- };
- namespace RenderComponent {
- export enum EnableType {
- /**
- * !#en Global.
- * !#zh 使用全局值
- * @property {Number} GLOBAL
- */
- GLOBAL = 0,
- /**
- * !#en Enable.
- * !#zh 开启
- * @property {Number} ENABLE
- */
- ENABLE = 1,
- /**
- * !#en Disable.
- * !#zh 关闭
- * @property {Number} DISABLE
- */
- DISABLE = 2,
- }
- }
- interface RenderComponent {
- /**
- * `updateRenderData` 时是否需要更新使用的 Texture 在材质中的 Index
- */
- _texIdDirty: boolean;
- /**
- * 使用的 Texture 在材质中的 Index
- */
- _texId: number;
- /**
- * 更新 `_texId`(使用的 Texture 在材质中的 Index)
- */
- _updateMultiTexId(material: cc.MaterialVariant, texture: cc.Texture2D);
- }
- interface Label {
- /**
- * 是否自动切换至贴图关联的材质
- */
- autoSwitchMaterial: cc.RenderComponent.EnableType;
- /**
- * 是否参与动态合图
- */
- allowDynamicAtlas: cc.RenderComponent.EnableType;
- /**
- * 是否启用渲染时进行缩放以适配高 DPI 屏幕
- */
- enableRetina: cc.RenderComponent.EnableType;
- /**
- * 置渲染数据刷新脏标记
- */
- setVertsDirty(): void;
- }
- namespace Label {
- /**
- * CHAR 缓存模式单图集类
- */
- class LetterAtlas {
- /**
- * 所属图集管理器
- */
- _atlases: cc.Label.LetterAtlases;
- /**
- * 图集纹理
- */
- _texture: cc.RenderTexture;
- /**
- * 在管理器图集数组中的下标
- */
- _id: number;
- /**
- * 渲染时用的临时变量
- */
- _tmpId: number;
- /**
- * 废弃字符区域数组
- */
- frees: cc.BitmapFont.FontLetterDefinition[];
- /**
- * 可能可以进行回收的字符区域数组
- */
- waitCleans: cc.BitmapFont.FontLetterDefinition[];
- /**
- * 重置图集
- */
- reset(): void;
- /**
- * 销毁
- */
- destroy(): void;
- }
- /**
- * CHAR 缓存模式图集管理类
- */
- class LetterAtlases {
- /**
- * 图集数组
- */
- atlases: any[];
- /**
- * Char 多纹理材质
- */
- material: cc.Material;
- /**
- * Fake MaterialVariant
- */
- fakeMaterial: { material: cc.Material };
- /**
- * 抽象字体图集 cc.BitmapFont.FontAtlas
- */
- _fontDefDictionary: any;
- /**
- * 使用该接口在显示字符前将字符打入 CHAR 图集
- */
- getLetterDefinitionForChar(char: string, labelInfo: any): any;
- /**
- * 获取已存在的字符信息
- */
- getLetter(key: string): cc.BitmapFont.FontLetterDefinition;
- /**
- * 从图集中删除字符
- */
- deleteLetter(letter: cc.BitmapFont.FontLetterDefinition): void;
- /**
- * 重置所有图集
- */
- reset(): void;
- /**
- * 销毁
- */
- destroy(): void;
- }
- /**
- * CHAR 缓存模式图集管理器
- */
- const _shareAtlas: LetterAtlases;
- }
- namespace BitmapFont {
- /**
- * Letter 信息类
- */
- class FontLetterDefinition {
- u: number;
- v: number;
- w: number;
- h: number;
- offsetX: number;
- offsetY: number;
- textureID: number;
- valid: boolean;
- xAdvance: number;
- texture: cc.Texture2D;
- atlas: cc.Label.LetterAtlas;
- ref: number;
- _inCleans: boolean;
- _hash: string;
- _width: number;
- _height: number;
- }
- }
- interface Sprite {
- /**
- * 是否自动切换至贴图关联的材质
- */
- autoSwitchMaterial: cc.RenderComponent.EnableType;
- /**
- * 是否参与动态合图
- */
- allowDynamicAtlas: cc.RenderComponent.EnableType;
- /**
- * 置渲染数据刷新脏标记
- */
- setVertsDirty(): void;
- }
- interface RichText {
- /**
- * 自定义内部使用的材质
- */
- customMaterial: cc.Material;
- /**
- * 是否自动切换至贴图关联的材质
- */
- autoSwitchMaterial: cc.RenderComponent.EnableType;
- /**
- * 是否参与动态合图
- */
- allowDynamicAtlas: cc.RenderComponent.EnableType;
- /**
- * 是否启用渲染时进行缩放以适配高 DPI 屏幕
- */
- enableRetina: cc.RenderComponent.EnableType;
- /**
- * 置渲染数据刷新脏标记
- */
- setVertsDirty(): void;
- }
- interface MotionStreak {
- /**
- * 是否自动切换至贴图关联的材质
- */
- autoSwitchMaterial: cc.RenderComponent.EnableType;
- /**
- * 检查并切换至纹理关联的材质
- */
- _checkSwitchMaterial(): void;
- /**
- * 置渲染数据刷新脏标记
- */
- setVertsDirty(): void;
- }
- interface Texture2D {
- /**
- * 关联的多纹理材质
- */
- _multiMaterial: cc.Material;
- /**
- * 关联指定材质,返回是否成功
- *
- * @param material 材质
- * @param index 材质纹理插槽下标,默认自动寻找第一个空插槽
- */
- linkMaterial(material: cc.Material, index?: number): boolean;
- /**
- * 取消已关联的材质
- */
- unlinkMaterial(): void;
- /**
- * 获取已关联的材质
- */
- getLinkedMaterial(): cc.Material;
- /**
- * 是否已关联材质
- */
- hasLinkedMaterial(): boolean;
- }
- interface Material {
- /**
- * 所属 MultiHandler 实例
- */
- _multiHandler?: cc.sp.MultiHandler;
- /**
- * 根据材质的 `USE_MULTI_TEXTURE` 宏来更新材质是否支持多纹理
- */
- updateMultiSupport(): boolean;
- /**
- * 判断该材质是否有 MultiHandler 实例
- */
- isMultiSupport(): boolean;
- /**
- * 设置该材质是否持有 MultiHandler 实例
- */
- setMultiSupport(bool: boolean): void;
- /**
- * 获取 MultiHandler 实例
- */
- getMultiHandler(): cc.sp.MultiHandler;
- }
- namespace DynamicAtlasManager {
- /**
- * 动态图集类
- */
- class Atlas {
- /**
- * 当自由空间的某边长度不足该值则直接忽略该空间
- */
- static ignoreRectSize: number;
- /**
- * 默认 Atlas
- */
- static DEFAULT_HASH: string;
- /**
- * 宽度
- */
- width: number;
- /**
- * 高度
- */
- height: number;
- /**
- * 间距
- */
- padding: number;
- /**
- * 边距
- */
- border: number;
- /**
- * 根矩形
- */
- rootRect: Rect;
- /**
- * 自由空间
- */
- freeRects: Rect[];
- /**
- * 已使用数量
- */
- _count: number;
- /**
- * cc.RenderTexture
- */
- _texture: cc.RenderTexture;
- /**
- * texture update dirty
- */
- _dirty: boolean;
- constructor(width: number, height: number, padding?: number, border?: number);
- /**
- * push to free rects
- */
- protected pushFreeRect(rect: Rect): void;
- /**
- * faster remove from free rects
- */
- protected removeFreeRect(index: number): void;
- /**
- * change member from free rects
- */
- protected replaceFreeRect(index: number, rect: Rect): void;
- /**
- * 插入 SpriteFrame
- */
- insertSpriteFrame(spriteFrame: cc.SpriteFrame): { x: number, y: number, texture: cc.Texture2D };
- /**
- * 删除精灵帧
- */
- deleteSpriteFrame(texture: cc.Texture2D, frame: cc.SpriteFrame): boolean;
- /**
- * 删除子矩形
- */
- deleteInnerRect(rect: Rect): void;
- /**
- * 删除贴图
- */
- deleteInnerTexture(texture: cc.Texture2D): boolean;
- /**
- * 是否未使用
- */
- isEmpty(): boolean;
- /**
- * 清空
- */
- reset(): void;
- /**
- * 销毁
- */
- destroy(): void;
- }
- /**
- * 动态图集的子矩形空间类
- */
- class Rect {
- /**
- * 复用
- */
- static reuse(atlas: Atlas, width: number, height: number, x: number, y: number): cc.DynamicAtlasManager.Rect;
- /**
- * 回收
- */
- static recycle(rect: Rect): void;
- /**
- * 所属 Atlas
- */
- atlas: Atlas;
- /**
- * 宽度
- */
- width: number;
- /**
- * 高度
- */
- height: number;
- /**
- * 横坐标
- */
- x: number;
- /**
- * 纵坐标
- */
- y: number;
- /**
- * 在 freeRects 中的下标
- */
- cacheIndex: number;
- /**
- * cc.Texture2D UUID
- */
- uuid: string;
- /**
- * 使用该贴图的精灵帧数组
- */
- spriteFrames: cc.SpriteFrame[] = [];
- /**
- * 父矩形
- */
- parentRect: Rect | undefined;
- /**
- * 子矩形之一
- */
- subRectA: Rect | undefined;
- /**
- * 子矩形之一
- */
- subRectB: Rect | undefined;
- /**
- * 子矩形之一
- */
- subRectC: Rect | undefined;
- /**
- * 子矩形或自身计数
- */
- used: number;
- /**
- * 像素数
- */
- readonly sizes: number;
- constructor(atlas: Atlas, width: number, height: number, x: number, y: number);
- }
- }
- interface DynamicAtlasManager {
- /**
- * !#en Is enable autoMultiBatch.
- * !#zh 是否开启自动多纹理合批
- * @property autoMultiBatch
- * @type {Boolean}
- */
- autoMultiBatch: boolean;
- /**
- * !#en Is enable autoResetBeforeSceneLoad.
- * !#zh 是否在场景切换时清空所有图集
- * @property autoResetBeforeSceneLoad
- * @type {Boolean}
- */
- autoResetBeforeSceneLoad: boolean;
- /**
- * 图集数组
- */
- atlases: cc.DynamicAtlasManager.Atlas[];
- /**
- * 已用空间集合 <`texture._uuid`, Rect>
- */
- rects: Record<string, cc.DynamicAtlasManager.Rect>;
- /**
- * !#en Delete a sprite frame from the dynamic atlas.
- * !#zh 使精灵帧取消使用动态图集
- * @method deleteSpriteFrame
- * @param {SpriteFrame} spriteFrame
- */
- deleteSpriteFrame(spriteFrame: cc.SpriteFrame): void;
- /**
- * !#en Delete a texture from the dynamic atlas.
- * !#zh 从动态图集删除该贴图,使用该贴图的精灵帧会被还原
- * @method deleteTexture
- * @param {Texture2D} texture
- */
- deleteTexture(texture: cc.Texture2D): void;
- }
- }
- declare module sp {
- /**
- * Spine Attachment 的 Region 数据
- */
- class RegionData {
- /**
- * 根据当前 `x` `y` `width` `height` `texture` 更新 uv 数据
- */
- static updateUV(region: RegionData | spine.TextureAtlasRegion): void;
- x: number;
- y: number;
- degrees: number;
- texture2D: cc.Texture2D;
- texture: any;
- u: number;
- v: number;
- u2: number;
- v2: number;
- width: number;
- height: number;
- rotate: boolean;
- offsetX: number;
- offsetY: number;
- originalWidth: number;
- originalHeight: number;
- constructor(attachmentOrSpriteFrame?: spine.Attachment | cc.SpriteFrame);
- /**
- * 使用 SpriteFrame 的数据初始化 RegionData
- */
- initWithSpriteFrame(spriteFrame: cc.SpriteFrame): void;
- /**
- * 使用 Attachment 的数据初始化 RegionData
- */
- initWithAttachment(attachment: spine.Attachment): void;
- /**
- * 根据当前 `x` `y` `width` `height` `texture` 更新 uv 数据
- */
- updateUV(): void;
- /**
- * 使用 PackedFrame 对象更新 RegionData
- */
- updateWithPackedFrame(packedFrame: any): void;
- /**
- * 使用 Texture2D 对象更新 RegionData
- */
- updateWithTexture2D(texture2d: cc.Texture2D): void;
- /**
- * 转为 SpriteFrame
- *
- * 注意:SpriteFrame 只支持两个旋转角度,如果 region 的旋转角度不是 270 或 0 度,则不能完美转换。
- *
- * @param strict 严格模式,开启时如果无法完美转换则返回 `null`,默认 `false`
- */
- toSpriteFrame(strict?: boolean): cc.SpriteFrame;
- /**
- * 将数据更新到 Attachment
- *
- * @param strict 严格模式,是否确保数据被同步,默认开启
- * @param resetDynamicAtlas 如果正在使用动态图集,则先还原,默认开启
- */
- assignToAttachment(attachment: spine.Attachment, strict?: boolean, resetDynamicAtlas?: boolean): void;
- }
- interface SkeletonData {
- /**
- * 克隆该 SkeletonData
- *
- * 注意:将会克隆原始数据而不是运行时数据
- */
- clone(): SkeletonData;
- }
- interface Skeleton {
- /**
- * 是否自动切换至贴图关联的材质
- */
- autoSwitchMaterial: cc.RenderComponent.EnableType;
- /**
- * 参与动态合图
- */
- allowDynamicAtlas: cc.RenderComponent.EnableType;
- /**
- * 通过 slot 和 attachment 的名称获取 attachment 上的 region 数据。Skeleton 优先查找它的皮肤,然后才是 Skeleton Data 中默认的皮肤。
- */
- getRegionData(slotName: string, attachmentName: string): sp.RegionData | null;
- /**
- * 通过 slot 和 attachment 的名称设置 attachment 上的 region 数据。Skeleton 优先查找它的皮肤,然后才是 Skeleton Data 中默认的皮肤。
- */
- setRegionData(slotName: string, attachmentName: string, region: sp.RegionData): boolean;
- /**
- * 置渲染数据刷新脏标记
- */
- setVertsDirty(): void;
- }
- }
|