[Bf-blender-cvs] [0b03ccb] multiview: Replace BLI_listbase_count() by BLI_listbase_count_ex() when possible

Dalai Felinto noreply at git.blender.org
Thu Nov 20 14:01:59 CET 2014


Commit: 0b03ccbbcd7ad6b59022321b0792b6d919e3123f
Author: Dalai Felinto
Date:   Thu Nov 20 10:55:11 2014 -0200
Branches: multiview
https://developer.blender.org/rB0b03ccbbcd7ad6b59022321b0792b6d919e3123f

Replace BLI_listbase_count() by BLI_listbase_count_ex() when possible

===================================================================

M	source/blender/blenkernel/intern/image.c
M	source/blender/compositor/nodes/COM_ImageNode.cpp
M	source/blender/editors/space_image/image_buttons.c
M	source/blender/editors/space_image/image_ops.c
M	source/blender/imbuf/intern/openexr/openexr_api.cpp
M	source/blender/makesrna/intern/rna_nodetree.c
M	source/blender/nodes/composite/nodes/node_composite_switchview.c
M	source/blender/render/intern/source/pipeline.c
M	source/blender/render/intern/source/render_result.c

===================================================================

diff --git a/source/blender/blenkernel/intern/image.c b/source/blender/blenkernel/intern/image.c
index fc3d188..36f9505 100644
--- a/source/blender/blenkernel/intern/image.c
+++ b/source/blender/blenkernel/intern/image.c
@@ -2567,7 +2567,7 @@ void BKE_image_signal(Image *ima, ImageUser *iuser, int signal)
 			if (BKE_image_has_packedfile(ima)) {
 				const size_t totfiles = image_num_files(ima);
 
-				if (totfiles != BLI_listbase_count(&ima->packedfiles)) {
+				if (totfiles != BLI_listbase_count_ex(&ima->packedfiles, totfiles + 1)) {
 					/* in case there are new available files to be loaded */
 					image_free_packedfiles(ima);
 					BKE_image_packfiles(NULL, ima, ID_BLEND_PATH(G.main, &ima->id));
@@ -2690,7 +2690,7 @@ void BKE_image_multiview_index(Image *ima, ImageUser *iuser)
 			iuser->multi_index = iuser->eye;
 		}
 		else {
-			if ((iuser->view < 0) || (iuser->view >= BLI_listbase_count(&ima->views))) {
+			if ((iuser->view < 0) || (iuser->view >= BLI_listbase_count_ex(&ima->views, iuser->view + 1))) {
 				iuser->multi_index = iuser->view = 0;
 			}
 			else {
@@ -2727,7 +2727,7 @@ static void image_init_multilayer_multiview_flag(Image *ima, RenderResult *rr)
 		}
 		else {
 			ima->flag &= ~IMA_IS_STEREO;
-			if (BLI_listbase_count(&rr->views) > 1)
+			if (BLI_listbase_count_ex(&rr->views, 2) > 1)
 				ima->flag |= IMA_IS_MULTIVIEW;
 			else
 				ima->flag &= IMA_IS_MULTIVIEW;
@@ -2892,7 +2892,7 @@ static void image_add_buffer_cb(void *base, const char *str, ImBuf *ibuf, const
 
 static void image_update_multiview_flags(Image *ima)
 {
-	if (BLI_listbase_count(&ima->views) > 1) {
+	if (BLI_listbase_count_ex(&ima->views, 2) > 1) {
 		ima->flag |= IMA_IS_MULTIVIEW;
 
 		if (BLI_findstring(&ima->views, STEREO_LEFT_NAME, offsetof(ImageView, name)) &&
@@ -3175,7 +3175,7 @@ static ImBuf *image_load_movie_file(Image *ima, ImageUser *iuser, int frame)
 	ibuf = MEM_mallocN(sizeof(ImBuf *) * totviews, "Image Views (movie) Imbufs");
 
 	if ((BKE_image_has_anim(ima) == false) ||
-	    BLI_listbase_count(&ima->anims) != totfiles)
+	    totfiles != BLI_listbase_count_ex(&ima->anims, totfiles + 1))
 	{
 		image_free_anims(ima);
 
@@ -3285,7 +3285,7 @@ static ImBuf *image_load_image_file(Image *ima, ImageUser *iuser, int cfra)
 		flag |= imbuf_alpha_flags_for_image(ima);
 
 		/* XXX what to do */
-		BLI_assert(totfiles == BLI_listbase_count(&ima->packedfiles));
+		BLI_assert(totfiles == BLI_listbase_count_ex(&ima->packedfiles, totfiles + 1));
 
 		for (i = 0, imapf = ima->packedfiles.first; imapf; imapf = imapf->next, i++) {
 			ibuf[i] = IMB_ibImageFromMemory((unsigned char *)imapf->packedfile->data, imapf->packedfile->size, flag,
@@ -4246,12 +4246,12 @@ int BKE_image_sequence_guess_offset(Image *image)
 
 bool BKE_image_has_anim(Image *ima)
 {
-	return (BLI_listbase_count(&ima->anims) > 0) && (((ImageAnim *) ima->anims.first)->anim != NULL);
+	return (BLI_listbase_count_ex(&ima->anims, 1) > 0) && (((ImageAnim *) ima->anims.first)->anim != NULL);
 }
 
 bool BKE_image_has_packedfile(Image *ima)
 {
-	return (BLI_listbase_count(&ima->packedfiles) > 0) && (((ImagePackedFile *) ima->packedfiles.first)->packedfile != NULL);
+	return (BLI_listbase_count_ex(&ima->packedfiles, 1) > 0) && (((ImagePackedFile *) ima->packedfiles.first)->packedfile != NULL);
 }
 
 /**
@@ -4457,7 +4457,7 @@ void BKE_image_update_views_format(Scene *scene, Image *ima)
 		}
 
 		/* all good */
-		if (BLI_listbase_count(&ima->views) > 1) {
+		if (BLI_listbase_count_ex(&ima->views, 2) > 1) {
 			ima->flag |= IMA_IS_MULTIVIEW;
 			if (BKE_scene_is_stereo3d(&scene->r))
 				ima->flag |= IMA_IS_STEREO;
diff --git a/source/blender/compositor/nodes/COM_ImageNode.cpp b/source/blender/compositor/nodes/COM_ImageNode.cpp
index 3ffe685..c6e7e62 100644
--- a/source/blender/compositor/nodes/COM_ImageNode.cpp
+++ b/source/blender/compositor/nodes/COM_ImageNode.cpp
@@ -100,7 +100,7 @@ void ImageNode::convertToOperations(NodeConverter &converter, const CompositorCo
 					int view = (rpass ? rpass->view_id : 0);
 
 					/* returns the image view to use for the current active view */
-					if (BLI_listbase_count(&image->rr->views) > 1) {
+					if (BLI_listbase_count_ex(&image->rr->views, 2) > 1) {
 						const int view_image = imageuser->view;
 						const bool is_allview = (view_image == 0); /* if view selected == All (0) */
 
diff --git a/source/blender/editors/space_image/image_buttons.c b/source/blender/editors/space_image/image_buttons.c
index c829873..21758ca 100644
--- a/source/blender/editors/space_image/image_buttons.c
+++ b/source/blender/editors/space_image/image_buttons.c
@@ -664,7 +664,7 @@ static void uiblock_layer_pass_buttons(uiLayout *layout, Image *image, RenderRes
 		UI_but_type_set_menu_from_pulldown(but);
 
 		/* view */
-		if (BLI_listbase_count(&rr->views) > 1 && !show_stereo) {
+		if (BLI_listbase_count_ex(&rr->views, 2) > 1 && !show_stereo) {
 			rview = BLI_findlink(&rr->views, iuser->view);
 			display_name = rview ? rview->name : "";
 
diff --git a/source/blender/editors/space_image/image_ops.c b/source/blender/editors/space_image/image_ops.c
index 8252c20..e32eadd 100644
--- a/source/blender/editors/space_image/image_ops.c
+++ b/source/blender/editors/space_image/image_ops.c
@@ -1543,7 +1543,7 @@ static int get_multiview_pass_id(RenderResult *rr, ImageUser *iuser, const int v
 	if (rr == NULL || iuser == NULL)
 		return 0;
 
-	if (BLI_listbase_count(&rr->views) < 2)
+	if (BLI_listbase_count_ex(&rr->views, 2) < 2)
 		return iuser->pass;
 
 	if (RE_HasFakeLayer(rr))
@@ -1680,7 +1680,7 @@ static bool save_image_doit(bContext *C, SpaceImage *sima, wmOperator *op, SaveI
 		/* we need renderresult for exr and rendered multiview */
 		scene = CTX_data_scene(C);
 		rr = BKE_image_acquire_renderresult(scene, ima);
-		is_mono = rr ? BLI_listbase_count(&rr->views) < 2 : (ima->flag & IMA_IS_MULTIVIEW) == 0;
+		is_mono = rr ? BLI_listbase_count_ex(&rr->views, 2) < 2 : (ima->flag & IMA_IS_MULTIVIEW) == 0;
 
 		/* error handling */
 		if (!rr) {
diff --git a/source/blender/imbuf/intern/openexr/openexr_api.cpp b/source/blender/imbuf/intern/openexr/openexr_api.cpp
index ad2c0f6..373661c 100644
--- a/source/blender/imbuf/intern/openexr/openexr_api.cpp
+++ b/source/blender/imbuf/intern/openexr/openexr_api.cpp
@@ -1257,7 +1257,7 @@ void IMB_exr_multiview_convert(void *handle, void *base,
 	}
 	
 	/* there is one float/pass per layer (layer here is a view) */
-	BLI_assert(BLI_listbase_count(&data->layers) == 1);
+	BLI_assert(BLI_listbase_count_ex(&data->layers, 2) == 1);
 	lay = (ExrLayer *)data->layers.first;
 	for (pass = (ExrPass *)lay->passes.first; pass; pass = pass->next) {
 		if (STREQ(pass->chan_id, "RGB") || STREQ(pass->chan_id, "RGBA")) {
diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c
index 21d98e1..df97ee4 100644
--- a/source/blender/makesrna/intern/rna_nodetree.c
+++ b/source/blender/makesrna/intern/rna_nodetree.c
@@ -2622,8 +2622,7 @@ static int rna_Node_image_has_views_get(PointerRNA *ptr)
 
 	if (!ima || !(ima->rr)) return 0;
 
-	views = BLI_listbase_count(&ima->rr->views);
-	return views > 1;
+	return BLI_listbase_count_ex(&ima->rr->views, 2) > 1;
 }
 
 #if 0 //XXX MV we may not need that, I don't know yet
diff --git a/source/blender/nodes/composite/nodes/node_composite_switchview.c b/source/blender/nodes/composite/nodes/node_composite_switchview.c
index 4c0f5fb..eefb081 100644
--- a/source/blender/nodes/composite/nodes/node_composite_switchview.c
+++ b/source/blender/nodes/composite/nodes/node_composite_switchview.c
@@ -49,7 +49,7 @@ static void cmp_node_switch_view_sanitycheck(bNodeTree *ntree, bNode *node)
 {
 	bNodeSocket *sock;
 
-	if (BLI_listbase_count(&node->inputs) > 0)
+	if (BLI_listbase_count_ex(&node->inputs, 1) > 0)
 		return;
 
 	sock = ntreeCompositSwitchViewAddSocket(ntree, node, "No View");
diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c
index fcfa3c3..af25ad2 100644
--- a/source/blender/render/intern/source/pipeline.c
+++ b/source/blender/render/intern/source/pipeline.c
@@ -3037,7 +3037,7 @@ bool RE_WriteRenderViewsImage(ReportList *reports, RenderResult *rr, Scene *scen
 	if (!rr)
 		return false;
 
-	is_mono = BLI_listbase_count(&rr->views) < 2;
+	is_mono = BLI_listbase_count_ex(&rr->views, 2) < 2;
 
 	if (ELEM(rd->im_format.imtype, R_IMF_IMTYPE_OPENEXR, R_IMF_IMTYPE_MULTILAYER) &&
 	    rd->im_format.views_format == R_IMF_VIEWS_MULTIVIEW)
@@ -3185,7 +3185,7 @@ bool RE_WriteRenderViewsMovie(ReportList *reports, RenderResult *rr, Scene *scen
 	if (!rr)
 		return false;
 
-	is_mono = BLI_listbase_count(&rr->views) < 2;
+	is_mono = BLI_listbase_count_ex(&rr->views, 2) < 2;
 
 	if (is_mono || (scene->r.im_format.views_format == R_IMF_VIEWS_INDIVIDUAL)) {
 		size_t view_id;
@@ -3709,8 +3709,7 @@ bool RE_WriteEnvmapResult(struct ReportList *reports, Scene *scene, EnvMap *env,
 /* used in the interface to decide whether to show layers */
 int RE_layers_have_name(struct RenderResult *rr)
 {
-	switch (BLI_listbase_count(&rr->layers))
-	{
+	switch (BLI_listbase_count_ex(&rr->layers, 2)) {
 		case 0:
 			return false;
 			break;
diff --git a/source/blender/render/intern/source/render_result.c b/source/blender/render/intern/source/render_result.c
index 2a39ce8..a0a06b1 100644
--- a/source/blender/render/intern/source/render_result.c
+++ b/source/blender/render/intern/source/render_result.c
@@ -929,7 +929,7 @@ void render_result_views_new(RenderResult *rr, RenderData *rd)
 	}
 
 	/* we always need at least one view */
-	if (BLI_listbase_count(&rr->views) == 0) {
+	if (BLI_listbase_count_ex(&rr->views, 1) == 0) {
 		rv = MEM_callocN(sizeof(RenderView), "new render view");
 		BLI_addtail(&rr->views, rv);
 	}




More information about the Bf-blender-cvs mailing list