아유... 이것 참... 머리가 아픕니다. ㅠㅠ GUI Architecture를 구상하고있는데 어떤 것이 더 간단하고 효과적일지 고민하고 있습니다. GUI를 구현하는 방법에는 여러가지가 있겠지만 크게 아래와 같이 세가지를 생각하고 있습니다.

  1. 윈도우를 그릴때 Application에서 직접 Graphic Buffer에 접근해서 그린다.
  2. Window Manager가 Application의 Draw 함수를 호출해서 Serialize 해서 그린다. 즉 Kernel이 개별 Application의 함수를 호출한다.
  3. Application은 자신의 윈도우를 위한 임시 Graphic Buffer를 가지고 있고, 다 그리고 난 후 Graphic Buffer로 바로 복사해준다.

 1번처럼 구현하는 것이 가장 효과적일 것 같은데, 가장 마음에 걸리는 부분이 윈도우 겹침 처리더군요. 각 Application이 그리는 시간이 틀릴텐데, 마구잡이로 그리다가는 겹치는 부분에 대한 처리가 정상적으로 될 것 같지 않더군요. 아우... ㅠㅠ

 일단 좀 고민을 더 해봐야겠습니다. ㅠㅠ 어흑... 정말 산 넘어 산이군요.

ps) 혹시 Linux나 Windows의 GUI 구현에 대한 문서가 나온 게 있나요? 혹시 보신분 있으시면 덧글로 제보 부탁드립니다. ㅠㅠ


+ Recent posts