본문 바로가기

프로그래밍/DirectFB

DirectFB에 대한 기본 개념 및 용어


안녕하세요~
암흑도깨비 입니다.

 오늘은 제가 프로그래밍을 하면서 처음으로 해본 GUI Library인 DirectFB에 대해서 소개를 해볼까 합니다.
 아마 여러분들은 DirectFB에 대해서 정보를 얻기 위해서는 네이버 등의 국내 검색이 아닌 구글링을 해야 할겁니다. 
 
 DirectFB는 간단히 QT 및 GTK와 같은 그래픽 라이브러리 입니다. 하지만, 다 같은 그래픽 라이브러리라고 해서
 QT처럼 멋진 클래스가 제공되는 것 또한 아닙니다. 
 
 지금은 DirectFB 공식사이트에 들어가보시면 알 수 있듯이, 이 라이브러리에서 제공해주는 기능은 간단히 사각형 그
 리기, 삼각형 그리기, 효율적인 메모리관리, 폰트 랜더링 정도의 기능만이 제공이 됩니다. 
 
  아래의 여러 용어들은 DirectFB의 95% 라고 장담할 수 있을 정도로 요약을 해 놓았습니다.
 아마 임베디드 환경에서 개발하시는 분들이라면은 포팅만 한다면 쉽게 그래픽을 그리거나 텍스트를 드로우 하거나
 하실 수가 있을겁니다.

  • 1 IDirectFB (top-level) <--> N Screens
  • 1 Screen <--> N Layers
  • 1 Layer <--> 1 Primary Surface
  • 1 Layer <--> N Windows
  • 1 Window <--> 1 Window Surface
  • 1 Surface <--> N Subsurfaces

1. IDirectFB
  IDirectFB는 공식사이트에서는 Super interface라고 부르더군요. 일종의 최상위 interface 입니다. 모든 directfb의 함수들은 이 Super interface에서 부터 시작이 되어집니다. 

2. IDirectFBScreen

 IDirectFBScreen은 보통 임베디드환경에서 사용이 됩니다. 자세한건 저도 잘 모르지만, 임베디드환경 같이 어떠한 OUTPUT신호에 의해서 모니터에 출력하고자 할 때, 사용이 됩니다.
 한마디로 말하면은 Screen은 모니터의 화면이 되겠네요

3. IDirectFB Layers
 layer의 개념은 다 아실겁니다. 여러 레이어를 나누어 필요에따라서 화면에 표시하기 위해서 각각 종류별로 메모리영역을 나누어 사용한다는 건데요 .. 암튼 그렇습니다. 아마 앞으로 올라오게 될 소스코드를 보시면 알 수 있을겁니다.

4. IDirectFBWindow
 Window의 개념은 운영체제인 Window에서의 창 이라고 보시면 간단하겠습니다. 여러개의 창을 생성하여 하나의 레이어에 여러개의 UI를 효율적으로 관리하기 위해서 사용이 됩니다.

5. IDirectFBSurface
 화면상에 directfb를 이용하는 모든 UI 및 그래픽은 이 Surface에서부터 시작이 됩니다. 
 폰트 랜더링 모든 게 Surface에서 이루어지니 말이죠

 ** DirectFB 화면출력에 관한 순서
 1. IDirectFB를 선언해준다.
 2. layer를 생성한다.
 3. surface에다가 그린다.
 4. flip을 한다. 
 
 간단하게 말해서 순서는 위와 같이 진행이 됩니다. 아마 간단해서 당연히 이해 않가실꺼라 생각을 합니다.
 차츰차츰 소스와 같이 보시면은 금방 이해하리라 믿습니다.

 그렇다면은 사람들은 왜 directfb를 사용할까? 라는 의문에 대해서 간단히 답을 해드리도록 하겠습니다.
 --> qt와 gtk의 경우는 포팅하기는 매우 쉽습니다. 하지만 그 기능을 전부 사용하기 위해서는 엄청난 라이브러리 용량을 감당할 정도의 스토리지 용량이 필요하게 됩니다. 하지만 임베디드에서는 HDD를 별도로 장착하지 않는 이상은 보통 NAND MEMORY에다가 데이터영역을 생성하여 사용을 하게 됩니다. 그러면 DIRECTFB의 라이브러리 용량은 어느정도일까요? 대략. 2MB 입니다. 대통령이죠? ㅎㅎ 

 아무튼 효율적인 메모리관리와 쉬운 api가 있기에 임베디드 환경에서는 모두 사용하는데 유용하다고 생각합니다. 
 
 다음에는 source와 함께 조금 더 자세하게 설명해드리도록 하겠습니다. 아니지... 설치부터 해보도록 하겠습니다. 
 그러면 여러분 굿바이~ 

- by 암흑도깨비..
 










'프로그래밍 > DirectFB' 카테고리의 다른 글

DirectFB 설치하기  (0) 2011.12.08