[질문] IDirectFBWindow show 와 hide 방법은?
글쓴이: toc0z0c / 작성시간: 수, 2009/11/25 - 9:27오후
안녕하세요
directfb를 이용하여 그림을 그리는 중인데요.
SetOpacity( pwindow_a, 0x00 )가 잘동작하지 않습니다. 원이 어떠한 것들이 있을까요?
windows를 create 할때
pwindow_a->SetOpacity( pwindow_a, 0x00 )
을 주고
Surface 를 이용하여 네모상자를 그렸습니다.
psurface->Clear( psurface, 0x00, 0x00, 0x00, 0xFF )
키를 입력받아 검정색 네모상자를 보이거나 안보이게 해야 하는데.
pwindow_a->SetOpacity( pwindow_a, 0xFF ) 을 하면 화면에 보이는데요.
pwindow_a->SetOpacity( pwindow_a, 0x00 ) 을 하면 화면에서 사라지지 않습니다.
window를 create 할때 caps은 DWCAPS_NONE 이것을 주었습니다.
window 생성 옵션이 틀렸는지 아니면 다른 방법으로 hide 시켜야 하는지 조언을 부탁 드랍니다.
물론 강제로 psurface->Clear( psurface, 0x00, 0x00, 0x00, 0x00 ) 하면 사라지기는 합니다만,
이것은 기존의 영상을 지워버리기 때문에 원하는 바가 아니고, 버퍼의 내용은 그대로 두고 다만 window 만 hide 시켰다. show 시켰다 하고 싶거든요.
열심히 directfb에 삽질중인 삽질맨올림.
Forums:
Surface를 Window에 종속 시켜줘야지만 가능합니다.
안녕하세요
Window와 Surface는 각각 독립적으로 움직입니다. Surface는 말 그대로 그냥 그리는 메모리공간입니다.
무엇인가 지웠다 보였다 해주기 위해서는 Window 인터페이스를 이용하는 것이 맞으시며, 단 여기서 조건이 Surface를 Window에
종속시켜줘야지만이 가능합니다.
CreateSurface를 이용하였을텐데 이것을 이용하지 마시구요
대략 순서를 가르쳐 드리겠습니다.
1. Window를 생성한다. (CreateWindow 이용)
2. Surface를 Window에 종속시켜준다. ( GetSurface ) * 특별히 CreateSurface 해줄필요 없습니다.
3. Surface에 원하는대로 그려준다.
4. Surface를 flip한다.
5. Window의 Opacity값을 최대로 준다. 입니다.
지우시고자 하신다면은 Window Opacity값을 0으로 주시면 됩니다.
궁금하신 것이 있으시면 메일주세요
kleeck@naver.com
댓글 달기