Fix for bug #8403: a radiosity render crash.

This commit is contained in:
Brecht Van Lommel
2008-02-29 16:52:46 +00:00
parent 96247ce19c
commit cffb9551db
2 changed files with 7 additions and 7 deletions

View File

@@ -99,7 +99,7 @@ static void findshoot_rr(Render *re, VlakRen **shoot_p, RadFace **shootrf_p)
for(obr=re->objecttable.first; obr; obr=obr->next) {
for(a=0; a<obr->totvlak; a++) {
if((a & 255)==0) vlr= obr->vlaknodes[a>>8].vlak; else vlr++;
if((radface=RE_vlakren_get_radface(obr, vlr, 0))) {
if((radface=RE_vlakren_get_radface(obr, vlr, 0)) && *radface) {
rf= *radface;
rf->flag &= ~RAD_SHOOT;
@@ -141,7 +141,7 @@ static void backface_test_rr(Render *re, VlakRen *shoot, RadFace *shootrf)
for(obr=re->objecttable.first; obr; obr=obr->next) {
for(a=0; a<obr->totvlak; a++) {
if((a & 255)==0) vlr= obr->vlaknodes[a>>8].vlak; else vlr++;
if(vlr != shoot && (radface=RE_vlakren_get_radface(obr, vlr, 0))) {
if(vlr != shoot && (radface=RE_vlakren_get_radface(obr, vlr, 0)) && *radface) {
rf= *radface;
VecSubf(tvec, shootrf->cent, rf->cent);
@@ -164,7 +164,7 @@ static void clear_backface_test_rr(Render *re)
for(a=0; a<obr->totvlak; a++) {
if((a & 255)==0) vlr= obr->vlaknodes[a>>8].vlak; else vlr++;
if((radface=RE_vlakren_get_radface(obr, vlr, 0))) {
if((radface=RE_vlakren_get_radface(obr, vlr, 0)) && *radface) {
rf= *radface;
rf->flag &= ~RAD_BACKFACE;
}
@@ -224,7 +224,7 @@ static void makeformfactors_rr(Render *re, VlakRen *shoot, RadFace *shootrf)
for(a=0; a<obr->totvlak; a++) {
if((a & 255)==0) vlr= obr->vlaknodes[a>>8].vlak; else vlr++;
if((radface=RE_vlakren_get_radface(obr, vlr, 0))) {
if((radface=RE_vlakren_get_radface(obr, vlr, 0)) && *radface) {
rf= *radface;
if(*fp!=0.0 && rf->area!=0.0) {
*fp *= shootrf->area/rf->area;
@@ -255,7 +255,7 @@ static void applyformfactors_rr(Render *re, VlakRen *shoot, RadFace *shootrf)
for(a=0; a<obr->totvlak; a++) {
if((a & 255)==0) vlr= obr->vlaknodes[a>>8].vlak; else vlr++;
if((radface=RE_vlakren_get_radface(obr, vlr, 0))) {
if((radface=RE_vlakren_get_radface(obr, vlr, 0)) && *radface) {
rf= *radface;
if(*fp!= 0.0) {
@@ -448,7 +448,7 @@ static void make_vertex_rad_values(Render *re)
for(a=0; a<obr->totvlak; a++) {
if((a & 255)==0) vlr= obr->vlaknodes[a>>8].vlak; else vlr++;
if((radface=RE_vlakren_get_radface(obr, vlr, 0))) {
if((radface=RE_vlakren_get_radface(obr, vlr, 0)) && *radface) {
rf= *radface;
/* apply correction */

View File

@@ -2364,7 +2364,7 @@ void RE_zbufferall_radio(struct RadView *vw, RNode **rg_elem, int rg_totelem, Re
for(a=0; a<obr->totvlak; a++) {
if((a & 255)==0) vlr= obr->vlaknodes[a>>8].vlak; else vlr++;
if((radface=RE_vlakren_get_radface(obr, vlr, 0))) {
if((radface=RE_vlakren_get_radface(obr, vlr, 0)) && *radface) {
rf= *radface;
if( (rf->flag & RAD_SHOOT)==0 ) { /* no shootelement */