summaryrefslogtreecommitdiffstats
path: root/modules/gltf/gltf_state.h
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2023-01-27 11:35:55 +0100
committerRémi Verschelde <rverschelde@gmail.com>2023-01-27 11:35:55 +0100
commit9d555f5c6853c0f97136532d1c71ee3a06fd82dc (patch)
tree52ad1d2d7a27db0f74d6879cbce3fb495dd21051 /modules/gltf/gltf_state.h
parent8b662c763e27b8dbbda21bde0694151c718aa725 (diff)
parent39922d7167178bab9587aa00a7a108b93db6240e (diff)
downloadredot-engine-9d555f5c6853c0f97136532d1c71ee3a06fd82dc.tar.gz
Merge pull request #62499 from fire/gltf-binary-img-compression
Handle gltf binary images
Diffstat (limited to 'modules/gltf/gltf_state.h')
-rw-r--r--modules/gltf/gltf_state.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/modules/gltf/gltf_state.h b/modules/gltf/gltf_state.h
index abb597b6b3..52d7949d03 100644
--- a/modules/gltf/gltf_state.h
+++ b/modules/gltf/gltf_state.h
@@ -59,6 +59,8 @@ class GLTFState : public Resource {
bool discard_meshes_and_materials = false;
bool create_animations = true;
+ int handle_binary_image = HANDLE_BINARY_EXTRACT_TEXTURES;
+
Vector<Ref<GLTFNode>> nodes;
Vector<Vector<uint8_t>> buffers;
Vector<Ref<GLTFBufferView>> buffer_views;
@@ -78,6 +80,7 @@ class GLTFState : public Resource {
Vector<Ref<Texture2D>> images;
Vector<String> extensions_used;
Vector<String> extensions_required;
+ Vector<Ref<Image>> source_images;
Vector<Ref<GLTFSkin>> skins;
Vector<Ref<GLTFCamera>> cameras;
@@ -101,6 +104,18 @@ protected:
public:
void add_used_extension(const String &p_extension, bool p_required = false);
+ enum GLTFHandleBinary {
+ HANDLE_BINARY_DISCARD_TEXTURES = 0,
+ HANDLE_BINARY_EXTRACT_TEXTURES,
+ HANDLE_BINARY_EMBED_AS_BASISU,
+ };
+ int32_t get_handle_binary_image() {
+ return handle_binary_image;
+ }
+ void set_handle_binary_image(int32_t p_handle_binary_image) {
+ handle_binary_image = p_handle_binary_image;
+ }
+
Dictionary get_json();
void set_json(Dictionary p_json);
@@ -116,6 +131,15 @@ public:
bool get_use_named_skin_binds();
void set_use_named_skin_binds(bool p_use_named_skin_binds);
+ bool get_discard_textures();
+ void set_discard_textures(bool p_discard_textures);
+
+ bool get_embed_as_basisu();
+ void set_embed_as_basisu(bool p_embed_as_basisu);
+
+ bool get_extract_textures();
+ void set_extract_textures(bool p_extract_textures);
+
bool get_discard_meshes_and_materials();
void set_discard_meshes_and_materials(bool p_discard_meshes_and_materials);