/** * WebGL 中的顶点数据压缩 * 使用 float-pack 技术,在 shader 中解压 * @see https://zhuanlan.zhihu.com/p/67484498 */ export interface ICircleVertex { tileX: number; tileY: number; shape: string; color: number[]; radius: number; opacity: number; stroke: number[]; strokeWidth: number; strokeOpacity: number; } export declare const LEFT_SHIFT1 = 2; export declare const LEFT_SHIFT2 = 4; export declare const LEFT_SHIFT6 = 64; export declare const LEFT_SHIFT7 = 128; export declare const LEFT_SHIFT8 = 256; export declare const LEFT_SHIFT9 = 512; export declare const LEFT_SHIFT13 = 8192; export declare const LEFT_SHIFT14 = 16384; export declare const LEFT_SHIFT15 = 32768; export declare const LEFT_SHIFT16: number; export declare const LEFT_SHIFT17 = 131072; export declare const LEFT_SHIFT18 = 262144; export declare const LEFT_SHIFT19 = 524288; export declare const LEFT_SHIFT20 = 1048576; export declare const LEFT_SHIFT21 = 2097152; export declare const LEFT_SHIFT22 = 4194304; export declare const LEFT_SHIFT23 = 8388608; export declare const LEFT_SHIFT24 = 16777216; export declare const LEFT_SHIFT25: number; /** * encode 2 8-bit unsigned int into a 16-bit float * @param {number} a 8-bit int * @param {number} b 8-bit int * @return {number} float */ export declare function packUint8ToFloat(a: number, b: number): number; /** * 为 SDF circle 压缩顶点数据 */ export declare function packCircleVertex(props: ICircleVertex): { packedBuffer: number[][]; packedBuffer2: number[][]; packedBuffer3: number[][]; }; export declare function packOpacity(opacity: number, placed: boolean): number;