Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Montagne <montagne29@wanadoo.fr>2015-09-01 18:45:16 +0300
committerBastien Montagne <montagne29@wanadoo.fr>2015-09-01 20:15:06 +0300
commit4b1f3a7819ff535f8eb6fdd97b02951c32306f2d (patch)
tree2e8c9bbc01579470f65e577a834ec7c9759d6027 /release/scripts/modules/bl_previews_utils/bl_previews_render.py
parenta2714c9e4fcf9243a2117fbfa759972ff8c3e74f (diff)
Fix T45931: Blender Fails to generate previews.
Root of the issue was, preview generator was filling ID preview with unsigned int, when RNA only knows of signed integers (and thus generates a python exception when converting uint outside of int range)... Using the brand new and much simple float pixels accessor to PreviewImage now. Why this was working perfectly OK (it seems...) under Linux, and why error (py exception) was so badly and misleadingly reported on Windows, remains pitch black mystery to me.
Diffstat (limited to 'release/scripts/modules/bl_previews_utils/bl_previews_render.py')
-rw-r--r--release/scripts/modules/bl_previews_utils/bl_previews_render.py5
1 files changed, 1 insertions, 4 deletions
diff --git a/release/scripts/modules/bl_previews_utils/bl_previews_render.py b/release/scripts/modules/bl_previews_utils/bl_previews_render.py
index 27922c6c5c5..627a6ab2d3d 100644
--- a/release/scripts/modules/bl_previews_utils/bl_previews_render.py
+++ b/release/scripts/modules/bl_previews_utils/bl_previews_render.py
@@ -304,11 +304,8 @@ def do_previews(do_objects, do_groups, do_scenes, do_data_intern):
image = bpy.data.images[render_context.image, None]
item = getattr(bpy.data, item_container)[item_name, None]
image.reload()
- # Note: we could use struct module here, but not quite sure it'd give any advantage really...
- pix = tuple((round(r * 255)) + (round(g * 255) << 8) + (round(b * 255) << 16) + (round(a * 255) << 24)
- for r, g, b, a in zip(*[iter(image.pixels)] * 4))
item.preview.image_size = (RENDER_PREVIEW_SIZE, RENDER_PREVIEW_SIZE)
- item.preview.image_pixels = pix
+ item.preview.image_pixels_float[:] = image.pixels
# And now, main code!
do_save = True