TCanvasGPU用於FireMonkey上的移動平臺。不幸的是,當有人發現:FMX on iOS: how to perform partial invalidation?,這個畫布不支持cliprects,而Canvas.InvalidateRect(TRectF)總是使整個畫布無效。如何阻止FireMonkey TPaintBox擦除其背景?
這不會那麼糟糕,除了畫布背景總是在OnPaint事件之前被擦除。這意味着任何試圖更新OnPaint中的矩形都是註定的,因爲首先清除整個區域。所以即使是最小的更新也需要繪製整個畫布。
有誰知道是否可以停止在FireMonkey中刪除控件(特別是TPaintBox)背景?它曾經可以在VCL中通過設置ControlStyle:= ControlStyle + [csOpaque]來實現。
我在FMX.Forms中找到TCustomForm.PaintBackground,做了一個本地副本,並在TCustomForm.PaintRects中對此進行了註釋,認爲它會阻止控件被擦除,但TPaintBox畫布仍然以某種方式被清除。