[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [48719] trunk/blender/source/blender: fix [#32020] Image will not render in second (any scene other than first) if scene name is longer than 28 characters
Campbell Barton
ideasman42 at gmail.com
Sun Jul 8 02:04:42 CEST 2012
Revision: 48719
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=48719
Author: campbellbarton
Date: 2012-07-08 00:04:41 +0000 (Sun, 08 Jul 2012)
Log Message:
-----------
fix [#32020] Image will not render in second (any scene other than first) if scene name is longer than 28 characters
Modified Paths:
--------------
trunk/blender/source/blender/editors/space_image/image_buttons.c
trunk/blender/source/blender/imbuf/intern/openexr/openexr_api.cpp
trunk/blender/source/blender/imbuf/intern/openexr/openexr_multi.h
trunk/blender/source/blender/imbuf/intern/openexr/openexr_stub.cpp
trunk/blender/source/blender/makesdna/DNA_ID.h
trunk/blender/source/blender/render/extern/include/RE_pipeline.h
trunk/blender/source/blender/render/intern/source/convertblender.c
trunk/blender/source/blender/render/intern/source/external_engine.c
trunk/blender/source/blender/render/intern/source/occlusion.c
trunk/blender/source/blender/render/intern/source/pipeline.c
trunk/blender/source/blender/render/intern/source/render_result.c
Modified: trunk/blender/source/blender/editors/space_image/image_buttons.c
===================================================================
--- trunk/blender/source/blender/editors/space_image/image_buttons.c 2012-07-08 00:00:51 UTC (rev 48718)
+++ trunk/blender/source/blender/editors/space_image/image_buttons.c 2012-07-08 00:04:41 UTC (rev 48719)
@@ -372,7 +372,7 @@
static char *layer_menu(RenderResult *rr, short *UNUSED(curlay))
{
RenderLayer *rl;
- int len = 64 + 32 * BLI_countlist(&rr->layers);
+ int len = 64 + RE_MAXNAME * BLI_countlist(&rr->layers);
short a, nr = 0;
char *str = MEM_callocN(len, "menu layers");
Modified: trunk/blender/source/blender/imbuf/intern/openexr/openexr_api.cpp
===================================================================
--- trunk/blender/source/blender/imbuf/intern/openexr/openexr_api.cpp 2012-07-08 00:00:51 UTC (rev 48718)
+++ trunk/blender/source/blender/imbuf/intern/openexr/openexr_api.cpp 2012-07-08 00:04:41 UTC (rev 48719)
@@ -665,9 +665,9 @@
}
void IMB_exr_multilayer_convert(void *handle, void *base,
- void * (*addlayer)(void *base, char *str),
- void (*addpass)(void *base, void *lay, char *str,
- float *rect, int totchan, char *chan_id))
+ void * (*addlayer)(void *base, const char *str),
+ void (*addpass)(void *base, void *lay, const char *str,
+ float *rect, int totchan, const char *chan_id))
{
ExrHandle *data = (ExrHandle *)handle;
ExrLayer *lay;
@@ -908,14 +908,6 @@
/* ********************************************************* */
-typedef struct RGBA {
- float r;
- float g;
- float b;
- float a;
-} RGBA;
-
-
/* debug only */
static void exr_print_filecontents(InputFile *file)
{
Modified: trunk/blender/source/blender/imbuf/intern/openexr/openexr_multi.h
===================================================================
--- trunk/blender/source/blender/imbuf/intern/openexr/openexr_multi.h 2012-07-08 00:00:51 UTC (rev 48718)
+++ trunk/blender/source/blender/imbuf/intern/openexr/openexr_multi.h 2012-07-08 00:04:41 UTC (rev 48719)
@@ -37,9 +37,9 @@
/* Note: as for now openexr only supports 32 chars in channel names.
* This api also supports max 8 channels per pass now. easy to fix! */
-#define EXR_LAY_MAXNAME 19
+#define EXR_LAY_MAXNAME 51
#define EXR_PASS_MAXNAME 11
-#define EXR_TOT_MAXNAME 32
+#define EXR_TOT_MAXNAME 64
#define EXR_PASS_MAXCHAN 8
@@ -62,8 +62,8 @@
void IMB_exrtile_clear_channels(void *handle);
void IMB_exr_multilayer_convert(void *handle, void *base,
- void * (*addlayer)(void *base, char *str),
- void (*addpass)(void *base, void *lay, char *str, float *rect, int totchan, char *chan_id));
+ void * (*addlayer)(void *base, const char *str),
+ void (*addpass)(void *base, void *lay, const char *str, float *rect, int totchan, const char *chan_id));
void IMB_exr_close(void *handle);
Modified: trunk/blender/source/blender/imbuf/intern/openexr/openexr_stub.cpp
===================================================================
--- trunk/blender/source/blender/imbuf/intern/openexr/openexr_stub.cpp 2012-07-08 00:00:51 UTC (rev 48718)
+++ trunk/blender/source/blender/imbuf/intern/openexr/openexr_stub.cpp 2012-07-08 00:04:41 UTC (rev 48719)
@@ -48,8 +48,8 @@
void IMB_exrtile_clear_channels (void *handle) { (void)handle; }
void IMB_exr_multilayer_convert (void *handle, void *base,
- void * (*addlayer)(void *base, char *str),
- void (*addpass)(void *base, void *lay, char *str, float *rect, int totchan, char *chan_id))
+ void * (*addlayer)(void *base, const char *str),
+ void (*addpass)(void *base, void *lay, const char *str, float *rect, int totchan, const char *chan_id))
{
(void)handle; (void)base; (void)addlayer; (void)addpass;
}
Modified: trunk/blender/source/blender/makesdna/DNA_ID.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_ID.h 2012-07-08 00:00:51 UTC (rev 48718)
+++ trunk/blender/source/blender/makesdna/DNA_ID.h 2012-07-08 00:04:41 UTC (rev 48719)
@@ -108,7 +108,7 @@
void *next, *prev;
struct ID *newid;
struct Library *lib;
- char name[66];
+ char name[66]; /* MAX_ID_NAME */
short pad, us;
/**
* LIB_... flags report on status of the datablock this ID belongs
Modified: trunk/blender/source/blender/render/extern/include/RE_pipeline.h
===================================================================
--- trunk/blender/source/blender/render/extern/include/RE_pipeline.h 2012-07-08 00:00:51 UTC (rev 48718)
+++ trunk/blender/source/blender/render/extern/include/RE_pipeline.h 2012-07-08 00:04:41 UTC (rev 48719)
@@ -51,9 +51,9 @@
/* this include is what is exposed of render to outside world */
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+/* length of the scene name + passname */
+#define RE_MAXNAME ((MAX_ID_NAME - 2) + 10)
-#define RE_MAXNAME 32
-
/* only used as handle */
typedef struct Render Render;
@@ -81,7 +81,7 @@
struct RenderLayer *next, *prev;
/* copy of RenderData */
- char name[RE_MAXNAME];
+ char name[RE_MAXNAME];
unsigned int lay, lay_zmask, lay_exclude;
int layflag, passflag, pass_xor;
@@ -144,8 +144,7 @@
short curfield, curblur, curpart, partsdone, convertdone, curfsa;
double starttime, lastframetime;
const char *infostr, *statstr;
- char scenename[32];
-
+ char scene_name[MAX_ID_NAME - 2];
} RenderStats;
/* *********************** API ******************** */
Modified: trunk/blender/source/blender/render/intern/source/convertblender.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/convertblender.c 2012-07-08 00:00:51 UTC (rev 48718)
+++ trunk/blender/source/blender/render/intern/source/convertblender.c 2012-07-08 00:04:41 UTC (rev 48719)
@@ -5038,7 +5038,7 @@
/* per second, per object, stats print this */
re->i.infostr= "Preparing Scene data";
re->i.cfra= scene->r.cfra;
- BLI_strncpy(re->i.scenename, scene->id.name+2, sizeof(re->i.scenename));
+ BLI_strncpy(re->i.scene_name, scene->id.name + 2, sizeof(re->i.scene_name));
/* XXX add test if dbase was filled already? */
Modified: trunk/blender/source/blender/render/intern/source/external_engine.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/external_engine.c 2012-07-08 00:00:51 UTC (rev 48718)
+++ trunk/blender/source/blender/render/intern/source/external_engine.c 2012-07-08 00:04:41 UTC (rev 48719)
@@ -305,7 +305,7 @@
/* set render info */
re->i.cfra = re->scene->r.cfra;
- BLI_strncpy(re->i.scenename, re->scene->id.name + 2, sizeof(re->i.scenename));
+ BLI_strncpy(re->i.scene_name, re->scene->id.name + 2, sizeof(re->i.scene_name));
re->i.totface = re->i.totvert = re->i.totstrand = re->i.totlamp = re->i.tothalo = 0;
/* render */
Modified: trunk/blender/source/blender/render/intern/source/occlusion.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/occlusion.c 2012-07-08 00:00:51 UTC (rev 48718)
+++ trunk/blender/source/blender/render/intern/source/occlusion.c 2012-07-08 00:04:41 UTC (rev 48719)
@@ -768,6 +768,8 @@
r[2] = v1[2] + fac * (v2[2] - v1[2]);
}
+/* TODO: exact duplicate of ff_visible_quad() in math_geom.c
+ * why not de-duplicate? (also above helper func) */
static int occ_visible_quad(const float p[3], const float n[3],
const float v0[3], const float v1[3], const float v2[3],
float q0[3], float q1[3], float q2[3], float q3[3])
@@ -1129,6 +1131,8 @@
}
}
+/* TODO: exact duplicate of ff_quad_form_factor() in math_geom.c
+ * why not de-duplicate? (also above helper func) */
static float occ_quad_form_factor(const float p[3], const float n[3], const float q0[3], const float q1[3], const float q2[3], const float q3[3])
{
float r0[3], r1[3], r2[3], r3[3], g0[3], g1[3], g2[3], g3[3];
Modified: trunk/blender/source/blender/render/intern/source/pipeline.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/pipeline.c 2012-07-08 00:00:51 UTC (rev 48718)
+++ trunk/blender/source/blender/render/intern/source/pipeline.c 2012-07-08 00:04:41 UTC (rev 48719)
@@ -166,9 +166,9 @@
}
else {
if (rs->tothalo)
- fprintf(stdout, "Sce: %s Ve:%d Fa:%d Ha:%d La:%d", rs->scenename, rs->totvert, rs->totface, rs->tothalo, rs->totlamp);
+ fprintf(stdout, "Sce: %s Ve:%d Fa:%d Ha:%d La:%d", rs->scene_name, rs->totvert, rs->totface, rs->tothalo, rs->totlamp);
else
- fprintf(stdout, "Sce: %s Ve:%d Fa:%d La:%d", rs->scenename, rs->totvert, rs->totface, rs->totlamp);
+ fprintf(stdout, "Sce: %s Ve:%d Fa:%d La:%d", rs->scene_name, rs->totvert, rs->totface, rs->totlamp);
}
BLI_callback_exec(G.main, NULL, BLI_CB_EVT_RENDER_STATS);
Modified: trunk/blender/source/blender/render/intern/source/render_result.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/render_result.c 2012-07-08 00:00:51 UTC (rev 48718)
+++ trunk/blender/source/blender/render/intern/source/render_result.c 2012-07-08 00:04:41 UTC (rev 48719)
@@ -582,7 +582,7 @@
}
/* callbacks for render_result_new_from_exr */
-static void *ml_addlayer_cb(void *base, char *str)
+static void *ml_addlayer_cb(void *base, const char *str)
{
RenderResult *rr = base;
RenderLayer *rl;
@@ -594,7 +594,7 @@
return rl;
}
-static void ml_addpass_cb(void *UNUSED(base), void *lay, char *str, float *rect, int totchan, char *chan_id)
+static void ml_addpass_cb(void *UNUSED(base), void *lay, const char *str, float *rect, int totchan, const char *chan_id)
{
RenderLayer *rl = lay;
RenderPass *rpass = MEM_callocN(sizeof(RenderPass), "loaded pass");
@@ -618,7 +618,7 @@
/* from imbuf, if a handle was returned we convert this to render result */
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list