그래픽 라이브러리 - gxLib
gxLib란...
gxLib는 Frame Buffer를 이용한 그래픽 출력 라이브러리로 FALINUX 포럼에서 회원들과 같이 제작하였으며, 소스를 수정하지 않는 한 무료로 제공하고 있습니다. gxLib는 아직 기능이 미약하지만, 라이브러리 설치부터 간단하고 사용이 편리하다는 특징을 갖으며 빠른 그래픽 출력에 목적을 두고 있습니다..
gxLib의 특징
- Device Context 개념을 적용하여 화면 출력이나 이미지로의 출력 모두 같은 함수를 사용
- 여타 다른 라이브러리나 프로그램을 설치할 필요 없이 압축을 푸는 것만으로 바로 사용 가능
- 포럼 회원이라면 gxLib 개발에 동참할 수 있으며, 포럼 회원이 아니더라고 gxLib가 제시한 저작권만 유의한다면 무료로 사용 가능
- 흑백부터 8bit, 16bit, 24bit, 32bit 디스플레이 환경에 사용할 수 있으며,
- 사용 방법이 매우 단순하고 간단합니다.
gxLib의 기능
- 직선, 박스, 원, 타원 등 기본 도형 출력 가능
- bdf 폰트를 이용하여 영문,한글 모두 출력 가능
- Bitmap, PNG, JPEG 이미지 출력 가능
- Layer 기능 사용 가능
- Mozaic 기능 추가
gxLib 저작권
라이브러리 소스별로 입려력어 있는 상단의 주석을 변경하지 않는 이상, 무료로 사용이 가능하며 배포도 가능합니다. 개발자와 개발 정보를 알려 주는 상단의 주석문을 절대 변경하지 마십시오.
gxLib 설치 방법
gxLib 0.8.1부터 설치가 매우 간편해 졌습니다. gxLib를 내려 받아 압축축을 풀면 바로 사용할 수 있습니다. gxLib 최신 버전은 "그래픽 & 멀티미디어"에서 구하실 수 있으면, 적당한 곳에 압축을 풀어 사용하십시오.
gxLib 프로젝트 만들기
gxLib 최신 버전을 내려 받아 적당한 곳에 압축을 풀어 놓으셨다면, 아래와 같은 구조로 디렉토리가 생성되고 파일이 풀립니다.
sample 디렉토리에 있는 Makefile의 내용을 참고하여, 새로 생성한 프로젝트의 위치에 따라 제공되는 라이브러리 위치인 gxLib와 lib 그리고 헤더 파일을 위한 incfalinux, include 디렉토리의 위치를 지정해 주시면 바로 컴파일이 가능합니다.
Makefile 중 수정할 부분
# # falinux 라이블러리를 사용하는 어플용 Makefile # #CROSS_PREFIX = mipsel-linu- <<--- 크로스 컴파일을 위한 정의 #CROSS_PREFIX = arm-linux- <<--- 크로스 컴파일을 위한 정의 #CROSS_VERSION = 3.4.3 <<--- 크로스 컴파일을 위한 정의 ## 사용자 소스 TARGET = app-gxlib <<--- 생성할 실행 파일 SRCS = sample.c <<--- 소스 파일 목록 #--------------------------------------------------------------------- ## 소스레벨의 라이브러리 DIR_GXLIB = ../gxLib/ <<--- Makefile이 있는 위치와 gxLib가 있는 위치에 따라 <<--- 수정 SRCS_GXLIB = $(DIR_GXLIB)gx.c $(DIR_GXLIB)gxpng.c $(DIR_GXLIB)gxjpg.c... SRCS += $(SRCS_GXLIB) ## 인클루드 디렉토리 INCLUDEDIRS += -I. -I../incfalinux -I../include <<--- Makefile의 위치에 따라 수정 LIVDIRS += -L../lib/$(CROSS_PREFIX)$(CROSS_VERSION)lib <<--- Makefile의 위치에 따라 수정 OBJS = $(SRCS:.c=.o)
i386용 실행 파일을 만드는 방법
i386용 실행 파일을 만들 때에는 Makefile에서 아래에 색깔이 다른 행을 삭제하거나 주석 처리하십시오.
#
# falinux 라이블러리를 사용하는 어플용 Makefile
#
#CROSS_PREFIX = mipsel-linu
#CROSS_PREFIX = arm-linux-
#CROSS_VERSION = 3.4.3
## 사용자 소스
TARGET = app-gxlib
SRCS = sample.c
대부분의 PC 리눅에서는 zlib, jpeg, png 라이브러리가 설치된 상태이므로 컴파일 후에 별다른 파일 없이도 실행 파일을 실행할 수 있습니다. 그러나 만일 jpeg, png 라이브러리가 없다면 lib 디렉토리 안에 있는 i386 및 임베디드 보드에서 사용한 CPU별로 디렉토리 이름이 나뉘어 있으면,
이중 lib 디렉토리에 있는 jpeg와 png 라이브러리 압축파일을 /usr/lib 에 풀기를 하시면 됩니다.
타겟 보드별 실행 파일 만들기
타겟 보드를 위한 실행 파일을 만들 때에는 Makefile에서 아래에 색깔이 다른 행을 타겟 보드에 맞추어 변경하십시오. 예를 arm 보드로 들겠습니다. 아울러 사용되는 컴파일 버전을 정확히 입력합니다.
#
# falinux 라이블러리를 사용하는 어플용 Makefile
#
CROSS_PREFIX = arm-linux-
CROSS_VERSION = 3.4.3
## 사용자 소스
TARGET = app-gxlib
SRCS = sample.c
실행 파일이 만들어 지면, 실행 파일을 타겟보드의 적당한 곳에 복사하시고, lib에 타겟보드 별로 준비된 JPEG, PNG 라이브러리를 타겟보드의 /usr/lib에 압축을 풀어 놓습니다.
아래 그림은 arm 보드를 예로 든 것입니다.
JPEG와 PNG 라이브러리를 /usr/lib에 풀어 놓으시면, gxLib를 이용한 실행 파일을 실행하실 수 있습니다.