[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [50846] trunk/blender/source/blender: Fix #32644: ctrl+F11 internal animation player crash

Sergey Sharybin sergey.vfx at gmail.com
Mon Sep 24 15:48:37 CEST 2012


Revision: 50846
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=50846
Author:   nazgul
Date:     2012-09-24 13:48:37 +0000 (Mon, 24 Sep 2012)
Log Message:
-----------
Fix #32644: ctrl+F11 internal animation player crash

Crash was caused by missed color management initialization -- it was
happening too late.

Move it to generic ImBuf init/exit functions, so now color management
is properly initializing when animation player is launched.

Modified Paths:
--------------
    trunk/blender/source/blender/imbuf/IMB_colormanagement.h
    trunk/blender/source/blender/imbuf/intern/IMB_colormanagement_intern.h
    trunk/blender/source/blender/imbuf/intern/colormanagement.c
    trunk/blender/source/blender/imbuf/intern/module.c
    trunk/blender/source/blender/windowmanager/intern/wm_init_exit.c

Modified: trunk/blender/source/blender/imbuf/IMB_colormanagement.h
===================================================================
--- trunk/blender/source/blender/imbuf/IMB_colormanagement.h	2012-09-24 13:02:08 UTC (rev 50845)
+++ trunk/blender/source/blender/imbuf/IMB_colormanagement.h	2012-09-24 13:48:37 UTC (rev 50846)
@@ -50,11 +50,6 @@
 struct ColorSpace;
 struct ColorManagedDisplay;
 
-/* ** Initialization / De-initialization ** */
-
-void IMB_colormanagement_init(void);
-void IMB_colormanagement_exit(void);
-
 /* ** Generic functions ** */
 
 void IMB_colormanagement_check_file_config(struct Main *bmain);

Modified: trunk/blender/source/blender/imbuf/intern/IMB_colormanagement_intern.h
===================================================================
--- trunk/blender/source/blender/imbuf/intern/IMB_colormanagement_intern.h	2012-09-24 13:02:08 UTC (rev 50845)
+++ trunk/blender/source/blender/imbuf/intern/IMB_colormanagement_intern.h	2012-09-24 13:48:37 UTC (rev 50846)
@@ -67,6 +67,11 @@
 	char name[64];
 } ColorManagedView;
 
+/* ** Initialization / De-initialization ** */
+
+void colormanagement_init(void);
+void colormanagement_exit(void);
+
 void colormanage_cache_free(struct ImBuf *ibuf);
 
 struct ColorManagedDisplay *colormanage_display_get_default(void);

Modified: trunk/blender/source/blender/imbuf/intern/colormanagement.c
===================================================================
--- trunk/blender/source/blender/imbuf/intern/colormanagement.c	2012-09-24 13:02:08 UTC (rev 50845)
+++ trunk/blender/source/blender/imbuf/intern/colormanagement.c	2012-09-24 13:48:37 UTC (rev 50846)
@@ -548,7 +548,7 @@
 	BLI_freelistN(&global_views);
 }
 
-void IMB_colormanagement_init(void)
+void colormanagement_init(void)
 {
 	const char *ocio_env;
 	const char *configdir;
@@ -585,7 +585,7 @@
 	BLI_init_srgb_conversion();
 }
 
-void IMB_colormanagement_exit(void)
+void colormanagement_exit(void)
 {
 	colormanage_free_config();
 }

Modified: trunk/blender/source/blender/imbuf/intern/module.c
===================================================================
--- trunk/blender/source/blender/imbuf/intern/module.c	2012-09-24 13:02:08 UTC (rev 50845)
+++ trunk/blender/source/blender/imbuf/intern/module.c	2012-09-24 13:48:37 UTC (rev 50846)
@@ -28,16 +28,19 @@
 #include <stddef.h>
 #include "IMB_imbuf.h"
 #include "IMB_filetype.h"
+#include "IMB_colormanagement_intern.h"
 
 void IMB_init(void)
 {
 	imb_filetypes_init();
 	imb_tile_cache_init();
+	colormanagement_init();
 }
 
 void IMB_exit(void)
 {
 	imb_tile_cache_exit();
 	imb_filetypes_exit();
+	colormanagement_exit();
 }
 

Modified: trunk/blender/source/blender/windowmanager/intern/wm_init_exit.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_init_exit.c	2012-09-24 13:02:08 UTC (rev 50845)
+++ trunk/blender/source/blender/windowmanager/intern/wm_init_exit.c	2012-09-24 13:48:37 UTC (rev 50846)
@@ -114,8 +114,6 @@
 #include "BKE_sound.h"
 #include "COM_compositor.h"
 
-#include "IMB_colormanagement.h"
-
 static void wm_init_reports(bContext *C)
 {
 	BKE_reports_init(CTX_wm_reports(C), RPT_STORE);
@@ -144,12 +142,6 @@
 	
 	ED_spacetypes_init();   /* editors/space_api/spacetype.c */
 	
-	/* initialize color management stuff
-	 * do this before ED_file_init because that function would load images,
-	 * so at least default byte color space should be already known
-	 */
-	IMB_colormanagement_init();
-
 	ED_file_init();         /* for fsmenu */
 	ED_node_init_butfuncs();
 	
@@ -374,8 +366,6 @@
 
 	sound_exit();
 
-	IMB_colormanagement_exit();
-
 	/* first wrap up running stuff, we assume only the active WM is running */
 	/* modal handlers are on window level freed, others too? */
 	/* note; same code copied in wm_files.c */




More information about the Bf-blender-cvs mailing list