[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17283] branches/animsys2/source/blender/ python/api2_2x: AnimSys2: PyAPI Access for Per-Segment Interpolation
Revision: 17283 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17283 Author: aligorith Date: 2008-11-02 04:02:58 +0100 (Sun, 02 Nov 2008) Log Message: --- AnimSys2: PyAPI Access for Per-Segment Interpolation Modified Paths: -- branches/animsys2/source/blender/python/api2_2x/BezTriple.c branches/animsys2/source/blender/python/api2_2x/doc/BezTriple.py Modified: branches/animsys2/source/blender/python/api2_2x/BezTriple.c === --- branches/animsys2/source/blender/python/api2_2x/BezTriple.c 2008-11-02 00:25:39 UTC (rev 17282) +++ branches/animsys2/source/blender/python/api2_2x/BezTriple.c 2008-11-02 03:02:58 UTC (rev 17283) @@ -54,6 +54,8 @@ static int BezTriple_setPoints( BPy_BezTriple * self, PyObject * args ); static PyObject *BezTriple_getPoints( BPy_BezTriple * self ); static PyObject *BezTriple_getTriple( BPy_BezTriple * self ); +static PyObject *BezTriple_setInterpolation( BPy_BezTriple * self, PyObject * value ); +static PyObject *BezTriple_getInterpolation( BPy_BezTriple * self ); / Python method structure definition for Blender.BezTriple module: @@ -79,6 +81,10 @@ "() - return BezTriple knot point x and y coordinates"}, {"getTriple", ( PyCFunction ) BezTriple_getTriple, METH_NOARGS, "() - return list of 3 floating point triplets. order is H1, knot, H2"}, + {"setInterpolation", ( PyCFunction ) BezTriple_setInterpolation, +METH_O, "(str) - Sets the interpolation type of the segment starting from this BezTriple"}, + {"getInterpolation", ( PyCFunction ) BezTriple_getInterpolation, +METH_NOARGS, "() - Gets the interpolation type of the segment starting from this BezTriple"}, {NULL, NULL, 0, NULL} }; @@ -401,6 +407,53 @@ return 0; } +static PyObject *BezTriple_getInterpolation( BPy_BezTriple * self ) +{ + char *str = 0; + BezTriple *bezt = self->beztriple; + + switch( bezt->ipo ) { + case IPO_BEZ: + str = "Bezier"; + break; + case IPO_CONST: + str = "Constant"; + break; + case IPO_LIN: + str = "Linear"; + break; + default: + return EXPP_ReturnPyObjError( PyExc_TypeError, + "unknown interpolation type" ); + } + + return PyString_FromString( str ); +} + +static PyObject *BezTriple_setInterpolation( BPy_BezTriple * self, PyObject *value ) +{ + char *interpolationtype = PyString_AsString(value); + short id= IPO_BEZ; + + if( !interpolationtype ) + return EXPP_ReturnPyObjError( PyExc_TypeError, + "expected string argument" ); + + if( !strcmp( interpolationtype, "Bezier" ) ) + id = IPO_BEZ; + else if( !strcmp( interpolationtype, "Constant" ) ) + id = IPO_CONST; + else if( !strcmp( interpolationtype, "Linear" ) ) + id = IPO_LIN; + else + return EXPP_ReturnPyObjError( PyExc_TypeError, + "bad interpolation type" ); + + self->beztriple->ipo= id; + Py_RETURN_NONE; +} + + static PyObject *BezTriple_getHandles( BPy_BezTriple * self ) { BezTriple *bezt = self->beztriple; Modified: branches/animsys2/source/blender/python/api2_2x/doc/BezTriple.py === --- branches/animsys2/source/blender/python/api2_2x/doc/BezTriple.py 2008-11-02 00:25:39 UTC (rev 17282) +++ branches/animsys2/source/blender/python/api2_2x/doc/BezTriple.py 2008-11-02 03:02:58 UTC (rev 17283) @@ -60,6 +60,9 @@ @ivar handleTypes: the types of the point's two handles. See L{HandleTypes} for a complete description. @type handleTypes list of two ints + @ivar interpolation: The BezTriple's interpolation mode. See L{InterpTypes} for + values. + @type interpolation: int @ivar selects: the select status for [handle, knot, handle]. True/nonzero if the point is selected. @type selects: list of three ints ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17282] trunk/blender/source/blender: Fix for two proxy + undo related crashes:
Revision: 17282 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17282 Author: blendix Date: 2008-11-02 01:25:39 +0100 (Sun, 02 Nov 2008) Log Message: --- Fix for two proxy + undo related crashes: * When making a proxy, the lib linked IPO driver was also changed to point to the proxy object, and after undo this local proxy object was replaced so the pointer became invalid. In fact it is not needed at all to change this because the IPO code maps the pointer to the local proxy object already. * Undoing the make proxy operation would crash because the proxy_from pointer in the library linked object would still point to the removed object. Now it clears all these pointers before undo, because on each undo memory file read they will be set again anyway. Modified Paths: -- trunk/blender/source/blender/blenkernel/intern/object.c trunk/blender/source/blender/blenloader/intern/readblenentry.c trunk/blender/source/blender/blenloader/intern/readfile.c trunk/blender/source/blender/blenloader/intern/readfile.h Modified: trunk/blender/source/blender/blenkernel/intern/object.c === --- trunk/blender/source/blender/blenkernel/intern/object.c 2008-11-01 22:28:27 UTC (rev 17281) +++ trunk/blender/source/blender/blenkernel/intern/object.c 2008-11-02 00:25:39 UTC (rev 17282) @@ -1163,7 +1163,10 @@ ListBase targets = {NULL, NULL}; bConstraintTarget *ct; - if(con->ipo) { + /* note that we can't change lib linked ipo blocks. for making +* proxies this still works correct however because the object +* is changed to object->proxy_from when evaluating the driver. */ + if(con->ipo && !con->ipo->id.lib) { IpoCurve *icu; for(icu= con->ipo->curve.first; icu; icu= icu->next) { if(icu->driver && icu->driver->ob==ob) Modified: trunk/blender/source/blender/blenloader/intern/readblenentry.c === --- trunk/blender/source/blender/blenloader/intern/readblenentry.c 2008-11-01 22:28:27 UTC (rev 17281) +++ trunk/blender/source/blender/blenloader/intern/readblenentry.c 2008-11-02 00:25:39 UTC (rev 17282) @@ -364,6 +364,9 @@ if (fd) { strcpy(fd->filename, filename); + /* clear ob->proxy_from pointers in G.main */ + blo_clear_proxy_pointers_from_lib(fd); + /* separate libraries from G.main */ blo_split_main(&mainlist, G.main); /* add the library pointers in oldmap lookup */ Modified: trunk/blender/source/blender/blenloader/intern/readfile.c === --- trunk/blender/source/blender/blenloader/intern/readfile.c 2008-11-01 22:28:27 UTC (rev 17281) +++ trunk/blender/source/blender/blenloader/intern/readfile.c 2008-11-02 00:25:39 UTC (rev 17282) @@ -1130,6 +1130,19 @@ } } +/* lib linked proxy objects point to our local data, we need + * to clear that pointer before reading the undo memfile since + * the object might be removed, it is set again in reading + * if the local object still exists */ +void blo_clear_proxy_pointers_from_lib(FileData *fd) +{ + Object *ob= G.main->object.first; + + for(;ob; ob= ob->id.next) + if(ob->id.lib) + ob->proxy_from= NULL; +} + /* assumed; G.main still exists */ void blo_make_image_pointer_map(FileData *fd) { Modified: trunk/blender/source/blender/blenloader/intern/readfile.h === --- trunk/blender/source/blender/blenloader/intern/readfile.h 2008-11-01 22:28:27 UTC (rev 17281) +++ trunk/blender/source/blender/blenloader/intern/readfile.h 2008-11-02 00:25:39 UTC (rev 17282) @@ -112,6 +112,7 @@ FileData *blo_openblendermemory( void *buffer, int buffersize, BlendReadError *error_r); FileData *blo_openblendermemfile(struct MemFile *memfile, BlendReadError *error_r); +void blo_clear_proxy_pointers_from_lib(FileData *fd); void blo_make_image_pointer_map(FileData *fd); void blo_end_image_pointer_map(FileData *fd); void blo_add_library_pointer_map(ListBase *mainlist, FileData *fd); ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17281] trunk/blender/source/gameengine/ VideoTexture/blendVideoTex.cpp: VideoTexture: remove numpy dependency.
Revision: 17281 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17281 Author: ben2610 Date: 2008-11-01 23:28:27 +0100 (Sat, 01 Nov 2008) Log Message: --- VideoTexture: remove numpy dependency. Modified Paths: -- trunk/blender/source/gameengine/VideoTexture/blendVideoTex.cpp Modified: trunk/blender/source/gameengine/VideoTexture/blendVideoTex.cpp === --- trunk/blender/source/gameengine/VideoTexture/blendVideoTex.cpp 2008-11-01 22:26:58 UTC (rev 17280) +++ trunk/blender/source/gameengine/VideoTexture/blendVideoTex.cpp 2008-11-01 22:28:27 UTC (rev 17281) @@ -20,16 +20,12 @@ - */ -#define PY_ARRAY_UNIQUE_SYMBOL numpyPtr - #include #include #include -#include - //Old API //#include "TexPlayer.h" //#include "TexImage.h" @@ -85,15 +81,6 @@ } -// function to initialize numpy structures -static bool initNumpy (void) -{ - // init module and report failure - import_array1(false); - // report success - return true; -} - // image to numpy array static PyObject * imageToArray (PyObject * self, PyObject *args) { @@ -107,15 +94,14 @@ } // get image structure PyImage * img = reinterpret_cast(pyImg); - // check initialization of numpy interface, and initialize it if needed - if (numpyPtr == NULL && !initNumpy()) Py_RETURN_NONE; // create array object - npy_intp dim[1]; - dim[0] = img->m_image->getBuffSize() / sizeof(unsigned int); unsigned int * imgBuff = img->m_image->getImage(); // if image is available, convert it to array if (imgBuff != NULL) - return PyArray_SimpleNewFromData(1, dim, NPY_UBYTE, imgBuff); +// Nasty problem here: the image buffer is an array of integers +// in the processor endian format. The user must take care of that in the script. +// Need to find an elegant solution to this problem +return Py_BuildValue("s#", imgBuff, img->m_image->getBuffSize()); // otherwise return None Py_RETURN_NONE; } @@ -189,9 +175,6 @@ if (m == NULL) return NULL; - // prepare numpy array - numpyPtr = NULL; - // initialize classes pyImageTypes.reg(m); pyFilterTypes.reg(m); ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17280] trunk/lib/windows/python/include/ python2.5/numpy/: VideoTexture: remove numpy dependency, the VideoTexture. imageToArray() function returns n
Revision: 17280 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17280 Author: ben2610 Date: 2008-11-01 23:26:58 +0100 (Sat, 01 Nov 2008) Log Message: --- VideoTexture: remove numpy dependency, the VideoTexture.imageToArray() function returns now a simple string. If the user wants to process the image data with some of the numpy algorithms, he will need to convert the string into a ndarray object in his script. Removed Paths: - trunk/lib/windows/python/include/python2.5/numpy/ ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17279] branches/projection-paint: svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r17236 :HEAD
Revision: 17279 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17279 Author: campbellbarton Date: 2008-11-01 23:04:41 +0100 (Sat, 01 Nov 2008) Log Message: --- svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r17236:HEAD Modified Paths: -- branches/projection-paint/config/darwin-config.py branches/projection-paint/config/openbsd3-config.py branches/projection-paint/config/sunos5-config.py branches/projection-paint/config/win32-mingw-config.py branches/projection-paint/config/win32-vc-config.py branches/projection-paint/doc/blender-scons.txt branches/projection-paint/extern/ffmpeg/Makefile branches/projection-paint/extern/ffmpeg/SConscript branches/projection-paint/intern/ghost/intern/GHOST_WindowWin32.cpp branches/projection-paint/projectfiles_vc7/blender/blender.sln branches/projection-paint/projectfiles_vc7/blender/blender.vcproj branches/projection-paint/projectfiles_vc7/blender/blenlib/BLI_blenlib.vcproj branches/projection-paint/projectfiles_vc7/blender/src/BL_src.vcproj branches/projection-paint/source/blender/blenkernel/intern/CCGSubSurf.c branches/projection-paint/source/blender/imbuf/intern/util.c branches/projection-paint/source/blender/python/api2_2x/matrix.c branches/projection-paint/source/blender/render/intern/source/envmap.c branches/projection-paint/source/blender/render/intern/source/sss.c branches/projection-paint/source/blender/src/interface.c branches/projection-paint/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp branches/projection-paint/source/gameengine/CMakeLists.txt branches/projection-paint/source/gameengine/Ketsji/BL_Texture.h branches/projection-paint/source/gameengine/Ketsji/KX_BlenderMaterial.h branches/projection-paint/source/gameengine/Ketsji/KX_Camera.cpp branches/projection-paint/source/gameengine/Ketsji/KX_GameObject.cpp branches/projection-paint/source/gameengine/Ketsji/KX_KetsjiEngine.cpp branches/projection-paint/source/gameengine/Ketsji/KX_KetsjiEngine.h branches/projection-paint/source/gameengine/Ketsji/KX_ParentActuator.cpp branches/projection-paint/source/gameengine/Ketsji/KX_PythonInit.cpp branches/projection-paint/source/gameengine/Ketsji/KX_PythonInit.h branches/projection-paint/source/gameengine/Rasterizer/RAS_2DFilterManager.cpp branches/projection-paint/source/gameengine/Rasterizer/RAS_2DFilterManager.h branches/projection-paint/source/gameengine/SConscript Added Paths: --- branches/projection-paint/extern/ffmpeg/libavdevice/ branches/projection-paint/extern/ffmpeg/libavdevice/Makefile branches/projection-paint/extern/ffmpeg/libavdevice/alldevices.c branches/projection-paint/extern/ffmpeg/libavdevice/audio.c branches/projection-paint/extern/ffmpeg/libavdevice/avdevice.h branches/projection-paint/extern/ffmpeg/libavdevice/beosaudio.cpp branches/projection-paint/extern/ffmpeg/libavdevice/bktr.c branches/projection-paint/extern/ffmpeg/libavdevice/dv1394.c branches/projection-paint/extern/ffmpeg/libavdevice/dv1394.h branches/projection-paint/extern/ffmpeg/libavdevice/libdc1394.c branches/projection-paint/extern/ffmpeg/libavdevice/v4l.c branches/projection-paint/extern/ffmpeg/libavdevice/v4l2.c branches/projection-paint/extern/ffmpeg/libavdevice/x11grab.c branches/projection-paint/scons/ branches/projection-paint/scons/scons-LICENSE branches/projection-paint/scons/scons-README branches/projection-paint/scons/scons-local-1.1.0/ branches/projection-paint/scons/scons-local-1.1.0/SCons/ branches/projection-paint/scons/scons-local-1.1.0/SCons/Action.py branches/projection-paint/scons/scons-local-1.1.0/SCons/Builder.py branches/projection-paint/scons/scons-local-1.1.0/SCons/CacheDir.py branches/projection-paint/scons/scons-local-1.1.0/SCons/Conftest.py branches/projection-paint/scons/scons-local-1.1.0/SCons/Debug.py branches/projection-paint/scons/scons-local-1.1.0/SCons/Defaults.py branches/projection-paint/scons/scons-local-1.1.0/SCons/Environment.py branches/projection-paint/scons/scons-local-1.1.0/SCons/Errors.py branches/projection-paint/scons/scons-local-1.1.0/SCons/Executor.py branches/projection-paint/scons/scons-local-1.1.0/SCons/Job.py branches/projection-paint/scons/scons-local-1.1.0/SCons/Memoize.py branches/projection-paint/scons/scons-local-1.1.0/SCons/Node/ branches/projection-paint/scons/scons-local-1.1.0/SCons/Node/Alias.py branches/projection-paint/scons/scons-local-1.1.0/SCons/Node/FS.py branches/projection-paint/scons/scons-local-1.1.0/SCons/Node/Python.py branches/projection-paint/scons/scons-local-1.1.0/SCons/Node/__init__.py branches/projection-paint/scons/scons-local-1.1.0/SCons/Options/ branches/projection-paint/scons/scons-local-1.1.0/SCons/Options/Bo
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17278] trunk/blender: === SCons ===
Revision: 17278 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17278 Author: jesterking Date: 2008-11-01 22:41:22 +0100 (Sat, 01 Nov 2008) Log Message: --- === SCons === Add scons-local of the latest version. This means that from now on one doesn't need to install SCons explicitely. Instead, the user can now start a build by doing: D:\blenderdev\currentsvn>python scons\scons.py This way people won't have to worry about what their OS of choice offers for SCons support - they will always have the latest supported SCons version at their disposal. If necessary, one can always keep using their own install (provided it is supported by our build scripts), by giving the normal scons command. Added Paths: --- trunk/blender/scons/ trunk/blender/scons/scons-LICENSE trunk/blender/scons/scons-README trunk/blender/scons/scons-local-1.1.0/ trunk/blender/scons/scons-local-1.1.0/SCons/ trunk/blender/scons/scons-local-1.1.0/SCons/Action.py trunk/blender/scons/scons-local-1.1.0/SCons/Builder.py trunk/blender/scons/scons-local-1.1.0/SCons/CacheDir.py trunk/blender/scons/scons-local-1.1.0/SCons/Conftest.py trunk/blender/scons/scons-local-1.1.0/SCons/Debug.py trunk/blender/scons/scons-local-1.1.0/SCons/Defaults.py trunk/blender/scons/scons-local-1.1.0/SCons/Environment.py trunk/blender/scons/scons-local-1.1.0/SCons/Errors.py trunk/blender/scons/scons-local-1.1.0/SCons/Executor.py trunk/blender/scons/scons-local-1.1.0/SCons/Job.py trunk/blender/scons/scons-local-1.1.0/SCons/Memoize.py trunk/blender/scons/scons-local-1.1.0/SCons/Node/ trunk/blender/scons/scons-local-1.1.0/SCons/Node/Alias.py trunk/blender/scons/scons-local-1.1.0/SCons/Node/FS.py trunk/blender/scons/scons-local-1.1.0/SCons/Node/Python.py trunk/blender/scons/scons-local-1.1.0/SCons/Node/__init__.py trunk/blender/scons/scons-local-1.1.0/SCons/Options/ trunk/blender/scons/scons-local-1.1.0/SCons/Options/BoolOption.py trunk/blender/scons/scons-local-1.1.0/SCons/Options/EnumOption.py trunk/blender/scons/scons-local-1.1.0/SCons/Options/ListOption.py trunk/blender/scons/scons-local-1.1.0/SCons/Options/PackageOption.py trunk/blender/scons/scons-local-1.1.0/SCons/Options/PathOption.py trunk/blender/scons/scons-local-1.1.0/SCons/Options/__init__.py trunk/blender/scons/scons-local-1.1.0/SCons/PathList.py trunk/blender/scons/scons-local-1.1.0/SCons/Platform/ trunk/blender/scons/scons-local-1.1.0/SCons/Platform/__init__.py trunk/blender/scons/scons-local-1.1.0/SCons/Platform/aix.py trunk/blender/scons/scons-local-1.1.0/SCons/Platform/cygwin.py trunk/blender/scons/scons-local-1.1.0/SCons/Platform/darwin.py trunk/blender/scons/scons-local-1.1.0/SCons/Platform/hpux.py trunk/blender/scons/scons-local-1.1.0/SCons/Platform/irix.py trunk/blender/scons/scons-local-1.1.0/SCons/Platform/os2.py trunk/blender/scons/scons-local-1.1.0/SCons/Platform/posix.py trunk/blender/scons/scons-local-1.1.0/SCons/Platform/sunos.py trunk/blender/scons/scons-local-1.1.0/SCons/Platform/win32.py trunk/blender/scons/scons-local-1.1.0/SCons/SConf.py trunk/blender/scons/scons-local-1.1.0/SCons/SConsign.py trunk/blender/scons/scons-local-1.1.0/SCons/Scanner/ trunk/blender/scons/scons-local-1.1.0/SCons/Scanner/C.py trunk/blender/scons/scons-local-1.1.0/SCons/Scanner/D.py trunk/blender/scons/scons-local-1.1.0/SCons/Scanner/Dir.py trunk/blender/scons/scons-local-1.1.0/SCons/Scanner/Fortran.py trunk/blender/scons/scons-local-1.1.0/SCons/Scanner/IDL.py trunk/blender/scons/scons-local-1.1.0/SCons/Scanner/LaTeX.py trunk/blender/scons/scons-local-1.1.0/SCons/Scanner/Prog.py trunk/blender/scons/scons-local-1.1.0/SCons/Scanner/RC.py trunk/blender/scons/scons-local-1.1.0/SCons/Scanner/__init__.py trunk/blender/scons/scons-local-1.1.0/SCons/Script/ trunk/blender/scons/scons-local-1.1.0/SCons/Script/Interactive.py trunk/blender/scons/scons-local-1.1.0/SCons/Script/Main.py trunk/blender/scons/scons-local-1.1.0/SCons/Script/SConsOptions.py trunk/blender/scons/scons-local-1.1.0/SCons/Script/SConscript.py trunk/blender/scons/scons-local-1.1.0/SCons/Script/__init__.py trunk/blender/scons/scons-local-1.1.0/SCons/Sig.py trunk/blender/scons/scons-local-1.1.0/SCons/Subst.py trunk/blender/scons/scons-local-1.1.0/SCons/Taskmaster.py trunk/blender/scons/scons-local-1.1.0/SCons/Tool/ trunk/blender/scons/scons-local-1.1.0/SCons/Tool/386asm.py trunk/blender/scons/scons-local-1.1.0/SCons/Tool/BitKeeper.py trunk/blender/scons/scons-local-1.1.0/SCons/Tool/CVS.py trunk/blender/scons/scons-local-1.1.0/SCons/Tool/FortranCommon.py trunk/blender/scons/scons-local-1.1.0/SCons/Tool/JavaCommon.py trunk/blender/scons/scons-local-1.1.0/SCons/Tool/Perforce.py trunk/blender/scons/scons-local-1.1.
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17277] trunk/blender/source/gameengine/ VideoTexture/Texture.cpp: VideoTexture: fix NULL pointer crash when material name is not found.
Revision: 17277 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17277 Author: ben2610 Date: 2008-11-01 21:18:15 +0100 (Sat, 01 Nov 2008) Log Message: --- VideoTexture: fix NULL pointer crash when material name is not found. Modified Paths: -- trunk/blender/source/gameengine/VideoTexture/Texture.cpp Modified: trunk/blender/source/gameengine/VideoTexture/Texture.cpp === --- trunk/blender/source/gameengine/VideoTexture/Texture.cpp2008-11-01 17:44:12 UTC (rev 17276) +++ trunk/blender/source/gameengine/VideoTexture/Texture.cpp2008-11-01 20:18:15 UTC (rev 17277) @@ -96,7 +96,7 @@ // get material from mesh RAS_MeshObject * mesh = gameObj->GetMesh(0); RAS_MeshMaterial *meshMat = mesh->GetMeshMaterial(matID); - if (meshMat->m_bucket != NULL) + if (meshMat != NULL && meshMat->m_bucket != NULL) // return pointer to polygon or blender material return meshMat->m_bucket->GetPolyMaterial(); } ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17276] trunk/blender/source/gameengine/ VideoTexture/SConscript: Adding include path for numpy to sconscript.
Revision: 17276 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17276 Author: theeth Date: 2008-11-01 18:44:12 +0100 (Sat, 01 Nov 2008) Log Message: --- Adding include path for numpy to sconscript. There must be a better way to do this. Modified Paths: -- trunk/blender/source/gameengine/VideoTexture/SConscript Modified: trunk/blender/source/gameengine/VideoTexture/SConscript === --- trunk/blender/source/gameengine/VideoTexture/SConscript 2008-11-01 17:26:34 UTC (rev 17275) +++ trunk/blender/source/gameengine/VideoTexture/SConscript 2008-11-01 17:44:12 UTC (rev 17276) @@ -21,6 +21,7 @@ cflags.append('/GR') cflags.append('/Ox') +incs += ' ' + env['BF_PYTHON'] + '/lib/python' + env['BF_PYTHON_VERSION'] + "/site-packages/numpy/core/include" incs += ' ' + env['BF_PYTHON_INC'] #incs += ' ' + env['BF_OPENGL_INC'] ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17275] trunk/blender/source/gameengine/ VideoTexture/VideoFFmpeg.cpp: VideoTexture: typo in linux code
Revision: 17275 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17275 Author: ben2610 Date: 2008-11-01 18:26:34 +0100 (Sat, 01 Nov 2008) Log Message: --- VideoTexture: typo in linux code Modified Paths: -- trunk/blender/source/gameengine/VideoTexture/VideoFFmpeg.cpp Modified: trunk/blender/source/gameengine/VideoTexture/VideoFFmpeg.cpp === --- trunk/blender/source/gameengine/VideoTexture/VideoFFmpeg.cpp 2008-11-01 17:15:17 UTC (rev 17274) +++ trunk/blender/source/gameengine/VideoTexture/VideoFFmpeg.cpp 2008-11-01 17:26:34 UTC (rev 17275) @@ -319,7 +319,7 @@ if ((p = strchr(filename, ':')) != 0) *p = 0; } - if (file && (p = strchr(file, ":")) != NULL) + if (file && (p = strchr(file, ':')) != NULL) formatParams.standard = p+1; #endif //frame rate ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17274] trunk/blender/source/gameengine/ VideoTexture: VideoTexture: AVFormatContext:: pb is not a pointer for avformat library older than 52 (linux u
Revision: 17274 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17274 Author: ben2610 Date: 2008-11-01 18:15:17 +0100 (Sat, 01 Nov 2008) Log Message: --- VideoTexture: AVFormatContext::pb is not a pointer for avformat library older than 52 (linux uses 51) Modified Paths: -- trunk/blender/source/gameengine/VideoTexture/VideoFFmpeg.cpp trunk/blender/source/gameengine/VideoTexture/VideoFFmpeg.h Modified: trunk/blender/source/gameengine/VideoTexture/VideoFFmpeg.cpp === --- trunk/blender/source/gameengine/VideoTexture/VideoFFmpeg.cpp 2008-11-01 17:07:24 UTC (rev 17273) +++ trunk/blender/source/gameengine/VideoTexture/VideoFFmpeg.cpp 2008-11-01 17:15:17 UTC (rev 17274) @@ -248,7 +248,13 @@ // open base class VideoBase::openFile(filename); - if (m_formatCtx->pb->is_streamed) + if ( +#ifdef FFMPEG_PB_IS_POINTER +m_formatCtx->pb->is_streamed +#else +m_formatCtx->pb.is_streamed +#endif +) { // the file is in fact a streaming source, prevent seeking m_isFile = false; @@ -265,7 +271,7 @@ AVInputFormat *inputFormat; AVFormatParameters formatParams; AVRational frameRate; - charfilename[28], rateStr[20]; + char*p, filename[28], rateStr[20]; do_init_ffmpeg(); Modified: trunk/blender/source/gameengine/VideoTexture/VideoFFmpeg.h === --- trunk/blender/source/gameengine/VideoTexture/VideoFFmpeg.h 2008-11-01 17:07:24 UTC (rev 17273) +++ trunk/blender/source/gameengine/VideoTexture/VideoFFmpeg.h 2008-11-01 17:15:17 UTC (rev 17274) @@ -36,6 +36,10 @@ #define FFMPEG_CODEC_IS_POINTER 1 #endif +#if LIBAVFORMAT_VERSION_INT >= (52 << 16) +#define FFMPEG_PB_IS_POINTER 1 +#endif + #ifdef FFMPEG_CODEC_IS_POINTER static inline AVCodecContext* get_codec_from_stream(AVStream* stream) { ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17273] trunk/blender/source/blender: Bug #17912: fix for some SSS floating point precision issues, and also
Revision: 17273 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17273 Author: blendix Date: 2008-11-01 18:07:24 +0100 (Sat, 01 Nov 2008) Log Message: --- Bug #17912: fix for some SSS floating point precision issues, and also fix a divide by zero in the subsurf code found in the process. Modified Paths: -- trunk/blender/source/blender/blenkernel/intern/CCGSubSurf.c trunk/blender/source/blender/render/intern/source/sss.c Modified: trunk/blender/source/blender/blenkernel/intern/CCGSubSurf.c === --- trunk/blender/source/blender/blenkernel/intern/CCGSubSurf.c 2008-11-01 17:06:36 UTC (rev 17272) +++ trunk/blender/source/blender/blenkernel/intern/CCGSubSurf.c 2008-11-01 17:07:24 UTC (rev 17273) @@ -1245,9 +1245,11 @@ } } - avgSharpness /= sharpCount; - if (avgSharpness>1.0) { - avgSharpness = 1.0; + if(sharpCount) { + avgSharpness /= sharpCount; + if (avgSharpness>1.0) { + avgSharpness = 1.0; + } } if (seam && seamEdges < 2) @@ -1543,9 +1545,11 @@ } } - avgSharpness /= sharpCount; - if (avgSharpness>1.0) { - avgSharpness = 1.0; + if(sharpCount) { + avgSharpness /= sharpCount; + if (avgSharpness>1.0) { + avgSharpness = 1.0; + } } if (seam && seamEdges < 2) Modified: trunk/blender/source/blender/render/intern/source/sss.c === --- trunk/blender/source/blender/render/intern/source/sss.c 2008-11-01 17:06:36 UTC (rev 17272) +++ trunk/blender/source/blender/render/intern/source/sss.c 2008-11-01 17:07:24 UTC (rev 17273) @@ -451,13 +451,13 @@ VECCOPY(rdsum, result.rdsum); VECADD(backrdsum, result.rdsum, result.backrdsum); - if(rdsum[0] > 0.0f) rad[0]= tree->ss[0]->color*rad[0]/rdsum[0]; - if(rdsum[1] > 0.0f) rad[1]= tree->ss[1]->color*rad[1]/rdsum[1]; - if(rdsum[2] > 0.0f) rad[2]= tree->ss[2]->color*rad[2]/rdsum[2]; + if(rdsum[0] > 1e-16f) rad[0]= tree->ss[0]->color*rad[0]/rdsum[0]; + if(rdsum[1] > 1e-16f) rad[1]= tree->ss[1]->color*rad[1]/rdsum[1]; + if(rdsum[2] > 1e-16f) rad[2]= tree->ss[2]->color*rad[2]/rdsum[2]; - if(backrdsum[0] > 0.0f) backrad[0]= tree->ss[0]->color*backrad[0]/backrdsum[0]; - if(backrdsum[1] > 0.0f) backrad[1]= tree->ss[1]->color*backrad[1]/backrdsum[1]; - if(backrdsum[2] > 0.0f) backrad[2]= tree->ss[2]->color*backrad[2]/backrdsum[2]; + if(backrdsum[0] > 1e-16f) backrad[0]= tree->ss[0]->color*backrad[0]/backrdsum[0]; + if(backrdsum[1] > 1e-16f) backrad[1]= tree->ss[1]->color*backrad[1]/backrdsum[1]; + if(backrdsum[2] > 1e-16f) backrad[2]= tree->ss[2]->color*backrad[2]/backrdsum[2]; rad[0]= MAX2(rad[0], backrad[0]); rad[1]= MAX2(rad[1], backrad[1]); @@ -504,20 +504,20 @@ } } - if(node->area > 0) { + if(node->area > 1e-16f) { inv= 1.0/node->area; node->rad[0] *= inv; node->rad[1] *= inv; node->rad[2] *= inv; } - if(node->backarea > 0) { + if(node->backarea > 1e-16f) { inv= 1.0/node->backarea; node->backrad[0] *= inv; node->backrad[1] *= inv; node->backrad[2] *= inv; } - if(totrad > 0.0f) { + if(totrad > 1e-16f) { inv= 1.0/totrad; node->co[0] *= inv; node->co[1] *= inv; @@ -578,20 +578,20 @@ node->backarea += subnode->backarea; } - if(node->area > 0) { + if(node->area > 1e-16f) { inv= 1.0/node->area; node->rad[0] *= inv; node->rad[1] *= inv; node->rad[2] *= inv; } - if(node->backarea > 0) { + if(node->backarea > 1e-16f) { inv= 1.0/node->backarea; node->backrad[0] *= inv; node->backrad[1] *= inv; node->backrad[2] *= inv; } - if(totrad > 0.0f) { + if(totrad > 1e-16f) { inv= 1.0/totrad; node->co[0] *= inv; node->co[1] *= inv; ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17272] trunk/blender/source/gameengine/ VideoTexture/SConscript: Getting video texture closer to compiling under linux
Revision: 17272 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17272 Author: theeth Date: 2008-11-01 18:06:36 +0100 (Sat, 01 Nov 2008) Log Message: --- Getting video texture closer to compiling under linux Modified Paths: -- trunk/blender/source/gameengine/VideoTexture/SConscript Modified: trunk/blender/source/gameengine/VideoTexture/SConscript === --- trunk/blender/source/gameengine/VideoTexture/SConscript 2008-11-01 16:09:36 UTC (rev 17271) +++ trunk/blender/source/gameengine/VideoTexture/SConscript 2008-11-01 17:06:36 UTC (rev 17272) @@ -20,7 +20,6 @@ if env['OURPLATFORM'] == 'win32-vc': cflags.append('/GR') cflags.append('/Ox') - defs += ' __STDC_CONSTANT_MACROS' incs += ' ' + env['BF_PYTHON_INC'] #incs += ' ' + env['BF_OPENGL_INC'] @@ -28,5 +27,6 @@ if env['WITH_BF_FFMPEG']: defs += ' WITH_FFMPEG' incs += ' ' + env['BF_FFMPEG_INC'] +defs += ' __STDC_CONSTANT_MACROS' env.BlenderLib ( 'bf_videotex', sources, Split(incs), Split(defs), libtype=['game','player'], priority=[25, 72], compileflags = cflags ) ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17271] trunk/blender/source/blender/ render/intern/source/envmap.c: Bugfix #17913
Revision: 17271 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17271 Author: ton Date: 2008-11-01 17:09:36 +0100 (Sat, 01 Nov 2008) Log Message: --- Bugfix #17913 Bah... fix for envmaps just before 2.48 release gave good looking envmaps only when there was no sky involved... The alpha in environment maps should be reset to 255... something that was never done before, but also didn't show errors until other fixes in image rendering were done. Modified Paths: -- trunk/blender/source/blender/render/intern/source/envmap.c Modified: trunk/blender/source/blender/render/intern/source/envmap.c === --- trunk/blender/source/blender/render/intern/source/envmap.c 2008-11-01 15:58:49 UTC (rev 17270) +++ trunk/blender/source/blender/render/intern/source/envmap.c 2008-11-01 16:09:36 UTC (rev 17271) @@ -439,12 +439,19 @@ if(re->test_break()==0) { RenderLayer *rl= envre->result->layers.first; + int y; + char *alpha; ibuf= IMB_allocImBuf(envre->rectx, envre->recty, 24, IB_rect, 0); ibuf->rect_float= rl->rectf; IMB_rect_from_float(ibuf); ibuf->rect_float= NULL; - + + /* envmap renders without alpha */ + alpha= ((char *)ibuf->rect)+3; + for(y= ibuf->x*ibuf->y - 1; y>=0; y--, alpha+=4) + *alpha= 255; + env->cube[part]= ibuf; } ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17270] trunk/blender/source/gameengine/ VideoTexture: Video Texture: missing newlines at the end of several files.
Revision: 17270 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17270 Author: ben2610 Date: 2008-11-01 16:58:49 +0100 (Sat, 01 Nov 2008) Log Message: --- Video Texture: missing newlines at the end of several files. Modified Paths: -- trunk/blender/source/gameengine/VideoTexture/FilterBase.h trunk/blender/source/gameengine/VideoTexture/FilterBlueScreen.h trunk/blender/source/gameengine/VideoTexture/FilterColor.h trunk/blender/source/gameengine/VideoTexture/FilterNormal.h trunk/blender/source/gameengine/VideoTexture/FilterSource.h trunk/blender/source/gameengine/VideoTexture/ImageBase.cpp trunk/blender/source/gameengine/VideoTexture/ImageBase.h trunk/blender/source/gameengine/VideoTexture/PyTypeList.h Modified: trunk/blender/source/gameengine/VideoTexture/FilterBase.h === --- trunk/blender/source/gameengine/VideoTexture/FilterBase.h 2008-11-01 15:42:03 UTC (rev 17269) +++ trunk/blender/source/gameengine/VideoTexture/FilterBase.h 2008-11-01 15:58:49 UTC (rev 17270) @@ -129,4 +129,4 @@ int Filter_setPrevious (PyFilter * self, PyObject * value, void * closure); -#endif \ No newline at end of file +#endif Modified: trunk/blender/source/gameengine/VideoTexture/FilterBlueScreen.h === --- trunk/blender/source/gameengine/VideoTexture/FilterBlueScreen.h 2008-11-01 15:42:03 UTC (rev 17269) +++ trunk/blender/source/gameengine/VideoTexture/FilterBlueScreen.h 2008-11-01 15:58:49 UTC (rev 17270) @@ -95,4 +95,4 @@ }; -#endif \ No newline at end of file +#endif Modified: trunk/blender/source/gameengine/VideoTexture/FilterColor.h === --- trunk/blender/source/gameengine/VideoTexture/FilterColor.h 2008-11-01 15:42:03 UTC (rev 17269) +++ trunk/blender/source/gameengine/VideoTexture/FilterColor.h 2008-11-01 15:58:49 UTC (rev 17270) @@ -161,4 +161,4 @@ }; -#endif \ No newline at end of file +#endif Modified: trunk/blender/source/gameengine/VideoTexture/FilterNormal.h === --- trunk/blender/source/gameengine/VideoTexture/FilterNormal.h 2008-11-01 15:42:03 UTC (rev 17269) +++ trunk/blender/source/gameengine/VideoTexture/FilterNormal.h 2008-11-01 15:58:49 UTC (rev 17270) @@ -95,4 +95,4 @@ }; -#endif \ No newline at end of file +#endif Modified: trunk/blender/source/gameengine/VideoTexture/FilterSource.h === --- trunk/blender/source/gameengine/VideoTexture/FilterSource.h 2008-11-01 15:42:03 UTC (rev 17269) +++ trunk/blender/source/gameengine/VideoTexture/FilterSource.h 2008-11-01 15:58:49 UTC (rev 17270) @@ -230,4 +230,4 @@ }; -#endif \ No newline at end of file +#endif Modified: trunk/blender/source/gameengine/VideoTexture/ImageBase.cpp === --- trunk/blender/source/gameengine/VideoTexture/ImageBase.cpp 2008-11-01 15:42:03 UTC (rev 17269) +++ trunk/blender/source/gameengine/VideoTexture/ImageBase.cpp 2008-11-01 15:58:49 UTC (rev 17270) @@ -526,4 +526,4 @@ } // return success return 0; -} \ No newline at end of file +} Modified: trunk/blender/source/gameengine/VideoTexture/ImageBase.h === --- trunk/blender/source/gameengine/VideoTexture/ImageBase.h2008-11-01 15:42:03 UTC (rev 17269) +++ trunk/blender/source/gameengine/VideoTexture/ImageBase.h2008-11-01 15:58:49 UTC (rev 17270) @@ -346,4 +346,4 @@ int Image_setFilter (PyImage * self, PyObject * value, void * closure); -#endif \ No newline at end of file +#endif Modified: trunk/blender/source/gameengine/VideoTexture/PyTypeList.h === --- trunk/blender/source/gameengine/VideoTexture/PyTypeList.h 2008-11-01 15:42:03 UTC (rev 17269) +++ trunk/blender/source/gameengine/VideoTexture/PyTypeList.h 2008-11-01 15:58:49 UTC (rev 17270) @@ -82,4 +82,4 @@ }; -#endif \ No newline at end of file +#endif ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17269] trunk/blender: Video Texture: remove support for capture device, the linux ffmpeg repository is not ready yet.
Revision: 17269 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17269 Author: ben2610 Date: 2008-11-01 16:42:03 +0100 (Sat, 01 Nov 2008) Log Message: --- Video Texture: remove support for capture device, the linux ffmpeg repository is not ready yet. Modified Paths: -- trunk/blender/extern/ffmpeg/Makefile trunk/blender/extern/ffmpeg/SConscript trunk/blender/source/blender/imbuf/intern/util.c Modified: trunk/blender/extern/ffmpeg/Makefile === --- trunk/blender/extern/ffmpeg/Makefile2008-11-01 15:35:07 UTC (rev 17268) +++ trunk/blender/extern/ffmpeg/Makefile2008-11-01 15:42:03 UTC (rev 17269) @@ -32,7 +32,7 @@ include nan_subdirs.mk -ALLDIRS = libavcodec libavformat libavutil libswscale libavdevice +ALLDIRS = libavcodec libavformat libavutil libswscale config:: ./configure --disable-shared --enable-liba52bin --enable-gpl --disable-zlib --disable-vhook --disable-ffserver --disable-ffplay --enable-swscaler --enable-pthreads Modified: trunk/blender/extern/ffmpeg/SConscript === --- trunk/blender/extern/ffmpeg/SConscript 2008-11-01 15:35:07 UTC (rev 17268) +++ trunk/blender/extern/ffmpeg/SConscript 2008-11-01 15:42:03 UTC (rev 17269) @@ -3,7 +3,7 @@ Import('env') -all_libs = ['libavformat', 'libavcodec', 'libswscale', 'libavutil', 'libavdevice'] +all_libs = ['libavformat', 'libavcodec', 'libswscale', 'libavutil'] root = "extern/ffmpeg" if env['OURPLATFORM'] == 'win32-mingw': Modified: trunk/blender/source/blender/imbuf/intern/util.c === --- trunk/blender/source/blender/imbuf/intern/util.c2008-11-01 15:35:07 UTC (rev 17268) +++ trunk/blender/source/blender/imbuf/intern/util.c2008-11-01 15:42:03 UTC (rev 17269) @@ -64,7 +64,7 @@ #ifdef WITH_FFMPEG #include #include -#include +//#include #if LIBAVFORMAT_VERSION_INT < (49 << 16) #define FFMPEG_OLD_FRAME_RATE 1 @@ -237,7 +237,7 @@ if (!ffmpeg_init) { ffmpeg_init = 1; av_register_all(); - avdevice_register_all(); + //avdevice_register_all(); } } ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17268] branches/projection-paint/source/ blender/src/imagepaint.c: Speedup collecting pixels from a faces UV, was using 'point-in-tri' (IsectPQ2Df) f
Revision: 17268 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17268 Author: campbellbarton Date: 2008-11-01 16:35:07 +0100 (Sat, 01 Nov 2008) Log Message: --- Speedup collecting pixels from a faces UV, was using 'point-in-tri' (IsectPQ2Df) for every pixel in the UV Bounds of a face, replace this with intersection tests that use scanlines to get the x-range of pixels for each Y increment. Modified Paths: -- branches/projection-paint/source/blender/src/imagepaint.c Modified: branches/projection-paint/source/blender/src/imagepaint.c === --- branches/projection-paint/source/blender/src/imagepaint.c 2008-11-01 14:00:16 UTC (rev 17267) +++ branches/projection-paint/source/blender/src/imagepaint.c 2008-11-01 15:35:07 UTC (rev 17268) @@ -134,7 +134,7 @@ /* testing options */ #define PROJ_BUCKET_DIV 128 /* TODO - test other values, this is a guess, seems ok */ -// #define PROJ_PAINT_DEBUG 1 +// #define PROJ_DEBUG_PAINT 1 /* projectFaceFlags options */ #define PROJ_FACE_IGNORE 1<<0/* When the face is hidden, backfacing or occluded */ @@ -163,7 +163,7 @@ /* projection painting only */ MemArena *projectArena; /* use for alocating many pixel structs and link-lists */ - LinkNode **projectBuckets; /* screen sized 2D array, each pixel has a linked list of ImagePaintProjectPixel's */ + LinkNode **projectBuckets; /* screen sized 2D array, each pixel has a linked list of ProjectPixel's */ LinkNode **projectFaces;/* projectBuckets alligned array linkList of faces overlapping each bucket */ char *projectBucketFlags; /* store if the bucks have been initialized */ char *projectFaceFlags; /* store info about faces, if they are initialized etc*/ @@ -191,11 +191,16 @@ float viewHeight; } ProjectPaintState; -typedef struct ImagePaintProjectPixel { +typedef struct ProjectScanline { + int v[3]; /* verts for this scanline, 0,1,2 or 0,2,3 */ + float x_limits[2]; /* UV min|max for this scanline */ +} ProjectScanline; + +typedef struct ProjectPixel { float projCo2D[2]; /* the floating point screen projection of this pixel */ char *pixel; int image_index; -} ImagePaintProjectPixel; +} ProjectPixel; /* Finish projection painting structs */ @@ -414,11 +419,13 @@ static int project_bucket_point_occluded(ProjectPaintState *ps, int bucket_index, int orig_face, float pixelScreenCo[3]) { LinkNode *node = ps->projectFaces[bucket_index]; - LinkNode *prev_node = NULL; MFace *mf; int face_index; int isect_ret; + /* we could return 0 for 1 face buckets, as long as this function assumes +* that the point its testing is only every originated from an existing face */ + while (node) { face_index = (int)node->link; @@ -461,17 +468,56 @@ return 1; } } - prev_node = node; node = node->next; } return 0; } +/* basic line intersection, could move to arithb.c, 2 points with a horiz line */ +static int project_scanline_isect(float *p1, float *p2, float y_level, float *y_isect) +{ + if (p1[1] > y_level && p2[1] < y_level) { + *y_isect = (p2[0]*(p1[1]-y_level) + p1[0]*(y_level-p2[1])) / (p1[1]-p2[1]); + return 1; + } else if (p1[1] < y_level && p2[1] > y_level) { + *y_isect = (p2[0]*(y_level-p1[1]) + p1[0]*(p2[1]-y_level)) / (p2[1]-p1[1]); + return 1; + } else { + return 0; + } +} + +/* take 3 uv coords, a horizontal x_limits and set the min|max intersections points here */ +static int project_uv_scanline(float *uv1, float *uv2, float *uv3, float y_level, float x_limits[2]) +{ + int i = 0; + + if (project_scanline_isect(uv1, uv2, y_level, &x_limits[0])) i++; + if (project_scanline_isect(uv2, uv3, y_level, &x_limits[i])) i++; + /* if the triangle intersects then the first 2 lines must */ + if (i==0) { + return 0; + } else if (i!=2) { + /* if we are here then this really should not fail since 2 edges MUST intersect */ + if (project_scanline_isect(uv3, uv1, y_level, &x_limits[i])) i++; + } + + if (i==2) { + if (x_limits[0] > x_limits[1]) { + SWAP(float, x_limits[0], x_limits[1]); + } + return 1; + } else { + return 0; + } +} + + static void project_paint_face_init(ProjectPaintState *ps, int face_index, ImBuf *ibuf) { /* Projection vars, to get the 3D locations into screen space */ - I
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17267] trunk/blender/source/gameengine/ Rasterizer: Patch 17909: 2D Filter texture coordinates changes, by Dalai Felinto:
Revision: 17267 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17267 Author: blendix Date: 2008-11-01 15:00:16 +0100 (Sat, 01 Nov 2008) Log Message: --- Patch 17909: 2D Filter texture coordinates changes, by Dalai Felinto: * The second opengl texture coordinate (gl_TexCoord[1]) are now filled in as well, and will give canvas coordinates from 0.0 to 1.0. The first texture coordinates still give the coordinates in the texture that is being used, which may not match the canvas exactly, so both coordinates are needed. * Also optimization to allow using smaller texture sizes with multiple smaller viewports. * Print the detailed GLSL shader errors (once), for easier debugging. Modified Paths: -- trunk/blender/source/gameengine/Rasterizer/RAS_2DFilterManager.cpp trunk/blender/source/gameengine/Rasterizer/RAS_2DFilterManager.h Modified: trunk/blender/source/gameengine/Rasterizer/RAS_2DFilterManager.cpp === --- trunk/blender/source/gameengine/Rasterizer/RAS_2DFilterManager.cpp 2008-11-01 13:37:04 UTC (rev 17266) +++ trunk/blender/source/gameengine/Rasterizer/RAS_2DFilterManager.cpp 2008-11-01 14:00:16 UTC (rev 17267) @@ -78,6 +78,7 @@ m_gameObjects[passindex] = NULL; } texname[0] = texname[1] = texname[2] = -1; + errorprinted= false; } RAS_2DFilterManager::~RAS_2DFilterManager() @@ -85,76 +86,107 @@ FreeTextures(); } +void RAS_2DFilterManager::PrintShaderErrors(unsigned int shader, const char *task, const char *code) +{ + GLcharARB log[5000]; + GLsizei length = 0; + const char *c, *pos, *end; + int line = 1; + + if(errorprinted) + return; + + errorprinted= true; + + glGetInfoLogARB(shader, sizeof(log), &length, log); + end = code + strlen(code); + + printf("2D Filter GLSL Shader: %s error:\n", task); + + c = code; + while ((c < end) && (pos = strchr(c, '\n'))) { + printf("%2d ", line); + fwrite(c, (pos+1)-c, 1, stdout); + c = pos+1; + line++; + } + printf("%s", c); + + printf("%s\n", log); +} + unsigned int RAS_2DFilterManager::CreateShaderProgram(const char* shadersource) { - GLuint program = 0; - GLuint fShader = glCreateShaderObjectARB(GL_FRAGMENT_SHADER); -GLint success; + GLuint program = 0; + GLuint fShader = glCreateShaderObjectARB(GL_FRAGMENT_SHADER); + GLint success; - glShaderSourceARB(fShader, 1, (const char**)&shadersource, NULL); + glShaderSourceARB(fShader, 1, (const char**)&shadersource, NULL); - glCompileShaderARB(fShader); + glCompileShaderARB(fShader); - glGetObjectParameterivARB(fShader, GL_COMPILE_STATUS, &success); - if(!success) - { - /*Shader Comile Error*/ - std::cout << "2dFilters - Shader compile error" << std::endl; - return 0; - } - - program = glCreateProgramObjectARB(); - glAttachObjectARB(program, fShader); - glLinkProgramARB(program); - glGetObjectParameterivARB(program, GL_LINK_STATUS, &success); - if (!success) - { - /*Program Link Error*/ - std::cout << "2dFilters - Shader program link error" << std::endl; - return 0; - } - - glValidateProgramARB(program); - glGetObjectParameterivARB(program, GL_VALIDATE_STATUS, &success); -if (!success) - { - /*Program Validation Error*/ - std::cout << "2dFilters - Shader program validation error" << std::endl; - return 0; - } + glGetObjectParameterivARB(fShader, GL_COMPILE_STATUS, &success); + if(!success) + { + /*Shader Comile Error*/ + PrintShaderErrors(fShader, "compile", shadersource); + return 0; + } + + program = glCreateProgramObjectARB(); + glAttachObjectARB(program, fShader); - return program; + glLinkProgramARB(program); + glGetObjectParameterivARB(program, GL_LINK_STATUS, &success); + if (!success) + { + /*Program Link Error*/ + PrintShaderErrors(fShader, "link", shadersource); + return 0; + } + + glValidateProgramARB(program); + glGetObjectParameterivARB(program, GL_VALIDATE_STATUS, &success); + if (!success) + { + /*Program Validation Error*/ + PrintShaderErrors
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17266] trunk/blender/extern/ffmpeg/ Makefile: Video Texture: add libadevice to extern\ffmpeg, forgot to update the Makefile.
Revision: 17266 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17266 Author: ben2610 Date: 2008-11-01 14:37:04 +0100 (Sat, 01 Nov 2008) Log Message: --- Video Texture: add libadevice to extern\ffmpeg, forgot to update the Makefile. Modified Paths: -- trunk/blender/extern/ffmpeg/Makefile Modified: trunk/blender/extern/ffmpeg/Makefile === --- trunk/blender/extern/ffmpeg/Makefile2008-11-01 13:31:32 UTC (rev 17265) +++ trunk/blender/extern/ffmpeg/Makefile2008-11-01 13:37:04 UTC (rev 17266) @@ -32,7 +32,7 @@ include nan_subdirs.mk -ALLDIRS = libavcodec libavformat libavutil libswscale +ALLDIRS = libavcodec libavformat libavutil libswscale libavdevice config:: ./configure --disable-shared --enable-liba52bin --enable-gpl --disable-zlib --disable-vhook --disable-ffserver --disable-ffplay --enable-swscaler --enable-pthreads ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17265] trunk/blender/extern/ffmpeg: Video Texture: add libadevice to extern\ffmpeg for Linux build.
Revision: 17265 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17265 Author: ben2610 Date: 2008-11-01 14:31:32 +0100 (Sat, 01 Nov 2008) Log Message: --- Video Texture: add libadevice to extern\ffmpeg for Linux build. I took the files from a ffmpeg revision that matches the rest of ffmpeg file (revision 12121 2008-02-15). It might be useful to update the whole ffmpeg directory. Revision Links: -- http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=12121 Modified Paths: -- trunk/blender/extern/ffmpeg/SConscript Added Paths: --- trunk/blender/extern/ffmpeg/libavdevice/ trunk/blender/extern/ffmpeg/libavdevice/Makefile trunk/blender/extern/ffmpeg/libavdevice/alldevices.c trunk/blender/extern/ffmpeg/libavdevice/audio.c trunk/blender/extern/ffmpeg/libavdevice/avdevice.h trunk/blender/extern/ffmpeg/libavdevice/beosaudio.cpp trunk/blender/extern/ffmpeg/libavdevice/bktr.c trunk/blender/extern/ffmpeg/libavdevice/dv1394.c trunk/blender/extern/ffmpeg/libavdevice/dv1394.h trunk/blender/extern/ffmpeg/libavdevice/libdc1394.c trunk/blender/extern/ffmpeg/libavdevice/v4l.c trunk/blender/extern/ffmpeg/libavdevice/v4l2.c trunk/blender/extern/ffmpeg/libavdevice/x11grab.c Modified: trunk/blender/extern/ffmpeg/SConscript === --- trunk/blender/extern/ffmpeg/SConscript 2008-11-01 12:48:46 UTC (rev 17264) +++ trunk/blender/extern/ffmpeg/SConscript 2008-11-01 13:31:32 UTC (rev 17265) @@ -3,7 +3,7 @@ Import('env') -all_libs = ['libavformat', 'libavcodec', 'libswscale', 'libavutil'] +all_libs = ['libavformat', 'libavcodec', 'libswscale', 'libavutil', 'libavdevice'] root = "extern/ffmpeg" if env['OURPLATFORM'] == 'win32-mingw': Added: trunk/blender/extern/ffmpeg/libavdevice/Makefile === --- trunk/blender/extern/ffmpeg/libavdevice/Makefile (rev 0) +++ trunk/blender/extern/ffmpeg/libavdevice/Makefile2008-11-01 13:31:32 UTC (rev 17265) @@ -0,0 +1,32 @@ +include ../config.mak + +NAME=avdevice +LIBVERSION=$(LAVDVERSION) +LIBMAJOR=$(LAVDMAJOR) + +EXTRALIBS := -L$(BUILD_ROOT)/libavformat -lavformat$(BUILDSUF) \ + -L$(BUILD_ROOT)/libavcodec -lavcodec$(BUILDSUF) \ + -L$(BUILD_ROOT)/libavutil -lavutil$(BUILDSUF) $(EXTRALIBS) + +CFLAGS += -I$(SRC_PATH)/libavcodec -I$(SRC_PATH)/libavformat + +OBJS = alldevices.o + +HEADERS = avdevice.h + +# input/output devices +OBJS-$(CONFIG_BKTR_DEMUXER) += bktr.o +OBJS-$(CONFIG_DV1394_DEMUXER)+= dv1394.o +OBJS-$(CONFIG_OSS_DEMUXER) += audio.o +OBJS-$(CONFIG_OSS_MUXER) += audio.o +OBJS-$(CONFIG_V4L2_DEMUXER) += v4l2.o +OBJS-$(CONFIG_V4L_DEMUXER) += v4l.o +OBJS-$(CONFIG_X11_GRAB_DEVICE_DEMUXER) += x11grab.o + +# external libraries +OBJS-$(CONFIG_LIBDC1394_DEMUXER) += libdc1394.o + +CPPOBJS-$(CONFIG_AUDIO_BEOS_DEMUXER) += beosaudio.o +CPPOBJS-$(CONFIG_AUDIO_BEOS_MUXER) += beosaudio.o + +include ../common.mak Added: trunk/blender/extern/ffmpeg/libavdevice/alldevices.c === --- trunk/blender/extern/ffmpeg/libavdevice/alldevices.c (rev 0) +++ trunk/blender/extern/ffmpeg/libavdevice/alldevices.c2008-11-01 13:31:32 UTC (rev 17265) @@ -0,0 +1,50 @@ +/* + * Register all the grabbing devices. + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ +#include "avformat.h" +#include "avdevice.h" + +#define REGISTER_MUXER(X,x) { \ + extern AVOutputFormat x##_muxer; \ + if(ENABLE_##X##_MUXER) av_register_output_format(&x##_muxer); } +#define REGISTER_DEMUXER(X,x) { \ + extern AVInputFormat x##_demuxer; \ + if(ENABLE_##X##_DEMUXER) av_register_input_format(&x##_demuxer); } +#define REGISTER_MUXDEMUX(X,x) REGISTER_MUXER(X,x); REGISTER_DEMUXER(X,x) + +void avdevice_register_all(void) +{ +static int initialized; + +if (initialized) +return; +initialized
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17264] trunk/blender/source/gameengine/ VideoTexture: BGE Video Texture: fix constant initializer problem with Exception description.
Revision: 17264 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17264 Author: ben2610 Date: 2008-11-01 13:48:46 +0100 (Sat, 01 Nov 2008) Log Message: --- BGE Video Texture: fix constant initializer problem with Exception description. Uniformized the line ending. Modified Paths: -- trunk/blender/source/gameengine/VideoTexture/Exception.cpp trunk/blender/source/gameengine/VideoTexture/Exception.h trunk/blender/source/gameengine/VideoTexture/ImageMix.cpp trunk/blender/source/gameengine/VideoTexture/ImageRender.cpp trunk/blender/source/gameengine/VideoTexture/Texture.cpp trunk/blender/source/gameengine/VideoTexture/Texture.h trunk/blender/source/gameengine/VideoTexture/VideoFFmpeg.cpp trunk/blender/source/gameengine/VideoTexture/VideoFFmpeg.h trunk/blender/source/gameengine/VideoTexture/blendVideoTex.cpp Modified: trunk/blender/source/gameengine/VideoTexture/Exception.cpp === --- trunk/blender/source/gameengine/VideoTexture/Exception.cpp 2008-11-01 12:45:19 UTC (rev 17263) +++ trunk/blender/source/gameengine/VideoTexture/Exception.cpp 2008-11-01 12:48:46 UTC (rev 17264) @@ -44,7 +44,6 @@ ExpDesc::ExpDesc (ExceptionID & exp, char * desc, RESULT hres) : m_expID(exp), m_hRslt(hres), m_description(desc) { - m_expDescs.push_back(this); } // destructor @@ -196,3 +195,15 @@ m_fileName = xpt.m_fileName; m_line = xpt.m_line; } + +void registerAllExceptions(void) +{ +errGenerDesc.registerDesc(); +errNFoundDesc.registerDesc(); +MaterialNotAvailDesc.registerDesc(); +ImageSizesNotMatchDesc.registerDesc(); +SceneInvalidDesc.registerDesc(); +CameraInvalidDesc.registerDesc(); +SourceVideoEmptyDesc.registerDesc(); +SourceVideoCreationDesc.registerDesc(); +} Modified: trunk/blender/source/gameengine/VideoTexture/Exception.h === --- trunk/blender/source/gameengine/VideoTexture/Exception.h2008-11-01 12:45:19 UTC (rev 17263) +++ trunk/blender/source/gameengine/VideoTexture/Exception.h2008-11-01 12:48:46 UTC (rev 17264) @@ -27,6 +27,7 @@ #include #include #include +#include #include "Common.h" @@ -117,6 +118,11 @@ desc = m_description; } +void registerDesc(void) +{ +if (std::find(m_expDescs.begin(), m_expDescs.end(), this) == m_expDescs.end()) +m_expDescs.push_back(this); +} // list of exception descriptions static std::vector m_expDescs; @@ -192,4 +198,13 @@ }; +extern ExpDesc MaterialNotAvailDesc; +extern ExpDesc ImageSizesNotMatchDesc; +extern ExpDesc SceneInvalidDesc; +extern ExpDesc CameraInvalidDesc; +extern ExpDesc SourceVideoEmptyDesc; +extern ExpDesc SourceVideoCreationDesc; + + +void registerAllExceptions(void); #endif Modified: trunk/blender/source/gameengine/VideoTexture/ImageMix.cpp === --- trunk/blender/source/gameengine/VideoTexture/ImageMix.cpp 2008-11-01 12:45:19 UTC (rev 17263) +++ trunk/blender/source/gameengine/VideoTexture/ImageMix.cpp 2008-11-01 12:48:46 UTC (rev 17264) @@ -58,9 +58,9 @@ return true; } -static ExceptionID ImageSizesNotMatch; +ExceptionID ImageSizesNotMatch; -static ExpDesc ImageSizesNotMatchDesc (ImageSizesNotMatch, "Image sizes of sources are different"); +ExpDesc ImageSizesNotMatchDesc (ImageSizesNotMatch, "Image sizes of sources are different"); // calculate image from sources and set its availability void ImageMix::calcImage (unsigned int texId) Modified: trunk/blender/source/gameengine/VideoTexture/ImageRender.cpp === --- trunk/blender/source/gameengine/VideoTexture/ImageRender.cpp 2008-11-01 12:45:19 UTC (rev 17263) +++ trunk/blender/source/gameengine/VideoTexture/ImageRender.cpp 2008-11-01 12:48:46 UTC (rev 17264) @@ -94,6 +94,10 @@ ImageViewport::calcImage(texId); } +void ImageRender::Render() +{ +// +} // refresh lights void ImageRender::refreshLights (void) @@ -120,9 +124,9 @@ BlendType cameraType ("KX_Camera"); -static ExceptionID SceneInvalid, CameraInvalid; -static ExpDesc SceneInvalidDesc (SceneInvalid, "Scene object is invalid"); -static ExpDesc CameraInvalidDesc (CameraInvalid, "Camera object is invalid"); +ExceptionID SceneInvalid, CameraInvalid; +ExpDesc SceneInvalidDesc (SceneInvalid, "Scene object is invalid"); +ExpDesc CameraInvalidDesc (CameraInvalid, "Camera object is invalid"); // object initialization static int ImageRender_init (PyObject * pySelf, PyObject * args, PyObject * kwds) Modified: trunk/blender/source/gameengine/VideoTexture/Texture.cpp === --- trunk/blender/source/gameengine/VideoTextur
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17263] branches/sim_physics/source/ blender/blenkernel/intern/effect.c: * Tweaked the spin force field a bit.
Revision: 17263 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17263 Author: broken Date: 2008-11-01 13:45:19 +0100 (Sat, 01 Nov 2008) Log Message: --- * Tweaked the spin force field a bit. It worked great for its purpose before, but wasn't playing nice with the other force fields (was overwriting the velocity rather than acting as a force). This version is slightly different, but will work a lot better with other force fields too. Modified Paths: -- branches/sim_physics/source/blender/blenkernel/intern/effect.c Modified: branches/sim_physics/source/blender/blenkernel/intern/effect.c === --- branches/sim_physics/source/blender/blenkernel/intern/effect.c 2008-11-01 11:35:59 UTC (rev 17262) +++ branches/sim_physics/source/blender/blenkernel/intern/effect.c 2008-11-01 12:45:19 UTC (rev 17263) @@ -422,18 +422,25 @@ break; case PFIELD_SPIN: + { + float inward[3]; + Projf(temp, velocity, eff_vel); - Crossf(mag_vec,eff_vel,vec_to_part); + Crossf(inward, mag_vec, eff_vel); Normalize(mag_vec); + VecSubf(mag_vec, mag_vec, inward); + VecMulf(mag_vec,force_val*distance*falloff); VecAddf(mag_vec, mag_vec, temp); - - VecCopyf(velocity, mag_vec); - + + /* compensate for existing velocity */ + VecSubf(mag_vec, mag_vec, velocity); + VecAddf(field,field,mag_vec); break; + } case PFIELD_MAGNET: if(planar) VecCopyf(temp,eff_vel); ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17262] branches/animsys2/source/blender/ src/editipo_mods.c: AnimSys2: IPO-Editor Borderselect
Revision: 17262 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17262 Author: aligorith Date: 2008-11-01 12:35:59 +0100 (Sat, 01 Nov 2008) Log Message: --- AnimSys2: IPO-Editor Borderselect There seems to be a consensus that the behaviour of the IPO-borderselect tool was far too messy. 1. "It's too easy to accidentally select tangents of other keys". 2. "When moving multiple keys, the handles for the selected keys (and only those keys) should move automatically with them" I've modified the behaviour so that the following occurs: * Only keyframes can get selected by borderselect (i.e. only the coordinates of the keyframe but not its handles are tested if they lie within the box) * Handles of a keyframe which lies within the borderselect region will inherit whatever selection status gets applied to that keyframe. This is consistent with clicking on the keyframes individually. Modified Paths: -- branches/animsys2/source/blender/src/editipo_mods.c Modified: branches/animsys2/source/blender/src/editipo_mods.c === --- branches/animsys2/source/blender/src/editipo_mods.c 2008-11-01 11:35:08 UTC (rev 17261) +++ branches/animsys2/source/blender/src/editipo_mods.c 2008-11-01 11:35:59 UTC (rev 17262) @@ -1061,20 +1061,27 @@ int selflag= (val==LEFTMOUSE) ? SELECT : 0; ei= G.sipo->editipo; - for(a=0; atotipo; a++, ei++) { + for (a=0; atotipo; a++, ei++) { if (ISPOIN3(ei, flag & IPO_VISIBLE, flag & IPO_EDIT, icu)) { - if(ei->icu->bezt) { - b= ei->icu->totvert; + if (ei->icu->bezt) { bezt= ei->icu->bezt; - while(b--) { - if(BLI_in_rctf(&rectf, bezt->vec[0][0], bezt->vec[0][1])) - bezt->f1 = selflag ? (bezt->f1 | SELECT) : (bezt->f1 & ~SELECT); - if(BLI_in_rctf(&rectf, bezt->vec[1][0], bezt->vec[1][1])) - bezt->f2 = selflag ? (bezt->f2 | SELECT) : (bezt->f2 & ~SELECT); - if(BLI_in_rctf(&rectf, bezt->vec[2][0], bezt->vec[2][1])) - bezt->f3 = selflag ? (bezt->f3 | SELECT) : (bezt->f3 & ~SELECT); - - bezt++; + for (b=0; b < ei->icu->totvert; b++, bezt++) { + /* Borderselect only selects keyframes now, as overshooting handles often get caught too, +* which means that they may be inadvertantly moved as well. +* Also, for convenience, handles should get same status as keyframe (if it was within bounds) +*/ + if (BLI_in_rctf(&rectf, bezt->vec[1][0], bezt->vec[1][1])) { + if (selflag) { + bezt->f1 |= SELECT; + bezt->f2 |= SELECT; + bezt->f3 |= SELECT; + } + else { + bezt->f1 &= ~SELECT; + bezt->f2 &= ~SELECT; + bezt->f3 &= ~SELECT; + } + } } } } ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17261] trunk/blender/source/blender/ python/api2_2x/matrix.c: fix a bug in matrix.invert() for 2x2 matrices
Revision: 17261 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17261 Author: migius Date: 2008-11-01 12:35:08 +0100 (Sat, 01 Nov 2008) Log Message: --- fix a bug in matrix.invert() for 2x2 matrices reported by Hans in http://blenderartists.org/forum/showthread.php?t=139748 Modified Paths: -- trunk/blender/source/blender/python/api2_2x/matrix.c Modified: trunk/blender/source/blender/python/api2_2x/matrix.c === --- trunk/blender/source/blender/python/api2_2x/matrix.c2008-11-01 11:15:13 UTC (rev 17260) +++ trunk/blender/source/blender/python/api2_2x/matrix.c2008-11-01 11:35:08 UTC (rev 17261) @@ -246,8 +246,8 @@ /*calculate the classical adjoint*/ if(self->rowSize == 2) { mat[0] = self->matrix[1][1]; - mat[1] = -self->matrix[1][0]; - mat[2] = -self->matrix[0][1]; + mat[1] = -self->matrix[0][1]; + mat[2] = -self->matrix[1][0]; mat[3] = self->matrix[0][0]; } else if(self->rowSize == 3) { Mat3Adj((float (*)[3]) mat,(float (*)[3]) *self->matrix); ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17260] trunk/blender/source/gameengine/ VideoTexture/CMakeLists.txt: Fix Cmake for MSVC 32bit
Revision: 17260 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17260 Author: ben2610 Date: 2008-11-01 12:15:13 +0100 (Sat, 01 Nov 2008) Log Message: --- Fix Cmake for MSVC 32bit Modified Paths: -- trunk/blender/source/gameengine/VideoTexture/CMakeLists.txt Modified: trunk/blender/source/gameengine/VideoTexture/CMakeLists.txt === --- trunk/blender/source/gameengine/VideoTexture/CMakeLists.txt 2008-11-01 11:14:05 UTC (rev 17259) +++ trunk/blender/source/gameengine/VideoTexture/CMakeLists.txt 2008-11-01 11:15:13 UTC (rev 17260) @@ -54,6 +54,7 @@ IF(WITH_FFMPEG) SET(INC ${INC} ${FFMPEG_INC}) ADD_DEFINITIONS(-DWITH_FFMPEG) + ADD_DEFINITIONS(-D__STDC_CONSTANT_MACROS) ENDIF(WITH_FFMPEG) BLENDERLIB(bf_videotex "${SRC}" "${INC}") ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17259] branches/animsys2/source/blender: AnimSys2: Bone Roll Issues
Revision: 17259 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17259 Author: aligorith Date: 2008-11-01 12:14:05 +0100 (Sat, 01 Nov 2008) Log Message: --- AnimSys2: Bone Roll Issues In this commit, I've attempted to improve the situation of bone roll problems that occur with the recalculate bone roll tool, and also when extruding/moving bones under certain conditions. What's changed: * When transforming bones, as part of the recalculations done on every update, the roll of bones who have their tip selected will be recalculated using the 'z-axis up' method. Reported by Glenn Melenhorst on BA.org * Split the 'z-axis up' and 'align z-axis to cursor' roll recalculation methods into separate functions that can act as callbacks. Refactored the auto_align_armature() function to support this. It was needed for the first major change to occur. * As an experiment, I've changed the final step of the z-axis method to use mat3_to_vec_roll instead of atan2 directly. It currently seems to work better, but I'm not totally sure yet. Will check on this again another day... Modified Paths: -- branches/animsys2/source/blender/include/BIF_editarmature.h branches/animsys2/source/blender/src/editarmature.c branches/animsys2/source/blender/src/gpencil.c branches/animsys2/source/blender/src/transform_generics.c Modified: branches/animsys2/source/blender/include/BIF_editarmature.h === --- branches/animsys2/source/blender/include/BIF_editarmature.h 2008-11-01 10:18:21 UTC (rev 17258) +++ branches/animsys2/source/blender/include/BIF_editarmature.h 2008-11-01 11:14:05 UTC (rev 17259) @@ -117,7 +117,10 @@ void setflag_armature(short mode); voidunique_editbone_name (struct ListBase *ebones, char *name); +void auto_align_ebone_zaxisup(EditBone *ebone); +void auto_align_ebone_tocursor(EditBone *ebone); void auto_align_armature(short mode); + void switch_direction_armature(void); void create_vgroups_from_armature(struct Object *ob, struct Object *par); Modified: branches/animsys2/source/blender/src/editarmature.c === --- branches/animsys2/source/blender/src/editarmature.c 2008-11-01 10:18:21 UTC (rev 17258) +++ branches/animsys2/source/blender/src/editarmature.c 2008-11-01 11:14:05 UTC (rev 17259) @@ -1818,6 +1818,74 @@ } } + +/* Set roll value for given bone -> Z-Axis Point up (original method) */ +void auto_align_ebone_zaxisup(EditBone *ebone) +{ + float delta[3], curmat[3][3]; + float xaxis[3]={1.0, 0.0, 0.0}, yaxis[3], zaxis[3]={0.0f, 0.0f, 1.0f}; + float targetmat[3][3], imat[3][3], diffmat[3][3]; + + /* Find the current bone matrix */ + VecSubf(delta, ebone->tail, ebone->head); + vec_roll_to_mat3(delta, 0.0f, curmat); + + /* Make new matrix based on y axis & z-up */ + VECCOPY (yaxis, curmat[1]); + + Mat3One(targetmat); + VECCOPY(targetmat[0], xaxis); + VECCOPY(targetmat[1], yaxis); + VECCOPY(targetmat[2], zaxis); + Mat3Ortho(targetmat); + + /* Find the difference between the two matrices */ + Mat3Inv(imat, targetmat); + Mat3MulMat3(diffmat, imat, curmat); + + // old-method... let's see if using mat3_to_vec_roll is more accurate + //ebone->roll = atan2(diffmat[2][0], diffmat[2][2]); + mat3_to_vec_roll(diffmat, delta, &ebone->roll); +} + +/* Set roll value for given bone -> Z-Axis point towards cursor */ +void auto_align_ebone_tocursor(EditBone *ebone) +{ + float delta[3], curmat[3][3]; + float *cursor= give_cursor(); + float mat[4][4], tmat[4][4], imat[4][4]; + float rmat[4][4], rot[3]; + float vec[3]; + + /* find the current bone matrix as a 4x4 matrix (in Armature Space) */ + VecSubf(delta, ebone->tail, ebone->head); + vec_roll_to_mat3(delta, ebone->roll, curmat); + Mat4CpyMat3(mat, curmat); + VECCOPY(mat[3], ebone->head); + + /* multiply bone-matrix by object matrix (so that bone-matrix is in WorldSpace) */ + Mat4MulMat4(tmat, mat, G.obedit->obmat); + Mat4Invert(imat, tmat); + + /* find position of cursor relative to bone */ + VecMat4MulVecfl(vec, imat, cursor); + + /* check that cursor is in usable position */ + if ((IS_EQ(vec[0], 0)==0) && (IS_EQ(vec[2], 0)==0)) { + /* Compute a rotation matrix around y */ + rot[1] = atan2(vec[0], vec[2]); + rot[0] = rot[2] = 0.0f; + EulToMat4(rot, rmat); + + /* Multiply the bone matrix by rotation matrix. This should be new bone-matrix */ + Mat4MulMat4(tmat, rmat, mat); + Mat3CpyMat4(curmat, tmat); + +
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17258] branches/animsys2/source/blender/ src: AnimSys2: Bugfixes for code from past few days
Revision: 17258 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17258 Author: aligorith Date: 2008-11-01 11:18:21 +0100 (Sat, 01 Nov 2008) Log Message: --- AnimSys2: Bugfixes for code from past few days * Fixed the causes of several crashes that occurred, also added checks for a few more potential ones (or errors) * New keyframes on new IPO-curves were being added with constant interpolation only * Removed debug code Modified Paths: -- branches/animsys2/source/blender/src/drawipo.c branches/animsys2/source/blender/src/keyframing.c Modified: branches/animsys2/source/blender/src/drawipo.c === --- branches/animsys2/source/blender/src/drawipo.c 2008-11-01 00:23:08 UTC (rev 17257) +++ branches/animsys2/source/blender/src/drawipo.c 2008-11-01 10:18:21 UTC (rev 17258) @@ -1230,7 +1230,7 @@ * - first handle only if previous beztriple was bezier-mode * - second handle only if current beztriple is bezier-mode */ - if ((!prevbezt && (bezt->ipo==IPO_BEZ)) || (prevbezt->ipo==IPO_BEZ)) { + if ( (!prevbezt && (bezt->ipo==IPO_BEZ)) || (prevbezt && (prevbezt->ipo==IPO_BEZ)) ) { if ((bezt->f1 & SELECT) == sel)/* && G.v2d->cur.xmin < bezt->vec[0][0] < G.v2d->cur.xmax)*/ bglVertex3fv(bezt->vec[0]); } @@ -1326,7 +1326,8 @@ fp= bezt->vec[0]; /* only draw first handle if previous segment was had handles */ - if ((!prevbezt && (bezt->ipo==IPO_BEZ)) || (prevbezt->ipo==IPO_BEZ)) { + if ( (!prevbezt && (bezt->ipo==IPO_BEZ)) || (prevbezt && (prevbezt->ipo==IPO_BEZ)) ) + { cpack(col[bezt->h1]); glBegin(GL_LINE_STRIP); glVertex2fv(fp); glVertex2fv(fp+3); @@ -1335,7 +1336,8 @@ } /* only draw second handle if this segment is bezier */ - if (bezt->ipo == IPO_BEZ) { + if (bezt->ipo == IPO_BEZ) + { cpack(col[bezt->h2]); glBegin(GL_LINE_STRIP); glVertex2fv(fp+3); glVertex2fv(fp+6); @@ -1345,7 +1347,7 @@ else { /* only draw first handle if previous segment was had handles, and selection is ok */ if ( ((bezt->f1 & SELECT)==sel) && -((!prevbezt && (bezt->ipo==IPO_BEZ)) || (prevbezt->ipo==IPO_BEZ)) ) +( (!prevbezt && (bezt->ipo==IPO_BEZ)) || (prevbezt && (prevbezt->ipo==IPO_BEZ)) ) ) { fp= bezt->vec[0]; cpack(col[bezt->h1]); Modified: branches/animsys2/source/blender/src/keyframing.c === --- branches/animsys2/source/blender/src/keyframing.c 2008-11-01 00:23:08 UTC (rev 17257) +++ branches/animsys2/source/blender/src/keyframing.c 2008-11-01 10:18:21 UTC (rev 17258) @@ -325,8 +325,12 @@ /* add temp beztriple to keyframes */ a= insert_bezt_icu(icu, &beztr); - if (!fast) calchandles_ipocurve(icu); + /* what if 'a' is a negative index? +* for now, just exit to prevent any segfaults +*/ + if (a < 0) return; + /* set handletype and interpolation */ if (icu->totvert > 2) { BezTriple *bezt= (icu->bezt + a); @@ -347,13 +351,20 @@ } else bezt->ipo= icu->ipo; + } + else { + BezTriple *bezt= (icu->bezt + a); - /* don't recalculate handles if fast is set -* - this is a hack to make importers fast