|
점, 선, 면과 같은 짜실 짜실한 드로잉 함수가 GDI를 통해 화면에 그때 그때 그려지면
느릴 수 밖에 없습니다. 이런 경우, 그려질 영역 만큼을 버퍼로 잡고, 버퍼에다 짜실한 작업들을
수행 한 후, 버퍼에서 화면으로 한번에 그리는 방법이 유효합니다.
물론 최고의 속도를 위해서는, 선그리기 루틴 자체를 함수에서 분리해 소스내에 삽입하는
방법도 있고, 어셈블리로 구현하는 방법도 있지요. 하지만, 굳이 어셈블리로 구현하지 않아도
백 버퍼만 잘 활용하면(더블버퍼링) 초당 몇만에서 몇백만개의 선그리기는 수행할 수 있습니다.
(요즘 컴퓨터들이 워낙 사양이 높다 보니 ㅡ,.ㅡ)
앞 서 다른 분이 덧말을 달아 주셨듯, 브레젠험의 선그리기 알고리즘의 개선판(더블 스텝) 쯤 되는
알고리즘을 C로 구현해서 백버퍼에다 그리시고 한꺼번에 옮기는 더블버퍼링을 쓰시든지
화면 모드를 DirectX 점유모드로 셋팅해 비디오 메모리의 주소를 받아 그리면, 만족하실만한
속도가 나오겠지요.
이도 저도 힘드시면 Graphics32 컴포넌트를 사용하실것을 권합니다.
|