Skip to content

Conversation

@Geo-fortune
Copy link
Owner

update

Daniil Nikulin and others added 30 commits June 8, 2020 18:30
fix not supported file system cases
Added reading little endian functions
Support for importing Colmap SfM models
See issue #515 instead of 2*angle we actually need angle^2.
Fix counting deleted tracks, closes #528
Fix Travis build issues
andre-schulz and others added 30 commits May 10, 2024 11:18
Fixes compilation for CPUs that don't support SSE2/3.

Fixes #572
This rename prevents an unintended include of util/strings.h from the C library on some system comfigurations. This fixes #569.
gtest, libjpeg/libjpeg-turbo, libpng and libtiff provide pkg-config
files which make compiling and linking against them easier.

This is needed for running CI on macOS with GitHub Actions in a later
commit.
OpenGL on macOS was deprecated in macOS 10.14 [1]. Silence the warnings
because the OpenGL code won't be replaced anytime soon if at all.

[1] https://developer.apple.com/library/archive/documentation/GraphicsImaging/Conceptual/OpenGL-MacProgGuide/opengl_intro/opengl_intro.html
GoogleTest requires C++14 since 1.13.0 (see release notes [1]).

This is required for running CI on macOS with GitHub Actions in a
later commit because Homebrew will install GoogleTest 1.15.2 [2].

[1] https://github.com/google/googletest/releases/tag/v1.13.0
[2] https://formulae.brew.sh/formula/googletest
While setting up GitHub Actions, SurfTest.TestHaarWaveletsLargerKernel
failed in the following CI environments:
- clang version 10.0.0-4ubuntu,             Ubuntu 20.04, x86_64
- Ubuntu clang version 14.0.0-1ubuntu1.1,   Ubuntu 22.04, x86_64
- Ubuntu clang version 18.1.3 (1ubuntu1),   Ubuntu 24.04, x86_64
- Apple clang 14.0.0 (clang-1400.0.29.202), macOS 12,     x86_64
- Apple clang 15.0.0 (clang-1500.0.40.1),   macOS 13,     x86_64

Output of the Ubuntu 20.04 and 22.04 CI runners that failed:
------------------------------------------------------------
[ RUN      ] SurfTest.TestHaarWaveletsLargerKernel
sfm/gtest_surf.cc:151: Failure
Expected equality of these values:
  6.0f
    Which is: 6
  dy
    Which is: 6
[  FAILED  ] SurfTest.TestHaarWaveletsLargerKernel (0 ms)

Output of the Ubuntu 24.04, macOS 12 and 13 CI runners that failed:
-------------------------------------------------------------------
[ RUN      ] SurfTest.TestHaarWaveletsLargerKernel
sfm/gtest_surf.cc:151: Failure
Expected equality of these values:
  6.0f
    Which is: 6
  dy
    Which is: 6.00000048

[  FAILED  ] SurfTest.TestHaarWaveletsLargerKernel (0 ms)

Fixed by replacing EXPECT_EQ with EXPECT_FLOAT_EQ which verifies that
the values are approximately equal within 4 ULPs [1].

[1] https://google.github.io/googletest/reference/assertions.html#floating-point
Behavior of parsing doubles from streams is different in LLVM's libc++
compared to GCC's libstdc++, see [1]. This causes
StringTest.StringConversionTest to fail when compiling against LLVM's
libc++:

  [ RUN      ] StringTest.StringConversionTest
  util/gtest_string.cc:48: Failure
  Expected equality of these values:
    10.1234
    util::string::convert<double>("10.1234asfd", false)
      Which is: 0

  [  FAILED  ] StringTest.StringConversionTest (0 ms)

This mainly affects macOS because it defaults to libc++.

The behavior of libstdc++ is what makes most sense here because
std::stringstream::operator>>() will call std::strtod() internally
which will extract 10.1234 from the string.

This is fixed by implementing a workaround for libc++.

[1] https://www.github.com/llvm/llvm-project/issues/18156
The Travis CI build in this repository no longer works but GitHub provides
its own CI/CD infrastructure which is free for public repositories, quote
from [1]:

  "GitHub Actions usage is free for standard GitHub-hosted runners in public
   repositories [...]"

The list of standard GitHub-hosted runners for public repositories can
be found at the following URL:

  https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners#standard-github-hosted-runners-for-public-repositories

[1] https://docs.github.com/en/billing/managing-billing-for-github-actions/about-billing-for-github-actions
Travis CI has been replaced by GitHub Actions.
Apparently, vsprintf() is deprecated on macOS. Fixes the following
compiler warning when compiling with Apple clang 14.0.0 (clang-1400.0.29.202)
on macOS 12:

  clang++ -Wall -Wextra -Wundef -pedantic -march=native -funsafe-math-optimizations -fno-math-errno -std=c++14 -g -O3 -pthread -DGL_SILENCE_DEPRECATION=1 -fPIC -I../../libs `pkg-config --cflags libjpeg` `pkg-config --cflags libpng` `pkg-config --cflags libtiff-4`  -c -o image_io.o image_io.cc
  image_io.cc:634:7: warning: 'vsprintf' is deprecated: This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use vsnprintf(3) instead. [-Wdeprecated-declarations]
      ::vsprintf(msg, fmt, ap);
        ^
  /Applications/Xcode_14.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/stdio.h:207:1: note: 'vsprintf' has been explicitly marked deprecated here
Found by Apple clang version 14.0.0 (clang-1400.0.29.202) on macOS 12:

  bundle_io.cc:743:9: warning: variable 'num_points_3d' set but not used [-Wunused-but-set-variable]
…dNormal()

Found by Clang 17.0.6 on Gentoo Linux:

  patch_optimization.cc:316:17: warning: variable 'row' set but not used [-Wunused-but-set-variable]
    316 |     std::size_t row = 0;
        |                 ^
Replace Travis CI with GitHub Actions
Use sizeof() instead of hardcoding destination buffer size when calling
vsnprintf().

Fixes: 247ea30 ("MVE: Replace vsprintf() with vsnprintf()")
…obust

MVE: Don't hardcode vsnprintf() destination buffer size
The C++ version of MVE was raised to C++14 in a previous commit and UMVE
was missed.

Fixes: 3879e44 ("Raise C++ version to C++14")
UMVE: Raise C++ version to C++14
The macOS 12 CI environment has apparently been deprecated since 3rd
December 2024, see:
actions/runner-images#10721
Implemented according to official glTF 2.0 spec:
https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html

Tested by validating the resulting GLB with glTF Validator:
https://github.khronos.org/glTF-Validator/

Fixes #571
MVE: Implement Binary glTF 2.0 mesh export
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants