설명

gxLib를 사용하기 위해 gx_init()를 호출하면, 광역 변수 gx_fb(1) 프레임 버퍼에 대한 모든 정보와 (2) 출력을 위한 메모리 매핑에 대한 정보를 저장하게 됩니다. gx_fb의 frame_buffer_t의 구조는 아래와 같습니다.

typedef struct frame_buffer_t_ frame_buffer_t;
struct frame_buffer_t_
{
   int      fd;                // 프레임 버퍼에 대한 파일 디스크립터
   int      width;             // 도트 단위의 폭
   int      height;            // 도트 단위의 높이
   int      dots;              // 전체 도트 갯수 width * height
   int      bytes;             // 메모리 전체 크기
   int      colors;            // 칼라 깊이, 1=1bit, 4=4bit, 8=8bit, ...
   int      bytes_per_line;    // 라인당 바이트 개수
   int      bits_per_pixel;    // 비트당 픽셀 개수

   unsigned short *mapped;     // 메모리 매핑된 포인터
};
헤더 gx.h
형태 frame_buffer_t gx_fb;

예제

#include    <stdio.h>
#include    <gx.h>

int   main( void)
{
   if ( gx_init( "/dev/fb"))        // 프레임 버퍼를 이용하여 gxLib를 초기화
      gx_print_error( "");          // 초기화 중 에러 내용을 출력
   else
   {
      printf( "스크린의 폭      = %d pixeln", gx_fb.width );
      printf( "스크린의 높이    = %d pixeln", gx_fb.height);
      printf( "전체 도트 갯수   = %d pixeln", gx_fb.dots  );
      printf( "메모리 전체 크기 = %d bytesn", gx_fb.bytes );
      printf( "칼라 깊이        = %d bitn"  , gx_fb.colors);
      gx_close();
   }
   return   0;
}
스크린의 폭      = 1024 pixel
스크린의 높이 = 768 pixel
전체 도트 갯수 = 786432 pixel
메모리 전체 크기 = 1572864 bytes
칼라 깊이 = 16 bit