Revision: 48632
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=48632
Author:   nazgul
Date:     2012-07-05 09:41:12 +0000 (Thu, 05 Jul 2012)
Log Message:
-----------
Color management: skip generating byte buffers in verify_buffer_float

This saves some time in cases color management is used by sipping
generating non-color managed buffers.

Modified Paths:
--------------
    branches/soc-2011-tomato/source/blender/editors/space_clip/clip_draw.c
    branches/soc-2011-tomato/source/blender/editors/space_image/image_draw.c
    branches/soc-2011-tomato/source/blender/imbuf/intern/colormanagement.c

Modified: branches/soc-2011-tomato/source/blender/editors/space_clip/clip_draw.c
===================================================================
--- branches/soc-2011-tomato/source/blender/editors/space_clip/clip_draw.c      
2012-07-05 09:41:07 UTC (rev 48631)
+++ branches/soc-2011-tomato/source/blender/editors/space_clip/clip_draw.c      
2012-07-05 09:41:12 UTC (rev 48632)
@@ -245,12 +245,18 @@
                ED_region_info_draw(ar, str, block, 0.6f);
 }
 
+/* OCIO_TODO: after finishing proper color management pipeline integration
+ *            this wouldn't be needed -- color managed display buffer
+ *            would be used unstead
+ */
+#if 0
 static void verify_buffer_float(ImBuf *ibuf)
 {
        if (ibuf->rect_float && (ibuf->rect == NULL || (ibuf->userflags & 
IB_RECT_INVALID))) {
                IMB_rect_from_float(ibuf);
        }
 }
+#endif
 
 static void draw_movieclip_buffer(wmWindow *win, SpaceClip *sc, ARegion *ar, 
ImBuf *ibuf,
                                   int width, int height, float zoomx, float 
zoomy)
@@ -270,7 +276,8 @@
                unsigned char *display_buffer;
                void *cache_handle;
 
-               verify_buffer_float(ibuf);
+               /* OCIO_TODO: finally get rid of this stuff */
+               /* verify_buffer_float(ibuf); */
 
                view_settings = IMB_view_settings_get_effective(win, 
&sc->view_settings);
                display_buffer = IMB_display_buffer_acquire(ibuf, 
view_settings, &win->display_settings, &cache_handle);

Modified: 
branches/soc-2011-tomato/source/blender/editors/space_image/image_draw.c
===================================================================
--- branches/soc-2011-tomato/source/blender/editors/space_image/image_draw.c    
2012-07-05 09:41:07 UTC (rev 48631)
+++ branches/soc-2011-tomato/source/blender/editors/space_image/image_draw.c    
2012-07-05 09:41:12 UTC (rev 48632)
@@ -79,6 +79,10 @@
 
 #define HEADER_HEIGHT 18
 
+/* OCIO_TODO: after finishing proper color management pipeline integration
+ *            this wouldn't be needed -- color managed display buffer
+ *            would be used unstead
+ */
 static void image_verify_buffer_float(Image *ima, ImBuf *ibuf, int 
color_manage)
 {
        /* detect if we need to redo the curve map.
@@ -96,7 +100,12 @@
                else
                        ibuf->profile = IB_PROFILE_NONE;
 
-               IMB_rect_from_float(ibuf);
+               /* OCIO_TODO: currently only get rid of old-style color managed 
byte
+                *            buffer calculation to save some time on buffer 
display,
+                *            but still need to set image buffer's profile to 
prevent
+                *            comatibility breackage
+                */
+               /* IMB_rect_from_float(ibuf); */
        }
 }
 

Modified: branches/soc-2011-tomato/source/blender/imbuf/intern/colormanagement.c
===================================================================
--- branches/soc-2011-tomato/source/blender/imbuf/intern/colormanagement.c      
2012-07-05 09:41:07 UTC (rev 48631)
+++ branches/soc-2011-tomato/source/blender/imbuf/intern/colormanagement.c      
2012-07-05 09:41:12 UTC (rev 48632)
@@ -702,6 +702,13 @@
 static void display_buffer_apply_tonemap(ImBuf *ibuf, unsigned char 
*display_buffer,
                                          imb_tonecurveCb tonecurve_func)
 {
+       /* XXX: IMB_buffer_byte_from_float_tonecurve isn't thread-safe because 
of
+        *      possible non-initialized sRGB conversion stuff. Make sure it's 
properly
+        *      initialized before starting threads, but likely this stuff 
should be
+        *      initialized somewhere before to avoid possible issues in other 
issues.
+        */
+       BLI_init_srgb_conversion();
+
        display_buffer_apply_threaded(ibuf, ibuf->rect_float, display_buffer, 
tonecurve_func,
                                      do_display_buffer_apply_tonemap_thread);
 }

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to