2017-01-21 1 views
0

Je cherche un moyen efficace de détecter les modifications apportées à un objet Graphics2D entre les étapes discrètes du rendu (de sorte que je puisse optimiser en abandonnant d'autres étapes superflues une fois que le premier "aucun changement" est découvert).Détecter les modifications dans l'objet Graphics2D en Java

Existe-t-il un moyen de comparer la mémoire, ou peut-être une somme de contrôle, ou tout autre moyen de comparer deux états afin d'identifier (ou exclure) un changement?

+0

Selon de quel contexte votre génération du contexte graphique, peut-être, mais je serais très en efficacité. Au lieu de cela, vous pouvez maintenir une image bufferedImage de l'état, quand vous iodez votre modèle, demandez-lui de déterminer si des changements sont survenus et déterminez si vous avez besoin de créer une nouvelle BufferedImage ou non. – MadProgrammer

+0

Merci, MadProgrammer. Pourriez-vous donner un exemple générique de la solution BufferedImage comme réponse pour que je puisse l'accepter? – HomerPlata

+0

Je l'ai effectivement résolu maintenant, mais seulement parce que j'ai suivi votre conseil. J'aimerais accepter une réponse, alors s'il vous plaît fournir quelque chose comme une réponse si vous le pouvez - même si c'est juste copier et coller votre commentaire. Je vais lui donner quelques jours et fournir ce que j'ai fait, sinon. Merci. – HomerPlata

Répondre

1

Selon le contexte dans lequel vous générez le contexte graphique, peut-être, mais je serais très efficace. Au lieu de cela, vous pouvez maintenir un "état actuel" BufferedImage, lorsque vous mettez à jour votre modèle, demandez-lui de déterminer si des changements se sont produits. Si le modèle a été modifié, créez un BufferedImage temporaire, rendez le nouvel état, puis affectez-le à l'état actuel BufferedImage.

Chaque fois que vous voulez rendre à l'écran, il suffit d'utiliser le « état actuel » BufferedImage

+0

Bon homme, merci. – HomerPlata

+0

Deep session de débogage, en essayant de ne pas être distrait;) – MadProgrammer