/** * Copyright(c) Live2D Inc. All rights reserved. * * Use of this source code is governed by the Live2D Proprietary Software license * that can be found at https://www.live2d.com/eula/live2d-proprietary-software-license-agreement_en.html. */ declare namespace Live2DCubismCore { /** Cubism version identifier. */ type csmVersion = number; /** moc3 version identifier. */ type csmMocVersion = number; /** Parameter type identifier. */ type csmParameterType = number; /** Necessary alignment for mocs (in bytes). */ const AlignofMoc: number; /** Necessary alignment for models (in bytes). */ const AlignofModel: number; /** .moc3 file version Unknown */ const MocVersion_Unknown: number; /** .moc3 file version 3.0.00 - 3.2.07 */ const MocVersion_30: number; /** .moc3 file version 3.3.00 - 3.3.03 */ const MocVersion_33: number; /** .moc3 file version 4.0.00 - 4.1.05 */ const MocVersion_40: number; /** .moc3 file version 4.2.00 - 4.2.04 */ const MocVersion_42: number; /** .moc3 file version 5.0.00 - 5.2.03 */ const MocVersion_50: number; /** .moc3 file version 5.3.00 - */ const MocVersion_53: number; /** Normal Parameter. */ const ParameterType_Normal: number; /** Parameter for blend shape. */ const ParameterType_BlendShape: number; /** Normal blend. */ const ColorBlendType_Normal: number; /** Add blend. */ const ColorBlendType_Add: number; /** AddGlow blend. */ const ColorBlendType_AddGlow: number; /** Darken blend. */ const ColorBlendType_Darken: number; /** Multiply blend. */ const ColorBlendType_Multiply: number; /** ColorBurn blend. */ const ColorBlendType_ColorBurn: number; /** LinearBurn blend. */ const ColorBlendType_LinearBurn: number; /** Lighten blend. */ const ColorBlendType_Lighten: number; /** Screen blend. */ const ColorBlendType_Screen: number; /** ColorDodge blend. */ const ColorBlendType_ColorDodge: number; /** Overlay blend. */ const ColorBlendType_Overlay: number; /** SoftLight blend. */ const ColorBlendType_SoftLight: number; /** HardLight blend. */ const ColorBlendType_HardLight: number; /** LinearLight blend. */ const ColorBlendType_LinearLight: number; /** Hue blend. */ const ColorBlendType_Hue: number; /** Color blend. */ const ColorBlendType_Color: number; /** Add compatible blend. */ const ColorBlendType_AddCompatible: number; /** Multiply compatible blend. */ const ColorBlendType_MultiplyCompatible: number; /** Over blend. */ const AlphaBlendType_Over: number; /** Atop blend. */ const AlphaBlendType_Atop: number; /** Out blend. */ const AlphaBlendType_Out: number; /** ConjointOver blend. */ const AlphaBlendType_ConjointOver: number; /** DisjointOver blend. */ const AlphaBlendType_DisjointOver: number; /** Log handler. * * @param message Null-terminated string message to log. */ interface csmLogFunction { (message: string): void; } /** Cubism version. */ class Version { /** * Queries Core version. * * @return Core version. */ static csmGetVersion(): csmVersion; /** * Gets Moc file supported latest version. * * @return Moc file latest format version. */ static csmGetLatestMocVersion(): csmMocVersion; /** * Gets Moc file's format version * * @param {Moc} moc Moc * @param {ArrayBuffer} mocBytes Arraybuffer * @returns {csmMocVersion} Moc file format version. */ static csmGetMocVersion(moc: Moc, mocBytes: ArrayBuffer): csmMocVersion; /** * Gets Moc file's format version * * @param {ArrayBuffer} mocBytes Moc bytes. * @returns {csmMocVersion} Moc file format version. */ static csmGetMocVersion(mocBytes: ArrayBuffer): csmMocVersion; private constructor(); } /** Cubism logging. */ class Logging { private static logFunction; /** * Sets log handler. * * @param handler Handler to use. */ static csmSetLogFunction(handler: csmLogFunction): void; /** * Queries log handler. * * @return Log handler. */ static csmGetLogFunction(): csmLogFunction; /** * Wrap log function. * * @param messagePtr number * * @return string */ private static wrapLogFunction; private constructor(); } /** Cubism moc. */ class Moc { /** * Checks consistency of a moc. * * @param mocBytes Moc bytes. * * @returns '1' if Moc is valid; '0' otherwise. */ hasMocConsistency(mocBytes: ArrayBuffer): number; /** Creates [[Moc]] from [[ArrayBuffer]]. * * @param buffer Array buffer * * @return [[Moc]] on success; [[null]] otherwise. */ static fromArrayBuffer(buffer: ArrayBuffer): Moc; /** Releases instance. */ _release(): void; /** Native moc. */ _ptr: number; /** * Initializes instance. * * @param mocBytes Moc bytes. */ private constructor(); } /** Cubism model. */ class Model { /** Parameters. */ parameters: Parameters; /** Parts. */ parts: Parts; /** Drawables. */ drawables: Drawables; /** Offscreen. */ offscreens: Offscreens; /** Canvas information. */ canvasinfo: CanvasInfo; /** Object render orders. */ private renderOrders; /** * Creates [[Model]] from [[Moc]]. * * @param moc Moc * * @return [[Model]] on success; [[null]] otherwise. */ static fromMoc(moc: Moc): Model; /** * Gets object render orders. * * @returns {Int32Array} Object render orders. */ getRenderOrders(): Int32Array; /** Updates instance. */ update(): void; /** Releases instance. */ release(): void; /** Native model. */ _ptr: number; /** * Initializes instance. * * @param moc Moc */ private constructor(); } /** Canvas information interface. */ class CanvasInfo { /** Width of native model canvas. */ CanvasWidth: number; /** Height of native model canvas. */ CanvasHeight: number; /** Coordinate origin of X axis. */ CanvasOriginX: number; /** Coordinate origin of Y axis. */ CanvasOriginY: number; /** Pixels per unit of native model. */ PixelsPerUnit: number; /** * Initializes instance. * * @param modelPtr Native model pointer. */ constructor(modelPtr: number); } /** Cubism model parameters */ class Parameters { /** Parameter count. */ count: number; /** Parameter IDs. */ ids: Array; /** Minimum parameter values. */ minimumValues: Float32Array; /** Parameter types. */ types: Int32Array; /** Maximum parameter values. */ maximumValues: Float32Array; /** Default parameter values. */ defaultValues: Float32Array; /** Parameter values. */ values: Float32Array; /** Parameter Repeat informations. */ repeats: Int32Array; /** Number of key values of each parameter. */ keyCounts: Int32Array; /** Key values of each parameter. */ keyValues: Array; /** * Initializes instance. * * @param modelPtr Native model. */ constructor(modelPtr: number); } /** Cubism model parts */ class Parts { /** Part count. */ count: number; /** Part IDs. */ ids: Array; /** Opacity values. */ opacities: Float32Array; /** Part's parent part indices. */ parentIndices: Int32Array; /** Part's offscreen indices. If the part does not use an offscreen, the value is '-1'. */ offscreenIndices: Int32Array; /** * Initializes instance. * * @param modelPtr Native model. */ constructor(modelPtr: number); } /** Cubism model drawables */ class Drawables { /** Drawable count. */ count: number; /** Drawable IDs. */ ids: Array; /** Constant drawable flags. */ constantFlags: Uint8Array; /** Dynamic drawable flags. */ dynamicFlags: Uint8Array; /** Drawable texture indices. */ textureIndices: Int32Array; /** Drawable draw orders. */ drawOrders: Int32Array; /** Drawable opacities. */ opacities: Float32Array; /** Mask count for each drawable. */ maskCounts: Int32Array; /** Masks for each drawable. */ masks: Array; /** Number of vertices of each drawable. */ vertexCounts: Int32Array; /** 2D vertex position data of each drawable. */ vertexPositions: Array; /** 2D texture coordinate data of each drawables. */ vertexUvs: Array; /** Number of triangle indices for each drawable. */ indexCounts: Int32Array; /** Triangle index data for each drawable. */ indices: Array; /** Information multiply color. */ multiplyColors: Float32Array; /** Information Screen color. */ screenColors: Float32Array; /** Indices of drawables parent part. */ parentPartIndices: Int32Array; /** Blend modes of drawables. */ blendModes: Int32Array; /** Resets all dynamic drawable flags.. */ resetDynamicFlags(): void; /** Native model. */ private _modelPtr; /** * Initializes instance. * * @param modelPtr Native model. */ constructor(modelPtr: number); } /** Cubism model offscreens */ class Offscreens { /** Number of offscreens. */ count: number; /** Offscreen blend modes. */ blendModes: Int32Array; /** Offscreen opacities. */ opacities: Float32Array; /** Offscreen's owner indices. */ ownerIndices: Int32Array; /** Offscreen's multiply colors. */ multiplyColors: Float32Array; /** Offscreen's screen colors. */ screenColors: Float32Array; /** Offscreen's mask counts. */ maskCounts: Int32Array; /** Offscreen's masks. */ masks: Array; /** Offscreen's constant flags. */ constantFlags: Uint8Array; /** * Initializes instance. * * @param modelPtr Native model. */ constructor(modelPtr: number); } /** Utility functions. */ class Utils { /** * Checks whether flag is set in bitfield. * * @param bitfield Bitfield to query against. * * @return [[true]] if bit set; [[false]] otherwise */ static hasBlendAdditiveBit(bitfield: number): boolean; /** * Checks whether flag is set in bitfield. * * @param bitfield Bitfield to query against. * * @return [[true]] if bit set; [[false]] otherwise */ static hasBlendMultiplicativeBit(bitfield: number): boolean; /** * Checks whether flag is set in bitfield. * * @param bitfield Bitfield to query against. * * @return [[true]] if bit set; [[false]] otherwise */ static hasIsDoubleSidedBit(bitfield: number): boolean; /** * Checks whether flag is set in bitfield. * * @param bitfield Bitfield to query against. * * @return [[true]] if bit set; [[false]] otherwise */ static hasIsInvertedMaskBit(bitfield: number): boolean; /** * Checks whether flag is set in bitfield. * * @param bitfield Bitfield to query against. * * @return [[true]] if bit set; [[false]] otherwise */ static hasIsVisibleBit(bitfield: number): boolean; /** * Checks whether flag is set in bitfield. * * @param bitfield Bitfield to query against. * * @return [[true]] if bit set; [[false]] otherwise */ static hasVisibilityDidChangeBit(bitfield: number): boolean; /** * Checks whether flag is set in bitfield. * * @param bitfield Bitfield to query against. * * @return [[true]] if bit set; [[false]] otherwise */ static hasOpacityDidChangeBit(bitfield: number): boolean; /** * Checks whether flag is set in bitfield. * * @param bitfield Bitfield to query against. * * @return [[true]] if bit set; [[false]] otherwise */ static hasDrawOrderDidChangeBit(bitfield: number): boolean; /** * Checks whether flag is set in bitfield. * * @param bitfield Bitfield to query against. * * @return [[true]] if bit set; [[false]] otherwise */ static hasRenderOrderDidChangeBit(bitfield: number): boolean; /** * Checks whether flag is set in bitfield. * * @param bitfield Bitfield to query against. * * @return [[true]] if bit set; [[false]] otherwise */ static hasVertexPositionsDidChangeBit(bitfield: number): boolean; /** * Checks whether flag is set in bitfield. * * @param bitfield Bitfield to query against. * * @return [[true]] if bit set; [[false]] otherwise */ static hasBlendColorDidChangeBit(bitfield: number): boolean; } /** Memory functions. */ class Memory { /** * HACK: * Extend memory size allocated during module initialization. * If the specified size is less than or equal to 16777216(byte), the default of 16 MB is allocated. * * @see https://github.com/emscripten-core/emscripten/blob/main/src/settings.js#L161 * * @param size allocated memory size [byte(s)] */ static initializeAmountOfMemory(size: number): void; private constructor(); } /** Emscripten Cubism Core module. */ }