페이지 플립과 더블 버퍼링      조경민 98/07/16
---------------------------------------

일반적으로 보통 메모리(system memory)와 비디오 메모리(video memory)
가 있는데 그래픽 모드상에서 실제 그리기 위해서는 원하는 위치에 대응
하는 비디오 메모리에 값(색깔)을 넣으므로써 화면에 보이게 된다.
그런데 시스템 메모리와의 자료 전송은 빠르지만 시스템 메모리에서
비디오 메모리로 혹은 비디오 메모리에 값을 넣는 일, 비디오 메모리에서
값을 얻어 오는 일은 느리다. 즉 비디오 메모리에 관련된것은 느리다고
보면 된다.
그러나 MODE-X를 쓰면 비디오 메모리에 값을 넣는 일같은것은 느리지만
시스템의 전체 메모리 블럭을 비디오 메모리에 전송하는 것은 빠르다.

플리킹 : 화면에 일어나는 깜빡거림

이런 깜빡거림을 없애기 위해서 페이지 플리핑이나 더블 버퍼링을 구현
한다.


페이지 플리핑

  비디오 메모리를 화면에 실제 보이는 해상도 보다 한 페이지 혹은 두페지
  양만큼 더 잡아서 두,세 페이지로 나눈다음 화면에 보이는 페이지를
  visual page, 화면에 보이진 않는 가상의 페이지를 active page라고 하고
  active 페이지에서 그리기를 하고 하드웨어 스크롤을 함으로써 active
  페이지를 visual page로 바꾸고 전의 visual 페이지를 active page로 함
  으로써 그리는 과정을 보여주지 않고 계속 반복함으로써 에니메이션을
  가능케 한다.

  0,0  -----------------            <<-- 하드웨어 스크롤 (0,0)
      |                 |
      |   보이는 면     |
      |                 |
      |_________________| 320,200
      |                 |
      |   안보이는 면   |            보이는 면 : visual page
      |                 |            안보이는면: active page
      |_________________| 320,400

      비디오 메모리


   이 상황에서 하드웨어 스크롤 (0,200) 으로 하면 화면에 보이는 좌표
   0,0은 실제 비디오 메모리상의 320,200이 된다. 즉 안보이는 면이
   보이는 면으로 되는 것이다.



   더블버퍼링

   더블 버퍼링은 비디오 메모리는 해상도 만큼 잡고 비디오메모리양만큼
   또 다른 시스템 메모리를 잡은 상황에서 그림을 시스템 메모리에 그리고
   나중에 보여줄 시기에 한꺼번에 시스템 메모리의 자료를 비디오 메모리
   에 전송함으로써 그리는 과정을 안보여준다.

     0,0  -----------------                  0,0  -----------------
         |                 |                     |                 |
         |   보이는 면     |         <<--        |  그리는 면      |
         |                 |                     |                 |
         |                 |                     |                 |
         |_________________|  320,0              |_________________|  320,0

          비디오 메모리                           시스템 메모리

'KB > 기타' 카테고리의 다른 글

[db] access 사용  (0) 2004.03.19
[vb] sub 함수 쓰기  (0) 2004.03.19
[vb] 비베에서 DataReport쓰기  (0) 2004.03.19
[vb] data 객체 없이 ODBC DSN 레코드셋 얻어오기  (0) 2004.03.19
[vb] 라벨 투명, 비트맵 버튼  (0) 2004.03.19

+ Recent posts