diff options
author | Julien Duroure <julien.duroure@gmail.com> | 2022-08-06 13:11:15 +0300 |
---|---|---|
committer | Julien Duroure <julien.duroure@gmail.com> | 2022-08-06 13:11:15 +0300 |
commit | ef0027e72d295f5bbae1905c6260878851131eef (patch) | |
tree | 332450a5c63df82f711aae005c8c1fb85a5f5280 /io_scene_gltf2/io | |
parent | c58c8f3c3525247c6f584684260eae4ea87a57a3 (diff) |
glTF exporter: add bufferView Target at export
Diffstat (limited to 'io_scene_gltf2/io')
-rwxr-xr-x | io_scene_gltf2/io/com/gltf2_io_constants.py | 3 | ||||
-rwxr-xr-x | io_scene_gltf2/io/exp/gltf2_io_binary_data.py | 7 | ||||
-rwxr-xr-x | io_scene_gltf2/io/exp/gltf2_io_buffer.py | 2 |
3 files changed, 8 insertions, 4 deletions
diff --git a/io_scene_gltf2/io/com/gltf2_io_constants.py b/io_scene_gltf2/io/com/gltf2_io_constants.py index 175804a3..816220d9 100755 --- a/io_scene_gltf2/io/com/gltf2_io_constants.py +++ b/io_scene_gltf2/io/com/gltf2_io_constants.py @@ -118,6 +118,9 @@ class TextureWrap(IntEnum): MirroredRepeat = 33648 Repeat = 10497 +class BufferViewTarget(IntEnum): + ARRAY_BUFFER = 34962 + ELEMENT_ARRAY_BUFFER = 34963 ################# # LEGACY DEFINES diff --git a/io_scene_gltf2/io/exp/gltf2_io_binary_data.py b/io_scene_gltf2/io/exp/gltf2_io_binary_data.py index 10405551..6a617628 100755 --- a/io_scene_gltf2/io/exp/gltf2_io_binary_data.py +++ b/io_scene_gltf2/io/exp/gltf2_io_binary_data.py @@ -9,10 +9,11 @@ from io_scene_gltf2.io.com import gltf2_io_constants class BinaryData: """Store for gltf binary data that can later be stored in a buffer.""" - def __init__(self, data: bytes): + def __init__(self, data: bytes, bufferViewTarget=None): if not isinstance(data, bytes): raise TypeError("Data is not a bytes array") self.data = data + self.bufferViewTarget = bufferViewTarget def __eq__(self, other): return self.data == other.data @@ -21,9 +22,9 @@ class BinaryData: return hash(self.data) @classmethod - def from_list(cls, lst: typing.List[typing.Any], gltf_component_type: gltf2_io_constants.ComponentType): + def from_list(cls, lst: typing.List[typing.Any], gltf_component_type: gltf2_io_constants.ComponentType, bufferViewTarget=None): format_char = gltf2_io_constants.ComponentType.to_type_code(gltf_component_type) - return BinaryData(array.array(format_char, lst).tobytes()) + return BinaryData(array.array(format_char, lst).tobytes(), bufferViewTarget) @property def byte_length(self): diff --git a/io_scene_gltf2/io/exp/gltf2_io_buffer.py b/io_scene_gltf2/io/exp/gltf2_io_buffer.py index 5fae3834..4b70e789 100755 --- a/io_scene_gltf2/io/exp/gltf2_io_buffer.py +++ b/io_scene_gltf2/io/exp/gltf2_io_buffer.py @@ -35,7 +35,7 @@ class Buffer: extensions=None, extras=None, name=None, - target=None + target=binary_data.bufferViewTarget ) return buffer_view |