프로젝트 소개
FAudio는 FNA 프로젝트를 위해 개발된 Microsoft DirectX 오디오 런타임 라이브러리의 오픈소스 재구현입니다. 명시된 목표는 단순히 호환 가능한 API 표면을 제공하는 것이 아니라 완전한 동작 정확성을 제공하여, 원래 라이브러리에 대해 작성된 소프트웨어가 오픈 플랫폼에서 동일하게 동작하도록 하는 것입니다.
범위
이 프로젝트는 여러 관련 오디오 API를 다룹니다:
- XAudio2, 저수준 오디오 믹싱 및 재생 API
- X3DAudio, 공간 오디오 헬퍼 라이브러리
- XAPO, 크로스 플랫폼 오디오 처리 객체 인터페이스
- XACT3, 고수준 오디오 제작 도구 런타임
사용 목적
FAudio는 FNA의 Audio 및 Media 네임스페이스를 지원하기 위해 작성되었습니다. 애플리케이션은 저장소의 csharp/ 디렉토리에 있는 C# 바인딩인 FAudio#을 통해 접근하며, 이를 통해 .NET 기반 게임 코드에서 사용할 수 있습니다.
의존성
FAudio는 SDL 3.2.0 이상에만 의존합니다. README는 C 런타임을 명시적으로 사용하지 않는다고 언급하며, 이는 의존성 범위를 작게 유지하고 플랫폼 간 동작을 더 예측 가능하게 만듭니다.
빌드
빌드 지침은 대상에 따라 다릅니다:
- Unix 계열 시스템에서는 CMake를 사용합니다: 빌드 디렉토리를 만들고, 소스 트리에서 cmake를 실행한 다음 make를 실행합니다.
- Windows에서는 visualc/ 디렉토리에 빌드 파일이 제공됩니다.
- Xbox GDK의 경우 visualc-gdk/를 참조하십시오.
- iOS, tvOS 및 macOS 유니버설 바이너리의 경우 Xcode/ 디렉토리를 참조하십시오.
테스트
FAudio는 XAudio2의 동작을 문서화하고 FAudio에 대해 실행하여 일치하는 동작을 확인하기 위한 단위 테스트를 제공합니다. 이러한 테스트는 기본적으로 빌드되지 않습니다. BUILD_TESTS=1을 설정하면 활성화되며, 이후 faudio_tests 바이너리를 실행할 수 있습니다. tests/의 별도 Makefile은 Windows 실행 파일을 빌드하여(mingw-w64 필요) 동일한 테스트를 실제 XAudio2 구현에 대해 비교 실행할 수 있게 합니다.
라이선스 및 커뮤니티
FAudio는 zlib 라이선스로 배포됩니다. 이슈와 패치는 프로젝트의 GitHub 저장소를 통해 처리되며, 프로젝트 웹사이트는 fna-xna.github.io에서 호스팅됩니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.