Blender Git Loki
Git Commits -> Revision 9cc59fb
Revision 9cc59fb by Ton Roosendaal (master) January 22, 2009, 14:59 (GMT) |
2.5 Added WM Jobs manager - WM can manage threaded jobs for you; just provide a couple of components to get it work: - customdata, free callback for it - timer step, notifier code - start callback, update callback - Once started, each job runs an own timer, and will for every time step check necessary updates, or close the job when ready. - No drawing happens in jobs, that's for notifiers! - Every job stores an owner pointer, and based on this owner it will prevent multiple jobs to enter the stack. Instead it will re-use a running job, signal it to stop and allow caller to re-initialize it even. - Check new wm_jobs.c for more explanation. Jobs API is still under construction. Fun: BLI_addtail(&wm->jobs, steve); :) Put Node shader previews back using wmJobs - Preview calculating is now fully threaded (1 thread still) - Thanks to new event system + notifiers, you can see previews update even while dragging sliders! - Currently it only starts when you change a node setting. Warning: the thread render shares Node data, so don't delete nodes while it renders! This topic is on the todo to make safe. Also: - bug in region initialize (do_versions) showed channel list in node editor wrong. - flagged the channel list 'hidden' now, it was really in the way! This is for later to work on anyway. - recoded Render API callbacks so it gets handlers passed on, no globals to use anymore, remember? - previewrender code gets now so much nicer! Will remove a lot of stuff from code soon. |
Commit Details:
Full Hash: 9cc59fb0c329bb788defe9c56b69d0919caaba96
SVN Revision: 18623
Parent Commit: a017982
Lines Changed: +14716, -256
2 Added Paths:
/source/blender/editors/datafiles/preview.blend.c (+13952, -0) (View)
/source/blender/windowmanager/intern/wm_jobs.c (+270, -0) (View)
/source/blender/windowmanager/intern/wm_jobs.c (+270, -0) (View)
36 Modified Paths:
/source/blender/blenkernel/intern/node.c (+5, -5) (Diff)
/source/blender/blenkernel/intern/screen.c (+2, -0) (Diff)
/source/blender/blenloader/intern/readfile.c (+8, -1) (Diff)
/source/blender/editors/include/ED_previewrender.h (+5, -14) (Diff)
/source/blender/editors/interface/interface_regions.c (+1, -0) (Diff)
/source/blender/editors/mesh/meshtools.c (+2, -2) (Diff)
/source/blender/editors/object/object_edit.c (+7, -7) (Diff)
/source/blender/editors/preview/previewrender.c (+170, -23) (Diff)
/source/blender/editors/space_image/image_render.c (+9, -8) (Diff)
/source/blender/editors/space_node/node_draw.c (+24, -6) (Diff)
/source/blender/editors/space_node/node_edit.c (+1, -0) (Diff)
/source/blender/editors/space_node/space_node.c (+33, -5) (Diff)
/source/blender/makesdna/DNA_node_types.h (+5, -3) (Diff)
/source/blender/makesdna/DNA_windowmanager_types.h (+3, -1) (Diff)
/source/blender/nodes/intern/Makefile (+1, -1) (Diff)
/source/blender/radiosity/intern/source/radrender.c (+3, -3) (Diff)
/source/blender/render/extern/include/RE_pipeline.h (+7, -8) (Diff)
/source/blender/render/intern/include/render_types.h (+17, -10) (Diff)
/source/blender/render/intern/source/convertblender.c (+24, -24) (Diff)
/source/blender/render/intern/source/envmap.c (+8, -8) (Diff)
/source/blender/render/intern/source/occlusion.c (+4, -4) (Diff)
/source/blender/render/intern/source/pipeline.c (+81, -75) (Diff)
/source/blender/render/intern/source/rayshade.c (+3, -3) (Diff)
/source/blender/render/intern/source/rendercore.c (+14, -14) (Diff)
/source/blender/render/intern/source/shadbuf.c (+6, -6) (Diff)
/source/blender/render/intern/source/sss.c (+4, -4) (Diff)
/source/blender/render/intern/source/strand.c (+4, -4) (Diff)
/source/blender/render/intern/source/zbuf.c (+7, -7) (Diff)
/source/blender/windowmanager/intern/wm_event_system.c (+1, -1) (Diff)
/source/blender/windowmanager/intern/wm_init_exit.c (+4, -3) (Diff)
/source/blender/windowmanager/intern/wm_operators.c (+4, -0) (Diff)
/source/blender/windowmanager/wm.h (+4, -0) (Diff)
/source/blender/windowmanager/WM_api.h (+17, -0) (Diff)
/source/blender/windowmanager/wm_event_types.h (+1, -1) (Diff)
/source/blender/yafray/intern/export_File.cpp (+1, -1) (Diff)
/source/blender/yafray/intern/export_Plugin.cpp (+4, -4) (Diff)
/source/blender/blenkernel/intern/screen.c (+2, -0) (Diff)
/source/blender/blenloader/intern/readfile.c (+8, -1) (Diff)
/source/blender/editors/include/ED_previewrender.h (+5, -14) (Diff)
/source/blender/editors/interface/interface_regions.c (+1, -0) (Diff)
/source/blender/editors/mesh/meshtools.c (+2, -2) (Diff)
/source/blender/editors/object/object_edit.c (+7, -7) (Diff)
/source/blender/editors/preview/previewrender.c (+170, -23) (Diff)
/source/blender/editors/space_image/image_render.c (+9, -8) (Diff)
/source/blender/editors/space_node/node_draw.c (+24, -6) (Diff)
/source/blender/editors/space_node/node_edit.c (+1, -0) (Diff)
/source/blender/editors/space_node/space_node.c (+33, -5) (Diff)
/source/blender/makesdna/DNA_node_types.h (+5, -3) (Diff)
/source/blender/makesdna/DNA_windowmanager_types.h (+3, -1) (Diff)
/source/blender/nodes/intern/Makefile (+1, -1) (Diff)
/source/blender/radiosity/intern/source/radrender.c (+3, -3) (Diff)
/source/blender/render/extern/include/RE_pipeline.h (+7, -8) (Diff)
/source/blender/render/intern/include/render_types.h (+17, -10) (Diff)
/source/blender/render/intern/source/convertblender.c (+24, -24) (Diff)
/source/blender/render/intern/source/envmap.c (+8, -8) (Diff)
/source/blender/render/intern/source/occlusion.c (+4, -4) (Diff)
/source/blender/render/intern/source/pipeline.c (+81, -75) (Diff)
/source/blender/render/intern/source/rayshade.c (+3, -3) (Diff)
/source/blender/render/intern/source/rendercore.c (+14, -14) (Diff)
/source/blender/render/intern/source/shadbuf.c (+6, -6) (Diff)
/source/blender/render/intern/source/sss.c (+4, -4) (Diff)
/source/blender/render/intern/source/strand.c (+4, -4) (Diff)
/source/blender/render/intern/source/zbuf.c (+7, -7) (Diff)
/source/blender/windowmanager/intern/wm_event_system.c (+1, -1) (Diff)
/source/blender/windowmanager/intern/wm_init_exit.c (+4, -3) (Diff)
/source/blender/windowmanager/intern/wm_operators.c (+4, -0) (Diff)
/source/blender/windowmanager/wm.h (+4, -0) (Diff)
/source/blender/windowmanager/WM_api.h (+17, -0) (Diff)
/source/blender/windowmanager/wm_event_types.h (+1, -1) (Diff)
/source/blender/yafray/intern/export_File.cpp (+1, -1) (Diff)
/source/blender/yafray/intern/export_Plugin.cpp (+4, -4) (Diff)