Add support for HRTF under emscripten;

This commit is contained in:
bjorn 2017-10-22 21:55:23 -07:00
parent 00726fe89e
commit a2a90f5c85
3 changed files with 29 additions and 31 deletions

View File

@ -21,6 +21,31 @@ elseif(UNIX)
find_package(PkgConfig REQUIRED)
endif()
# PhysicsFS
set(PHYSFS_BUILD_STATIC OFF CACHE BOOL "")
set(PHYSFS_ARCHIVE_7Z OFF CACHE BOOL "")
set(PHYSFS_ARCHIVE_GRP OFF CACHE BOOL "")
set(PHYSFS_ARCHIVE_WAD OFF CACHE BOOL "")
set(PHYSFS_ARCHIVE_HOG OFF CACHE BOOL "")
set(PHYSFS_ARCHIVE_MVL OFF CACHE BOOL "")
set(PHYSFS_ARCHIVE_QPAK OFF CACHE BOOL "")
set(PHYSFS_BUILD_TEST OFF CACHE BOOL "")
set(PHYSFS_BUILD_WX_TEST FALSE CACHE BOOL "")
if(EMSCRIPTEN)
option(PHYSFS_ARCHIVE_ZIP OFF)
add_subdirectory(deps/physfs physfs)
include_directories(deps/physfs/src)
set(LOVR_PHYSFS physfs)
elseif(WIN32)
add_subdirectory(deps/physfs physfs)
include_directories(deps/physfs/src)
set(LOVR_PHYSFS physfs)
else()
find_package(PhysFS REQUIRED)
include_directories(${PHYSFS_INCLUDE_DIR})
set(LOVR_PHYSFS ${PHYSFS_LIBRARY})
endif()
# Assimp
set(ASSIMP_BUILD_ASSIMP_TOOLS OFF CACHE BOOL "")
set(ASSIMP_BUILD_TESTS OFF CACHE BOOL "")
@ -145,11 +170,13 @@ endif()
set(ALSOFT_UTILS OFF CACHE BOOL "")
set(ALSOFT_EXAMPLES OFF CACHE BOOL "")
set(ALSOFT_TESTS OFF CACHE BOOL "")
if (WIN32)
if(EMSCRIPTEN)
include_directories(deps/openal-soft/include)
elseif(WIN32)
add_subdirectory(deps/openal-soft openal)
include_directories(deps/openal-soft/include)
set(LOVR_OPENAL OpenAL32)
elseif(NOT EMSCRIPTEN)
else()
pkg_search_module(OPENAL openal-soft)
if (NOT OPENAL_FOUND)
pkg_search_module(OPENAL openal)
@ -185,31 +212,6 @@ if(NOT EMSCRIPTEN)
set(LOVR_OPENVR openvr_api)
endif()
# PhysicsFS
set(PHYSFS_BUILD_STATIC OFF CACHE BOOL "")
set(PHYSFS_ARCHIVE_7Z OFF CACHE BOOL "")
set(PHYSFS_ARCHIVE_GRP OFF CACHE BOOL "")
set(PHYSFS_ARCHIVE_WAD OFF CACHE BOOL "")
set(PHYSFS_ARCHIVE_HOG OFF CACHE BOOL "")
set(PHYSFS_ARCHIVE_MVL OFF CACHE BOOL "")
set(PHYSFS_ARCHIVE_QPAK OFF CACHE BOOL "")
set(PHYSFS_BUILD_TEST OFF CACHE BOOL "")
set(PHYSFS_BUILD_WX_TEST FALSE CACHE BOOL "")
if(EMSCRIPTEN)
option(PHYSFS_ARCHIVE_ZIP OFF)
add_subdirectory(deps/physfs physfs)
include_directories(deps/physfs/src)
set(LOVR_PHYSFS physfs)
elseif(WIN32)
add_subdirectory(deps/physfs physfs)
include_directories(deps/physfs/src)
set(LOVR_PHYSFS physfs)
else()
find_package(PhysFS REQUIRED)
include_directories(${PHYSFS_INCLUDE_DIR})
set(LOVR_PHYSFS ${PHYSFS_LIBRARY})
endif()
# LÖVR
set(LOVR_SRC
src/api/audio.c

View File

@ -15,7 +15,6 @@ void lovrAudioInit() {
lovrThrow("Unable to create OpenAL context");
}
#ifndef EMSCRIPTEN
static LPALCRESETDEVICESOFT alcResetDeviceSOFT;
alcResetDeviceSOFT = (LPALCRESETDEVICESOFT) alcGetProcAddress(device, "alcResetDeviceSOFT");
state.isSpatialized = alcIsExtensionPresent(device, "ALC_SOFT_HRTF");
@ -24,7 +23,6 @@ void lovrAudioInit() {
ALCint attrs[3] = { ALC_HRTF_SOFT, ALC_TRUE, 0 };
alcResetDeviceSOFT(device, attrs);
}
#endif
state.device = device;
state.context = context;

View File

@ -2,9 +2,7 @@
#include "lib/vec/vec.h"
#include <AL/al.h>
#include <AL/alc.h>
#ifndef EMSCRIPTEN
#include <AL/alext.h>
#endif
#pragma once