[Bf-blender-cvs] [4bad4bfc6ae] master: glTF: add Draco shared library for mesh compression.

Benjamin Schmithüsen noreply at git.blender.org
Thu Apr 11 12:06:17 CEST 2019


Commit: 4bad4bfc6ae5a81c44038cb1259f44befbb3afe0
Author: Benjamin Schmithüsen
Date:   Thu Apr 11 11:26:23 2019 +0200
Branches: master
https://developer.blender.org/rB4bad4bfc6ae5a81c44038cb1259f44befbb3afe0

glTF: add Draco shared library for mesh compression.

Draco is added as a library under extern/ and builds a shared library that is
installed into the Python site-packages. This is then loaded by the glTF add-on
to do mesh compression.

Differential Revision: https://developer.blender.org/D4501

===================================================================

M	CMakeLists.txt
M	build_files/cmake/config/blender_full.cmake
M	build_files/cmake/config/blender_lite.cmake
M	build_files/cmake/config/blender_release.cmake
M	extern/CMakeLists.txt
A	extern/draco/CMakeLists.txt
A	extern/draco/dracoenc/AUTHORS
A	extern/draco/dracoenc/CMakeLists.txt
A	extern/draco/dracoenc/LICENSE
A	extern/draco/dracoenc/cmake/DracoConfig.cmake
A	extern/draco/dracoenc/cmake/FindDraco.cmake
A	extern/draco/dracoenc/cmake/compiler_flags.cmake
A	extern/draco/dracoenc/cmake/compiler_tests.cmake
A	extern/draco/dracoenc/cmake/draco_features.cmake
A	extern/draco/dracoenc/cmake/draco_test_config.h.cmake
A	extern/draco/dracoenc/cmake/draco_version.cc.cmake
A	extern/draco/dracoenc/cmake/draco_version.h.cmake
A	extern/draco/dracoenc/cmake/msvc_runtime.cmake
A	extern/draco/dracoenc/cmake/sanitizers.cmake
A	extern/draco/dracoenc/cmake/toolchains/arm-ios-common.cmake
A	extern/draco/dracoenc/cmake/toolchains/arm64-android-ndk-libcpp.cmake
A	extern/draco/dracoenc/cmake/toolchains/arm64-ios.cmake
A	extern/draco/dracoenc/cmake/toolchains/arm64-linux-gcc.cmake
A	extern/draco/dracoenc/cmake/toolchains/armv7-android-ndk-libcpp.cmake
A	extern/draco/dracoenc/cmake/toolchains/armv7-ios.cmake
A	extern/draco/dracoenc/cmake/toolchains/armv7-linux-gcc.cmake
A	extern/draco/dracoenc/cmake/toolchains/armv7s-ios.cmake
A	extern/draco/dracoenc/cmake/toolchains/x86-android-ndk-libcpp.cmake
A	extern/draco/dracoenc/cmake/toolchains/x86_64-android-ndk-libcpp.cmake
A	extern/draco/dracoenc/cmake/util.cmake
A	extern/draco/dracoenc/src/draco/animation/keyframe_animation.cc
A	extern/draco/dracoenc/src/draco/animation/keyframe_animation.h
A	extern/draco/dracoenc/src/draco/animation/keyframe_animation_decoder.cc
A	extern/draco/dracoenc/src/draco/animation/keyframe_animation_decoder.h
A	extern/draco/dracoenc/src/draco/animation/keyframe_animation_encoder.cc
A	extern/draco/dracoenc/src/draco/animation/keyframe_animation_encoder.h
A	extern/draco/dracoenc/src/draco/animation/keyframe_animation_encoding_test.cc
A	extern/draco/dracoenc/src/draco/animation/keyframe_animation_test.cc
A	extern/draco/dracoenc/src/draco/attributes/attribute_octahedron_transform.cc
A	extern/draco/dracoenc/src/draco/attributes/attribute_octahedron_transform.h
A	extern/draco/dracoenc/src/draco/attributes/attribute_quantization_transform.cc
A	extern/draco/dracoenc/src/draco/attributes/attribute_quantization_transform.h
A	extern/draco/dracoenc/src/draco/attributes/attribute_transform.cc
A	extern/draco/dracoenc/src/draco/attributes/attribute_transform.h
A	extern/draco/dracoenc/src/draco/attributes/attribute_transform_data.h
A	extern/draco/dracoenc/src/draco/attributes/attribute_transform_type.h
A	extern/draco/dracoenc/src/draco/attributes/geometry_attribute.cc
A	extern/draco/dracoenc/src/draco/attributes/geometry_attribute.h
A	extern/draco/dracoenc/src/draco/attributes/geometry_indices.h
A	extern/draco/dracoenc/src/draco/attributes/point_attribute.cc
A	extern/draco/dracoenc/src/draco/attributes/point_attribute.h
A	extern/draco/dracoenc/src/draco/attributes/point_attribute_test.cc
A	extern/draco/dracoenc/src/draco/compression/attributes/attributes_decoder.cc
A	extern/draco/dracoenc/src/draco/compression/attributes/attributes_decoder.h
A	extern/draco/dracoenc/src/draco/compression/attributes/attributes_decoder_interface.h
A	extern/draco/dracoenc/src/draco/compression/attributes/attributes_encoder.cc
A	extern/draco/dracoenc/src/draco/compression/attributes/attributes_encoder.h
A	extern/draco/dracoenc/src/draco/compression/attributes/kd_tree_attributes_decoder.cc
A	extern/draco/dracoenc/src/draco/compression/attributes/kd_tree_attributes_decoder.h
A	extern/draco/dracoenc/src/draco/compression/attributes/kd_tree_attributes_encoder.cc
A	extern/draco/dracoenc/src/draco/compression/attributes/kd_tree_attributes_encoder.h
A	extern/draco/dracoenc/src/draco/compression/attributes/kd_tree_attributes_shared.h
A	extern/draco/dracoenc/src/draco/compression/attributes/linear_sequencer.h
A	extern/draco/dracoenc/src/draco/compression/attributes/mesh_attribute_indices_encoding_data.h
A	extern/draco/dracoenc/src/draco/compression/attributes/normal_compression_utils.h
A	extern/draco/dracoenc/src/draco/compression/attributes/point_d_vector.h
A	extern/draco/dracoenc/src/draco/compression/attributes/point_d_vector_test.cc
A	extern/draco/dracoenc/src/draco/compression/attributes/points_sequencer.h
A	extern/draco/dracoenc/src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_constrained_multi_parallelogram_decoder.h
A	extern/draco/dracoenc/src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_constrained_multi_parallelogram_encoder.h
A	extern/draco/dracoenc/src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_constrained_multi_parallelogram_shared.h
A	extern/draco/dracoenc/src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_data.h
A	extern/draco/dracoenc/src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_decoder.h
A	extern/draco/dracoenc/src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_encoder.h
A	extern/draco/dracoenc/src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_geometric_normal_decoder.h
A	extern/draco/dracoenc/src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_geometric_normal_encoder.h
A	extern/draco/dracoenc/src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_geometric_normal_predictor_area.h
A	extern/draco/dracoenc/src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_geometric_normal_predictor_base.h
A	extern/draco/dracoenc/src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_multi_parallelogram_decoder.h
A	extern/draco/dracoenc/src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_multi_parallelogram_encoder.h
A	extern/draco/dracoenc/src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_parallelogram_decoder.h
A	extern/draco/dracoenc/src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_parallelogram_encoder.h
A	extern/draco/dracoenc/src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_parallelogram_shared.h
A	extern/draco/dracoenc/src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_tex_coords_decoder.h
A	extern/draco/dracoenc/src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_tex_coords_encoder.h
A	extern/draco/dracoenc/src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_tex_coords_portable_decoder.h
A	extern/draco/dracoenc/src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_tex_coords_portable_encoder.h
A	extern/draco/dracoenc/src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_tex_coords_portable_predictor.h
A	extern/draco/dracoenc/src/draco/compression/attributes/prediction_schemes/prediction_scheme_decoder.h
A	extern/draco/dracoenc/src/draco/compression/attributes/prediction_schemes/prediction_scheme_decoder_factory.h
A	extern/draco/dracoenc/src/draco/compression/attributes/prediction_schemes/prediction_scheme_decoder_interface.h
A	extern/draco/dracoenc/src/draco/compression/attributes/prediction_schemes/prediction_scheme_decoding_transform.h
A	extern/draco/dracoenc/src/draco/compression/attributes/prediction_schemes/prediction_scheme_delta_decoder.h
A	extern/draco/dracoenc/src/draco/compression/attributes/prediction_schemes/prediction_scheme_delta_encoder.h
A	extern/draco/dracoenc/src/draco/compression/attributes/prediction_schemes/prediction_scheme_encoder.h
A	extern/draco/dracoenc/src/draco/compression/attributes/prediction_schemes/prediction_scheme_encoder_factory.cc
A	extern/draco/dracoenc/src/draco/compression/attributes/prediction_schemes/prediction_scheme_encoder_factory.h
A	extern/draco/dracoenc/src/draco/compression/attributes/prediction_schemes/prediction_scheme_encoder_interface.h
A	extern/draco/dracoenc/src/draco/compression/attributes/prediction_schemes/prediction_scheme_encoding_transform.h
A	extern/draco/dracoenc/src/draco/compression/attributes/prediction_schemes/prediction_scheme_factory.h
A	extern/draco/dracoenc/src/draco/compression/attributes/prediction_schemes/prediction_scheme_interface.h
A	extern/draco/dracoenc/src/draco/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_canonicalized_decoding_transform.h
A	extern/draco/dracoenc/src/draco/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_canonicalized_encoding_transform.h
A	extern/draco/dracoenc/src/draco/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_canonicalized_transform_base.h
A	extern/draco/dracoenc/src/draco/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_canonicalized_transform_test.cc
A	extern/draco/dracoenc/src/draco/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_decoding_transform.h
A	extern/draco/dracoenc/src/draco/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_encoding_transform.h
A	extern/draco/dracoenc/src/draco/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_transform_base.h
A	extern/draco/dracoenc/src/draco/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_transform_test.cc
A	extern/draco/dracoenc/src/draco/compression/attributes/prediction_schemes/prediction_scheme_wrap_decoding_transform.h
A	extern/draco/dracoenc/src/draco/compression/attributes/prediction_schemes/prediction_scheme_wrap_encoding_transform.h
A	extern/draco/dracoenc/src/draco/compression/attributes/prediction_schemes/prediction_scheme_wrap_transform_base.h
A	extern/draco/dracoenc/src/draco/compression/attributes/sequential_attribute_decoder.cc
A	extern/draco/dracoenc/src/draco/compression/attributes/sequential_attribute_decoder.h
A	extern/draco/dracoenc/src/draco/compression/attributes/sequential_attribute_decoders_controller.cc
A	extern/draco/dracoenc/src/draco/compression/attributes/sequential_attribute_decoders_controller.h
A	extern/draco/dracoenc/src/draco/compression/attributes/sequential_attribute_encoder.cc
A	extern/draco/dracoenc/src/draco/compression/attributes/sequential_attribute_encoder.h
A	extern/draco/dracoenc/src/draco/compression/attributes/sequential_attribute_encoders_controller.cc
A	extern/draco/dracoenc/src/draco/compression/attributes/sequential_attribute_encoders_controller.h
A	extern/draco/dracoenc/src/draco/compression/attributes/sequential_integer_attribute_decoder.cc
A	extern/draco/dracoenc/src/draco/compression/attributes/sequential_integer_attribute_decoder.h
A	extern/draco/dracoenc/src/draco/compression/attributes/sequential_integer_attribute_encoder.cc
A	extern/draco/dracoenc/src/draco/compression/attributes/sequential_integer_attribute_encoder.h
A	extern/draco/dracoenc/src/draco/compression/attributes/sequential_integer_attribute_encoding_test.cc
A	extern/draco/dracoenc/src/draco/compression/attributes/sequential_normal_attribute_decoder.cc
A	extern/draco/dracoenc/src/draco/compression/attributes/sequential_normal_attribute_decoder.h
A	extern/draco/dracoenc/src/draco/compression/attributes/sequential_normal_attribute_encoder.cc
A	extern/draco/dracoenc/src/draco/compression/attributes/sequential_normal_attribute_encoder.h
A	extern/draco/dracoenc/src/draco/compression/attributes/sequential_quantization_attribute_decoder.cc
A	extern/draco/dracoenc/src/draco/compression/attributes/sequential_quantization_attribute_decoder.h
A	extern/draco/dracoenc/src/draco/compression/attributes/sequential_quantization_attribute_encoder.cc
A	extern/draco/dracoenc/src/draco/compression/attributes/sequential_quantization_attribute_encoder.h
A	extern/draco/dracoenc/src/draco/compression/bit_coders/adaptive_rans_bit_coding_shared.h
A	extern/draco/dracoenc/src/draco/compression/bit_coders/adaptive_rans_bit_decoder.cc
A	extern/draco/dracoenc/src/draco/compression/bit_coders/adaptive_rans_bit_decoder.h
A	extern/draco/dracoenc/src/draco/compression/bit_coders/adaptive_rans_bit_encoder.cc
A	extern/draco/dracoenc/src/draco/compression/bit_coders/adaptive_rans_bit_encoder.h
A	extern/draco/dracoenc/src/draco/compression/bit_coders/direct_bit_decoder.cc
A	extern/draco/dracoenc/src/draco/compression/bit_coders/direct_bit_decoder.h
A	extern/draco/dracoenc/src/draco/compression/bit_coders/direct_bit_encoder.cc
A	extern/draco/dracoenc/src/draco/compression/bit_coders/direct_bit_encoder.h
A	extern/draco/dracoenc/src/draco/compression/bit_coders/folded_integer_bit_decoder.h
A	extern/draco/dracoenc/src/draco/compression/bit_coders/folded_integer_bit_encoder.h
A	extern/draco/dracoenc/src/draco/compression/bit_coders/rans_bit_decoder.cc
A	extern/draco/dracoenc/src/draco/compression/bit_coders/rans_bit_decoder.h
A	extern/draco/dracoenc/src/draco/compression/bit_coders/rans_bit_encoder.cc
A	extern/draco/dracoenc/src/draco/compression/bit_coders/rans_bit_encoder.h
A	extern/draco/dracoenc/src/draco/compression/bit_coders/rans_coding_test.cc
A	extern/draco/dracoenc/src/draco/compression/bit_coders/symbol_bit_decoder.cc
A	extern/draco/dracoenc/src/draco/compression/bit_coders/symbol_bit_decoder.h
A	extern/draco/dracoenc/src/draco/compression/bit_coders/symbol_bit_encoder.cc
A	extern/draco/dracoenc/src/draco/compression/bit_coders/symbol_bit_encoder.h
A	extern/draco/dracoenc/src/draco/compression/config/compression_shared.h
A	extern/draco/dracoenc/src/draco/compression/config/decoder_options.h
A	extern/draco/dracoenc/src/draco/compression/config/decoder_options_test.cc
A	extern/draco/dracoenc/src/draco/compression/config/draco_options.h
A	extern/draco/dracoenc/src/draco/compression/config/encoder_options.h
A	extern/draco/dracoenc/src/draco/compression/config/encoding_features.h
A	extern/draco/dracoenc/src/draco/compression/decode.cc
A	extern/draco/dracoenc/src/draco/compression/decode.h
A	extern/draco/dracoenc/src/draco/compression/decode_test.cc
A	extern/draco/dracoenc/src/draco/compression/encode.cc
A	extern/draco/dracoenc/src/draco/compression/encode.h
A	extern/draco/dracoenc/src/draco/compression/encode_base.h
A	extern/draco/dracoenc/src/draco/compression/encode_test.cc
A	extern/draco/dracoenc/src/draco/compression/entropy/ans.h
A	extern/draco/dracoenc/src/draco/compression/entropy/rans_symbol_coding.h
A	extern/draco/dracoenc/src/draco/compression/entropy/rans_symbol_decoder.h
A	extern/draco/dracoenc/src/draco/compression/entropy/rans_symbol_encoder.h
A	extern/draco/dracoenc/src/draco/compression/entropy/shannon_entropy.cc
A	extern/draco/dracoenc/src/draco/compression/entropy/shannon_entropy.h
A	extern/draco/dracoenc/src/draco/compression/entropy/shannon_entropy_test.cc
A	extern/draco/dracoenc/src/draco/compression/entropy/symbol_coding_test.cc
A	extern/draco/dracoenc/src/draco/compression/entropy/symbol_decoding.cc
A	extern/draco/dracoenc/src/draco/compression/entropy/symbol_decoding.h
A	extern/draco/dracoenc/src/draco/compression/entropy/symbol_encoding.cc
A	extern/draco/dracoenc/src/draco/compression/entropy/symbol_encoding.h
A	extern/draco/dracoenc/src/draco/compression/expert_encode.cc
A	extern/draco/dracoenc/src/draco/compression/expert_encode.h
A	extern/draco/dracoenc/src/draco/compression/mesh/mesh_decoder.cc
A	extern/draco/dracoenc/src/draco/compression/mesh/mesh_decoder.h
A	extern/draco/dracoenc/src/draco/compression/mesh/mesh_decoder_helpers.h
A	extern/draco/dracoenc/src/draco/compression/mesh/mesh_edgebreaker_decoder.cc
A	extern/draco/dracoenc/src/draco/compression/mesh/mesh_edgebreaker_decoder.h
A	extern/draco/dracoenc/src/draco/compression/mesh/mesh_edgebreaker_decoder_impl.cc
A	extern/draco/dracoenc/src/draco/compression/mesh/mesh_edgebreaker_decoder_impl.h
A	extern/draco/dracoenc/src/draco/compression/mesh/mesh_edgebreaker_decoder_impl_interface.h
A	extern/draco/dracoenc/src/draco/compression/mesh/mesh_edgebreaker_encoder.cc
A	extern/draco/dracoenc/src/draco/compression/mesh/mesh_edgebreaker_encoder.h
A	extern/draco/dracoenc/src/draco/compression/mesh/mesh_edgebreaker_encoder_impl.cc
A	extern/draco/dracoenc/src/draco/compression/mesh/mesh_edgebreaker_encoder_impl.h
A	extern/draco/dracoenc/src/draco/compression/mesh/mesh_edgebreaker_encoder_impl_interface.h
A	extern/draco/dracoenc/src/draco/compression/mesh/mesh_edgebreaker_encoding_test.cc
A	extern/draco/dracoenc/src/draco/compression/mesh/mesh_edgebreaker_shared.h
A	extern/draco/dracoenc/src/draco/compression/mesh/mesh_edgebreaker_traversal_decoder.h
A	extern/draco/dracoenc/src/draco/compression/mesh/mesh_edgebreaker_traversal_encoder.h
A	extern/draco/dracoenc/src/draco/compression/mesh/mesh_edgebreaker_traversal_predictive_decoder.h
A	extern/draco/dracoenc/src/draco/compression/mesh/mesh_edgebreaker_traversal_predictive_encoder.h
A	extern/draco/dracoenc/src/draco/compression/mesh/mesh_edgebreaker_traversal_valence_decoder.h
A	extern/draco/dracoenc/src/draco/compression/mesh/mesh_edgebreaker_traversal_valence_encoder.h
A	extern/draco/dracoenc/src/draco/compression/mesh/mesh_encoder.cc
A	extern/draco/dracoenc/src/draco/compression/mesh/mesh_encoder.h
A	extern/draco/dracoenc/src/draco/compression/mesh/mesh_encoder_helpers.h
A	extern/draco/dracoenc/src/draco/compression/mesh/mesh_encoder_test.cc
A	extern/draco/dracoenc/src/draco/compression/mesh/mesh_sequential_decoder.cc
A	extern/draco/dracoenc/src/draco/compression/mesh/mesh_sequential_decoder.h
A	extern/draco/dracoenc/src/draco/compression/mesh/mesh_sequential_encoder.cc
A	extern/draco/dracoenc/src/draco/compression/mesh/mesh_sequential_encoder.h
A	extern/draco/dracoenc/src/draco/compression/mesh/traverser/depth_first_traverser.h
A	extern/draco/dracoenc/src/draco/compression/mesh/traverser/max_prediction_degree_traverser.h
A	extern/draco/dracoenc/src/draco/compression/mesh/traverser/mesh_attribute_indices_encoding_observer.h
A	extern/draco/dracoenc/src/draco/compression/mesh/traverser/mesh_traversal_sequencer.h
A	extern/draco/dracoenc/src/draco/compression/mesh/traverser/traverser_base.h
A	extern/draco/dracoenc/src/draco/compression/point_cloud/algorithms/dynamic_integer_points_kd_tree_decoder.cc
A	extern/draco/dracoenc/src/draco/compression/point_cloud/algorithms/dynamic_integer_points_kd_tree_decoder.h
A	extern/draco/dracoenc/src/draco/compression/point_cloud/algorithms/dynamic_integer_points_kd_tree_encoder.cc
A	extern/draco/dracoenc/src/draco/compression/point_cloud/algorithms/dynamic_integer_points_kd_tree_encoder.h
A	extern/draco/dracoenc/src/draco/compression/point_cloud/algorithms/float_points_tree_decoder.cc
A	extern/draco/dracoenc/src/draco/compression/point_cloud/algorithms/float_points_tree_decoder.h
A	extern/draco/dracoenc/src/draco/compression/point_cloud/algorithms/float_points_tree_encoder.cc
A	extern/draco/dracoenc/src/draco/compression/point_cloud/algorithms/float_points_tree_encoder.h
A	extern/draco/dracoenc/src/draco/compression/point_cloud/algorithms/integer_points_kd_tree_decoder.cc
A	extern/draco/dracoenc/src/draco/compression/point_cloud/algorithms/integer_points_kd_tree_decoder.h
A	extern/draco/dracoenc/src/draco/compression/point_cloud/algorithms/integer_points_kd_tree_encoder.cc
A	extern/draco/dracoenc/src/draco/compression/point_cloud/algorithms/integer_points_kd_tree_encoder.h
A	extern/draco/dracoenc/src/draco/compression/point_cloud/algorithms/point_cloud_compression_method.h
A	extern/draco/dracoenc/src/draco/compression/point_cloud/algorithms/point_cloud_types.h
A	extern/draco/dracoenc/src/draco/compression/point_cloud/algorithms/quantize_points_3.h
A	extern/draco/dracoenc/src/draco/compression/point_cloud/algorithms/queuing_policy.h
A	extern/draco/dracoenc/src/draco/compression/point_cloud/point_cloud_decoder.cc
A	extern/draco/dracoenc/src/draco/compression/point_cloud/point_cloud_decoder.h
A	extern/draco/dracoenc/src/draco/compression/point_cloud/point_cloud_encoder.cc
A	extern/draco/dracoenc/src/draco/compression/point_cloud/point_cloud_encoder.h
A	extern/draco/dracoenc/src/draco/compression/point_cloud/point_cloud_kd_tree_decoder.cc
A	extern/draco/dracoenc/src/draco/compression/point_cloud/point_cloud_kd_tree_decoder.h
A	extern/draco/dracoenc/src/draco/compression/point_cloud/point_cloud_kd_tree_encoder.cc
A	extern/draco/dracoenc/src/draco/compression/point_cloud/point_cloud_kd_tree_encoder.h
A	extern/draco/dracoenc/src/draco/compression/point_cloud/point_cloud_kd_tree_encoding_test.cc
A	extern/draco/dracoenc/src/draco/compression/point_cloud/point_cloud_sequential_decoder.cc
A	extern/draco/dracoenc/src/draco/compression/point_cloud/point_cloud_sequential_decoder.h
A	extern/draco/dracoenc/src/draco/compression/point_cloud/point_cloud_sequential_encoder.cc
A	extern/draco/dracoenc/src/draco/compression/point_cloud/point_cloud_sequential_encoder.h
A	extern/draco/dracoenc/src/draco/compression/point_cloud/point_cloud_sequential_encoding_test.cc
A	extern/draco/dracoenc/src/draco/core/bit_utils.cc
A	extern/draco/dracoenc/src/draco/core/bit_utils.h
A	extern/draco/dracoenc/src/draco/core/bounding_box.cc
A	extern/draco/dracoenc/src/draco/core/bounding_box.h
A	extern/draco/dracoenc/src/draco/core/buffer_bit_coding_test.cc
A	extern/draco/dracoenc/src/draco/core/cycle_timer.cc
A	extern/draco/dracoenc/src/draco/core/cycle_timer.h
A	extern/draco/dracoenc/src/draco/core/data_buffer.cc
A	extern/draco/dracoenc/src/draco/core/data_buffer.h
A	extern/draco/dracoenc/src/draco/core/decoder_buffer.cc
A	extern/draco/dracoenc/src/draco/core/decoder_buffer.h
A	extern/draco/dracoenc/src/draco/core/divide.cc
A	extern/draco/dracoenc/src/draco/core/divide.h
A	extern/draco/dracoenc/src/draco/core/draco_index_type.h
A	extern/draco/dracoenc/src/draco/core/draco_index_type_vector.h
A	extern/draco/dracoenc/src/draco/core/draco_test_base.h
A	extern/draco/dracoenc/src/draco/core/draco_test_utils.cc
A	extern/draco/dracoenc/src/draco/core/draco_test_utils.h
A	extern/draco/dracoenc/src/draco/core/draco_tests.cc
A	extern/draco/dracoenc/src/draco/core/draco_types.cc
A	extern/draco/dracoenc/src/draco/core/draco_types.h
A	extern/draco/dracoenc/src/draco/core/draco_version.h
A	extern/draco/dracoenc/src/draco/core/encoder_buffer.cc
A	extern/draco/dracoenc/src/draco/core/encoder_buffer.h
A	extern/draco/dracoenc/src/draco/core/hash_utils.cc
A	extern/draco/dracoenc/src/draco/core/hash_utils.h
A	extern/draco/dracoenc/src/draco/core/macros.h
A	extern/draco/dracoenc/src/draco/core/math_utils.h
A	extern/draco/dracoenc/src/draco/core/math_utils_test.cc
A	extern/draco/dracoenc/src/draco/core/options.cc
A	extern/draco/dracoenc/src/draco/core/options.h
A	extern/draco/dracoenc/src/draco/core/quantization_utils.cc
A	extern/draco/dracoenc/src/draco/core/quantization_utils.h
A	extern/draco/dracoenc/src/draco/core/quantization_utils_test.cc
A	extern/draco/dracoenc/src/draco/core/status.h
A	extern/draco/dracoenc/src/draco/core/status_test.cc
A	extern/draco/dracoenc/src/draco/core/statusor.h
A	extern/draco/dracoenc/src/draco/core/varint_decoding.h
A	extern/draco/dracoenc/src/draco/core/varint_encoding.h
A	extern/draco/dracoenc/src/draco/core/vector_d.h
A	extern/draco/dracoenc/src/draco/core/vector_d_test.cc
A	extern/draco/dracoenc/src/draco/draco_features.h
A	extern/draco/dracoenc/src/draco/io/mesh_io.cc
A	extern/draco/dracoenc/src/draco/io/mesh_io.h
A	extern/draco/dracoenc/src/draco/io/obj_decoder.cc
A	extern/draco/dracoenc/src/draco/io/obj_decoder.h
A	extern/draco/dracoenc/src/draco/io/obj_decoder_test.cc
A	extern/draco/dracoenc/src/draco/io/obj_encoder.cc
A	extern/draco/dracoenc/src/draco/io/obj_encoder.h
A	extern/draco/dracoenc/src/draco/io/obj_encoder_test.cc
A	extern/draco/dracoenc/src/draco/io/parser_utils.cc
A	extern/draco/dracoenc/src/draco/io/parser_utils.h
A	extern/draco/dracoenc/src/draco/io/ply_decoder.cc
A	extern/draco/dracoenc/src/draco/io/ply_decoder.h
A	extern/draco/dracoenc/src/draco/io/ply_decoder_test.cc
A	extern/draco/dracoenc/src/draco/io/ply_encoder.cc
A	extern/draco/dracoenc/src/draco/io/ply_encoder.h
A	extern/draco/dracoenc/src/draco/io/ply_property_reader.h
A	extern/draco/dracoenc/src/draco/io/ply_property_writer.h
A	extern/draco/dracoenc/src/draco/io/ply_reader.cc
A	extern/draco/dracoenc/src/draco/io/ply_reader.h
A	extern/draco/dracoenc/src/draco/io/ply_reader_test.cc
A	extern/draco/dracoenc/src/draco/io/point_cloud_io.cc
A	extern/draco/dracoenc/src/draco/io/point_cloud_io.h
A	extern/draco/dracoenc/src/draco/io/point_cloud_io_test.cc
A	extern/draco/dracoenc/src/draco/mesh/corner_table.cc
A	extern/draco/dracoenc/src/draco/mesh/corner_table.h
A	extern/draco/dracoenc/src/draco/mesh/corner_table_iterators.h
A	extern/draco/dracoenc/src/draco/mesh/mesh.cc
A	extern/draco/dracoenc/src/draco/mesh/mesh.h
A	extern/draco/dracoenc/src/draco/mesh/mesh_are_equivalent.cc
A	extern/draco/dracoenc/src/draco/mesh/mesh_are_equivalent.h
A	extern/draco/dracoenc/src/draco/mesh/mesh_are_equivalent_test.cc
A	extern/draco/dracoenc/src/draco/mesh/mesh_attribute_corner_table.cc
A	extern/draco/dracoenc/src/draco/mesh/mesh_attribute_corner_table.h
A	extern/draco/dracoenc/src/draco/mesh/mesh_cleanup.cc
A	extern/draco/dracoenc/src/draco/mesh/mesh_cleanup.h
A	extern/draco/dracoenc/src/draco/mesh/mesh_cleanup_test.cc
A	extern/draco/dracoenc/src/draco/mesh/mesh_misc_functions.cc
A	extern/draco/dracoenc/src/draco/mesh/mesh_misc_functions.h
A	extern/draco/dracoenc/src/draco/mesh/mesh_stripifier.cc
A	extern/draco/dracoenc/src/draco/mesh/mesh_stripifier.h
A	extern/draco/dracoenc/src/draco/mesh/triangle_soup_mesh_builder.cc
A	extern/draco/dracoenc/src/draco/mesh/triangle_soup_mesh_builder.h
A	extern/draco/dracoenc/src/draco/mesh/triangle_soup_mesh_builder_test.cc
A	extern/draco/dracoenc/src/draco/mesh/valence_cache.h
A	extern/draco/dracoenc/src/draco/metadata/geometry_metadata.cc
A	extern/draco/dracoenc/src/draco/metadata/geometry_metadata.h
A	extern/draco/dracoenc/src/draco/metadata/metadata.cc
A	extern/draco/dracoenc/src/draco/metadata/metadata.h
A	extern/draco/dracoenc/src/draco/metadata/metadata_decoder.cc
A	extern/draco/dracoenc/src/draco/metadata/metadata_decoder.h
A	extern/draco/dracoenc/src/draco/metadata/metadata_encoder.cc
A	extern/draco/dracoenc/src/draco/metadata/metadata_encoder.h
A	extern/draco/dracoenc/src/draco/metadata/metadata_encoder_test.cc
A	extern/draco/dracoenc/src/draco/metadata/metadata_test.cc
A	extern/draco/dracoenc/src/draco/point_cloud/point_cloud.cc
A	extern/draco/dracoenc/src/draco/point_cloud/point_cloud.h
A	extern/draco/dracoenc/src/draco/point_cloud/point_cloud_builder.cc
A	extern/draco/dracoenc/src/draco/point_cloud/point_cloud_builder.h
A	extern/draco/dracoenc/src/draco/point_cloud/point_cloud_builder_test.cc
A	extern/draco/dracoenc/src/draco/point_cloud/point_cloud_test.cc
A	extern/draco/dracoenc/src/draco/tools/draco_decoder.cc
A	extern/draco/dracoenc/src/draco/tools/draco_encoder.cc
A	extern/draco/src/draco-compressor.cpp
M	source/creator/CMakeLists.txt

===================================================================

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 94e05a21f5e..7cec28f0e10 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -344,6 +344,7 @@ option(WITH_LZMA          "Enable best LZMA compression, (used for pointcache)"
 if(UNIX AND NOT APPLE)
 	option(WITH_SYSTEM_LZO    "Use the system LZO library" OFF)
 endif()
+option(WITH_DRACO         "Enable Draco mesh compression Python module (used for glTF)" ON)
 
 # Camera/motion tracking
 option(WITH_LIBMV         "Enable Libmv structure from motion library" ON)
@@ -636,6 +637,7 @@ endif()
 
 if(NOT WITH_PYTHON)
 	set(WITH_CYCLES OFF)
+	set(WITH_DRACO OFF)
 endif()
 
 # enable boost for cycles, audaspace or i18n
diff --git a/build_files/cmake/config/blender_full.cmake b/build_files/cmake/config/blender_full.cmake
index 9dffc01cf2a..aed3381cbbe 100644
--- a/build_files/cmake/config/blender_full.cmake
+++ b/build_files/cmake/config/blender_full.cmake
@@ -12,6 +12,7 @@ set(WITH_CODEC_FFMPEG        ON  CACHE BOOL "" FORCE)
 set(WITH_CODEC_SNDFILE       ON  CACHE BOOL "" FORCE)
 set(WITH_CYCLES              ON  CACHE BOOL "" FORCE)
 set(WITH_CYCLES_OSL          ON  CACHE BOOL "" FORCE)
+set(WITH_DRACO               ON  CACHE BOOL "" FORCE)
 set(WITH_FFTW3               ON  CACHE BOOL "" FORCE)
 set(WITH_LIBMV               ON  CACHE BOOL "" FORCE)
 set(WITH_LIBMV_SCHUR_SPECIALIZATIONS ON CACHE BOOL "" FORCE)
diff --git a/build_files/cmake/config/blender_lite.cmake b/build_files/cmake/config/blender_lite.cmake
index d440dbf2821..b85176d37f3 100644
--- a/build_files/cmake/config/blender_lite.cmake
+++ b/build_files/cmake/config/blender_lite.cmake
@@ -17,6 +17,7 @@ set(WITH_CODEC_FFMPEG        OFF CACHE BOOL "" FORCE)
 set(WITH_CODEC_SNDFILE       OFF CACHE BOOL "" FORCE)
 set(WITH_CYCLES              OFF CACHE BOOL "" FORCE)
 set(WITH_CYCLES_OSL          OFF CACHE BOOL "" FORCE)
+set(WITH_DRACO               OFF CACHE BOOL "" FORCE)
 set(WITH_FFTW3               OFF CACHE BOOL "" FORCE)
 set(WITH_LIBMV               OFF CACHE BOOL "" FORCE)
 set(WITH_LLVM                OFF CACHE BOOL "" FORCE)
diff --git a/build_files/cmake/config/blender_release.cmake b/build_files/cmake/config/blender_release.cmake
index 5c19aaa5ad4..cf0be8d6b3f 100644
--- a/build_files/cmake/config/blender_release.cmake
+++ b/build_files/cmake/config/blender_release.cmake
@@ -13,6 +13,7 @@ set(WITH_CODEC_FFMPEG        ON  CACHE BOOL "" FORCE)
 set(WITH_CODEC_SNDFILE       ON  CACHE BOOL "" FORCE)
 set(WITH_CYCLES              ON  CACHE BOOL "" FORCE)
 set(WITH_CYCLES_OSL          ON  CACHE BOOL "" FORCE)
+set(WITH_DRACO               ON  CACHE BOOL "" FORCE)
 set(WITH_FFTW3               ON  CACHE BOOL "" FORCE)
 set(WITH_LIBMV               ON  CACHE BOOL "" FORCE)
 set(WITH_LIBMV_SCHUR_SPECIALIZATIONS ON CACHE BOOL "" FORCE)
diff --git a/extern/CMakeLists.txt b/extern/CMakeLists.txt
index 2b18be71941..450f5e64351 100644
--- a/extern/CMakeLists.txt
+++ b/extern/CMakeLists.txt
@@ -41,6 +41,10 @@ if(WITH_BULLET)
 	endif()
 endif()
 
+if(WITH_DRACO)
+	add_subdirectory(draco)
+endif()
+
 # now only available in a branch
 #if(WITH_MOD_CLOTH_ELTOPO)
 #	add_subdirectory(eltopo)
diff --git a/extern/draco/CMakeLists.txt b/extern/draco/CMakeLists.txt
new file mode 100644
index 00000000000..c51af24c9a4
--- /dev/null
+++ b/extern/draco/CMakeLists.txt
@@ -0,0 +1,29 @@
+# ***** BEGIN GPL LICENSE BLOCK *****
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# The Original Code is Copyright (C) 2019, Blender Foundation
+# All rights reserved.
+# ***** END GPL LICENSE BLOCK *****
+
+set(CMAKE_CXX_STANDARD 14)
+
+# Build Draco library.
+add_subdirectory(dracoenc)
+
+# Build blender-draco-exporter module.
+add_library(extern_draco SHARED src/draco-compressor.cpp)
+target_include_directories(extern_draco PUBLIC dracoenc/src)
+target_link_libraries(extern_draco PUBLIC dracoenc)
diff --git a/extern/draco/dracoenc/AUTHORS b/extern/draco/dracoenc/AUTHORS
new file mode 100644
index 00000000000..67f63a67129
--- /dev/null
+++ b/extern/draco/dracoenc/AUTHORS
@@ -0,0 +1,7 @@
+# This is the list of Draco authors for copyright purposes.
+#
+# This does not necessarily list everyone who has contributed code, since in
+# some cases, their employer may be the copyright holder.  To see the full list
+# of contributors, see the revision history in source control.
+Google Inc.
+and other contributors
diff --git a/extern/draco/dracoenc/CMakeLists.txt b/extern/draco/dracoenc/CMakeLists.txt
new file mode 100644
index 00000000000..8deb21ece83
--- /dev/null
+++ b/extern/draco/dracoenc/CMakeLists.txt
@@ -0,0 +1,185 @@
+remove_strict_flags()
+
+set(SRC
+	src/draco/animation/keyframe_animation.cc
+	src/draco/animation/keyframe_animation_encoder.cc
+	src/draco/animation/keyframe_animation_encoder.h
+	src/draco/animation/keyframe_animation.h
+	src/draco/attributes/attribute_octahedron_transform.cc
+	src/draco/attributes/attribute_octahedron_transform.h
+	src/draco/attributes/attribute_quantization_transform.cc
+	src/draco/attributes/attribute_quantization_transform.h
+	src/draco/attributes/attribute_transform.cc
+	src/draco/attributes/attribute_transform_data.h
+	src/draco/attributes/attribute_transform.h
+	src/draco/attributes/attribute_transform_type.h
+	src/draco/attributes/geometry_attribute.cc
+	src/draco/attributes/geometry_attribute.h
+	src/draco/attributes/geometry_indices.h
+	src/draco/attributes/point_attribute.cc
+	src/draco/attributes/point_attribute.h
+	src/draco/compression/attributes/attributes_encoder.cc
+	src/draco/compression/attributes/attributes_encoder.h
+	src/draco/compression/attributes/kd_tree_attributes_encoder.cc
+	src/draco/compression/attributes/kd_tree_attributes_encoder.h
+	src/draco/compression/attributes/linear_sequencer.h
+	src/draco/compression/attributes/points_sequencer.h
+	src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_constrained_multi_parallelogram_encoder.h
+	src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_constrained_multi_parallelogram_shared.h
+	src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_data.h
+	src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_encoder.h
+	src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_geometric_normal_encoder.h
+	src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_geometric_normal_predictor_area.h
+	src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_geometric_normal_predictor_base.h
+	src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_multi_parallelogram_encoder.h
+	src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_parallelogram_encoder.h
+	src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_parallelogram_shared.h
+	src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_tex_coords_encoder.h
+	src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_tex_coords_portable_encoder.h
+	src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_tex_coords_portable_predictor.h
+	src/draco/compression/attributes/prediction_schemes/prediction_scheme_delta_encoder.h
+	src/draco/compression/attributes/prediction_schemes/prediction_scheme_encoder_factory.cc
+	src/draco/compression/attributes/prediction_schemes/prediction_scheme_encoder_factory.h
+	src/draco/compression/attributes/prediction_schemes/prediction_scheme_encoder.h
+	src/draco/compression/attributes/prediction_schemes/prediction_scheme_encoder_interface.h
+	src/draco/compression/attributes/prediction_schemes/prediction_scheme_encoding_transform.h
+	src/draco/compression/attributes/prediction_schemes/prediction_scheme_factory.h
+	src/draco/compression/attributes/prediction_schemes/prediction_scheme_interface.h
+	src/draco/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_canonicalized_encoding_transform.h
+	src/draco/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_canonicalized_transform_base.h
+	src/draco/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_encoding_transform.h
+	src/draco/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_transform_base.h
+	src/draco/compression/attributes/prediction_schemes/prediction_scheme_wrap_encoding_transform.h
+	src/draco/compression/attributes/prediction_schemes/prediction_scheme_wrap_transform_base.h
+	src/draco/compression/attributes/sequential_attribute_encoder.cc
+	src/draco/compression/attributes/sequential_attribute_encoder.h
+	src/draco/compression/attributes/sequential_attribute_encoders_controller.cc
+	src/draco/compression/attributes/sequential_attribute_encoders_controller.h
+	src/draco/compression/attributes/sequential_integer_attribute_encoder.cc
+	src/draco/compression/attributes/sequential_integer_attribute_encoder.h
+	src/draco/compression/attributes/sequential_normal_attribute_encoder.cc
+	src/draco/compression/attributes/sequential_normal_attribute_encoder.h
+	src/draco/compression/attributes/sequential_quantization_attribute_encoder.cc
+	src/draco/compression/attributes/sequential_quantization_attribute_encoder.h
+	src/draco/compression/bit_coders/adaptive_rans_bit_coding_shared.h
+	src/draco/compression/bit_coders/adaptive_rans_bit_encoder.cc
+	src/draco/compression/bit_coders/adaptive_rans_bit_encoder.h
+	src/draco/compression/bit_coders/direct_bit_encoder.cc
+	src/draco/compression/bit_coders/direct_bit_encoder.h
+	src/draco/c

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list