private bool disposedValue = false; // To detect redundant calls protected virtual void Dispose(bool disposing) { if (!disposedValue) { if (disposing) { // TODO: dispose managed state (managed objects). BoneRemapIndices = null; instanceBoneMatrices = null; vao?.Dispose(); if (instanceBoneMatricesTex > 0) { GL.DeleteTexture(instanceBoneMatricesTex); GL.DeleteBuffer(instanceBoneMatricesTexTBO); } } // TODO: free unmanaged resources (unmanaged objects) and override a finalizer below. // TODO: set large fields to null. disposedValue = true; } }
public void renderBSphere(GLSLHelper.GLSLShaderConfig shader) { for (int i = 0; i < instance_count; i++) { GLVao bsh_Vao = setupBSphere(i); //Rendering GL.UseProgram(shader.program_id); //Step 2 Bind & Render Vao //Render Bounding Sphere GL.BindVertexArray(bsh_Vao.vao_id); GL.PolygonMode(MaterialFace.FrontAndBack, PolygonMode.Line); GL.DrawElements(PrimitiveType.Triangles, 600, DrawElementsType.UnsignedInt, (IntPtr)0); GL.BindVertexArray(0); bsh_Vao.Dispose(); } }