laya-coreui-es
Version:
laya核心库、ui库es版本,剔除了媒体、TTF等功能。基于 LayaAir-release_2.12.0 修改
83 lines (82 loc) • 2.33 kB
TypeScript
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;
}