2017-01-21 3 views
0

Я ищу эффективный способ обнаружения любых изменений объекта Graphics2D между дискретными этапами рендеринга (так что я могу оптимизировать, прервав лишние этапы после того, как первое «без изменений» обнаружено).Обнаруживать изменения в объекте Graphics2D в Java

Есть ли способ сравнить память, или, возможно, контрольную сумму, или любой другой способ сравнить два состояния для того, чтобы определить (или исключить) изменение?

+0

В зависимости от того, что контекст вашего создания графического контекста, может быть, но я был бы очень в эффективной. Вместо этого вы могли бы поддерживать BufferedImage состояния, когда вы меняете свою модель, выясните, произошли ли какие-либо изменения, и определите, нужно ли вам создавать новый BufferedImage или нет. – MadProgrammer

+0

Спасибо, MadProgrammer. Не могли бы вы дать общий пример решения BufferedImage в качестве ответа, чтобы я мог его принять? – HomerPlata

+0

Я действительно решил это сейчас, но только потому, что я последовал твоему совету. Я хотел бы принять ответ, поэтому, пожалуйста, предоставьте что-то в качестве ответа, если сможете, даже если это просто копирование и вставка вашего комментария. Я дам ему несколько дней и даю то, что я сделал, если нет. Благодарю. – HomerPlata

ответ

1

В зависимости от того, из какого контекста может возникнуть графический контекст, но я был бы очень эффективным.

Вместо этого вы можете поддерживать «текущее состояние» BufferedImage, когда вы обновляете свою модель, выясните, произошли ли какие-либо изменения. Если модель была изменена, создайте временную BufferedImage, повторите визуализацию этого нового состояния и затем назначьте его «текущему состоянию» BufferedImage.

Каждый раз, когда вы хотите сделать на экране, просто использовать «текущее состояние» BufferedImage

+0

Хороший человек, спасибо. – HomerPlata

+0

Глубокая сессия отладки, стараясь не отвлекаться;) – MadProgrammer

Смежные вопросы