67 Commits

Author SHA1 Message Date
Tom Finegan
e4e34b0c63
Draco v1.5.4 release. (#934) 2022-10-27 11:41:29 -07:00
Tom Finegan
c0b57c1b6e
Add missing include file to build. (#913)
/compression/attributes/attributes_decoder_interface.h was omitted,
which broke Bazel builds.

Fixes: https://github.com/google/draco/issues/912
2022-07-21 12:52:41 -07:00
Tom Finegan
1af95a20b8
Draco v1.5.3 release. 2022-07-06 19:40:17 -07:00
SpaceIm
7109fbee87
cmake: Support modernized import of Draco via draco::draco
This a refactoring of the CMake config file to follow best practices:

- A draco-targets.cmake is generated with install(EXPORT ...), and included in 
  draco-config.cmake.
- For users consuming Draco with add_subdirectory(), a draco::draco alias is provided.
- Removed find-draco.cmake-- CMake couldn't use it anyway due to the file name
  not matching CMake expectations for a find script.

Note: this also removes the previous methods of hardcoding the C++ standard in
the Draco build to C++11. Instead of direct manipulation of CMAKE_CXX_STANDARD
target_compile_features() is used. External projects consuming Draco should now
be able to set the standard to a newer version.
2022-04-13 11:00:01 -07:00
Raymond Hulha
befe2d8809
Add binary STL support. (#802)
Includes support for binary STL and some basic tests.
2022-03-25 14:14:33 -07:00
Tom Finegan
7d62f1f26f
Disable optimizations for gltf_decoder.cc in MSVC builds. (#829)
Not really sure who is to blame, but in optimized builds from MSVC
gltf_decoder.cc appears to be getting garbage values back
from TinyGLTF when it parses the materials for
testdata/.../three_meshes_two_materials_one_no_material.gltf

Since there's no certainty about whether this is limited to this
particular file, just disable optimizations for
src/draco/io/gltf_decoder.cc in all MSVC build configurations.
2022-03-10 17:51:38 -08:00
Tom Finegan
34c693fe78
Add transcoder testing to Draco's Github CI tests. (#821)
This enabled CI testing of transcoder configs and includes a few minor
Windows-only bug fixes. Note that this adds flags to skip 
GltfDecoderTest.ThreeMeshesOneNoMaterialMesh for Windows 
MSVC CI builds. See https://github.com/google/draco/issues/826 for
details.

Windows specific updates (these do impact non-Windows builds, but
are essentially a no-op there):
- Use a local dupe of a constant to avoid DLL linkage issues on Windows
  in the GLTF encoder test..
- Define DRACO_PI to avoid M_PI and entertaining include ordering
  issues related to _USE_MATH_DEFINES and interactions between
  <cmath> and <math.h> on Windows (fun include guards and order
  related things). This is done in core/constants.h.
2022-03-03 10:08:03 -08:00
Tom Finegan
9522c22a74
Draco v1.5.1 release. (#812) 2022-02-15 17:13:23 -08:00
Tom Finegan
65715581da
Draco v1.5.0 release. (#779) 2021-12-09 11:26:09 -08:00
Tom Finegan
931bafe578
draco: Improve installation and packaging support.
- Fixed omission of draco_version.h when installed in static
  configurations.
- Remove DracoConfig.cmake: it was broken and we actually use
  draco-config.cmake.
- Update FindDraco.cmake so it actually has a chance of working
  properly. Fixed usage of find_path() and subsequent related errors.
- Correct the usage of CMakePackageConfigHelpers in installation target setup
  and the config template.
- Add a CMake version file.
- Normalize the Draco variables exposed in CMake.
  - draco_FOUND -> DRACO_FOUND
  - DRACO_INCLUDE_DIRS, draco_INCLUDE_DIRS -> DRACO_INCLUDE_DIR
  - DRACO_LIBRARIES, draco_LIBRARIES -> DRACO_LIBRARY
  - DRACO_LIBRARY_DIRS, draco_LIBRARY_DIRS -> DRACO_LIBRARY_DIR
  - draco_VERSION_STRING -> DRACO_VERSION
- Use full path variants of GNUInstallDirs variables to init our
  install paths.

Fixes https://github.com/google/draco/issues/764

* Add install() for draco-version.cmake.
2021-12-06 09:58:05 -08:00
Tom Finegan
9f0e5c5f15 Draco v1.4.3 2021-10-12 12:55:36 -07:00
Quim Muntal
253059c639
Support building mingw static and dynamic at the same time (#677)
Restrict the behavior disallowing the build of both libraries to MSVC. The mingw CMake generators
handle the situation properly:

- Shared library suffix: .dll
- Import library suffix: .a.dll
- Static library suffix: .a
2021-02-04 12:13:18 -08:00
RichardTea
3ea441ec1c
Set VERSION and SOVERSION for all targets as appropriate (#676)
Set VERSION property for non-static library targets and executable targets, and set
SOVERSION for non-MSVC targets.
2021-02-03 13:57:22 -08:00
Tom Finegan
8a979f79a5 Draco v1.4.0 2020-12-01 13:01:33 -08:00
Tom Finegan
74dbda9eb1 draco: Add dummy sources to draco, dracodec, and dracoenc.
This is a workaround for two issues with CMake's Xcode generator:
- Setting the LINK_LANGUAGE property does not work.
- Library targets that only combine other object files do not build in
  Xcode because of some other issue in the generator. They don't fail
  at build time: Xcode just does not build them.

The combined behavior of the two issues forces addition of dummy source
files to the listed targets.

Fixes issue https://github.com/google/draco/issues/593
2020-04-02 08:45:39 -07:00
Tom Finegan
b7fb7e5fba draco: StdioFileReader/Writer gcc 4.9/clang < 4 compatibility fix.
Fixes https://github.com/google/draco/issues/582
2020-03-03 15:00:59 -08:00
Frank Galligan
571d547d36 Update to version 1.3.6 2020-03-03 10:35:26 -08:00
Tom Finegan
823b536243 Add workaround for rvalue reference overload issues in gcc 4.8. 2019-09-06 11:00:48 -07:00
Tom Finegan
725d689e84 draco cmake: Require the EMSCRIPTEN environment variable.
Avoid a confusing failure mode for javascript builds by requiring that
 points at an existing directory. Prevents failure of custom
commands late in the configure and build processes.
2019-08-28 10:10:46 -07:00
Tom Finegan
935f182bb3 draco js: Silence binyaren warning
ELIMINATE_DUPLICATE_FUNCTIONS=1 is no longer required: it is now a default.
2019-08-27 10:48:11 -07:00
Tom Finegan
5bf650555c draco cmake: Defer windows shared lib check until after plugin checks.
We rely upon CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS for windows DLL
support, but we must defer the BUILD_SHARED_LIBS check until after the
plugin args are checked since the plugin checks can enable BUILD_SHARED_LIBS.

Without this change Visual Studio will not create import libs for the draco DLLs,
and that breaks the build.
2019-07-10 12:10:22 -07:00
Andreas Atteneder
597bfcd4f3 Fix: Unity requires static libs for iOS. 2019-07-03 08:41:24 +02:00
Tom Finegan
5a999117b1 draco cmake: Run cmake-format on all CMake files. 2019-06-21 10:47:49 -07:00
Igor Vytyaz
8833cf878e Updated snapshot to 1.3.5
* Added option to build Draco for Universal Scene Description
* Code cleanup
* Bug fixes
2019-01-31 10:18:06 -08:00
Tom Finegan
9648d72f4d Restore IE support.
Closes https://github.com/google/draco/issues/466
2018-09-26 08:52:07 -07:00
Frank Galligan
063994c362 Update snapshot to 1.3.4 2018-08-17 12:01:27 -07:00
Tom Finegan
5c15f38641 Fix NMake builds with BUILD_SHARED_LIBS enabled.
Fixes https://github.com/google/draco/issues/328
2018-08-14 15:21:52 -07:00
Ondrej Stava
c75a03b051 Updated snapshot to 1.3.3
* Added ExpertEncoder to the Javascript API
  * Allows developers to set quantization options per attribute id
* Bug fixes
2018-06-15 15:59:50 -07:00
Tom Finegan
83cbf6c50d
Merge pull request #405 from ggetz/ie-compatibility-js-decoder
Add a flag for cmake to generate IE11 compatible JS decoder modules
2018-06-08 08:45:29 -07:00
Ondrej Stava
79774fec74 Updated snapshot to 1.3.2
- Bug fixes
2018-06-05 16:09:30 -07:00
Tom Finegan
e813141cdf Add a flag that allows building standard targets in Emscripten.
Downstream users sometimes need the standard Draco library targets,
even when building in Emscripten. Add the flag ENABLE_JS_GLUE, which
defaults to ON. When turned OFF, the standard Draco library targets
will still be built within an Emscripten build.

Also do some whitespace clean up while working in CMakeLists.txt.

https://github.com/google/draco/issues/407
2018-06-01 15:21:41 -07:00
ggetz
ee55b3b654 Add a flag for cmake to generate IE11 compatible js decoder modules 2018-05-25 11:31:07 -04:00
Tom Finegan
d4675cf0d1 cmake: Fix mac build
Clang @ Apple LLVM version 9.0.0 (clang-900.0.39.2) fails to
link when SOVERSION is set for bundles. Don't set it on Apple
targets.
2018-05-24 10:27:52 -07:00
Tom Finegan
a37163c368
Merge pull request #395 from fdefelici/maya_plugin
Maya Plugin v0.0.1
2018-05-24 10:27:19 -07:00
Tom Finegan
11dc17315e Don't set SOVERSION property for ios/macos unity bundle.
It causes a link error like the following:
clang: error: invalid argument '-compatibility_version 1.0.0' only allowed with '-dynamiclib'

Fixes: https://github.com/google/draco/issues/393
2018-05-18 11:04:26 -07:00
Federico De Felici
96a1a3c276 Added a encode feature on the c++ wrapper. Added more tests and some refactoring 2018-05-13 09:52:45 +02:00
Federico De Felici
e06d8f217f added maya plugin config for cmake and sources 2018-05-11 09:11:23 +02:00
tomfinegan
1672f9213c
Merge pull request #340 from mlamarre/fix_gcc_shared_libs
Fix BUILD_SHARED_LIBS=ON GCC build
2018-04-26 09:01:49 -07:00
Ondrej Stava
4b2788bb56 Version 1.3.0 release
* Improved kD-tree based point cloud encoding
  * Now applicable to point clouds with any number of attributes
  * Support for all integer attribute types and quantized floating point types
* Improved mesh compression up to 10% (on average ~2%)
  * For meshes, the 1.3.0 bitstream is fully compatible with 1.2.x decoders
* Improved Javascript API
  * Added support for all signed and unsigned integer types
  * Added support for point clouds to our Javascript encoder API
* Added support for integer properties to the PLY decoder
* Bug fixes
2018-04-18 16:14:58 -07:00
Mathieu Lamarre
be7fc68fbf Fix BUILD_SHARED_LIBS=ON GCC build 2018-02-03 11:26:27 -05:00
Ondrej Stava
3faff31654 Updated snapshot to 1.2.5
* On average 10% faster decoding
* Improved Javascript metadata API
* Bug fixes
2018-01-12 14:44:54 -08:00
Ondrej Stava
5186ec2f7a Updated snapshot to 1.2.4
* Up to 20% faster decoding
* Added support for integer attributes to our Javascript Encoder
* Fixed issues with THREE.DracoLoader not releasing memory associated
with the Draco module
* OBJ decoder can now be used to parse pure point clouds
* Added Unity plugins to support runtime loading and design-time
importing of encoded Draco files
2017-12-13 12:24:57 -08:00
tomfinegan
b83f22b16b
Increase optimization level in release builds.
When users pass turn on ENABLE_EXTRA_SPEED at CMake generation, use -O3
in gcc like compilers, and /Ox in MSVC.
2017-11-29 08:58:49 -08:00
eddiz
f4f5c81a56
Update CMakeLists.txt
updated compiler setting for extra speed-up as a follow-up of the pull discussion
2017-11-21 14:22:01 +01:00
eddiz
890ecc27cb
Optional Compiler Optimization
Enable all Compile Optimization by setting according compiler flags. (Visual Studio tested, gcc and other should work properly, but untested)
2017-11-19 22:31:21 +01:00
Ondrej Stava
a7c0d80a71 Update Draco to 1.2.1
* Javascript and WebAssembly decoder size reduced by 35%
* Added specialized Javascript and Webassembly decoders for GLTF (size
reduction about 50% compared to the previous version)
2017-11-13 14:31:24 -08:00
Ondrej Stava
dc28e6a2ea Updated Draco to 1.1.0
The latest version of Draco brings a number of new compression
enhancements for even smaller models:
- Improved compression
  - Up to 40% better compression of normals
  - Up to 5% better compression for models with multiple attributes
- Faster decode speeds
  - 30% faster decoding for models with multiple attributes for lower compression levels 4 and below
    - Note: Decreases compression by 10%.
- Encoding of metadata to .obj (e.g. Draco can preserve material or sub-object names)
- Security fixes
2017-09-11 15:38:19 -07:00
Tom Finegan
f8059008b3 Reduce CMake minimum version to 3.2. 2017-09-07 07:22:28 -07:00
Frank Galligan
c61ddb67f3 Update Draco snapshot.
-Increase version to 1.0.1
-Update Javascript decode timing example
-Fix async creation of DracoDecoderModule
-fixes wasm parallel decoding
-Introduce base class for geometric normal predictor
-Added integer attribute interface to JavaScript decoder
-Move loading Draco decoder into three.js Draco loader
-Add compiler launcher support to CMake build
-Add sanitizer support via CMake build
-Check we are not reading past the end of the attribute buffer
2017-08-21 16:04:57 -07:00
tomfinegan
c8b6219ff9 Merge pull request #170 from nyue/master
Clean up superfluous directories draco/src in include
2017-08-07 12:17:04 -07:00