public void RenderBlock(UniformBlock block, int programID, int vertexLocation, int fragmentLocation, int bindings) { if (vertexLocation != -1) { block.RenderBuffer(programID, $"vp_{vertexLocation}", bindings); } if (fragmentLocation != -1) { block.RenderBuffer(programID, $"fp_{fragmentLocation}", bindings); } }
private void RenderBlock(UniformBlock block, int programID, int vertexLocation, int fragmentLocation, int binding) { if (vertexLocation != -1) { block.RenderBuffer(programID, IsSwitch ? $"vp_c{vertexLocation + 3}" : $"vp_{vertexLocation}", binding); } if (fragmentLocation != -1) { block.RenderBuffer(programID, IsSwitch ? $"fp_c{fragmentLocation + 3}" : $"fp_{fragmentLocation}", binding); } }
static void LoadUniforms(int programID, Vector4[] shData) { UniformBlock paramBlock = GetBlock("paramBlock"); paramBlock.Buffer.Clear(); //Variables from the sharcfb binaries paramBlock.Add(new Vector4(LightmapWeight[0], 0, 0, 0)); paramBlock.Add(new Vector4(LightmapWeight[1], 0, 0, 0)); paramBlock.Add(new Vector4(LightmapArrayIndex[0], 0, 0, 0)); paramBlock.Add(new Vector4(LightmapArrayIndex[1], 0, 0, 0)); paramBlock.Add(new Vector4(SHWeight[0], 0, 0, 0)); paramBlock.RenderBuffer(programID, "cbuf_block3"); UniformBlock dataBlock = GetBlock("shBlock"); dataBlock.Buffer.Clear(); dataBlock.Add(shData[0]); dataBlock.Add(shData[1]); dataBlock.Add(shData[2]); dataBlock.Add(shData[3]); dataBlock.Add(shData[4]); dataBlock.Add(shData[5]); dataBlock.Add(shData[6]); dataBlock.RenderBuffer(programID, "cbuf_block4"); }