JBooth.VertexPainterPro.VertexPainterWindow.UpdateDisplayMode C# (CSharp) Method

UpdateDisplayMode() public method

public UpdateDisplayMode ( bool endPainting = true ) : void
endPainting bool
return void
        void UpdateDisplayMode(bool endPainting = true)
        {
            if (painting && endPainting)
             {
            EndStroke();
             }
             if (VertexInstanceStream.vertexShaderMat == null)
             {
            VertexInstanceStream.vertexShaderMat = new Material(Shader.Find("Hidden/VertexPainterPro_Preview"));
            VertexInstanceStream.vertexShaderMat.hideFlags = HideFlags.HideAndDontSave;
             }
             for (int i = 0; i < jobs.Length; ++i)
             {
            var job = jobs[i];
            EditorUtility.SetSelectedWireframeHidden(job.renderer, hideMeshWireframe);
            if (job.renderer != null && job.HasStream())
            {
               if (!showVertexShader || !enabled)
               {
                  // restore..
                  if (job.stream.originalMaterial != null && job.stream.originalMaterial.Length > 0 &&
                      job.renderer.sharedMaterial == VertexInstanceStream.vertexShaderMat)
                  {
                     if (job.renderer.sharedMaterials != null && job.renderer.sharedMaterials.Length > 1 &&
                         job.renderer.sharedMaterials.Length == job.stream.originalMaterial.Length)
                     {
                        Material[] mats = new Material[jobs[i].renderer.sharedMaterials.Length];

                        for (int x = 0; x < job.renderer.sharedMaterials.Length; ++x)
                        {
                           mats[x] = job.stream.originalMaterial[x];
                        }
                        job.renderer.sharedMaterials = mats;
                     }
                     else
                     {
                        job.renderer.sharedMaterial = job.stream.originalMaterial[0];
                     }
                  }
                  else if (job.renderer.sharedMaterial != VertexInstanceStream.vertexShaderMat)
                  {
                     job.CaptureMat();
                  }
               }
               else if (showVertexShader)
               {
                  if (job.renderer.sharedMaterial != VertexInstanceStream.vertexShaderMat)
                  {
                     job.CaptureMat();
                  }
                  if (job.stream.originalMaterial != null && job.stream.originalMaterial.Length > 0)
                  {
                     if (job.renderer.sharedMaterials != null && job.renderer.sharedMaterials.Length > 1)
                     {
                        Material[] mats = new Material[job.renderer.sharedMaterials.Length];
                        for (int x = 0; x < job.renderer.sharedMaterials.Length; ++x)
                        {
                           mats[x] = VertexInstanceStream.vertexShaderMat;
                        }
                        job.renderer.sharedMaterials = mats;
                     }
                     else
                     {
                        job.renderer.sharedMaterial = VertexInstanceStream.vertexShaderMat;
                     }
                     VertexInstanceStream.vertexShaderMat.SetInt("_flowVisualization", (int)flowVisualization);
                     VertexInstanceStream.vertexShaderMat.SetInt("_tab", (int)tab);
                     VertexInstanceStream.vertexShaderMat.SetInt("_flowTarget", (int)flowTarget);
                     VertexInstanceStream.vertexShaderMat.SetInt("_channel", (int)brushMode);
                     VertexInstanceStream.vertexShaderMat.SetVector("_uvRange", uvVisualizationRange);
                  }
               }
            }
             }
        }