From 14779be1ed858f10ebab3e49ab876f5e147d34d1 Mon Sep 17 00:00:00 2001 From: Swann Date: Thu, 22 Apr 2021 15:52:06 +0200 Subject: [PATCH] feat: support video file as camera background images --- multi_user/bl_types/bl_camera.py | 20 +++++++++++++++++--- multi_user/bl_types/bl_image.py | 8 ++++++-- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/multi_user/bl_types/bl_camera.py b/multi_user/bl_types/bl_camera.py index 486726c..244ad77 100644 --- a/multi_user/bl_types/bl_camera.py +++ b/multi_user/bl_types/bl_camera.py @@ -56,6 +56,11 @@ class BlCamera(BlDatablock): target_img.image = bpy.data.images[img_id] loader.load(target_img, img_data) + img_user = img_data.get('image_user') + if img_user: + loader.load(target_img.image_user, img_user) + + def _dump_implementation(self, data, instance=None): assert(instance) @@ -101,10 +106,19 @@ class BlCamera(BlDatablock): 'scale', 'use_flip_x', 'use_flip_y', - 'image' + 'image_user', + 'image', + 'frame_duration', + 'frame_start', + 'frame_offset', + 'use_cyclic', + 'use_auto_refresh' ] - return dumper.dump(instance) - + data = dumper.dump(instance) + for index, image in enumerate(instance.background_images): + if image.image_user: + data['background_images'][index]['image_user'] = dumper.dump(image.image_user) + return data def _resolve_deps_implementation(self): deps = [] for background in self.instance.background_images: diff --git a/multi_user/bl_types/bl_image.py b/multi_user/bl_types/bl_image.py index c559938..3a248c6 100644 --- a/multi_user/bl_types/bl_image.py +++ b/multi_user/bl_types/bl_image.py @@ -66,9 +66,12 @@ class BlImage(BlDatablock): loader = Loader() loader.load(data, target) - target.source = 'FILE' + target.source = data['source'] target.filepath_raw = get_filepath(data['filename']) - target.colorspace_settings.name = data["colorspace_settings"]["name"] + color_space_name = data["colorspace_settings"]["name"] + + if color_space_name: + target.colorspace_settings.name = color_space_name def _dump(self, instance=None): assert(instance) @@ -83,6 +86,7 @@ class BlImage(BlDatablock): dumper.depth = 2 dumper.include_filter = [ "name", + 'source', 'size', 'height', 'alpha',