Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Montagne <montagne29@wanadoo.fr>2015-12-27 13:53:50 +0300
committerBastien Montagne <montagne29@wanadoo.fr>2015-12-27 14:00:33 +0300
commit3fcf535d2e003ad939fa1f1c7aa4d5da1b38aef7 (patch)
tree0cc5b044cdc1f7b6fa58ad1d0c3c6cafc51a7759 /source/blender/render
parentec2ca11cba496294838bfb5fb76f7bfcef2fe8cc (diff)
Split id->flag in two, persistent flags and runtime tags.
This is purely internal sanitizing/cleanup, no change in behavior is expected at all. This change was also needed because we were getting short on ID flags, and future enhancement of 'user_one' ID behavior requires two new ones. id->flag remains for persistent data (fakeuser only, so far!), this also allows us 100% backward & forward compatibility. New id->tag is used for most flags. Though written in .blend files, its content is cleared at read time. Note that .blend file version was bumped, so that we can clear runtimeflags from old .blends, important in case we add new persistent flags in future. Also, behavior of tags (either status ones, or whether they need to be cleared before/after use) has been added as comments to their declaration. Reviewers: sergey, campbellbarton Differential Revision: https://developer.blender.org/D1683
Diffstat (limited to 'source/blender/render')
-rw-r--r--source/blender/render/intern/source/bake.c12
-rw-r--r--source/blender/render/intern/source/convertblender.c6
-rw-r--r--source/blender/render/intern/source/multires_bake.c10
-rw-r--r--source/blender/render/intern/source/pipeline.c26
4 files changed, 27 insertions, 27 deletions
diff --git a/source/blender/render/intern/source/bake.c b/source/blender/render/intern/source/bake.c
index 30036c27b5d..da553402ea3 100644
--- a/source/blender/render/intern/source/bake.c
+++ b/source/blender/render/intern/source/bake.c
@@ -656,7 +656,7 @@ static int get_next_bake_face(BakeShade *bs)
bs->mloop = me->mloop + bs->mpoly->loopstart;
/* Tag mesh for reevaluation. */
- me->id.flag |= LIB_DOIT;
+ me->id.tag |= LIB_TAG_DOIT;
}
else {
Image *ima = NULL;
@@ -690,14 +690,14 @@ static int get_next_bake_face(BakeShade *bs)
}
if (ima->flag & IMA_USED_FOR_RENDER) {
- ima->id.flag &= ~LIB_DOIT;
+ ima->id.tag &= ~LIB_TAG_DOIT;
BKE_image_release_ibuf(ima, ibuf, NULL);
continue;
}
/* find the image for the first time? */
- if (ima->id.flag & LIB_DOIT) {
- ima->id.flag &= ~LIB_DOIT;
+ if (ima->id.tag & LIB_TAG_DOIT) {
+ ima->id.tag &= ~LIB_TAG_DOIT;
/* we either fill in float or char, this ensures things go fine */
if (ibuf->rect_float)
@@ -1026,7 +1026,7 @@ int RE_bake_shade_all_selected(Render *re, int type, Object *actob, short *do_up
if ((R.r.bake_flag & R_BAKE_VCOL) == 0) {
for (ima = G.main->image.first; ima; ima = ima->id.next) {
ImBuf *ibuf = BKE_image_acquire_ibuf(ima, NULL, NULL);
- ima->id.flag |= LIB_DOIT;
+ ima->id.tag |= LIB_TAG_DOIT;
ima->flag &= ~IMA_USED_FOR_RENDER;
if (ibuf) {
ibuf->userdata = NULL; /* use for masking if needed */
@@ -1110,7 +1110,7 @@ int RE_bake_shade_all_selected(Render *re, int type, Object *actob, short *do_up
}
for (ima = G.main->image.first; ima; ima = ima->id.next) {
- if ((ima->id.flag & LIB_DOIT) == 0) {
+ if ((ima->id.tag & LIB_TAG_DOIT) == 0) {
ImBuf *ibuf = BKE_image_acquire_ibuf(ima, NULL, NULL);
BakeImBufuserData *userdata;
diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c
index 846255b935f..820e129b0ce 100644
--- a/source/blender/render/intern/source/convertblender.c
+++ b/source/blender/render/intern/source/convertblender.c
@@ -3956,7 +3956,7 @@ static void add_lightgroup(Render *re, Group *group, int exclusive)
{
GroupObject *go, *gol;
- group->id.flag &= ~LIB_DOIT;
+ group->id.tag &= ~LIB_TAG_DOIT;
/* it's a bit too many loops in loops... but will survive */
/* note that 'exclusive' will remove it from the global list */
@@ -3995,12 +3995,12 @@ static void set_material_lightgroups(Render *re)
return;
for (group= re->main->group.first; group; group=group->id.next)
- group->id.flag |= LIB_DOIT;
+ group->id.tag |= LIB_TAG_DOIT;
/* it's a bit too many loops in loops... but will survive */
/* hola! materials not in use...? */
for (ma= re->main->mat.first; ma; ma=ma->id.next) {
- if (ma->group && (ma->group->id.flag & LIB_DOIT))
+ if (ma->group && (ma->group->id.tag & LIB_TAG_DOIT))
add_lightgroup(re, ma->group, ma->mode & MA_GROUP_NOLAY);
}
}
diff --git a/source/blender/render/intern/source/multires_bake.c b/source/blender/render/intern/source/multires_bake.c
index dcc33b99742..8eb6e7000ab 100644
--- a/source/blender/render/intern/source/multires_bake.c
+++ b/source/blender/render/intern/source/multires_bake.c
@@ -1189,20 +1189,20 @@ static void count_images(MultiresBakeRender *bkr)
totpoly = dm->getNumPolys(dm);
for (a = 0; a < totpoly; a++)
- mtexpoly[a].tpage->id.flag &= ~LIB_DOIT;
+ mtexpoly[a].tpage->id.tag &= ~LIB_TAG_DOIT;
for (a = 0; a < totpoly; a++) {
Image *ima = mtexpoly[a].tpage;
- if ((ima->id.flag & LIB_DOIT) == 0) {
+ if ((ima->id.tag & LIB_TAG_DOIT) == 0) {
LinkData *data = BLI_genericNodeN(ima);
BLI_addtail(&bkr->image, data);
bkr->tot_image++;
- ima->id.flag |= LIB_DOIT;
+ ima->id.tag |= LIB_TAG_DOIT;
}
}
for (a = 0; a < totpoly; a++)
- mtexpoly[a].tpage->id.flag &= ~LIB_DOIT;
+ mtexpoly[a].tpage->id.tag &= ~LIB_TAG_DOIT;
}
static void bake_images(MultiresBakeRender *bkr, MultiresBakeResult *result)
@@ -1234,7 +1234,7 @@ static void bake_images(MultiresBakeRender *bkr, MultiresBakeResult *result)
BKE_image_release_ibuf(ima, ibuf, NULL);
- ima->id.flag |= LIB_DOIT;
+ ima->id.tag |= LIB_TAG_DOIT;
}
}
diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c
index 64866509a0c..1ac9dd8e716 100644
--- a/source/blender/render/intern/source/pipeline.c
+++ b/source/blender/render/intern/source/pipeline.c
@@ -2013,7 +2013,7 @@ static void tag_scenes_for_render(Render *re)
#endif
for (sce = re->main->scene.first; sce; sce = sce->id.next) {
- sce->id.flag &= ~LIB_DOIT;
+ sce->id.tag &= ~LIB_TAG_DOIT;
#ifdef DEPSGRAPH_WORKAROUND_HACK
tag_dependend_objects_for_render(sce, renderlay);
#endif
@@ -2022,7 +2022,7 @@ static void tag_scenes_for_render(Render *re)
#ifdef WITH_FREESTYLE
if (re->freestyle_bmain) {
for (sce = re->freestyle_bmain->scene.first; sce; sce = sce->id.next) {
- sce->id.flag &= ~LIB_DOIT;
+ sce->id.tag &= ~LIB_TAG_DOIT;
#ifdef DEPSGRAPH_WORKAROUND_HACK
tag_dependend_objects_for_render(sce, renderlay);
#endif
@@ -2031,7 +2031,7 @@ static void tag_scenes_for_render(Render *re)
#endif
if (RE_GetCamera(re) && composite_needs_render(re->scene, 1)) {
- re->scene->id.flag |= LIB_DOIT;
+ re->scene->id.tag |= LIB_TAG_DOIT;
#ifdef DEPSGRAPH_WORKAROUND_HACK
tag_dependend_objects_for_render(re->scene, renderlay);
#endif
@@ -2039,7 +2039,7 @@ static void tag_scenes_for_render(Render *re)
if (re->scene->nodetree == NULL) return;
- /* check for render-layers nodes using other scenes, we tag them LIB_DOIT */
+ /* check for render-layers nodes using other scenes, we tag them LIB_TAG_DOIT */
for (node = re->scene->nodetree->nodes.first; node; node = node->next) {
node->flag &= ~NODE_TEST;
if (node->type == CMP_NODE_R_LAYERS && (node->flag & NODE_MUTED) == 0) {
@@ -2060,11 +2060,11 @@ static void tag_scenes_for_render(Render *re)
}
if (node->id != (ID *)re->scene) {
- if ((node->id->flag & LIB_DOIT) == 0) {
+ if ((node->id->tag & LIB_TAG_DOIT) == 0) {
Scene *scene = (Scene *) node->id;
if (render_scene_has_layers_to_render(scene)) {
node->flag |= NODE_TEST;
- node->id->flag |= LIB_DOIT;
+ node->id->tag |= LIB_TAG_DOIT;
#ifdef DEPSGRAPH_WORKAROUND_HACK
tag_dependend_objects_for_render(scene, renderlay);
#endif
@@ -2283,7 +2283,7 @@ static void do_merge_fullsample(Render *re, bNodeTree *ntree)
tag_scenes_for_render(re);
for (sce = re->main->scene.first; sce; sce = sce->id.next) {
- if (sce->id.flag & LIB_DOIT) {
+ if (sce->id.tag & LIB_TAG_DOIT) {
re1 = RE_GetRender(sce->id.name);
if (re1 && (re1->r.scemode & R_FULL_SAMPLE)) {
@@ -2408,12 +2408,12 @@ void RE_MergeFullSample(Render *re, Main *bmain, Scene *sce, bNodeTree *ntree)
/* tag scenes unread */
for (scene = re->main->scene.first; scene; scene = scene->id.next)
- scene->id.flag |= LIB_DOIT;
+ scene->id.tag |= LIB_TAG_DOIT;
#ifdef WITH_FREESTYLE
if (re->freestyle_bmain) {
for (scene = re->freestyle_bmain->scene.first; scene; scene = scene->id.next)
- scene->id.flag &= ~LIB_DOIT;
+ scene->id.tag &= ~LIB_TAG_DOIT;
}
#endif
@@ -2422,18 +2422,18 @@ void RE_MergeFullSample(Render *re, Main *bmain, Scene *sce, bNodeTree *ntree)
Scene *nodescene = (Scene *)node->id;
if (nodescene == NULL) nodescene = sce;
- if (nodescene->id.flag & LIB_DOIT) {
+ if (nodescene->id.tag & LIB_TAG_DOIT) {
nodescene->r.mode |= R_OSA; /* render struct needs tables */
RE_ReadRenderResult(sce, nodescene);
- nodescene->id.flag &= ~LIB_DOIT;
+ nodescene->id.tag &= ~LIB_TAG_DOIT;
}
}
}
/* own render result should be read/allocated */
- if (re->scene->id.flag & LIB_DOIT) {
+ if (re->scene->id.tag & LIB_TAG_DOIT) {
RE_ReadRenderResult(re->scene, re->scene);
- re->scene->id.flag &= ~LIB_DOIT;
+ re->scene->id.tag &= ~LIB_TAG_DOIT;
}
/* and now we can draw (result is there) */