mirror of
				https://github.com/unanmed/HumanBreak.git
				synced 2025-10-31 04:02:59 +08:00 
			
		
		
		
	
		
			
				
	
	
	
		
			3.4 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	
			3.4 KiB
		
	
	
	
	
	
	
	
GL2 类 API 文档
需丰富
本文档由 DeepSeek R1 模型生成并微调。
继承关系
graph LR
    GL2 --> RenderItem --> EventEmitter
    click RenderItem "./RenderItem"
    click EventEmitter "https://nodejs.org/api/events.html#class-eventemitter"
属性说明
| 属性名 | 类型 | 默认值 | 说明 | 
|---|---|---|---|
| support | boolean(静态) | 检测 WebGL2 支持性 | 标识当前环境是否支持 WebGL2 | 
| canvas | HTMLCanvasElement | - | 绑定的 WebGL2 画布元素 | 
| gl | WebGL2RenderingContext | - | WebGL2 渲染上下文 | 
| UNIFORM_1f~UNIFORM_4uiv | UniformType枚举 | 对应枚举值 | WebGL uniform 类型常量(共 25 种) | 
| U_MATRIX_2x2~U_MATRIX_4x4 | UniformMatrix枚举 | 对应枚举值 | 矩阵类型 uniform 常量(9 种) | 
| ATTRIB_1f~ATTRIB_I4uiv | AttribType枚举 | 对应枚举值 | 顶点属性类型常量(12 种) | 
| MAX_TEXTURE_COUNT | number | 0 | 最大纹理支持数量(实际值由 WebGL 上下文决定) | 
构造方法
constructor
参数
- type: 渲染模式(- absolute绝对定位 /- static跟随摄像机)
行为
- 初始化 WebGL2 上下文
- 自动检测 WebGL2 支持性(通过静态属性 support)
- 设置默认渲染模式
方法说明
createProgram
function createProgram<T extends GL2Program>(
    Program: ProgramConstructor<T>,
    vs?: string,
    fs?: string
): T;
描述
创建 WebGL 着色器程序
参数
- Program: 着色器程序类(需继承- GL2Program)
- vs: 自定义顶点着色器代码(可选)
- fs: 自定义片元着色器代码(可选)
 示例
class MyProgram extends GL2Program {}
const program = gl2.createProgram(MyProgram);
useProgram
function useProgram(program: GL2Program): void;
描述
切换当前使用的着色器程序
示例
gl2.useProgram(shaderProgram);
framebuffer
function framebuffer(
    name: string,
    texture: IShaderTexture2D,
    clear?: boolean
): void;
描述
将渲染结果输出到帧缓冲纹理
参数
- name: 帧缓冲名称
- texture: 目标纹理对象
- clear: 是否清空画布
drawScene(抽象方法)
function drawScene(
    canvas: MotaOffscreenCanvas2D,
    gl: WebGL2RenderingContext,
    program: GL2Program,
    transform: Transform
): void;
描述
抽象渲染方法,子类必须实现具体绘制逻辑
静态方法说明
GL2.support
static readonly support: boolean;
描述
静态只读属性,检测 WebGL2 支持性
示例
if (GL2.support) {
    // 初始化 WebGL2 功能
}
总使用示例
暂时没有。