private void InitBackgroundMesh() { if (BackgroundMesh != null) { BackgroundMesh.Dispose(); } DynamicMesh backgroundBuilder = surface.CreateMesh(); backgroundBuilder.Projection = Mesh.ProjectionType.Pixel; double offset = 0.0; bool isAlternative = false; for (int threadIndex = 0; threadIndex < Rows.Count; ++threadIndex) { ThreadRow row = Rows[threadIndex]; if (!row.IsVisible) { continue; } backgroundBuilder.AddRect(new Rect(0.0, offset, Scroll.Width, row.Height), isAlternative ? OptickAlternativeBackground.Color : OptickBackground.Color); isAlternative = !isAlternative; offset += row.Height; } BackgroundMesh = backgroundBuilder.Freeze(surface.RenderDevice); }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ protected void Build(GameObject pParent) { vParent = pParent; Background = new GameObject("Background"); Background.transform.SetParent(pParent.transform, false); Background.AddComponent <MeshRenderer>(); BackgroundMesh = Background.AddComponent <MeshFilter>().mesh; BackgroundMesh.MarkDynamic(); Edge = new GameObject("Edge"); Edge.transform.SetParent(pParent.transform, false); Edge.AddComponent <MeshRenderer>(); EdgeMesh = Edge.AddComponent <MeshFilter>().mesh; EdgeMesh.MarkDynamic(); Highlight = new GameObject("Highlight"); Highlight.transform.SetParent(pParent.transform, false); Highlight.AddComponent <MeshRenderer>(); HighlightMesh = Highlight.AddComponent <MeshFilter>().mesh; HighlightMesh.MarkDynamic(); Select = new GameObject("Select"); Select.transform.SetParent(pParent.transform, false); Select.AddComponent <MeshRenderer>(); SelectMesh = Select.AddComponent <MeshFilter>().mesh; SelectMesh.MarkDynamic(); BackgroundColor = Color.clear; EdgeColor = Color.clear; SelectColor = Color.clear; HighlightColor = Color.clear; UpdateAfterResize(); }