Revision: 30948 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=30948 Author: blendix Date: 2010-08-01 22:36:24 +0200 (Sun, 01 Aug 2010)
Log Message: ----------- Fix preview render crash after recent G.main changes. Modified Paths: -------------- trunk/blender/source/blender/editors/object/object_bake.c trunk/blender/source/blender/editors/render/render_preview.c trunk/blender/source/blender/render/extern/include/RE_pipeline.h trunk/blender/source/blender/render/intern/source/convertblender.c trunk/blender/source/blender/render/intern/source/pipeline.c Modified: trunk/blender/source/blender/editors/object/object_bake.c =================================================================== --- trunk/blender/source/blender/editors/object/object_bake.c 2010-08-01 16:38:30 UTC (rev 30947) +++ trunk/blender/source/blender/editors/object/object_bake.c 2010-08-01 20:36:24 UTC (rev 30948) @@ -94,6 +94,7 @@ typedef struct BakeRender { Render *re; + Main *main; Scene *scene; struct Object *actob; int tot, ready; @@ -139,6 +140,7 @@ Scene *scene= CTX_data_scene(C); bkr->sa= biggest_image_area(CTX_wm_screen(C)); /* can be NULL */ + bkr->main= CTX_data_main(C); bkr->scene= scene; bkr->actob= (scene->r.bake_flag & R_BAKE_TO_ACTIVE) ? OBACT : NULL; bkr->re= RE_NewRender("_Bake View_"); @@ -196,6 +198,7 @@ { BakeRender *bkr= bkv; Scene *scene= bkr->scene; + Main *bmain= bkr->main; bkr->stop= stop; bkr->do_update= do_update; @@ -204,7 +207,7 @@ RE_test_break_cb(bkr->re, NULL, thread_break); G.afbreek= 0; /* blender_test_break uses this global */ - RE_Database_Baking(bkr->re, scene, scene->lay, scene->r.bake_mode, bkr->actob); + RE_Database_Baking(bkr->re, bmain, scene, scene->lay, scene->r.bake_mode, bkr->actob); /* baking itself is threaded, cannot use test_break in threads. we also update optional imagewindow */ bkr->tot= RE_bake_shade_all_selected(bkr->re, scene->r.bake_mode, bkr->actob, bkr->do_update, bkr->progress); @@ -284,6 +287,7 @@ static int bake_image_exec(bContext *C, wmOperator *op) { + Main *bmain= CTX_data_main(C); Scene *scene= CTX_data_scene(C); @@ -302,7 +306,7 @@ RE_test_break_cb(bkr.re, NULL, thread_break); G.afbreek= 0; /* blender_test_break uses this global */ - RE_Database_Baking(bkr.re, scene, scene->lay, scene->r.bake_mode, (scene->r.bake_flag & R_BAKE_TO_ACTIVE)? OBACT: NULL); + RE_Database_Baking(bkr.re, bmain, scene, scene->lay, scene->r.bake_mode, (scene->r.bake_flag & R_BAKE_TO_ACTIVE)? OBACT: NULL); /* baking itself is threaded, cannot use test_break in threads */ BLI_init_threads(&threads, do_bake_render, 1); Modified: trunk/blender/source/blender/editors/render/render_preview.c =================================================================== --- trunk/blender/source/blender/editors/render/render_preview.c 2010-08-01 16:38:30 UTC (rev 30947) +++ trunk/blender/source/blender/editors/render/render_preview.c 2010-08-01 20:36:24 UTC (rev 30948) @@ -975,7 +975,7 @@ ((Camera *)sce->camera->data)->lens *= (float)sp->sizey/(float)sizex; /* entire cycle for render engine */ - RE_PreviewRender(re, sce); + RE_PreviewRender(re, G.main, sce); ((Camera *)sce->camera->data)->lens= oldlens; Modified: trunk/blender/source/blender/render/extern/include/RE_pipeline.h =================================================================== --- trunk/blender/source/blender/render/extern/include/RE_pipeline.h 2010-08-01 16:38:30 UTC (rev 30947) +++ trunk/blender/source/blender/render/extern/include/RE_pipeline.h 2010-08-01 20:36:24 UTC (rev 30948) @@ -213,7 +213,7 @@ void RE_BlenderAnim(struct Render *re, struct Main *bmain, struct Scene *scene, unsigned int lay, int sfra, int efra, int tfra, struct ReportList *reports); /* main preview render call */ -void RE_PreviewRender(struct Render *re, struct Scene *scene); +void RE_PreviewRender(struct Render *re, struct Main *bmain, struct Scene *scene); void RE_ReadRenderResult(struct Scene *scene, struct Scene *scenode); void RE_WriteRenderResult(RenderResult *rr, char *filename, int compress); @@ -249,7 +249,7 @@ #define RE_BAKE_DISPLACEMENT 5 #define RE_BAKE_SHADOW 6 -void RE_Database_Baking(struct Render *re, struct Scene *scene, unsigned int lay, int type, struct Object *actob); +void RE_Database_Baking(struct Render *re, struct Main *bmain, struct Scene *scene, unsigned int lay, int type, struct Object *actob); void RE_DataBase_GetView(struct Render *re, float mat[][4]); void RE_GetCameraWindow(struct Render *re, struct Object *camera, int frame, float mat[][4]); Modified: trunk/blender/source/blender/render/intern/source/convertblender.c =================================================================== --- trunk/blender/source/blender/render/intern/source/convertblender.c 2010-08-01 16:38:30 UTC (rev 30947) +++ trunk/blender/source/blender/render/intern/source/convertblender.c 2010-08-01 20:36:24 UTC (rev 30948) @@ -5560,12 +5560,13 @@ RE_BAKE_DISPLACEMENT:for baking, no lamps, only selected objects RE_BAKE_SHADOW: for baking, only shadows, but all objects */ -void RE_Database_Baking(Render *re, Scene *scene, unsigned int lay, int type, Object *actob) +void RE_Database_Baking(Render *re, Main *bmain, Scene *scene, unsigned int lay, int type, Object *actob) { float mat[4][4]; float amb[3]; int onlyselected, nolamps; + re->main= bmain; re->scene= scene; re->lay= lay; Modified: trunk/blender/source/blender/render/intern/source/pipeline.c =================================================================== --- trunk/blender/source/blender/render/intern/source/pipeline.c 2010-08-01 16:38:30 UTC (rev 30947) +++ trunk/blender/source/blender/render/intern/source/pipeline.c 2010-08-01 20:36:24 UTC (rev 30948) @@ -2975,7 +2975,7 @@ G.rendering= 0; } -void RE_PreviewRender(Render *re, Scene *sce) +void RE_PreviewRender(Render *re, Main *bmain, Scene *sce) { int winx, winy; @@ -2984,6 +2984,7 @@ RE_InitState(re, NULL, &sce->r, NULL, winx, winy, NULL); + re->main = bmain; re->scene = sce; re->lay = sce->lay; _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs