diff options
author | Campbell Barton <ideasman42@gmail.com> | 2007-12-12 17:20:12 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2007-12-12 17:20:12 +0300 |
commit | bf5cc424a8a227e264e4086696c38bceaa22a8ac (patch) | |
tree | 94911ac6492e115315d2e2dffecb927c9a3c5a1a /source | |
parent | 29054847a757c79381f7ac4243cf94d5131a2cb7 (diff) |
Patch from ILdar AKHmetgaleev (akhil) - [#7864] correct scale in sequencer's glow
Added py-api write access to sequencer images.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/python/api2_2x/sceneSequence.c | 41 | ||||
-rw-r--r-- | source/blender/src/seqeffects.c | 7 |
2 files changed, 44 insertions, 4 deletions
diff --git a/source/blender/python/api2_2x/sceneSequence.c b/source/blender/python/api2_2x/sceneSequence.c index 1d5e3058928..5db09b11aee 100644 --- a/source/blender/python/api2_2x/sceneSequence.c +++ b/source/blender/python/api2_2x/sceneSequence.c @@ -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}, diff --git a/source/blender/src/seqeffects.c b/source/blender/src/seqeffects.c index 5b89bd3ee44..5ed7ea29e2f 100644 --- a/source/blender/src/seqeffects.c +++ b/source/blender/src/seqeffects.c @@ -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); } |