From 53091170c46f490c948bfaa38ae657d6184c98f5 Mon Sep 17 00:00:00 2001 From: SmallMain Date: Fri, 13 Dec 2024 16:43:16 +0800 Subject: [PATCH] =?UTF-8?q?[common]=20=E8=A1=A5=E5=85=A8=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + creator-sp.d.ts | 137 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 138 insertions(+) diff --git a/.gitignore b/.gitignore index bb864160..08a42147 100644 --- a/.gitignore +++ b/.gitignore @@ -28,6 +28,7 @@ Thumbs.db !.vscode/settings.json !.vscode/launch.json !.vscode/**/*.code-snippets +!.vscode/mega.code-workspace #///////////////////////////////////////////////////////////////////////////// # Temp files diff --git a/creator-sp.d.ts b/creator-sp.d.ts index 1e600208..06a56852 100644 --- a/creator-sp.d.ts +++ b/creator-sp.d.ts @@ -187,6 +187,11 @@ declare module cc { } + /** + * 内置多纹理合批管理器实例 + */ + const multiBatcher: MultiBatcher; + }; namespace RenderComponent { @@ -306,6 +311,21 @@ declare module cc { } + /** + * CHAR 字符缓存 + */ + interface LetterCache { + char: string; + hash: string; + measure: number; + fontDesc: string; + fontSize: number; + margin: number; + out: string; + color: string; + isOutlined: boolean; + } + /** * CHAR 缓存模式图集管理类 */ @@ -331,6 +351,21 @@ declare module cc { */ _fontDefDictionary: any; + /** + * 字符缓存 + */ + letterCache: Record | null; + + /** + * 是否开启记录字符缓存 + */ + enableLetterCache: boolean; + + /** + * 初始化 + */ + static init(): void; + /** * 使用该接口在显示字符前将字符打入 CHAR 图集 */ @@ -341,6 +376,21 @@ declare module cc { */ getLetter(key: string): cc.BitmapFont.FontLetterDefinition; + /** + * 缓存字符纹理 + */ + cacheLetter(info: LetterCache): void; + + /** + * 获取字符缓存 + */ + getLetterCache(): LetterCache[]; + + /** + * 应用字符缓存 + */ + applyLetterCache(data: LetterCache[]): void; + /** * 从图集中删除字符 */ @@ -363,6 +413,42 @@ declare module cc { */ const _shareAtlas: LetterAtlases; + /** + * Label Canvas 对象池 + */ + const _canvasPool: { + /** + * 对象池数组 + */ + pool: object[]; + + /** + * 正在使用的数量 + */ + used: number; + + /** + * 最大数量 + */ + max: number; + + /** + * 获取对象 + */ + get(): object; + + /** + * 放回对象 + */ + put(canvas: object): void; + + /** + * 缓存指定数量的对象 + * + * 无论指定任何数量,最终对象池都不会大于最大数量 + */ + cache(count: number): void; + }; } namespace BitmapFont { @@ -786,7 +872,58 @@ declare module cc { } + export namespace macro { + /** + * !#en + * Enable advanced performance indicators, allowing for customization and display of more performance metrics. + * + * !#zh + * 启用高级性能指示器,允许自定义和显示更多性能指标。 + * + * @property {Boolean} ENABLE_CUSTOM_PROFILER + * @default false + */ + export let ENABLE_CUSTOM_PROFILER: boolean; + + } + + /** + * 文本渲染工具函数 + */ + export const textUtils: { + /** + * 测量值缓存 + */ + measureCache: { + count: number; + limit: number; + size: number; + datas: Record; + }; + + /** + * 测量文本宽度 + * + * `ctx` 可从 `cc.Label._canvasPool` 中获取。 + */ + safeMeasureText(ctx: object, string: string, desc: string): number; + + /** + * 获取缓存哈希值 + */ + computeHash(string: string, desc: string): string; + + /** + * 获取测量值缓存 + */ + getMeasureCache(): Record; + + /** + * 应用测量值缓存 + */ + applyMeasureCache(data: Record): void; + }; }