Un TCanvasGPU est utilisé pour les plates-formes mobiles sur FireMonkey. Malheureusement, comme quelqu'un l'a découvert: FMX on iOS: how to perform partial invalidation?, ce canevas ne supporte pas les clivés et Canvas.InvalidateRect (TRectF) invalide toujours le canevas entier.Comment arrêter FireMonkey TPaintBox d'effacer son arrière-plan?
Cela ne serait pas si grave, sauf que l'arrière-plan de la toile est toujours effacé avant un événement OnPaint. Ce qui signifie que toute tentative de mettre à jour juste un rectangle dans un OnPaint est vouée à l'échec, car toute la zone est effacée en premier. Donc, même la plus petite mise à jour nécessite que la toile entière soit dessinée.
Est-ce que quelqu'un sait s'il est possible d'arrêter l'effacement d'un arrière-plan de contrôle (spécifiquement TPaintBox) dans FireMonkey? Cela était possible dans VCL en définissant ControlStyle: = ControlStyle + [csOpaque].
J'ai trouvé TCustomForm.PaintBackground dans FMX.Forms, j'ai fait une copie locale et j'ai commenté l'appel dans TCustomForm.PaintRects, pensant qu'il arrêterait l'effacement des contrôles, mais le canevas TPaintBox a quand même été effacé.