Exemplo n.º 1
0
        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);
            }
        }