요즘세상에서 c#의 gdi가 c++의 gdi 보다 느리다라고 하는 사람들이 있습니다... 뭐 느릴수도 있겠죠... 근데 너무 우기는건 좀 아닌거 아닌가욤(먼소리지) 저는 mfc도 개발하고 c#도 개발하고.. 사실 더 그래픽컬하고 gdi를 많이 쓰는건 c# 개발할때 였습니다... 처음에 c#으로 개발할때 paint 는 정말 못쓸정도였(!?)지만 방법이 없는건 아니었죠.. 결국 사람들이 방법을 모르는거지 누가빠르고 누가 느리다라고 승질낼일은 아닌거 같네요.. 글 옮기다가 갑자기 생각나서 몇자 추가해봅니다.. C# 에서 더블 버퍼링은 정말 간단하게 설정이 됩니다. 그것이 폼이든 판넬이든 말이죠. this.SetStyle(ControlStyles.DoubleBuffer, true); this.SetStyle(ControlStyles.UserPaint, true); this.SetStyle(ControlStyles.AllPaintingInWmPaint, true); 요 3줄이면 설정이 끝나죠( 저같은 경우는 form이나 panel, pictureBox를 상속받는 더블버퍼용 컨트롤을 새로 만들어서 사용합니다.) 그러나! 더블버퍼링을 위한( 꼭 위한은 아닙니다. 더블버퍼링을 사용하지 않더라도 ) GDI+ 의 성능 개선을 위한 graphics 객체가 있었으니 그 이름하여 BufferedGraphics !!! 보통 Paint 함수에서 Graphics g = e.Graphics ; 이런식으로 Graphic 객체를 생성하여서 사용하는데요... BufferedGraphics는 약간 다릅니다. Paint 부분 소스입니다. private void Paint(object sender, PaintEventArgs e) { if (...
댓글
댓글 쓰기