Patch from ILdar AKHmetgaleev (akhil) - [#7864] correct scale in sequencer's glow

Added py-api write access to sequencer images.
This commit is contained in:
2007-12-12 14:20:12 +00:00
parent 29054847a7
commit bf5cc424a8
2 changed files with 44 additions and 4 deletions

View File

@@ -531,7 +531,44 @@ static PyObject *Sequence_getImages( BPy_Sequence * self )
return ret;
}
static int Sequence_setImages( BPy_Sequence * self, PyObject *value )
{
Strip *strip;
StripElem *se;
int i;
PyObject *list, *item;
char *basepath, *name;
if (self->seq->type != SEQ_IMAGE) {
return EXPP_ReturnIntError( PyExc_TypeError,
"Sequence is not an image type" );
}
if( !PyArg_ParseTuple
( value, "sO!", &basepath, &PyList_Type, &list ) )
return EXPP_ReturnIntError( PyExc_TypeError,
"expected string and optional list argument" );
strip = self->seq->strip;
se = strip->stripdata;
/* for now dont support different image list sizes */
if (PyList_Size(list) != strip->len) {
return EXPP_ReturnIntError( PyExc_TypeError,
"at the moment only image lista with the same number of images as the strip are supported" );
}
strncpy(strip->dir, basepath, sizeof(strip->dir));
for (i=0; i<strip->len; i++, se++) {
name = PyString_AsString(PyList_GetItem(list, i));
if (name) {
strncpy(se->name, name, sizeof(se->name));
}
}
return 0;
}
/*
* get floating point attributes
@@ -724,7 +761,7 @@ static PyGetSetDef BPy_Sequence_getseters[] = {
"Sequence name",
NULL},
{"images",
(getter)Sequence_getImages, (setter)NULL,
(getter)Sequence_getImages, (setter)Sequence_setImages,
"Sequence scene",
NULL},

View File

@@ -35,6 +35,7 @@
#include "MEM_guardedalloc.h"
#include "PIL_dynlib.h"
#include "DNA_scene_types.h"
#include "DNA_sequence_types.h"
#include "BLI_blenlib.h"
@@ -2494,9 +2495,10 @@ static void do_glow_effect_byte(Sequence *seq, float facf0, float facf1,
unsigned char *outbuf=(unsigned char *)out;
unsigned char *inbuf=(unsigned char *)rect1;
GlowVars *glow = (GlowVars *)seq->effectdata;
struct RenderData *rd = &G.scene->r;
RVIsolateHighlights_byte(inbuf, outbuf , x, y, glow->fMini*765, glow->fBoost, glow->fClamp);
RVBlurBitmap2_byte (outbuf, x, y, glow->dDist,glow->dQuality);
RVBlurBitmap2_byte (outbuf, x, y, glow->dDist * (rd->size / 100.0f),glow->dQuality);
if (!glow->bNoComp)
RVAddBitmaps_byte (inbuf , outbuf, outbuf, x, y);
}
@@ -2508,9 +2510,10 @@ static void do_glow_effect_float(Sequence *seq, float facf0, float facf1,
float *outbuf = out;
float *inbuf = rect1;
GlowVars *glow = (GlowVars *)seq->effectdata;
struct RenderData *rd = &G.scene->r;
RVIsolateHighlights_float(inbuf, outbuf , x, y, glow->fMini*3.0f, glow->fBoost, glow->fClamp);
RVBlurBitmap2_float (outbuf, x, y, glow->dDist,glow->dQuality);
RVBlurBitmap2_float (outbuf, x, y, glow->dDist * (rd->size / 100.0f),glow->dQuality);
if (!glow->bNoComp)
RVAddBitmaps_float (inbuf , outbuf, outbuf, x, y);
}