Hurmf, then you bring back old backbuffer, and they want to have fields
work on that!
OK... here it is. Although using Compositor features will make this much
easier and advanced to control. :)
This commit is contained in:
2006-07-05 17:32:49 +00:00
parent 28f08bd122
commit be3c3a24b5
4 changed files with 23 additions and 3 deletions

View File

@@ -597,12 +597,17 @@ void image_sample(Image *ima, float fx, float fy, float dx, float dy, float *res
return;
}
if( (R.flag & R_SEC_FIELD) && (ima->ibuf->flags & IB_fields) )
ima->ibuf->rect+= (ima->ibuf->x*ima->ibuf->y);
boxsample(ima->ibuf, fx, fy, fx+dx, fy+dy, &texres, 0, 0);
result[0]= texres.tr;
result[1]= texres.tg;
result[2]= texres.tb;
result[3]= texres.ta;
if( (R.flag & R_SEC_FIELD) && (ima->ibuf->flags & IB_fields) )
ima->ibuf->rect-= (ima->ibuf->x*ima->ibuf->y);
}
int imagewraposa(Tex *tex, Image *ima, float *texvec, float *dxt, float *dyt, TexResult *texres)

View File

@@ -1463,8 +1463,14 @@ static void load_backbuffer(Render *re)
if(re->backbuf && re->backbuf->ibuf==NULL) {
re->backbuf->ibuf= IMB_loadiffname(re->backbuf->name, IB_rect);
if(re->backbuf->ibuf==NULL) re->backbuf->ok= 0;
else re->backbuf->ok= 1;
if(re->backbuf->ibuf==NULL)
re->backbuf->ok= 0;
else {
re->backbuf->ok= 1;
if (re->r.mode & R_FIELDS)
image_de_interlace(re->backbuf, re->r.mode & R_ODDFIELD);
}
}
if(re->backbuf==NULL || re->backbuf->ok==0) {
// error() doesnt work with render window open