|
|
소개
Allegro는 비디오 게임과 멀티미디어 프로그래밍에 사용되는 것을 주 목적으로 하는
포터블 (portable) 라이브러리이며,
Shawn Hargreaves 님에 의해 DJGPP 컴파일러에서 C와 어셈블러의 혼합으로 최초로
시작되었습니다.
옥스포드 음악 안내서 (Oxford Companion to Music)에 의하면, Allegro는
이탈리아어로 «빠르게, 생동감있게, 밝게»란 뜻이라 합니다. 이것은
또한 «Allegro Low LEvel Game
ROutines»의 재귀적 약어이기도 합니다.
크로스 플랫폼 지원
- Dos (DJGPP, Watcom)
- Unix (Linux, FreeBSD, Solaris, Irix)
- Windows (MSVC, MinGW, Borland, Cygwin)
- BeOS
- MacOS (alpha)
- QNX
그래픽 함수
- 벡터 그리기:
- 픽셀, 직선, 사각형, 원, 타원, 호, 베지어 스플라인 (Bezier spline)
- 패턴 혹은 무패턴의 형태 채우기
- 다각형: 플랫 (flat), Gouraud, 텍스쳐, 반투명
- Sprites:
- 마스크, 압축, 컴파일 스프라이트
- 블리트 (blit), 회전, 확대, 축소, 알파 블렌딩 (alpha blending), Gouraud 셰이딩
- BMP, LBM, PCX, TGA 파일 기본 지원 (다른 포맷은 라이브러리 확장으로 지원)
- 컬러 팔레트:
- 컬러 팔레트 조작 (읽기, 쓰기, 변환)
- 컬러 포맷 변환 RGB <-> HSV
- 텍스트:
- 유니코드 포맷의 텍스트 출력 (마스크, 컬러, 정렬)
- 기타:
- 스크린이나 임의의 크기의 메모리 비트맵에 직접 그리기
- 하드웨어 스크롤과 트리플 버퍼링 (triple buffering) (지원 가능한 경우),
모드-X 분할 스크린
- FLI/FLC 포맷의 애니메이션 함수
그래픽 드라이버
- Dos:
- VGA 13h 모드
- 모드-X (23 VGA 해상도와 언체인드 (unchained) 640x400 확장 모드)
- 픽셀당 8, 15, 16, 24, 32비트의 SVGA 모드
- 선형 VBE 2.0 프레임버퍼 억세스
- VBE/AF API를 이용한 하두웨어 가속 지원 (지원이 가능한 경우)
- FreeBE/AF
프로젝트에서 제공되는 추가적인 그래픽 드라이버
- Unix:
- X Window, DGA, fbcon
- SVGAlib
- VBE/AF
- mode-X
- VGA
- Windows:
- DirectX (윈도우 또는 전체 스크린)
- GDI
- BeOS:
- BWindowScreen
- BDirectWindow
사운드 함수
- Midi:
- MIDI 음악 포맷 기본 지원 (64 동시 효과)
- 음악 노트 on, 노트 off, 메인 볼륨, 팬 (pan), 피치 벤드 (pitch bend),
프로그램 전환에 대한 동적 제어/대응
- General 미디 패치 사용
- 미디 파일을 위한 웨이브테이블 패치를 읽을 수 있음 (SF2와 d GUS 패치)
- Wave:
- WAV와 VOC 파일 포맷 기본 지원 (포워드, 백워드, 양방향 루프 플레이)
- 스트리밍 오디오
- 플레이중 볼륨, 팬 (pan), 피치 (pitch) 조정
사운드 드라이버
- Dos:
- Adlib, SB, SB Pro, SB16, AWE32
- MPU-401
- ESS AudioDrive
- Ensoniq Soundscape
- Windows Sound System
- Unix:
- Windows:
- DirectSound
- WaveOut
- 미디 시스템 드라이버
수학 함수
- 고정소숫점 연산과 삼각함수 루틴
- 미리 계산된 삼각함수 테이블
- 벡터/행열/4원소(quaternions) 3D 연산 (이동, 회전, 크기 변화, 프로젝션)
기타
- 마우스, 키보드, 조이스틱 관리
- 고해상도 인터럽트 타이머 (10, 5 ms 혹은 그 이상의 정밀도. 플랫폼에 따라 다름)
- DOS상에서 수직 리트레이스(vertical retrace) 시뮬레이션
- 설정 파일 조작
- LZSS 포맷의 압축 파일 조작
- 압축 데이터파일과 같은 다중 오브젝트 자원 조작
- 데이터 파일 생성 툴 (grabber)
- 다이얼로그 박스와 파일 선택 박스를 위한 간단한 GUI
|