static void DrawLabel(QlistMarker point, MarkerUIStates uiState, MarkerOverlayRegion region)
        {
            if (string.IsNullOrEmpty(point.stateName))
            {
                return;
            }

            var colorScale = uiState.HasFlag(MarkerUIStates.Selected) ? 1.0f : 0.85f;

            var textStyle = EditorStyles.whiteMiniLabel;

            s_Temp.text = point.stateName;

            var labelRect = region.markerRegion;

            labelRect.width = textStyle.CalcSize(s_Temp).x + 5;
            labelRect.x    -= labelRect.width; // bring it to the left
            var shadowRect = Rect.MinMaxRect(labelRect.xMin + 1, labelRect.yMin + 1, labelRect.xMax + 1, labelRect.yMax + 1);

            var oldColor = GUI.color;

            // GUI.color = Color.white * colorScale;
            // GUI.Label(shadowRect, s_Temp, textStyle);
            GUI.color = Color.black;
            GUI.Label(labelRect, s_Temp, textStyle);
            GUI.color = oldColor;
        }
        static void DrawColorOverlay(MarkerOverlayRegion region, Color color, MarkerUIStates state)
        {
            // Save the Editor's overlay color before changing it
            Color oldColor = GUI.color;

            GUI.color = color;

            if (state.HasFlag(MarkerUIStates.Selected))
            {
                GUI.DrawTexture(region.markerRegion, s_OverlaySelectedTexture);
            }
            else if (state.HasFlag(MarkerUIStates.Collapsed))
            {
                GUI.DrawTexture(region.markerRegion, s_OverlayCollapsedTexture);
            }
            else if (state.HasFlag(MarkerUIStates.None))
            {
                GUI.DrawTexture(region.markerRegion, s_OverlayTexture);
            }

            // Restore the previous Editor's overlay color
            GUI.color = oldColor;
        }