[Bf-blender-cvs] [4b1f3a7] master: Fix T45931: Blender Fails to generate previews.

Bastien Montagne noreply at git.blender.org
Tue Sep 1 20:07:30 CEST 2015


Commit: 4b1f3a7819ff535f8eb6fdd97b02951c32306f2d
Author: Bastien Montagne
Date:   Tue Sep 1 17:45:16 2015 +0200
Branches: master
https://developer.blender.org/rB4b1f3a7819ff535f8eb6fdd97b02951c32306f2d

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.

===================================================================

M	release/scripts/modules/bl_previews_utils/bl_previews_render.py

===================================================================

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 27922c6..627a6ab 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




More information about the Bf-blender-cvs mailing list