private void RenderPartialMesh(MeshRenderMode renderMode, SurfaceModelMesh model, MaterialInfo material) { if (renderMode == MeshRenderMode.Wireframe && model.IsSelected) { //in wireframe mode, disable depth and color mask //but still write in stencil mask, this is needed for drawing the selection outline correctly GL.ColorMask(false, false, false, false); GL.DepthMask(false); } if (renderMode != MeshRenderMode.Wireframe || model.IsSelected) { DrawSolidModel(model, material); } if (model.IsSelected) { RenderHelper.DisableStencilMask(); } if (renderMode == MeshRenderMode.Wireframe && model.IsSelected) { GL.ColorMask(true, true, true, true); GL.DepthMask(true); } if (renderMode == MeshRenderMode.Wireframe || renderMode == MeshRenderMode.SolidWireframe) { var wireColor = model.IsSelected && renderMode == MeshRenderMode.SolidWireframe ? RenderHelper.WireframeColorAlt : RenderHelper.WireframeColor; DrawWireframeModel(model, wireColor, 1f); } }