gfx 各個類的原始碼解讀(3)- WebGL2InputAssembler
阿新 • • 發佈:2022-04-07
gfx 各個類的原始碼解讀(3)- WebGL2InputAssembler
WebGL2InputAssembler 在webgl2-input-assembler.ts
對於各種WebGL2Buffer的裝配 (加工處理) WebGL2Buffer見 gfx 各個類的原始碼解讀(1)- WebGL2Buffer
成員變數
_gpuInputAssembler: IWebGL2GPUInputAssembler | null = null;
//IWebGL2GPUInputAssembler結構 export interface IWebGL2GPUInputAssembler { attributes: Attribute[]; // 描述裝配原始資訊,如buff在gpuVertexBuffers陣列哪個位置 gpuVertexBuffers: IWebGL2GPUBuffer[]; //頂點buff資訊 gpuIndexBuffer: IWebGL2GPUBuffer | null; //index buff資訊 gpuIndirectBuffer: IWebGL2GPUBuffer | null; //Indirect buff資訊 glAttribs: IWebGL2Attrib[]; //裝配後的資訊 glIndexType: GLenum; glVAOs: Map<WebGLProgram, WebGLVertexArrayObject>; }
成員函式
public initialize (info: InputAssemblerInfo)
複製buff 儲存到成員變數
呼叫WebGL2CmdFuncCreateInputAssember
//WebGL2CmdFuncCreateInputAssember片段 //根據attributes資訊組裝 for (let i = 0; i < gpuInputAssembler.attributes.length; ++i) { const attrib = gpuInputAssembler.attributes[i]; const stream = attrib.stream !== undefined ? attrib.stream : 0; // if (stream < gpuInputAssembler.gpuVertexBuffers.length) { const gpuBuffer = gpuInputAssembler.gpuVertexBuffers[stream]; //buff 索引位置 //......
public destroy() 銷燬
呼叫WebGL2CmdFuncDestroyInputAssembler 銷燬