더블버퍼링 질문 드립니다.
글쓴이: thslrtoo / 작성시간: 수, 2013/08/14 - 1:41오후
Win32 API 공부를 하다 궁금한게 생겨 질문드립니다.
예제를 따라 공부를 하다 화면 깜빡임 때문에 더블 버퍼링이라는 방법에 대해 알게되었습니다.
더블 버퍼링이 어떻게 되는건지는 아는데 왜 더블 버퍼링을 사용한다고 해서 깜빡임이 없어지는건지는 모르겠습니다.
가상의 화면에 그림을 그릴 객체를 모두 그리고 메인 화면에 덮어 씌우나
그냥 화면에 차례대로 덮어 씌우나 그리는건 똑같은데(빠르게, 연속적으로 덮어씌우는것)
왜 더블 버퍼링 방법을 쓰면 깜빡이지 않나요??
Forums:
잘은 모르지만 검색해보니 원리 자체는 수직 동기화에
잘은 모르지만 검색해보니 원리 자체는 수직 동기화에 맞춰서 뿌려주기 때문인 것 같네요.
수직 동기화에 맞춰주는 게 없는 단순 더블 버퍼링은 화면 크기가 커지면 깜빡이는 경우도 있을 것 같고...
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=52&MAEULNo=20&no=32002&ref=32002
http://www.gpgstudy.com/forum/viewtopic.php?p=114769
Signature :) - "여유를 갖고 행동하되 게을러지지 말자"
프로그램에 따라서
간혹 화면을 몽땅 지우고 다시 그리는 경우가 있죠.
이런 경우 확실히 개선됩니다
화면에 그림을 그리는데 시간이 걸리고 경우에 따라서는
화면에 그림을 그리는데 시간이 걸리고 경우에 따라서는 있는 그림을 완전히 지우고 다시 그려야 하기 때문이죠.
버퍼 1에 그림을 완전히 그린 후에 화면을 버퍼 1로 전환,
다시 버퍼 2에 그림을 완전히 그린 후에 화면을 버퍼 2로 전환,
이 과정을 반복하여 그림이 그려지는 과정을 숨기고 완전한 그림만을 깜빡임 없이 화면에 보낼 수 있습니다..
참고해 보세요. ㅇ_ㅇ;;
영어는 모르지만. ㅡ_ㅡ;; 이것이 원인 같습니다.
When the BitBlt function converts a monochrome bitmap to color, it sets white bits (1) to the background color and black bits (0) to the foreground color. The foreground and background colors of the destination device context are used. To convert color to monochrome, BitBlt sets pixels that match the background color to white and sets all other pixels to black. BitBlt uses the foreground and background colors of the color device context to convert from color to monochrome.
아마도. 색을 채우는 과정이 보여져서 그런거 같습니다.
그러니까. 색을 채우는 과정이 보여지지 않으려면.
안보이는데서 채우다가. 완성된것을 보여주면 되는데. 그게 더블버퍼링이라고 합니다.
네이버에 더블 버퍼링'이라고 검색해보세요.
구글 번역기
http://translate.google.com/?hl=en&tab=wT
MSDN
http://msdn.microsoft.com/ko-kr/library/kwxzck32(v=vs.80).aspx
http://msdn.microsoft.com/ko-kr/library/fcbk8779(v=VS.80).aspx
Windows API 완전정복 가남사
챨스 페졸드에 Windows API
MFC 관련 서적
.NET 관련 서적 참고해 보세요.
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
댓글 달기