== Sequencer / Imbuf ==

Added a faster linear interpolation scaler to IMB_scaleImBuf.
Only handles common cases when we either

enlarge both, width and height or
shrink  both, width and height

but that is pretty fast:
* does only blit once instead of two passes like the old code
  (fewer cache misses)
* uses fixed point integer arithmetic for byte buffers
* doesn't branch in tight loops
  Should be comparable in speed to the ImBuf ..._fast functions at least 
  for byte-buffers.

For the rather seldom situations that e.g. width is enlarged and height 
is shrunken, the old code is still in use.

-------
Also small fix in sequencer: free float buffers on read now.
This commit is contained in:
2008-01-30 15:41:02 +00:00
parent 6601cef1d0
commit 19e37e4a35
2 changed files with 472 additions and 2 deletions

View File

@@ -1095,6 +1095,7 @@ static void input_preprocess(Sequence * seq, TStripElem* se, int cfra)
if(seq->flag & SEQ_MAKE_FLOAT) {
if (!se->ibuf->rect_float) {
IMB_float_from_rect(se->ibuf);
imb_freerectImBuf(se->ibuf);
}
}