Revision: 18810 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18810 Author: ton Date: 2009-02-04 18:40:50 +0100 (Wed, 04 Feb 2009)
Log Message: ----------- 2.5 Render back! And not only back, even full threaded now. :) Current state is unfinished, but too much fun to not to commit for review and test! WARNING: because render is in a threaded job, it will use data as can be edited in the UI. That'll crash in many cases of course... the idea is to limit UI usage to viewing stuff, especially for the Image Window to inspect layers or zoom in/out. What works now; - F12 render (no anim) - ESC from render - ESC pushes back temporary Image Window - Render to ImageWindow or full-screen. - Executing composites, and edit composites after render. Note that the UI is 100% responsive in a render, you can switch screens, slide area dividers around, or even load a new file during render. :) It's quite stable even. I'll collect all crash reports especially to get a good picture of where the protection is required at least. Also added: XKey "Delete Objects", to get things crash... unfortunately it didn't for me. Modified Paths: -------------- branches/blender2.5/blender/source/Makefile branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c branches/blender2.5/blender/source/blender/editors/animation/anim_deps.c branches/blender2.5/blender/source/blender/editors/curve/editcurve.c branches/blender2.5/blender/source/blender/editors/include/ED_anim_api.h branches/blender2.5/blender/source/blender/editors/include/ED_image.h branches/blender2.5/blender/source/blender/editors/include/ED_screen.h branches/blender2.5/blender/source/blender/editors/object/object_edit.c branches/blender2.5/blender/source/blender/editors/object/object_intern.h branches/blender2.5/blender/source/blender/editors/object/object_ops.c branches/blender2.5/blender/source/blender/editors/screen/Makefile branches/blender2.5/blender/source/blender/editors/screen/SConscript branches/blender2.5/blender/source/blender/editors/screen/screen_edit.c branches/blender2.5/blender/source/blender/editors/screen/screen_intern.h branches/blender2.5/blender/source/blender/editors/screen/screen_ops.c branches/blender2.5/blender/source/blender/editors/space_api/spacetypes.c branches/blender2.5/blender/source/blender/editors/space_file/file_draw.c branches/blender2.5/blender/source/blender/editors/space_image/image_draw.c branches/blender2.5/blender/source/blender/editors/space_image/image_render.c branches/blender2.5/blender/source/blender/editors/space_info/info_header.c branches/blender2.5/blender/source/blender/editors/space_info/space_info.c branches/blender2.5/blender/source/blender/editors/space_node/node_edit.c branches/blender2.5/blender/source/blender/render/intern/source/envmap.c branches/blender2.5/blender/source/blender/render/intern/source/pipeline.c branches/blender2.5/blender/source/blender/windowmanager/intern/wm_event_system.c branches/blender2.5/blender/source/blender/windowmanager/intern/wm_init_exit.c Modified: branches/blender2.5/blender/source/Makefile =================================================================== --- branches/blender2.5/blender/source/Makefile 2009-02-04 11:52:16 UTC (rev 18809) +++ branches/blender2.5/blender/source/Makefile 2009-02-04 17:40:50 UTC (rev 18810) @@ -232,7 +232,6 @@ PULIB += $(OCGDIR)/blender/ed_info/libed_info.a PULIB += $(OCGDIR)/blender/ed_buttons/libed_buttons.a PULIB += $(OCGDIR)/blender/ed_node/libed_node.a -PULIB += $(OCGDIR)/blender/ed_image/libed_image.a PULIB += $(OCGDIR)/blender/ed_graph/libed_graph.a PULIB += $(OCGDIR)/blender/ed_outliner/libed_outliner.a PULIB += $(OCGDIR)/blender/ed_time/libed_time.a @@ -248,8 +247,9 @@ PULIB += $(OCGDIR)/blender/ed_animation/libed_animation.a PULIB += $(OCGDIR)/blender/ed_transform/libed_transform.a PULIB += $(OCGDIR)/blender/ed_util/libed_util.a +PULIB += $(OCGDIR)/blender/ed_datafiles/libed_datafiles.a +PULIB += $(OCGDIR)/blender/ed_image/libed_image.a PULIB += $(OCGDIR)/blender/ed_uvedit/libed_uvedit.a -PULIB += $(OCGDIR)/blender/ed_datafiles/libed_datafiles.a PULIB += $(OCGDIR)/blender/ed_screen/libed_screen.a PULIB += $(OCGDIR)/blender/windowmanager/libwindowmanager.a PULIB += $(OCGDIR)/blender/python/$(DEBUG_DIR)libpython.a Modified: branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c =================================================================== --- branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c 2009-02-04 11:52:16 UTC (rev 18809) +++ branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c 2009-02-04 17:40:50 UTC (rev 18810) @@ -3672,6 +3672,17 @@ /* ************ READ SCENE ***************** */ +/* patch for missing scene IDs, can't be in do-versions */ +static void composite_patch(bNodeTree *ntree, Scene *scene) +{ + bNode *node; + + for(node= ntree->nodes.first; node; node= node->next) + if(node->id==NULL && node->type==CMP_NODE_R_LAYERS) + node->id= &scene->id; +} + + static void lib_link_scene(FileData *fd, Main *main) { Scene *sce; @@ -3736,8 +3747,10 @@ lib_link_scriptlink(fd, &sce->id, &sce->scriptlink); - if(sce->nodetree) + if(sce->nodetree) { lib_link_ntree(fd, &sce->id, sce->nodetree); + composite_patch(sce->nodetree, sce); + } for(srl= sce->r.layers.first; srl; srl= srl->next) { srl->mat_override= newlibadr_us(fd, sce->id.lib, srl->mat_override); Modified: branches/blender2.5/blender/source/blender/editors/animation/anim_deps.c =================================================================== --- branches/blender2.5/blender/source/blender/editors/animation/anim_deps.c 2009-02-04 11:52:16 UTC (rev 18809) +++ branches/blender2.5/blender/source/blender/editors/animation/anim_deps.c 2009-02-04 17:40:50 UTC (rev 18810) @@ -35,21 +35,14 @@ #include "DNA_armature_types.h" #include "DNA_object_types.h" #include "DNA_scene_types.h" -#include "DNA_screen_types.h" -#include "DNA_space_types.h" -#include "DNA_texture_types.h" -#include "DNA_view3d_types.h" -#include "DNA_windowmanager_types.h" #include "BLI_blenlib.h" #include "BKE_action.h" #include "BKE_context.h" #include "BKE_depsgraph.h" -#include "BKE_global.h" -#include "BKE_scene.h" #include "BKE_main.h" -#include "BKE_node.h" +#include "BKE_scene.h" #include "BKE_utildefines.h" #include "RNA_access.h" @@ -62,23 +55,8 @@ #include "WM_types.h" /* ***************** depsgraph calls and anim updates ************* */ +/* ***************** only these can be called from editors ******** */ -static unsigned int screen_view3d_layers(bScreen *screen) -{ - if(screen) { - unsigned int layer= screen->scene->lay; /* as minimum this */ - ScrArea *sa; - - /* get all used view3d layers */ - for(sa= screen->areabase.first; sa; sa= sa->next) { - if(sa->spacetype==SPACE_VIEW3D) - layer |= ((View3D *)sa->spacedata.first)->lay; - } - return layer; - } - return 0; -} - /* generic update flush, reads from context Screen (layers) and scene */ /* this is for compliancy, later it can do all windows etc */ void ED_anim_dag_flush_update(const bContext *C) @@ -86,7 +64,7 @@ Scene *scene= CTX_data_scene(C); bScreen *screen= CTX_wm_screen(C); - DAG_scene_flush_update(scene, screen_view3d_layers(screen), 0); + DAG_scene_flush_update(scene, ED_screen_view3d_layers(screen), 0); } /* flushes changes from object to all relations in scene */ @@ -95,46 +73,10 @@ Scene *scene= CTX_data_scene(C); bScreen *screen= CTX_wm_screen(C); - DAG_object_update_flags(scene, ob, screen_view3d_layers(screen)); + DAG_object_update_flags(scene, ob, ED_screen_view3d_layers(screen)); } -/* results in fully updated anim system */ -/* in future sound should be on WM level, only 1 sound can play! */ -void ED_update_for_newframe(const bContext *C, int mute) -{ - bScreen *screen= CTX_wm_screen(C); - Scene *scene= screen->scene; - - //extern void audiostream_scrub(unsigned int frame); /* seqaudio.c */ - - /* this function applies the changes too */ - /* XXX future: do all windows */ - scene_update_for_newframe(scene, screen_view3d_layers(screen)); /* BKE_scene.h */ - - //if ( (CFRA>1) && (!mute) && (scene->audio.flag & AUDIO_SCRUB)) - // audiostream_scrub( CFRA ); - - /* 3d window, preview */ - //BIF_view3d_previewrender_signal(curarea, PR_DBASE|PR_DISPRECT); - - /* all movie/sequence images */ - //BIF_image_update_frame(); - - /* composite */ - if(scene->use_nodes && scene->nodetree) - ntreeCompositTagAnimated(scene->nodetree); - - /* update animated texture nodes */ - { - Tex *tex; - for(tex= G.main->tex.first; tex; tex= tex->id.next) - if( tex->use_nodes && tex->nodetree ) { - ntreeTexTagAnimated( tex->nodetree ); - } - } -} - /* **************************** animation tool notifiers ******************************** */ /* Send notifiers on behalf of animation editing tools, based on various context info Modified: branches/blender2.5/blender/source/blender/editors/curve/editcurve.c =================================================================== --- branches/blender2.5/blender/source/blender/editors/curve/editcurve.c 2009-02-04 11:52:16 UTC (rev 18809) +++ branches/blender2.5/blender/source/blender/editors/curve/editcurve.c 2009-02-04 17:40:50 UTC (rev 18810) @@ -66,6 +66,9 @@ #include "BKE_object.h" #include "BKE_utildefines.h" +#include "WM_api.h" +#include "WM_types.h" + #include "ED_anim_api.h" #include "ED_keyframes_edit.h" #include "ED_object.h" @@ -2759,7 +2762,7 @@ void mouse_nurb(bContext *C, short mval[2], int extend) { - Object *obedit= CTX_data_edit_object(C); // XXX + Object *obedit= CTX_data_edit_object(C); ListBase *editnurb= curve_get_editcurve(obedit); Curve *cu= obedit->data; ViewContext vc; @@ -2812,7 +2815,7 @@ } -// rightmouse_transform(); + WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit); if(nu!=get_actNurb(obedit)) { set_actNurb(obedit, nu); Modified: branches/blender2.5/blender/source/blender/editors/include/ED_anim_api.h =================================================================== --- branches/blender2.5/blender/source/blender/editors/include/ED_anim_api.h 2009-02-04 11:52:16 UTC (rev 18809) +++ branches/blender2.5/blender/source/blender/editors/include/ED_anim_api.h 2009-02-04 17:40:50 UTC (rev 18810) @@ -304,12 +304,10 @@ /* --------- anim_deps.c, animation updates -------- */ - /* generic update flush, reads from Context screen (layers) and scene */ + /* generic update flush, does tagged objects only, reads from Context screen (layers) and scene */ void ED_anim_dag_flush_update(const struct bContext *C); /* only flush object */ void ED_anim_object_flush_update(const struct bContext *C, struct Object *ob); - /* flush + do the actual update for all involved objects */ -void ED_update_for_newframe(const struct bContext *C, int mute); /* pose <-> action syncing */ void ANIM_action_to_pose_sync(struct Object *ob); Modified: branches/blender2.5/blender/source/blender/editors/include/ED_image.h =================================================================== --- branches/blender2.5/blender/source/blender/editors/include/ED_image.h 2009-02-04 11:52:16 UTC (rev 18809) +++ branches/blender2.5/blender/source/blender/editors/include/ED_image.h 2009-02-04 17:40:50 UTC (rev 18810) @@ -29,11 +29,15 @@ #define ED_IMAGE_H struct SpaceImage; +struct bContext; /* space_image.c, exported for transform */ struct Image *ED_space_image(struct SpaceImage *sima); void ED_space_image_size(struct SpaceImage *sima, int *width, int *height); void ED_space_image_uv_aspect(struct SpaceImage *sima, float *aspx, float *aspy); +/* image_render.c, export for screen_ops.c, render operator */ +void ED_space_image_output(struct bContext *C); + #endif /* ED_IMAGE_H */ Modified: branches/blender2.5/blender/source/blender/editors/include/ED_screen.h =================================================================== --- branches/blender2.5/blender/source/blender/editors/include/ED_screen.h 2009-02-04 11:52:16 UTC (rev 18809) +++ branches/blender2.5/blender/source/blender/editors/include/ED_screen.h 2009-02-04 17:40:50 UTC (rev 18810) @@ -84,6 +84,9 @@ void ED_screen_full_newspace(struct bContext *C, ScrArea *sa, int type); void ED_screen_full_prevspace(struct bContext *C); +/* anim */ +void ED_update_for_newframe(const struct bContext *C, int mute); +unsigned int ED_screen_view3d_layers(struct bScreen *screen); void ED_operatortypes_screen(void); void ED_keymap_screen(struct wmWindowManager *wm); @@ -104,6 +107,7 @@ int ED_operator_node_active(struct bContext *C); int ED_operator_ipo_active(struct bContext *C); int ED_operator_sequencer_active(struct bContext *C); +int ED_operator_image_active(struct bContext *C); int ED_operator_object_active(struct bContext *C); int ED_operator_editmesh(struct bContext *C); Modified: branches/blender2.5/blender/source/blender/editors/object/object_edit.c =================================================================== --- branches/blender2.5/blender/source/blender/editors/object/object_edit.c 2009-02-04 11:52:16 UTC (rev 18809) +++ branches/blender2.5/blender/source/blender/editors/object/object_edit.c 2009-02-04 17:40:50 UTC (rev 18810) @@ -526,70 +526,53 @@ MEM_freeN(base); } -void delete_obj(Scene *scene, View3D *v3d, int ok) +static int object_delete_exec(bContext *C, wmOperator *op) { - Base *base, *nbase; + Scene *scene= CTX_data_scene(C); int islamp= 0; @@ Diff output truncated at 10240 characters. @@ _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs