Bring rendering back (update all references to SETLOPPER)
This commit is contained in:
		@@ -512,9 +512,9 @@ static void add_collision_object(Object ***objs, unsigned int *numobj, unsigned
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// return all collision objects in scene
 | 
					// return all collision objects in scene
 | 
				
			||||||
// collision object will exclude self 
 | 
					// collision object will exclude self 
 | 
				
			||||||
Object **get_collisionobjects_ext(Scene *scene, Object *self, Group *group, int layer, unsigned int *numcollobj, unsigned int modifier_type, bool dupli)
 | 
					Object **get_collisionobjects_ext(Scene *scene, Object *self, Group *group, int UNUSED(layer), unsigned int *numcollobj, unsigned int modifier_type, bool dupli)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	BaseLegacy *base;
 | 
						Base *base;
 | 
				
			||||||
	Object **objs;
 | 
						Object **objs;
 | 
				
			||||||
	GroupObject *go;
 | 
						GroupObject *go;
 | 
				
			||||||
	unsigned int numobj= 0, maxobj= 100;
 | 
						unsigned int numobj= 0, maxobj= 100;
 | 
				
			||||||
@@ -532,9 +532,9 @@ Object **get_collisionobjects_ext(Scene *scene, Object *self, Group *group, int
 | 
				
			|||||||
		Scene *sce_iter;
 | 
							Scene *sce_iter;
 | 
				
			||||||
		/* add objects in same layer in scene */
 | 
							/* add objects in same layer in scene */
 | 
				
			||||||
		for (SETLOOPER(scene, sce_iter, base)) {
 | 
							for (SETLOOPER(scene, sce_iter, base)) {
 | 
				
			||||||
			if ( base->lay & layer )
 | 
								if ((base->flag & BASE_VISIBLED) != 0) {
 | 
				
			||||||
				add_collision_object(&objs, &numobj, &maxobj, base->object, self, level, modifier_type);
 | 
									add_collision_object(&objs, &numobj, &maxobj, base->object, self, level, modifier_type);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -596,11 +596,11 @@ ListBase *get_collider_cache(Scene *scene, Object *self, Group *group)
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	else {
 | 
						else {
 | 
				
			||||||
		Scene *sce_iter;
 | 
							Scene *sce_iter;
 | 
				
			||||||
		BaseLegacy *base;
 | 
							Base *base;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		/* add objects in same layer in scene */
 | 
							/* add objects in same layer in scene */
 | 
				
			||||||
		for (SETLOOPER(scene, sce_iter, base)) {
 | 
							for (SETLOOPER(scene, sce_iter, base)) {
 | 
				
			||||||
			if (!self || (base->lay & self->lay))
 | 
								if (!self || ((base->flag & BASE_VISIBLED) != 0))
 | 
				
			||||||
				add_collider_cache_object(&objs, base->object, self, 0);
 | 
									add_collider_cache_object(&objs, base->object, self, 0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3541,7 +3541,7 @@ void BKE_ptcache_bake(PTCacheBaker *baker)
 | 
				
			|||||||
	Main *bmain = baker->main;
 | 
						Main *bmain = baker->main;
 | 
				
			||||||
	Scene *scene = baker->scene;
 | 
						Scene *scene = baker->scene;
 | 
				
			||||||
	Scene *sce_iter; /* SETLOOPER macro only */
 | 
						Scene *sce_iter; /* SETLOOPER macro only */
 | 
				
			||||||
	BaseLegacy *base;
 | 
						Base *base;
 | 
				
			||||||
	ListBase pidlist;
 | 
						ListBase pidlist;
 | 
				
			||||||
	PTCacheID *pid = &baker->pid;
 | 
						PTCacheID *pid = &baker->pid;
 | 
				
			||||||
	PointCache *cache = NULL;
 | 
						PointCache *cache = NULL;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -782,7 +782,7 @@ void BKE_sound_read_waveform(bSound *sound, short *stop)
 | 
				
			|||||||
void BKE_sound_update_scene(Main *bmain, struct Scene *scene)
 | 
					void BKE_sound_update_scene(Main *bmain, struct Scene *scene)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	Object *ob;
 | 
						Object *ob;
 | 
				
			||||||
	BaseLegacy *base;
 | 
						Base *base;
 | 
				
			||||||
	NlaTrack *track;
 | 
						NlaTrack *track;
 | 
				
			||||||
	NlaStrip *strip;
 | 
						NlaStrip *strip;
 | 
				
			||||||
	Speaker *speaker;
 | 
						Speaker *speaker;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -780,18 +780,18 @@ static void screen_render_cancel(bContext *C, wmOperator *op)
 | 
				
			|||||||
	WM_jobs_kill_type(wm, scene, WM_JOB_TYPE_RENDER);
 | 
						WM_jobs_kill_type(wm, scene, WM_JOB_TYPE_RENDER);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void clean_viewport_memory(Main *bmain, Scene *scene, int renderlay)
 | 
					static void clean_viewport_memory(Main *bmain, Scene *scene)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	Object *object;
 | 
						Object *object;
 | 
				
			||||||
	Scene *sce_iter;
 | 
						Scene *sce_iter;
 | 
				
			||||||
	BaseLegacy *base;
 | 
						Base *base;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for (object = bmain->object.first; object; object = object->id.next) {
 | 
						for (object = bmain->object.first; object; object = object->id.next) {
 | 
				
			||||||
		object->id.tag |= LIB_TAG_DOIT;
 | 
							object->id.tag |= LIB_TAG_DOIT;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for (SETLOOPER(scene, sce_iter, base)) {
 | 
						for (SETLOOPER(scene, sce_iter, base)) {
 | 
				
			||||||
		if ((base->lay & renderlay) == 0) {
 | 
							if ((base->flag & BASE_VISIBLED) == 0) {
 | 
				
			||||||
			continue;
 | 
								continue;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if (RE_allow_render_generic_object(base->object)) {
 | 
							if (RE_allow_render_generic_object(base->object)) {
 | 
				
			||||||
@@ -927,8 +927,6 @@ static int screen_render_invoke(bContext *C, wmOperator *op, const wmEvent *even
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	/* Lock the user interface depending on render settings. */
 | 
						/* Lock the user interface depending on render settings. */
 | 
				
			||||||
	if (scene->r.use_lock_interface) {
 | 
						if (scene->r.use_lock_interface) {
 | 
				
			||||||
		int renderlay = rj->lay_override ? rj->lay_override : scene->lay;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		WM_set_locked_interface(CTX_wm_manager(C), true);
 | 
							WM_set_locked_interface(CTX_wm_manager(C), true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		/* Set flag interface need to be unlocked.
 | 
							/* Set flag interface need to be unlocked.
 | 
				
			||||||
@@ -942,7 +940,7 @@ static int screen_render_invoke(bContext *C, wmOperator *op, const wmEvent *even
 | 
				
			|||||||
		rj->interface_locked = true;
 | 
							rj->interface_locked = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		/* Clean memory used by viewport? */
 | 
							/* Clean memory used by viewport? */
 | 
				
			||||||
		clean_viewport_memory(rj->main, scene, renderlay);
 | 
							clean_viewport_memory(rj->main, scene);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* setup job */
 | 
						/* setup job */
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1293,7 +1293,7 @@ void ED_view3d_draw_depth(Scene *scene, ARegion *ar, View3D *v3d, bool alphaover
 | 
				
			|||||||
	if (scene->set) {
 | 
						if (scene->set) {
 | 
				
			||||||
		Scene *sce_iter;
 | 
							Scene *sce_iter;
 | 
				
			||||||
		for (SETLOOPER(scene->set, sce_iter, base)) {
 | 
							for (SETLOOPER(scene->set, sce_iter, base)) {
 | 
				
			||||||
			if (v3d->lay & base->lay) {
 | 
								if ((base->flag & BASE_VISIBLED) != 0) {
 | 
				
			||||||
				draw_object(scene, sl, ar, v3d, base, 0);
 | 
									draw_object(scene, sl, ar, v3d, base, 0);
 | 
				
			||||||
				if (base->object->transflag & OB_DUPLI) {
 | 
									if (base->object->transflag & OB_DUPLI) {
 | 
				
			||||||
					draw_dupli_objects_color(scene, sl, ar, v3d, base, dflag_depth, TH_UNDEFINED);
 | 
										draw_dupli_objects_color(scene, sl, ar, v3d, base, dflag_depth, TH_UNDEFINED);
 | 
				
			||||||
@@ -1414,7 +1414,7 @@ static void gpu_update_lamps_shadows_world(Scene *scene, View3D *v3d)
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
	ListBase shadows;
 | 
						ListBase shadows;
 | 
				
			||||||
	Scene *sce_iter;
 | 
						Scene *sce_iter;
 | 
				
			||||||
	BaseLegacy *base;
 | 
						Base *base;
 | 
				
			||||||
	World *world = scene->world;
 | 
						World *world = scene->world;
 | 
				
			||||||
	SceneRenderLayer *srl = v3d->scenelock ? BLI_findlink(&scene->r.layers, scene->r.actlay) : NULL;
 | 
						SceneRenderLayer *srl = v3d->scenelock ? BLI_findlink(&scene->r.layers, scene->r.actlay) : NULL;
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
@@ -1550,7 +1550,7 @@ static void view3d_draw_objects(
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
	SceneLayer *sl = C ? CTX_data_scene_layer(C) : BKE_scene_layer_active(scene);
 | 
						SceneLayer *sl = C ? CTX_data_scene_layer(C) : BKE_scene_layer_active(scene);
 | 
				
			||||||
	RegionView3D *rv3d = ar->regiondata;
 | 
						RegionView3D *rv3d = ar->regiondata;
 | 
				
			||||||
	BaseLegacy *base;
 | 
						Base *base;
 | 
				
			||||||
	const bool do_camera_frame = !draw_offscreen;
 | 
						const bool do_camera_frame = !draw_offscreen;
 | 
				
			||||||
	const bool draw_grids = !draw_offscreen && (v3d->flag2 & V3D_RENDER_OVERRIDE) == 0;
 | 
						const bool draw_grids = !draw_offscreen && (v3d->flag2 & V3D_RENDER_OVERRIDE) == 0;
 | 
				
			||||||
	const bool draw_floor = (rv3d->view == RV3D_VIEW_USER) || (rv3d->persp != RV3D_ORTHO);
 | 
						const bool draw_floor = (rv3d->view == RV3D_VIEW_USER) || (rv3d->persp != RV3D_ORTHO);
 | 
				
			||||||
@@ -1608,7 +1608,7 @@ static void view3d_draw_objects(
 | 
				
			|||||||
		const short dflag = DRAW_CONSTCOLOR | DRAW_SCENESET;
 | 
							const short dflag = DRAW_CONSTCOLOR | DRAW_SCENESET;
 | 
				
			||||||
		Scene *sce_iter;
 | 
							Scene *sce_iter;
 | 
				
			||||||
		for (SETLOOPER(scene->set, sce_iter, base)) {
 | 
							for (SETLOOPER(scene->set, sce_iter, base)) {
 | 
				
			||||||
			if (v3d->lay & base->lay) {
 | 
								if ((base->flag & BASE_VISIBLED) != 0) {
 | 
				
			||||||
				UI_ThemeColorBlend(TH_WIRE, TH_BACK, 0.6f);
 | 
									UI_ThemeColorBlend(TH_WIRE, TH_BACK, 0.6f);
 | 
				
			||||||
				draw_object(scene, sl, ar, v3d, base, dflag);
 | 
									draw_object(scene, sl, ar, v3d, base, dflag);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -2351,7 +2351,7 @@ static void view3d_stereo3d_setup_offscreen(Scene *scene, View3D *v3d, ARegion *
 | 
				
			|||||||
static void update_lods(Scene *scene, float camera_pos[3])
 | 
					static void update_lods(Scene *scene, float camera_pos[3])
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	Scene *sce_iter;
 | 
						Scene *sce_iter;
 | 
				
			||||||
	BaseLegacy *base;
 | 
						Base *base;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for (SETLOOPER(scene, sce_iter, base)) {
 | 
						for (SETLOOPER(scene, sce_iter, base)) {
 | 
				
			||||||
		Object *ob = base->object;
 | 
							Object *ob = base->object;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1016,7 +1016,7 @@ static void shade_one_light(GPUShadeInput *shi, GPUShadeResult *shr, GPULamp *la
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
static void material_lights(GPUShadeInput *shi, GPUShadeResult *shr)
 | 
					static void material_lights(GPUShadeInput *shi, GPUShadeResult *shr)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	BaseLegacy *base;
 | 
						Base *base;
 | 
				
			||||||
	Scene *sce_iter;
 | 
						Scene *sce_iter;
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	for (SETLOOPER(shi->gpumat->scene, sce_iter, base)) {
 | 
						for (SETLOOPER(shi->gpumat->scene, sce_iter, base)) {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4975,14 +4975,13 @@ static void add_group_render_dupli_obs(Render *re, Group *group, int nolamps, in
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void database_init_objects(Render *re, unsigned int renderlay, int nolamps, int onlyselected, Object *actob, int timeoffset)
 | 
					static void database_init_objects(Render *re, unsigned int UNUSED(renderlay), int nolamps, int onlyselected, Object *actob, int timeoffset)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	BaseLegacy *base;
 | 
						Base *base;
 | 
				
			||||||
	Object *ob;
 | 
						Object *ob;
 | 
				
			||||||
	Group *group;
 | 
						Group *group;
 | 
				
			||||||
	ObjectInstanceRen *obi;
 | 
						ObjectInstanceRen *obi;
 | 
				
			||||||
	Scene *sce_iter;
 | 
						Scene *sce_iter;
 | 
				
			||||||
	int lay, vectorlay;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* for duplis we need the Object texture mapping to work as if
 | 
						/* for duplis we need the Object texture mapping to work as if
 | 
				
			||||||
	 * untransformed, set_dupli_tex_mat sets the matrix to allow that
 | 
						 * untransformed, set_dupli_tex_mat sets the matrix to allow that
 | 
				
			||||||
@@ -5010,14 +5009,18 @@ static void database_init_objects(Render *re, unsigned int renderlay, int nolamp
 | 
				
			|||||||
	for (SETLOOPER(re->scene, sce_iter, base)) {
 | 
						for (SETLOOPER(re->scene, sce_iter, base)) {
 | 
				
			||||||
		ob= base->object;
 | 
							ob= base->object;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if 0
 | 
				
			||||||
 | 
							TODO_LAYER; /* investigate if this is an issue*/
 | 
				
			||||||
		/* in the prev/next pass for making speed vectors, avoid creating
 | 
							/* in the prev/next pass for making speed vectors, avoid creating
 | 
				
			||||||
		 * objects that are not on a renderlayer with a vector pass, can
 | 
							 * objects that are not on a renderlayer with a vector pass, can
 | 
				
			||||||
		 * save a lot of time in complex scenes */
 | 
							 * save a lot of time in complex scenes */
 | 
				
			||||||
		vectorlay= get_vector_renderlayers(re->scene);
 | 
							vectorlay= get_vector_renderlayers(re->scene);
 | 
				
			||||||
		lay= (timeoffset)? renderlay & vectorlay: renderlay;
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		/* if the object has been restricted from rendering in the outliner, ignore it */
 | 
							/* if the object is not visible, ignore it */
 | 
				
			||||||
		if (is_object_restricted(re, ob)) continue;
 | 
							if ((base->flag & BASE_VISIBLED) == 0) {
 | 
				
			||||||
 | 
								continue;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		/* OB_DONE means the object itself got duplicated, so was already converted */
 | 
							/* OB_DONE means the object itself got duplicated, so was already converted */
 | 
				
			||||||
		if (ob->flag & OB_DONE) {
 | 
							if (ob->flag & OB_DONE) {
 | 
				
			||||||
@@ -5030,7 +5033,7 @@ static void database_init_objects(Render *re, unsigned int renderlay, int nolamp
 | 
				
			|||||||
				}
 | 
									}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		else if ((base->lay & lay) || (ob->type==OB_LAMP && (base->lay & re->lay)) ) {
 | 
							else if (((base->flag & BASE_VISIBLED) != 0) || (ob->type==OB_LAMP)) {
 | 
				
			||||||
			if ((ob->transflag & OB_DUPLI) && (ob->type!=OB_MBALL)) {
 | 
								if ((ob->transflag & OB_DUPLI) && (ob->type!=OB_MBALL)) {
 | 
				
			||||||
				DupliObject *dob;
 | 
									DupliObject *dob;
 | 
				
			||||||
				ListBase *duplilist;
 | 
									ListBase *duplilist;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2012,14 +2012,14 @@ bool RE_allow_render_generic_object(Object *ob)
 | 
				
			|||||||
#define DEPSGRAPH_WORKAROUND_HACK
 | 
					#define DEPSGRAPH_WORKAROUND_HACK
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef DEPSGRAPH_WORKAROUND_HACK
 | 
					#ifdef DEPSGRAPH_WORKAROUND_HACK
 | 
				
			||||||
static void tag_dependend_objects_for_render(Scene *scene, int renderlay)
 | 
					static void tag_dependend_objects_for_render(Scene *scene, int UNUSED(renderlay))
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	Scene *sce_iter;
 | 
						Scene *sce_iter;
 | 
				
			||||||
	BaseLegacy *base;
 | 
						Base *base;
 | 
				
			||||||
	for (SETLOOPER(scene, sce_iter, base)) {
 | 
						for (SETLOOPER(scene, sce_iter, base)) {
 | 
				
			||||||
		Object *object = base->object;
 | 
							Object *object = base->object;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if ((base->lay & renderlay) == 0) {
 | 
							if ((base->flag & BASE_VISIBLED) == 0) {
 | 
				
			||||||
			continue;
 | 
								continue;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -394,7 +394,7 @@ static void SetDefaultLightMode(Scene* scene)
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
	default_light_mode = false;
 | 
						default_light_mode = false;
 | 
				
			||||||
	Scene *sce_iter;
 | 
						Scene *sce_iter;
 | 
				
			||||||
	BaseLegacy *base;
 | 
						Base *base;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for (SETLOOPER(scene, sce_iter, base))
 | 
						for (SETLOOPER(scene, sce_iter, base))
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
@@ -1736,7 +1736,7 @@ static void UNUSED_FUNCTION(print_active_constraints2)(Object *ob) //not used, u
 | 
				
			|||||||
static void blenderSceneSetBackground(Scene *blenderscene)
 | 
					static void blenderSceneSetBackground(Scene *blenderscene)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	Scene *it;
 | 
						Scene *it;
 | 
				
			||||||
	BaseLegacy *base;
 | 
						Base *base;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for (SETLOOPER(blenderscene, it, base)) {
 | 
						for (SETLOOPER(blenderscene, it, base)) {
 | 
				
			||||||
		base->object->lay = base->lay;
 | 
							base->object->lay = base->lay;
 | 
				
			||||||
@@ -1911,7 +1911,7 @@ void BL_ConvertBlenderObjects(struct Main* maggie,
 | 
				
			|||||||
	Scene *blenderscene = kxscene->GetBlenderScene();
 | 
						Scene *blenderscene = kxscene->GetBlenderScene();
 | 
				
			||||||
	// for SETLOOPER
 | 
						// for SETLOOPER
 | 
				
			||||||
	Scene *sce_iter;
 | 
						Scene *sce_iter;
 | 
				
			||||||
	BaseLegacy *base;
 | 
						Base *base;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Get the frame settings of the canvas.
 | 
						// Get the frame settings of the canvas.
 | 
				
			||||||
	// Get the aspect ratio of the canvas as designed by the user.
 | 
						// Get the aspect ratio of the canvas as designed by the user.
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user