Skip to content

krupkat/multiblend

Repository files navigation

tests clang-format clang-tidy

Multiblend

Fork of multiblend: http://horman.net/multiblend/

Multiblend 2.0 (c) 2021 David Horman

With modifications (c) 2023 Tomas Krupka

Changes

Changes from version 2.0rc5:

  • Added CMake + isolated the algorithm in a cmake target
    • Translation units: #3
    • Separate algorithm: #4
    • Cmake target: #17
  • Added CI with tests, clang-format and clang-tidy
  • Fixed memory leaks
  • Replaced logging with spdlog
    • Spdlog library + exceptions: #18
  • Replaced multi threading with threadpool
    • Threadpool library: #19
    • Remove global threadpool: #22
  • Further cleanup
    • Namespaces: #5
    • Member naming: #6
    • Remove macros: #8
    • Disable MapAlloc: #20
    • C++ memory alignment: #21
  • Non x86 support
    • SIMDe integration: #25

Build

Requires CMake 3.21 and a C++20 compiler. Use the included sh scripts on Linux and the ps1 scripts on Windows. First download vcpkg:

./misc/get_vcpkg.sh

Regular build:

./misc/build.sh

Linux / Mac only:

Build with address sanitizer:

./misc/asan_build.sh

Build with thread sanitizer:

./misc/tsan_build.sh

Test requirements

Python + pip

Library integration

Check out Xpano for an example of integrating the Multiblend library in your C++ project.

Example results

https://discuss.pixls.us/t/xpano-0-15-0-multiblend-integration