mirror of
https://github.com/celisej567/mcpe.git
synced 2026-09-23 20:09:46 +03:00
* OpenAL adjustments and improvements mk.1 Seperated SoundSystemAl from the sdl section and into platform/openal. Made PlatformDefinitions.hpp require a "USE_OPENAL" definition instead of "USE_SDL" definition for OpenAL Added SoundSystemAl.cpp and SoundSystemAL.hpp files to the actual solution file so it can be compiled properly. Made the SoundSystemAl use headers from thirdparty/OpenAL/include folder. Made the SoundSystemAl use #pragma comment(lib, "OpenAL32.lib") to include the library if needed without adding it to the linker input value in the solution file. Added thirdparty/OpenAL/libs/Win64/thirdparty/OpenAL/libs/Win32 to the additional libraries so that it can find the OpenAL32.lib library. * OpenAL adjustments and improvements mk.2 Removed specific USE_SDL preprocessor definitions related to OpenAL which were unhelpful/unneeded for multi-platform use. Made the OpenAl sound system inherit from the SoundSystem class and implement the functions properly without requiring a custom update function. Fixed an error that would happen when closing the game related to OpenAl closing the sound device. Removed unnecessary is_ui check in OpenAL sound system, UI sounds work just fine without it. Adjusted rolloff factor, not sure if this is just placebo but it felt a bit better? * Update sdl/CMakeLists.txt for new OpenAL stuff * CMakeLists name fix * Minor fixes for SDL compatibility * Added check for absolute zero position Made the OpenAL sound system consider any sound that is at absolute zero non-spatial Also removed unneeded ORIGINAL_CODE check in SoundSystem.hpp and SoundSystem.cpp * Fixed OpenAL popping strangeness OpenAL apparently makes weird popping noises when the gain of a sound is below 0, so I added a check to see if the distance is too far (for the new updated settings) I did some graphing and the previous settings for OpenAL were limiting the sound distance to 8 blocks (which was causing popping when sounds were between 8-16 blocks away as the gain was 0 or below) so I changed the rolloff factor to 1.0f to make sounds falloff at 16 blocks instead which seems reasonable/like the original intention. * Minor Fix to solution additional includes * Forgot an sdl compat change
65 lines
1.7 KiB
CMake
65 lines
1.7 KiB
CMake
cmake_minimum_required(VERSION 3.16.0)
|
|
project(reminecraftpe)
|
|
|
|
# SDL Build
|
|
add_compile_definitions(USE_SDL USE_OPENAL HANDLE_CHARS_SEPARATELY)
|
|
|
|
# WASM
|
|
if(EMSCRIPTEN)
|
|
function(add_compile_and_link_options)
|
|
add_compile_options(${ARGV})
|
|
add_link_options(${ARGV})
|
|
endfunction()
|
|
set(CMAKE_EXECUTABLE_SUFFIX ".js")
|
|
endif()
|
|
|
|
# Clang
|
|
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
|
add_compile_options(-Wno-inconsistent-missing-override -Wno-enum-compare-switch -Wno-register)
|
|
endif()
|
|
|
|
# Threads
|
|
if(EMSCRIPTEN)
|
|
add_compile_and_link_options(-pthread)
|
|
else()
|
|
find_package(Threads)
|
|
link_libraries(Threads::Threads)
|
|
endif()
|
|
|
|
# Build
|
|
add_executable(reminecraftpe
|
|
main.cpp
|
|
AppPlatform_sdl.cpp
|
|
../openal/SoundSystemAL.cpp
|
|
)
|
|
|
|
# Core
|
|
add_subdirectory(../../source source)
|
|
target_link_libraries(reminecraftpe reminecraftpe-core)
|
|
|
|
# LibPNG
|
|
if(NOT EMSCRIPTEN)
|
|
find_package(PNG REQUIRED)
|
|
target_link_libraries(reminecraftpe PNG::PNG)
|
|
endif()
|
|
|
|
# SDL
|
|
if(TARGET SDL2::SDL2main)
|
|
target_link_libraries(reminecraftpe SDL2::SDL2main)
|
|
endif()
|
|
|
|
# WASM
|
|
if(EMSCRIPTEN)
|
|
target_link_options(reminecraftpe PRIVATE -Wno-pthreads-mem-growth)
|
|
target_link_options(reminecraftpe PRIVATE -sALLOW_MEMORY_GROWTH=1)
|
|
# Export Resize Function
|
|
target_link_options(reminecraftpe PRIVATE -sEXPORTED_FUNCTIONS=_main,_resize_from_js -sEXPORTED_RUNTIME_METHODS=ccall)
|
|
endif()
|
|
|
|
# Assets
|
|
if(EMSCRIPTEN)
|
|
target_link_options(reminecraftpe PRIVATE --use-preload-plugins --preload-file "${CMAKE_CURRENT_SOURCE_DIR}/assets@/assets")
|
|
elseif(NOT EXISTS "${CMAKE_CURRENT_BINARY_DIR}/assets")
|
|
file(CREATE_LINK "${CMAKE_CURRENT_SOURCE_DIR}/assets" "${CMAKE_CURRENT_BINARY_DIR}/assets" SYMBOLIC)
|
|
endif()
|