gfx 各个类的源码解读(8) 其他类
这些类在gfx模块中没多大关联,或者一些独立的类,对其他类的封装,或者相对简单,这里只简单介绍,等render那层涉及到再详细讲
1.WebGL2Texture 在 webgl2-texture.ts
纹理
一个特别的函数
initAsSwapchainTexture //初始化跟交换链绑定的纹理
2.WebGL2Swapchain 在 webgl2-swapchain.ts
简单理解全局共享纹理, WebGL2Texture
如 当前交换链的颜色缓冲,当前交换链的深度模板缓冲。
目前了解 引擎只有一个交换链,也没跟其他模块共享
3.Device 在 device.ts
GFX 设备,设备初始化,保存全局状态
快捷创建对象, 如
/**
* @en Create shader.
* @zh 创建着色器。
* @param info GFX shader description info.
*/
public abstract createShader (info: Readonly<ShaderInfo>): Shader;
/**
* @en Create input assembler.
* @zh 创建纹理。
* @param info GFX input assembler description info.
*/
public abstract createInputAssembler (info: Readonly<InputAssemblerInfo>): InputAssembler;
//.......
4.Shader 在 shader.ts
shader
5.RenderPass 在 render-pass.ts
GFX 渲染过程
6.PipelineState 在 pipeline-state.ts
GFX 管线状态
7.PipelineLayout 在 pipeline-layout.ts
GFX 管线布局
8.WebGL2DescriptorSet 在 webgl2-descriptor-set.ts
GFX 描述符
9.WebGL2DescriptorSetLayout 在 webgl2-descriptor-set-layout.ts
GFX 描述符布局
9.WebGL2StateCache 在 webgl2-state-cache.ts
共享渲染流程的变量,如
public glArrayBuffer: WebGLBuffer | null = null;
public glElementArrayBuffer: WebGLBuffer | null = null;
public glUniformBuffer: WebGLBuffer | null = null;