UNPKG

laya-coreui-es

Version:

laya核心库、ui库es版本,剔除了媒体、TTF等功能。基于 LayaAir-release_2.12.0 修改

83 lines (82 loc) 2.33 kB
import { IndexBuffer2D } from "./IndexBuffer2D"; import { VertexBuffer2D } from "./VertexBuffer2D"; /** * Mesh2d只是保存数据。描述attribute用的。本身不具有渲染功能。 */ export declare class Mesh2D { _stride: number; vertNum: number; indexNum: number; protected _applied: boolean; _vb: VertexBuffer2D; _ib: IndexBuffer2D; private _vao; private static _gvaoid; private _attribInfo; protected _quadNum: number; canReuse: boolean; /** * * @param stride * @param vballoc vb预分配的大小。主要是用来提高效率。防止不断的resizebfufer * @param iballoc */ constructor(stride: number, vballoc: number, iballoc: number); /** * 重新创建一个mesh。复用这个对象的vertex结构,ib对象和attribinfo对象 */ cloneWithNewVB(): Mesh2D; /** * 创建一个mesh,使用当前对象的vertex结构。vb和ib自己提供。 * @return */ cloneWithNewVBIB(): Mesh2D; /** * 获得一个可以写的vb对象 */ getVBW(): VertexBuffer2D; /** * 获得一个只读vb */ getVBR(): VertexBuffer2D; getIBR(): IndexBuffer2D; /** * 获得一个可写的ib */ getIBW(): IndexBuffer2D; /** * 直接创建一个固定的ib。按照固定四边形的索引。 * @param var QuadNum */ createQuadIB(QuadNum: number): void; /** * 设置mesh的属性。每3个一组,对应的location分别是0,1,2... * 含义是:type,size,offset * 不允许多流。因此stride是固定的,offset只是在一个vertex之内。 * @param attribs */ setAttributes(attribs: any[]): void; /** * 初始化VAO的配置,只需要执行一次。以后使用的时候直接bind就行 * @param gl */ private configVAO; /** * 应用这个mesh * @param gl */ useMesh(gl: WebGLRenderingContext): void; getEleNum(): number; /** * 子类实现。用来把自己放到对应的回收池中,以便复用。 */ releaseMesh(): void; /** * 释放资源。 */ destroy(): void; /** * 清理vb数据 */ clearVB(): void; }