2011-12-14 2 views
0

구문 강조 표시 & 자동 완성과 같은 작업을 수행하는 C#/Winforms에서 사용자 지정 컨트롤을 구현했습니다. 나는 스크롤을 관리하기 위해 AutoScroll을 사용하고 있으며 멋지게 작동합니다.Graphics.Draw *, AutoScroll & Culling

현재 최적화 된 것은 아니지만 (최적화가 중요하지만 기능은 내가 처음 사용하는 것입니다.), 거대한 문서를 렌더링하고 각 키 누르기가 영향을받는 부분을 다시 구문 분석합니다. 구문 강조 표시가 일관성이 있는지 확인하십시오.

지금 내 큰 고기 페인트 방법에서는 클립 영역 외부에 있더라도 모든 문자열, 키워드 등을 그립니다. 그러나 얼마나 많은 문서가 얼마나 큰지 상관없이 & 얼마나 많은 키워드의 조합/강조 표시된 비트 & 조각을 가지고 있느냐에 상관없이 많은 양의 메모리로 피 묻은 빠른 속도로 실행됩니다. & CPU 오버 헤드.

그럼 내 질문 - Graphics.Draw * 메서드는 어떤 종류의 도태 작업을 수행합니까? 예 : AutoScrollPosition이 문서 & I Graphics.DrawString (그리기 영역 외부의 일부 좌표를 삽입) 아래로가는 경우 실제 작업이 수행되고 있습니까? VM 내에서 Win 7에서 VS를 실행 중이며 여전히 빠르게 실행 중입니다. 그것이 이제는 문제가 아니지만 나중에 최적화 단계에 대해 염두에 두는 것이 좋습니다. : 당신은 드로잉 메서드를 호출하기 전에 확인 자신의 경계를 수행하는 경우 D

건배, Graphics.Draw * 방법을 사용하여 게임을 작성 개인적인 경험에서 아론

답변

1

, 당신은 속도 증가를 알 수 있습니다.

화면 밖에서 물건을 그리려고 시도하는 것이 화면에서 물건을 그리는 것보다 빠르지 만, 물건을 그리지 않는 것보다 눈에 띄게 느립니다.

+0

전설, 고마워! – nevelis