From d24597c8a3bfaeded266d9c86b524d4f15011e52 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 27 Dec 2006 10:20:29 +0000 Subject: [PATCH] Fix for bug #5523: A crash on rendering with multiple UV layers, layer names weren't always getting copied correct. --- source/blender/makesdna/DNA_customdata_types.h | 4 ++-- source/blender/render/extern/include/RE_shader_ext.h | 4 ++-- source/blender/render/intern/source/renderdatabase.c | 5 +++++ 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/source/blender/makesdna/DNA_customdata_types.h b/source/blender/makesdna/DNA_customdata_types.h index d8930f8a098..921554552ef 100644 --- a/source/blender/makesdna/DNA_customdata_types.h +++ b/source/blender/makesdna/DNA_customdata_types.h @@ -87,7 +87,7 @@ typedef struct CustomData { #define CD_FLAG_TEMPORARY ((1<<2)|CD_FLAG_NOCOPY) /* Limits */ -#define MAX_MTFACE 4 -#define MAX_MCOL 4 +#define MAX_MTFACE 8 +#define MAX_MCOL 8 #endif diff --git a/source/blender/render/extern/include/RE_shader_ext.h b/source/blender/render/extern/include/RE_shader_ext.h index c3efceda708..c1b20da53b7 100644 --- a/source/blender/render/extern/include/RE_shader_ext.h +++ b/source/blender/render/extern/include/RE_shader_ext.h @@ -128,8 +128,8 @@ typedef struct ShadeInput float refcol[4], displace[3]; float strand, tang[3], stress, winspeed[4]; - ShadeInputUV uv[4]; /* 4 = MAX_MTFACE */ - ShadeInputCol col[4]; /* 4 = MAX_MCOL */ + ShadeInputUV uv[8]; /* 8 = MAX_MTFACE */ + ShadeInputCol col[8]; /* 8 = MAX_MCOL */ int totuv, totcol; /* dx/dy OSA coordinates */ diff --git a/source/blender/render/intern/source/renderdatabase.c b/source/blender/render/intern/source/renderdatabase.c index cf4e2a1b006..cc4ec037ab5 100644 --- a/source/blender/render/intern/source/renderdatabase.c +++ b/source/blender/render/intern/source/renderdatabase.c @@ -372,6 +372,8 @@ VlakRen *RE_vlakren_copy(Render *re, VlakRen *vlr) VlakRen *vlr1 = RE_findOrAddVlak(re, re->totvlak++); MTFace *mtface, *mtface1; MCol *mcol, *mcol1; + VlakTableNode *node = &re->vlaknodes[vlr->index>>8]; + VlakTableNode *node1 = &re->vlaknodes[vlr1->index>>8]; int i, index = vlr1->index; char *name; @@ -388,6 +390,9 @@ VlakRen *RE_vlakren_copy(Render *re, VlakRen *vlr) memcpy(mcol1, mcol, sizeof(MCol)*RE_MCOL_ELEMS); } + if (node->names && node1->names) + node1->names[vlr1->index&255] = node->names[vlr->index&255]; + return vlr1; }