[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [23559] trunk/blender: Sorry, three commits in one, became difficult to untangle..

Brecht Van Lommel brecht at blender.org
Tue Sep 29 21:12:12 CEST 2009


Revision: 23559
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=23559
Author:   blendix
Date:     2009-09-29 21:12:12 +0200 (Tue, 29 Sep 2009)

Log Message:
-----------
Sorry, three commits in one, became difficult to untangle..

Editors Modules

* render/ module added in editors, moved the preview render code there and
  also shading related operators.
* physics/ module made more consistent with other modules. renaming files,
  making a single physics_ops.c for operators and keymaps. Also move all
  particle related operators here now.
* space_buttons/ now should have only operators relevant to the buttons
  specificially.

Updates & Notifiers

* Material/Texture/World/Lamp can now be passed to DAG_id_flush_update,
  which will go back to a callback in editors. Eventually these should
  be in the depsgraph itself, but for now this gives a unified call for
  doing updates.
* GLSL materials are now refreshed on changes. There's still various
  cases missing, 
* Preview icons now hook into this system, solving various update cases
  that were missed before.
* Also fixes issue in my last commit, where some preview would not render,
  problem is avoided in the new system.

Icon Rendering

* On systems with support for non-power of two textures, an OpenGL texture
  is now used instead of glDrawPixels. This avoids problems with icons get
  clipped on region borders. On my Linux desktop, this gives an 1.1x speedup,
  and on my Mac laptop a 2.3x speedup overall in redrawing the full window,
  with the default setup. The glDrawPixels implementation on Mac seems to
  have a lot of overhread.
* Preview icons are now drawn using proper premul alpha, and never faded so
  you can see them clearly.
* Also tried to fix issue with texture node preview rendering, globals can't
  be used with threads reliably.

Modified Paths:
--------------
    trunk/blender/release/scripts/ui/buttons_particle.py
    trunk/blender/source/blender/blenkernel/BKE_depsgraph.h
    trunk/blender/source/blender/blenkernel/BKE_node.h
    trunk/blender/source/blender/blenkernel/intern/depsgraph.c
    trunk/blender/source/blender/editors/Makefile
    trunk/blender/source/blender/editors/SConscript
    trunk/blender/source/blender/editors/include/ED_particle.h
    trunk/blender/source/blender/editors/include/ED_physics.h
    trunk/blender/source/blender/editors/include/UI_interface_icons.h
    trunk/blender/source/blender/editors/interface/interface_icons.c
    trunk/blender/source/blender/editors/interface/interface_templates.c
    trunk/blender/source/blender/editors/interface/interface_widgets.c
    trunk/blender/source/blender/editors/object/object_intern.h
    trunk/blender/source/blender/editors/object/object_ops.c
    trunk/blender/source/blender/editors/physics/physics_intern.h
    trunk/blender/source/blender/editors/render/Makefile
    trunk/blender/source/blender/editors/render/SConscript
    trunk/blender/source/blender/editors/space_api/spacetypes.c
    trunk/blender/source/blender/editors/space_buttons/buttons_intern.h
    trunk/blender/source/blender/editors/space_buttons/buttons_ops.c
    trunk/blender/source/blender/editors/space_buttons/space_buttons.c
    trunk/blender/source/blender/editors/space_file/file_draw.c
    trunk/blender/source/blender/editors/space_node/node_draw.c
    trunk/blender/source/blender/editors/space_node/node_edit.c
    trunk/blender/source/blender/editors/space_node/space_node.c
    trunk/blender/source/blender/editors/space_view3d/space_view3d.c
    trunk/blender/source/blender/makesdna/DNA_modifier_types.h
    trunk/blender/source/blender/makesdna/DNA_object_types.h
    trunk/blender/source/blender/makesrna/intern/rna_brush.c
    trunk/blender/source/blender/makesrna/intern/rna_internal.h
    trunk/blender/source/blender/makesrna/intern/rna_lamp.c
    trunk/blender/source/blender/makesrna/intern/rna_material.c
    trunk/blender/source/blender/makesrna/intern/rna_texture.c
    trunk/blender/source/blender/makesrna/intern/rna_world.c
    trunk/blender/source/blender/nodes/intern/TEX_util.c
    trunk/blender/source/blender/nodes/intern/TEX_util.h
    trunk/blender/source/blender/render/intern/source/texture.c
    trunk/blender/source/blender/windowmanager/WM_types.h
    trunk/blender/source/blender/windowmanager/intern/wm_init_exit.c

Added Paths:
-----------
    trunk/blender/source/blender/editors/include/ED_render.h
    trunk/blender/source/blender/editors/physics/particle_boids.c
    trunk/blender/source/blender/editors/physics/particle_edit.c
    trunk/blender/source/blender/editors/physics/particle_object.c
    trunk/blender/source/blender/editors/physics/physics_fluid.c
    trunk/blender/source/blender/editors/physics/physics_ops.c
    trunk/blender/source/blender/editors/physics/physics_pointcache.c
    trunk/blender/source/blender/editors/render/
    trunk/blender/source/blender/editors/render/render_intern.h
    trunk/blender/source/blender/editors/render/render_ops.c
    trunk/blender/source/blender/editors/render/render_preview.c
    trunk/blender/source/blender/editors/render/render_shading.c

Removed Paths:
-------------
    trunk/blender/source/blender/editors/include/ED_previewrender.h
    trunk/blender/source/blender/editors/physics/ed_fluidsim.c
    trunk/blender/source/blender/editors/physics/ed_pointcache.c
    trunk/blender/source/blender/editors/physics/editparticle.c
    trunk/blender/source/blender/editors/physics/physics_boids.c
    trunk/blender/source/blender/editors/preview/
    trunk/blender/source/blender/editors/render/previewrender.c
    trunk/blender/source/blender/editors/render/previewrender_intern.h

Modified: trunk/blender/release/scripts/ui/buttons_particle.py
===================================================================
--- trunk/blender/release/scripts/ui/buttons_particle.py	2009-09-29 15:27:00 UTC (rev 23558)
+++ trunk/blender/release/scripts/ui/buttons_particle.py	2009-09-29 19:12:12 UTC (rev 23559)
@@ -513,11 +513,11 @@
 		#row.template_list(boids, "states", boids, "active_boid_state_index", compact="True")
 		#col = row.row()
 		#subrow = col.row(align=True)
-		#subrow.itemO("boid.boidstate_add", icon='ICON_ZOOMIN', text="")
-		#subrow.itemO("boid.boidstate_del", icon='ICON_ZOOMOUT', text="")
+		#subrow.itemO("boid.state_add", icon='ICON_ZOOMIN', text="")
+		#subrow.itemO("boid.state_del", icon='ICON_ZOOMOUT', text="")
 		#subrow = row.row(align=True)
-		#subrow.itemO("boid.boidstate_move_up", icon='VICON_MOVE_UP', text="")
-		#subrow.itemO("boid.boidstate_move_down", icon='VICON_MOVE_DOWN', text="")
+		#subrow.itemO("boid.state_move_up", icon='VICON_MOVE_UP', text="")
+		#subrow.itemO("boid.state_move_down", icon='VICON_MOVE_DOWN', text="")
 		
 		state = boids.active_boid_state
 		
@@ -536,12 +536,12 @@
 		col = row.column()
 		subrow = col.row()
 		subcol = subrow.column(align=True)
-		subcol.item_menu_enumO("boid.boidrule_add", "type", icon='ICON_ZOOMIN', text="")
-		subcol.itemO("boid.boidrule_del", icon='ICON_ZOOMOUT', text="")
+		subcol.item_menu_enumO("boid.rule_add", "type", icon='ICON_ZOOMIN', text="")
+		subcol.itemO("boid.rule_del", icon='ICON_ZOOMOUT', text="")
 		subrow = col.row()
 		subcol = subrow.column(align=True)
-		subcol.itemO("boid.boidrule_move_up", icon='VICON_MOVE_UP', text="")
-		subcol.itemO("boid.boidrule_move_down", icon='VICON_MOVE_DOWN', text="")
+		subcol.itemO("boid.rule_move_up", icon='VICON_MOVE_UP', text="")
+		subcol.itemO("boid.rule_move_down", icon='VICON_MOVE_DOWN', text="")
 		
 		rule = state.active_boid_rule
 		

Modified: trunk/blender/source/blender/blenkernel/BKE_depsgraph.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_depsgraph.h	2009-09-29 15:27:00 UTC (rev 23558)
+++ trunk/blender/source/blender/blenkernel/BKE_depsgraph.h	2009-09-29 19:12:12 UTC (rev 23559)
@@ -115,5 +115,8 @@
 
 		/* (re)-create dependency graph for armature pose */
 void	DAG_pose_sort(struct Object *ob);
+
+		/* callback for editors module to do updates */
+void	DAG_editors_update_cb(void (*func)(struct Main *bmain, struct ID *id));
 		
 #endif

Modified: trunk/blender/source/blender/blenkernel/BKE_node.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_node.h	2009-09-29 15:27:00 UTC (rev 23558)
+++ trunk/blender/source/blender/blenkernel/BKE_node.h	2009-09-29 19:12:12 UTC (rev 23559)
@@ -426,7 +426,7 @@
 /* API */
 int  ntreeTexTagAnimated(struct bNodeTree *ntree);
 void ntreeTexSetPreviewFlag(int);
-void ntreeTexExecTree(struct bNodeTree *ntree, struct TexResult *target, float *coord, float *dxt, float *dyt, short thread, struct Tex *tex, short which_output, int cfra);
+void ntreeTexExecTree(struct bNodeTree *ntree, struct TexResult *target, float *coord, float *dxt, float *dyt, short thread, struct Tex *tex, short which_output, int cfra, int preview);
 void ntreeTexCheckCyclics(struct bNodeTree *ntree);
 char* ntreeTexOutputMenu(struct bNodeTree *ntree);
 

Modified: trunk/blender/source/blender/blenkernel/intern/depsgraph.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/depsgraph.c	2009-09-29 15:27:00 UTC (rev 23558)
+++ trunk/blender/source/blender/blenkernel/intern/depsgraph.c	2009-09-29 19:12:12 UTC (rev 23559)
@@ -1607,6 +1607,21 @@
 
 /* ************************ API *********************** */
 
+/* mechanism to allow editors to be informed of depsgraph updates,
+   to do their own updates based on changes... */
+static void (*EditorsUpdateCb)(Main *bmain, ID *id)= NULL;
+
+void DAG_editors_update_cb(void (*func)(Main *bmain, ID *id))
+{
+	EditorsUpdateCb= func;
+}
+
+static void dag_editors_update(Main *bmain, ID *id)
+{
+	if(EditorsUpdateCb)
+		EditorsUpdateCb(bmain, id);
+}
+
 /* groups with objects in this scene need to be put in the right order as well */
 static void scene_sort_groups(Scene *sce)
 {
@@ -2239,6 +2254,9 @@
 				}
 			}
 		}
+
+		/* update editors */
+		dag_editors_update(bmain, id);
 	}
 
 	/* flush to other objects that depend on this one */

Modified: trunk/blender/source/blender/editors/Makefile
===================================================================
--- trunk/blender/source/blender/editors/Makefile	2009-09-29 15:27:00 UTC (rev 23558)
+++ trunk/blender/source/blender/editors/Makefile	2009-09-29 19:12:12 UTC (rev 23559)
@@ -43,7 +43,7 @@
   metaball \
   gpencil \
   physics \
-  preview \
+  render \
   uvedit \
   space_outliner \
   space_time \

Modified: trunk/blender/source/blender/editors/SConscript
===================================================================
--- trunk/blender/source/blender/editors/SConscript	2009-09-29 15:27:00 UTC (rev 23558)
+++ trunk/blender/source/blender/editors/SConscript	2009-09-29 19:12:12 UTC (rev 23559)
@@ -14,7 +14,7 @@
 			'curve/SConscript',
 			'gpencil/SConscript',
 			'physics/SConscript',
-			'preview/SConscript',
+			'render/SConscript',
 			'sound/SConscript',
 			'space_buttons/SConscript',
 			'space_file/SConscript',

Modified: trunk/blender/source/blender/editors/include/ED_particle.h
===================================================================
--- trunk/blender/source/blender/editors/include/ED_particle.h	2009-09-29 15:27:00 UTC (rev 23558)
+++ trunk/blender/source/blender/editors/include/ED_particle.h	2009-09-29 19:12:12 UTC (rev 23559)
@@ -38,6 +38,7 @@
 struct rcti;
 struct wmWindowManager;
 struct PTCacheEdit;
+struct Scene;
 
 /* particle edit mode */
 void PE_free_ptcache_edit(struct PTCacheEdit *edit);
@@ -46,7 +47,7 @@
 /* access */
 struct PTCacheEdit *PE_get_current(struct Scene *scene, struct Object *ob);
 int PE_minmax(struct Scene *scene, float *min, float *max);
-struct ParticleEditSettings *PE_settings(Scene *scene);
+struct ParticleEditSettings *PE_settings(struct Scene *scene);
 
 /* update calls */
 void PE_hide_keys_time(struct Scene *scene, struct PTCacheEdit *edit, float cfra);
@@ -59,15 +60,11 @@
 int PE_lasso_select(struct bContext *C, short mcords[][2], short moves, short select);
 
 /* undo */
-void PE_undo_push(Scene *scene, char *str);
-void PE_undo_step(Scene *scene, int step);
-void PE_undo(Scene *scene);
-void PE_redo(Scene *scene);
-void PE_undo_menu(Scene *scene, Object *ob);
+void PE_undo_push(struct Scene *scene, char *str);
+void PE_undo_step(struct Scene *scene, int step);
+void PE_undo(struct Scene *scene);
+void PE_redo(struct Scene *scene);
+void PE_undo_menu(struct Scene *scene, struct Object *ob);
 
-/* operators */
-void ED_operatortypes_particle(void);
-void ED_keymap_particle(struct wmWindowManager *wm);
-
 #endif /* ED_PARTICLE_H */
 

Modified: trunk/blender/source/blender/editors/include/ED_physics.h
===================================================================
--- trunk/blender/source/blender/editors/include/ED_physics.h	2009-09-29 15:27:00 UTC (rev 23558)
+++ trunk/blender/source/blender/editors/include/ED_physics.h	2009-09-29 19:12:12 UTC (rev 23559)
@@ -31,11 +31,8 @@
 #define ED_PHYSICS_H
 
 /* operators */
+void ED_operatortypes_physics(void);
+void ED_keymap_physics(struct wmWindowManager *wm);
 
-void ED_operatortypes_boids(void);
-void ED_operatortypes_pointcache(void);
-void ED_operatortypes_fluid(void);
-//void ED_keymap_pointcache(struct wmWindowManager *wm);
-
 #endif /* ED_PHYSICS_H */
 

Deleted: trunk/blender/source/blender/editors/include/ED_previewrender.h
===================================================================
--- trunk/blender/source/blender/editors/include/ED_previewrender.h	2009-09-29 15:27:00 UTC (rev 23558)
+++ trunk/blender/source/blender/editors/include/ED_previewrender.h	2009-09-29 19:12:12 UTC (rev 23559)
@@ -1,79 +0,0 @@
-/**
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
- *
- * The Original Code is Copyright (C) 2005 Blender Foundation.
- * All rights reserved.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-#ifndef ED_PREVIEWRENDER_H
-#define ED_PREVIEWRENDER_H
-
-#include "DNA_vec_types.h"
-
-struct View3D;
-struct SpaceButs;
-struct RenderInfo;
-struct Scene;
-struct Image;
-struct Render;
-struct bContext;
-struct ID;
-struct MTex;
-
-#define PREVIEW_RENDERSIZE 140
-
-/* stores rendered preview  - is also used for icons */
-typedef struct RenderInfo {
-	int pr_rectx;
-	int pr_recty;
-	short curtile, tottile, status;
-	rcti disprect;			/* storage for view3d preview rect */
-	unsigned int* rect;		
-	struct Render *re;		/* persistant render */
-} RenderInfo;
-
-/* ri->status */
-#define PR_DBASE			1
-#define PR_DISPRECT			2
-#define PR_PROJECTED		4
-#define PR_ROTATED			8
-
-/* Render the preview
-
-pr_method:
-- PR_DRAW_RENDER: preview is rendered and drawn, as indicated by called context (buttons panel)
-- PR_ICON_RENDER: the preview is not drawn and the function is not dynamic,
-  so no events are processed. Hopefully fast enough for at least 32x32 
-- PR_DO_RENDER: preview is rendered, not drawn, but events are processed for afterqueue,
-  in use for node editor now.
-*/
-
-#define PR_DRAW_RENDER	0
-#define PR_ICON_RENDER	1
-#define PR_DO_RENDER	2
-
-void ED_preview_init_dbase(void);
-void ED_preview_free_dbase(void);
-
-void ED_preview_shader_job(const struct bContext *C, void *owner, struct ID *id, struct ID *parent, struct MTex *slot, int sizex, int sizey);

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list