그래픽 라이브러리 - gxLib
글 수 28
설명
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