/// <summary>
 /// This method must be called when CanvasRenderer.cull is modified.
 /// 画布渲染器剔除修改回调
 /// </summary>
 /// <remarks>
 /// This can be used to perform operations
 /// that were previously skipped because the <c>Graphic</c> was culled.
 /// </remarks>
 public virtual void OnCullingChanged()
 {
     if (!canvasRenderer.cull && (m_VertsDirty || m_MaterialDirty))
     {
         /// When we were culled, we potentially skipped calls to <c>Rebuild</c>.
         BrandoCanvasUpdateRegistry.RegisterCanvasElementForGraphicRebuild(this);
     }
 }
 /// <summary>
 /// Mark the material as dirty and needing rebuilt.
 /// 标记材质为脏,将重建
 /// </summary>
 /// <remarks>
 /// Send a OnDirtyMaterialCallback notification
 /// if any elements are registered. See RegisterDirtyMaterialCallback
 /// </remarks>
 public virtual void SetMaterialDirty()
 {
     if (IsActive())
     {
         m_MaterialDirty = true;
         BrandoCanvasUpdateRegistry.RegisterCanvasElementForGraphicRebuild(this);
         m_OnDirtyMaterialCallback?.Invoke();
     }
 }