diff options
author | Bastien Montagne <montagne29@wanadoo.fr> | 2015-09-01 18:45:16 +0300 |
---|---|---|
committer | Bastien Montagne <montagne29@wanadoo.fr> | 2015-09-01 20:15:06 +0300 |
commit | 4b1f3a7819ff535f8eb6fdd97b02951c32306f2d (patch) | |
tree | 2e8c9bbc01579470f65e577a834ec7c9759d6027 /release/scripts | |
parent | a2714c9e4fcf9243a2117fbfa759972ff8c3e74f (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')
-rw-r--r-- | release/scripts/modules/bl_previews_utils/bl_previews_render.py | 5 |
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 |