gfx 各个类的源码解读(8) 其他类

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;