Graphics2D
객체를 사용할 때 대상 버퍼의 어느 부분을 다시 그려야하는지 알 수있는 올바른 방법은 무엇입니까? 전체 버퍼를 다시 그려야하는 경우, 대상 버퍼의 크기는 무엇입니까?스윙에서 다시 칠 때 Graphics2D의 더티 영역 확인
대상 버퍼는 BufferedImage
, AWT 구성 요소 또는 인쇄시 사용되는 가상 장치 일 수 있습니다. 패턴으로 배경을 바둑판 식으로 배열하는 것과 같은 일부 작업의 경우, 다시 칠하는 작업을 최적화하지 않고도 어떤 영역을 칠해야 하는지를 알아야합니다.
Graphics.getClipBounds()
을 사용해 보았지만, 가끔 null
을 반환합니다. 내가 믿고있어
당신이 다시 그리도록 요청받을 수있는 몇 가지 방법이있다 스윙에서 Rectangle2D getInvaidRegion()
또는 Rectangle2D getDestinationBufferSize()
무슨 뜻인지 이해가되지 않습니까? 왜 다시 그려야합니까? –
@TimB 가장 가까운 내가 찾을 수있는 _.NET_ 프레임 워크에서 해당 : [PaintEventArgs.ClipRectangle] (http://msdn.microsoft.com/en-us/library/system.windows.forms.painteventargs.cliprectangle (v = .110) .aspx). 늘 그렇듯이, 설명은 존재하지 않지만, 다음과 같습니다 : 이벤트의이 속성은 항상 백업 버퍼의 어느 부분을 다시 그려야하는지 알려줍니다. 버퍼의 일부만 무효화 된 경우 전체 버퍼 또는 버퍼의 일부 일 수 있습니다. – Feuermurmel
그래서 다시 그릴 더러운 영역을 알 수 있도록 Swing 다시 칠하기 요청이 들어 왔을 때입니까? –