J'ai une application dans laquelle je dessine dans un NSView. Dans mouseDown
, je suis en train d'enregistrer l'emplacement dans mon modèle de données, puis de dessiner un graphique à cet emplacement dans la méthode drawRect
de la vue. Tout fonctionne bien.Dessin efficace dans NSView drawRect
À la fin de mon mouseDown
, j'appelais [self setNeedsDisplay:YES];
pour forcer un redessin. La seule chose est que le dirtyRect
est toujours la pleine taille de la vue. Je voulais optimiser cela autant que possible afin que je ne redessine pas toute la fenêtre pour quelques pixels changés.
Alors maintenant j'appelle [self drawRect:...]
à la place et en spécifiant le rectangle.
Maintenant, dans mon drawRect
je compare chaque graphique que je dois voir s'il tombe dans le dirtyRect. Il semble que j'ai échangé du travail de dessin pour un travail de limites en vérifiant tout. Je ne suis pas sûr d'avoir rendu cela plus ou moins efficace.
Alors, quelle est la pratique standard? Est-il courant de simplement redessiner tout dans la vue et ignorer le dirtyRect? Y a-t-il une bonne fonction que je peux utiliser comme test pour voir si mon objet est dans le dirtyRect
?
Merci, c'est le genre d'information que je cherchais. – spartygw