diff -Naur /home/olabomba/blender/source/blender/avi/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/avi/CVS/Entries --- /home/olabomba/blender/source/blender/avi/CVS/Entries 2006-12-04 19:26:21.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/avi/CVS/Entries 2006-12-06 21:36:55.000000000 +0100 @@ -2,4 +2,4 @@ /CMakeLists.txt/1.1/Fri Nov 17 02:27:09 2006// /Makefile/1.4/Mon Jan 5 00:06:06 2004// /SConscript/1.8/Tue Feb 7 21:24:34 2006// -D/intern//// +D diff -Naur /home/olabomba/blender/source/blender/avi/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/blender/avi/CVS/Entries.Log --- /home/olabomba/blender/source/blender/avi/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/avi/CVS/Entries.Log 2006-12-06 21:36:55.000000000 +0100 @@ -0,0 +1 @@ +A D/intern//// diff -Naur /home/olabomba/blender/source/blender/blenkernel/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/blenkernel/CVS/Entries --- /home/olabomba/blender/source/blender/blenkernel/CVS/Entries 2006-12-06 21:32:50.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/blenkernel/CVS/Entries 2006-12-06 21:36:55.000000000 +0100 @@ -1,7 +1,9 @@ +/BKE_DerivedMesh.h/1.48/Tue Dec 5 17:42:00 2006// /BKE_action.h/1.18/Sat Nov 11 16:45:15 2006// /BKE_anim.h/1.8/Tue Nov 14 20:41:37 2006// /BKE_armature.h/1.19/Mon Nov 6 23:51:37 2006// /BKE_bad_level_calls.h/1.31/Sat Dec 2 23:37:52 2006// +/BKE_blender.h/1.27/Tue Dec 5 16:44:53 2006// /BKE_bmfont.h/1.5/Fri Dec 27 13:10:09 2002// /BKE_bmfont_types.h/1.5/Fri Dec 27 13:10:09 2002// /BKE_booleanops.h/1.9/Wed Nov 8 20:14:04 2006// @@ -11,8 +13,10 @@ /BKE_colortools.h/1.3/Tue Feb 14 17:32:48 2006// /BKE_constraint.h/1.13/Mon Oct 10 18:05:29 2005// /BKE_curve.h/1.12/Sun Aug 13 08:31:58 2006// +/BKE_customdata.h/1.5/Tue Dec 5 17:42:00 2006// /BKE_deform.h/1.12/Sun Aug 14 06:08:39 2005// /BKE_depsgraph.h/1.6/Sat Jan 28 18:33:06 2006// +/BKE_displist.h/1.47/Tue Dec 5 17:42:00 2006// /BKE_effect.h/1.22/Sat Jan 28 18:33:06 2006// /BKE_endian.h/1.5/Fri Dec 27 13:10:09 2002// /BKE_exotic.h/1.6/Tue Mar 30 03:10:33 2004// @@ -20,15 +24,19 @@ /BKE_global.h/1.44/Tue Nov 7 05:32:39 2006// /BKE_group.h/1.6/Sat Jan 28 18:33:06 2006// /BKE_icons.h/1.2/Sat Jan 28 18:33:06 2006// +/BKE_idprop.h/1.5/Wed Dec 6 19:20:06 2006// /BKE_image.h/1.15/Thu Aug 10 10:38:50 2006// /BKE_ipo.h/1.11/Tue Jul 4 10:19:26 2006// /BKE_key.h/1.9/Mon Sep 26 15:34:19 2005// /BKE_lattice.h/1.18/Tue Oct 31 15:51:56 2006// /BKE_library.h/1.9/Wed Sep 6 09:51:30 2006// /BKE_main.h/1.10/Sun Nov 26 21:17:14 2006// +/BKE_material.h/1.7/Tue Dec 5 16:44:53 2006// /BKE_mball.h/1.7/Tue Jun 29 17:10:12 2004// /BKE_mesh.h/1.28/Mon Nov 20 04:27:48 2006// +/BKE_modifier.h/1.22/Tue Dec 5 17:42:01 2006// /BKE_nla.h/1.6/Wed Feb 8 16:58:12 2006// +/BKE_node.h/1.24/Tue Dec 5 16:44:53 2006// /BKE_object.h/1.20/Thu Nov 30 15:54:20 2006// /BKE_packedFile.h/1.7/Sun Mar 26 09:25:30 2006// /BKE_plugin_types.h/1.6/Wed Nov 22 15:53:45 2006// @@ -48,17 +56,8 @@ /BKE_writeavi.h/1.7/Sun Feb 5 19:12:25 2006// /BKE_writeffmpeg.h/1.2/Fri Jun 9 19:48:50 2006// /BKE_writeframeserver.h/1.1/Sun Feb 5 19:12:25 2006// +/CMakeLists.txt/1.5/Wed Dec 6 09:24:12 2006// /Makefile/1.4/Mon Jan 5 00:06:06 2004// /SConscript/1.27/Sun Oct 1 12:39:31 2006// /depsgraph_private.h/1.5/Wed Nov 1 11:26:15 2006// -D/bad_level_call_stubs//// -D/intern//// -/BKE_DerivedMesh.h/1.48/Wed Dec 6 20:32:50 2006// -/BKE_blender.h/1.27/Wed Dec 6 20:32:50 2006// -/BKE_customdata.h/1.5/Wed Dec 6 20:32:50 2006// -/BKE_displist.h/1.47/Wed Dec 6 20:32:50 2006// -/BKE_idprop.h/1.5/Wed Dec 6 20:32:50 2006// -/BKE_material.h/1.7/Wed Dec 6 20:32:50 2006// -/BKE_modifier.h/1.22/Wed Dec 6 20:32:50 2006// -/BKE_node.h/1.24/Wed Dec 6 20:32:50 2006// -/CMakeLists.txt/1.5/Wed Dec 6 20:32:50 2006// +D diff -Naur /home/olabomba/blender/source/blender/blenkernel/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/blender/blenkernel/CVS/Entries.Log --- /home/olabomba/blender/source/blender/blenkernel/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/blenkernel/CVS/Entries.Log 2006-12-06 21:36:55.000000000 +0100 @@ -0,0 +1,2 @@ +A D/bad_level_call_stubs//// +A D/intern//// diff -Naur /home/olabomba/blender/source/blender/blenkernel/intern/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/blenkernel/intern/CVS/Entries --- /home/olabomba/blender/source/blender/blenkernel/intern/CVS/Entries 2006-12-06 21:32:51.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/blenkernel/intern/CVS/Entries 2006-12-06 21:36:59.000000000 +0100 @@ -1,33 +1,50 @@ /CCGSubSurf.c/1.25/Sat Jan 28 20:17:47 2006// /CCGSubSurf.h/1.12/Tue Jan 10 11:36:56 2006// +/DerivedMesh.c/1.140/Tue Dec 5 17:42:01 2006// /Makefile/1.17/Sun Aug 20 15:22:54 2006// /action.c/1.62/Tue Nov 28 05:07:18 2006// +/anim.c/1.45/Tue Dec 5 17:42:01 2006// /armature.c/1.89/Thu Nov 30 21:40:11 2006// /blender.c/1.47/Mon Nov 27 10:43:00 2006// /bmfont.c/1.3/Mon Nov 25 12:01:52 2002// /brush.c/1.7/Mon Sep 25 12:30:12 2006// /cdderivedmesh.c/1.8/Thu Nov 23 17:35:45 2006// /colortools.c/1.9/Fri Oct 27 20:27:13 2006// +/constraint.c/1.57/Tue Dec 5 02:06:51 2006// /curve.c/1.38/Thu Nov 16 11:49:14 2006// +/customdata.c/1.9/Tue Dec 5 17:42:01 2006// /deform.c/1.32/Thu Oct 20 20:38:08 2005// /depsgraph.c/1.60/Thu Nov 30 15:54:20 2006// +/displist.c/1.148/Tue Dec 5 18:02:42 2006// /effect.c/1.104/Thu Nov 16 20:23:00 2006// +/exotic.c/1.60/Tue Dec 5 17:42:01 2006// /font.c/1.41/Sat Jun 10 12:00:13 2006// /group.c/1.7/Tue Nov 14 17:16:15 2006// /icons.c/1.3/Thu Jun 15 11:15:25 2006// +/idprop.c/1.6/Wed Dec 6 19:20:06 2006// /image.c/1.49/Mon Nov 27 13:00:50 2006// +/ipo.c/1.46/Wed Dec 6 11:17:33 2006// /key.c/1.23/Sun Nov 19 06:07:24 2006// /lattice.c/1.38/Mon Nov 20 04:27:48 2006// /library.c/1.25/Fri Dec 1 19:52:03 2006// +/material.c/1.53/Wed Dec 6 15:40:50 2006// /mball.c/1.30/Mon Nov 20 21:25:01 2006// +/mesh.c/1.76/Tue Dec 5 17:42:01 2006// +/modifier.c/1.86/Tue Dec 5 17:42:01 2006// /nla.c/1.7/Tue Oct 31 15:51:56 2006// +/node.c/1.54/Tue Dec 5 18:02:42 2006// +/node_composite.c/1.81/Wed Dec 6 09:56:20 2006// +/node_shaders.c/1.12/Tue Dec 5 16:44:53 2006// +/object.c/1.120/Tue Dec 5 17:42:01 2006// /packedFile.c/1.5/Sun Mar 26 09:25:30 2006// /property.c/1.5/Sat Apr 2 15:36:56 2005// /sca.c/1.4/Sun Jan 23 01:36:29 2005// /scene.c/1.48/Thu Nov 30 16:44:34 2006// /screen.c/1.7/Fri Nov 17 12:44:15 2006// /script.c/1.5/Tue May 2 02:42:08 2006// +/softbody.c/1.93/Tue Dec 5 17:42:01 2006// /sound.c/1.7/Sat Nov 25 13:07:28 2006// +/subsurf_ccg.c/1.76/Tue Dec 5 17:42:01 2006// /text.c/1.22/Sun Nov 26 16:03:35 2006// /texture.c/1.31/Wed Nov 22 15:53:45 2006// /verse_bitmap_node.c/1.2/Thu Oct 26 23:34:44 2006// @@ -37,23 +54,6 @@ /verse_session.c/1.5/Thu Oct 26 23:34:44 2006// /world.c/1.20/Thu Apr 27 04:37:19 2006// /writeavi.c/1.11/Thu Oct 26 23:34:44 2006// +/writeffmpeg.c/1.14/Wed Dec 6 09:48:27 2006// /writeframeserver.c/1.9/Thu Oct 26 23:34:44 2006// -/DerivedMesh.c/1.140/Wed Dec 6 20:32:50 2006// -/anim.c/1.45/Wed Dec 6 20:32:50 2006// -/constraint.c/1.57/Wed Dec 6 20:32:50 2006// -/customdata.c/1.9/Wed Dec 6 20:32:50 2006// -/displist.c/1.148/Wed Dec 6 20:32:50 2006// -/exotic.c/1.60/Wed Dec 6 20:32:50 2006// -/idprop.c/1.6/Wed Dec 6 20:32:50 2006// -/ipo.c/1.46/Wed Dec 6 20:32:50 2006// -/material.c/1.53/Wed Dec 6 20:32:50 2006// -/mesh.c/1.76/Wed Dec 6 20:32:50 2006// -/modifier.c/1.86/Wed Dec 6 20:32:50 2006// -/node.c/1.54/Wed Dec 6 20:32:50 2006// -/node_composite.c/1.81/Wed Dec 6 20:32:51 2006// -/node_shaders.c/1.12/Wed Dec 6 20:32:51 2006// -/object.c/1.120/Wed Dec 6 20:32:51 2006// -/softbody.c/1.93/Wed Dec 6 20:32:51 2006// -/subsurf_ccg.c/1.76/Wed Dec 6 20:32:51 2006// -/writeffmpeg.c/1.14/Wed Dec 6 20:32:51 2006// D diff -Naur /home/olabomba/blender/source/blender/blenlib/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/blenlib/CVS/Entries --- /home/olabomba/blender/source/blender/blenlib/CVS/Entries 2006-12-06 21:32:51.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/blenlib/CVS/Entries 2006-12-06 21:36:59.000000000 +0100 @@ -3,6 +3,7 @@ /BLI_dynamiclist.h/1.1/Sun Aug 20 15:22:54 2006// /BLI_dynstr.h/1.5/Fri Dec 27 13:10:12 2002// /BLI_edgehash.h/1.3/Tue Aug 23 02:29:22 2005// +/BLI_editVert.h/1.31/Tue Dec 5 17:42:01 2006// /BLI_ghash.h/1.7/Sat Jan 28 18:33:07 2006// /BLI_gsqueue.h/1.6/Wed Mar 9 19:45:54 2005// /BLI_heap.h/1.1/Wed Feb 8 18:06:35 2006// @@ -14,12 +15,11 @@ /BLI_threads.h/1.8/Wed Nov 29 17:01:06 2006// /BLI_vfontdata.h/1.10/Mon Sep 19 17:58:51 2005// /BLI_winstuff.h/1.10/Sun Aug 20 14:41:12 2006// +/CMakeLists.txt/1.2/Wed Dec 6 00:04:53 2006// /MTC_matrixops.h/1.5/Fri Dec 27 13:10:12 2002// /MTC_vectorops.h/1.5/Fri Dec 27 13:10:12 2002// /Makefile/1.4/Mon Jan 5 00:06:06 2004// /PIL_dynlib.h/1.5/Fri Dec 27 13:10:12 2002// /PIL_time.h/1.5/Fri Dec 27 13:10:12 2002// /SConscript/1.17/Tue Aug 22 13:04:07 2006// -D/intern//// -/BLI_editVert.h/1.31/Wed Dec 6 20:32:51 2006// -/CMakeLists.txt/1.2/Wed Dec 6 20:32:51 2006// +D diff -Naur /home/olabomba/blender/source/blender/blenlib/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/blender/blenlib/CVS/Entries.Log --- /home/olabomba/blender/source/blender/blenlib/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/blenlib/CVS/Entries.Log 2006-12-06 21:36:59.000000000 +0100 @@ -0,0 +1 @@ +A D/intern//// diff -Naur /home/olabomba/blender/source/blender/blenloader/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/blenloader/CVS/Entries --- /home/olabomba/blender/source/blender/blenloader/CVS/Entries 2006-12-04 19:26:21.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/blenloader/CVS/Entries 2006-12-06 21:37:00.000000000 +0100 @@ -7,4 +7,4 @@ /CMakeLists.txt/1.1/Fri Nov 17 02:27:09 2006// /Makefile/1.4/Mon Jan 5 00:06:06 2004// /SConscript/1.10/Tue Aug 22 13:04:07 2006// -D/intern//// +D diff -Naur /home/olabomba/blender/source/blender/blenloader/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/blender/blenloader/CVS/Entries.Log --- /home/olabomba/blender/source/blender/blenloader/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/blenloader/CVS/Entries.Log 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +A D/intern//// diff -Naur /home/olabomba/blender/source/blender/blenloader/intern/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/blenloader/intern/CVS/Entries --- /home/olabomba/blender/source/blender/blenloader/intern/CVS/Entries 2006-12-06 21:32:51.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/blenloader/intern/CVS/Entries 2006-12-06 21:37:00.000000000 +0100 @@ -2,8 +2,8 @@ /genfile.c/1.9/Thu Mar 30 22:44:33 2006// /genfile.h/1.5/Fri Dec 27 13:10:15 2002// /readblenentry.c/1.15/Sat Nov 25 13:07:28 2006// +/readfile.c/1.337/Tue Dec 5 16:44:54 2006// /readfile.h/1.13/Mon Nov 27 18:58:33 2006// /undofile.c/1.5/Sat Mar 19 21:08:10 2005// -/writefile.c/1.91/Mon Dec 4 18:26:26 2006// -/readfile.c/1.337/Wed Dec 6 20:32:51 2006// +/writefile.c/1.91/Sun Dec 3 22:15:49 2006// D diff -Naur /home/olabomba/blender/source/blender/blenloader/intern/writefile.c /home/olabomba/blender-propre/blender/source/blender/blenloader/intern/writefile.c --- /home/olabomba/blender/source/blender/blenloader/intern/writefile.c 2006-12-04 22:22:20.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/blenloader/intern/writefile.c 2006-12-03 23:15:49.000000000 +0100 @@ -192,7 +192,7 @@ int file; unsigned char *buf; MemFile *compare, *current; - + int tot, count, error, memsize; } WriteData; @@ -230,7 +230,7 @@ else { if (write(wd->file, mem, memlen) != memlen) wd->error= 1; - + } } @@ -252,7 +252,7 @@ * @param len Length of new chunk of data * @warning Talks to other functions with global parameters */ - + #define MYWRITE_FLUSH NULL static void mywrite( WriteData *wd, void *adr, int len) @@ -268,7 +268,7 @@ } wd->tot+= len; - + if(len>50000) { if(wd->count) { writedata_do_write(wd, wd->buf, wd->count); @@ -302,7 +302,7 @@ wd->current= current; /* this inits comparing */ add_memfilechunk(compare, NULL, NULL, 0); - + return wd; } @@ -320,7 +320,7 @@ writedata_do_write(wd, wd->buf, wd->count); wd->count= 0; } - + err= wd->error; writedata_free(wd); /* blender gods may live forever but this parent pointer died in the statement above @@ -432,7 +432,7 @@ static void write_curvemapping(WriteData *wd, CurveMapping *cumap) { int a; - + writestruct(wd, DATA, "CurveMapping", 1, cumap); for(a=0; acm[a].totpoint, cumap->cm[a].curve); @@ -444,9 +444,9 @@ bNode *node; bNodeSocket *sock; bNodeLink *link; - + /* for link_list() speed, we write per list */ - + for(node= ntree->nodes.first; node; node= node->next) writestruct(wd, DATA, "bNode", 1, node); @@ -457,7 +457,7 @@ write_curvemapping(wd, node->storage); else if(ntree->type==NTREE_COMPOSIT && (node->type==CMP_NODE_TIME || node->type==CMP_NODE_CURVE_VEC || node->type==CMP_NODE_CURVE_RGB)) write_curvemapping(wd, node->storage); - else + else writestruct(wd, DATA, node->typeinfo->storagename, 1, node->storage); } for(sock= node->inputs.first; sock; sock= sock->next) @@ -465,7 +465,7 @@ for(sock= node->outputs.first; sock; sock= sock->next) writestruct(wd, DATA, "bNodeSocket", 1, sock); } - + for(link= ntree->links.first; link; link= link->next) writestruct(wd, DATA, "bNodeLink", 1, link); } @@ -686,7 +686,7 @@ { bActionStrip *strip; bActionModifier *amod; - + for (strip=nlabase->first; strip; strip=strip->next) writestruct(wd, DATA, "bActionStrip", 1, strip); for (strip=nlabase->first; strip; strip=strip->next) { @@ -814,7 +814,7 @@ { Object *ob; int a; - + ob= idbase->first; while(ob) { if(ob->id.us>0 || wd->current) { @@ -846,7 +846,7 @@ write_constraints(wd, &ob->constraints); write_constraint_channels(wd, &ob->constraintChannels); write_nlastrips(wd, &ob->nlastrips); - + writestruct(wd, DATA, "PartDeflect", 1, ob->pd); writestruct(wd, DATA, "SoftBody", 1, ob->soft); if(ob->soft) { @@ -859,7 +859,7 @@ } } writestruct(wd, DATA, "FluidsimSettings", 1, ob->fluidsimSettings); // NT - + write_modifiers(wd, &ob->modifiers); } ob= ob->id.next; @@ -1026,7 +1026,7 @@ if(cu->vfont) { writedata(wd, DATA, amount_of_chars(cu->str)+1, cu->str); writestruct(wd, DATA, "CharInfo", cu->len, cu->strinfo); - writestruct(wd, DATA, "TextBox", cu->totbox, cu->tb); + writestruct(wd, DATA, "TextBox", cu->totbox, cu->tb); } else { /* is also the order of reading */ @@ -1059,10 +1059,10 @@ { if (dvlist) { int i; - + /* Write the dvert list */ writestruct(wd, DATA, "MDeformVert", count, dvlist); - + /* Write deformation data for each dvert */ for (i=0; ifirst; while(lt) { if(lt->id.us>0 || wd->current) { @@ -1211,9 +1211,9 @@ /* direct data */ writestruct(wd, DATA, "BPoint", lt->pntsu*lt->pntsv*lt->pntsw, lt->def); - + write_dverts(wd, lt->pntsu*lt->pntsv*lt->pntsw, lt->dvert); - + } lt= lt->id.next; } @@ -1283,7 +1283,7 @@ if(ma->id.us>0 || wd->current) { /* write LibData */ writestruct(wd, ID_MA, "Material", 1, ma); - + /*Write ID Properties -- and copy this comment EXACTLY for easy finding of library blocks that implement this.*/ /*manually set head group property to IDP_GROUP, just in case it hadn't been @@ -1293,12 +1293,12 @@ for(a=0; amtex[a]) writestruct(wd, DATA, "MTex", 1, ma->mtex[a]); } - + if(ma->ramp_col) writestruct(wd, DATA, "ColorBand", 1, ma->ramp_col); if(ma->ramp_spec) writestruct(wd, DATA, "ColorBand", 1, ma->ramp_spec); - + write_scriptlink(wd, &ma->scriptlink); - + /* nodetree is integral part of material, no libdata */ if(ma->nodetree) { writestruct(wd, DATA, "bNodeTree", 1, ma->nodetree); @@ -1366,7 +1366,7 @@ TimeMarker *marker; SceneRenderLayer *srl; int a; - + sce= scebase->first; while(sce) { /* write LibData */ @@ -1413,9 +1413,6 @@ case SEQ_WIPE: writestruct(wd, DATA, "WipeVars", 1, seq->effectdata); break; - case SEQ_PUSH: - writestruct(wd, DATA, "PushVars", 1, seq->effectdata); - break; case SEQ_GLOW: writestruct(wd, DATA, "GlowVars", 1, seq->effectdata); break; @@ -1437,7 +1434,7 @@ } } END_SEQ - + /* new; meta stack too, even when its nasty restore code */ for(ms= ed->metastack.first; ms; ms= ms->next) { writestruct(wd, DATA, "MetaStack", 1, ms); @@ -1460,15 +1457,15 @@ /* writing dynamic list of TimeMarkers to the blend file */ for(marker= sce->markers.first; marker; marker= marker->next) writestruct(wd, DATA, "TimeMarker", 1, marker); - + for(srl= sce->r.layers.first; srl; srl= srl->next) writestruct(wd, DATA, "SceneRenderLayer", 1, srl); - + if(sce->nodetree) { writestruct(wd, DATA, "bNodeTree", 1, sce->nodetree); write_nodetree(wd, sce->nodetree); } - + sce= sce->id.next; } /* flush helps the compression for undo-save */ @@ -1570,10 +1567,10 @@ } else if(sl->spacetype==SPACE_IMAGE) { SpaceImage *sima= (SpaceImage *)sl; - + writestruct(wd, DATA, "SpaceImage", 1, sl); if(sima->cumap) - write_curvemapping(wd, sima->cumap); + write_curvemapping(wd, sima->cumap); } else if(sl->spacetype==SPACE_IMASEL) { writestruct(wd, DATA, "SpaceImaSel", 1, sl); @@ -1651,10 +1648,10 @@ // PATCH for upward compatibility after 2.37+ armature recode bone->size[0]= bone->size[1]= bone->size[2]= 1.0f; - + // Write this bone writestruct(wd, DATA, "Bone", 1, bone); - + // Write Children cbone= bone->childbase.first; while(cbone) { @@ -1692,7 +1689,7 @@ { bAction *act; bActionChannel *chan; - + for(act=idbase->first; act; act= act->id.next) { if (act->id.us>0 || wd->current) { writestruct(wd, ID_AC, "bAction", 1, act); @@ -1814,7 +1811,7 @@ static void write_nodetrees(WriteData *wd, ListBase *idbase) { bNodeTree *ntree; - + for(ntree=idbase->first; ntree; ntree= ntree->id.next) { if (ntree->id.us>0 || wd->current) { writestruct(wd, ID_NT, "bNodeTree", 1, ntree); @@ -1828,7 +1825,7 @@ { Brush *brush; int a; - + for(brush=idbase->first; brush; brush= brush->id.next) { if(brush->id.us>0 || wd->current) { writestruct(wd, ID_BR, "Brush", 1, brush); @@ -1843,7 +1840,7 @@ static void write_global(WriteData *wd) { FileGlobal fg; - + fg.curscreen= G.curscreen; fg.curscene= G.scene; fg.displaymode= G.displaymode; @@ -1855,7 +1852,7 @@ fg.subversion= BLENDER_SUBVERSION; fg.minversion= BLENDER_MINVERSION; fg.minsubversion= BLENDER_MINSUBVERSION; - + writestruct(wd, GLOB, "FileGlobal", 1, &fg); } @@ -1870,7 +1867,7 @@ blo_split_main(&mainlist, G.main); wd= bgnwrite(handle, compare, current, write_flags); - + sprintf(buf, "BLENDER%c%c%.3d", (sizeof(void*)==8)?'-':'_', (G.order==B_ENDIAN)?'V':'v', G.version); mywrite(wd, buf, 12); @@ -1901,7 +1898,7 @@ write_meshs (wd, &G.main->mesh); write_nodetrees(wd, &G.main->nodetree); write_brushes (wd, &G.main->brush); - if(current==NULL) + if(current==NULL) write_libraries(wd, G.main->next); /* no library save in undo */ if (write_user_block) { @@ -1946,11 +1943,11 @@ if(!err) { if(write_flags & G_FILE_COMPRESS) - { + { // compressed files have the same ending as regular files... only from 2.4!!! - + int ret = BLI_gzip(tempname, dir); - + if(-1==ret) { *error_r= "Failed opening .gz file"; return 0; @@ -1966,7 +1963,7 @@ return 0; } - + } else { remove(tempname); @@ -1983,7 +1980,7 @@ int err; err= write_file_handle(0, compare, current, 0, write_flags); - + if(err==0) return 1; return 0; } @@ -2043,7 +2040,7 @@ #ifdef __APPLE__ -static int recursive_copy_runtime(char *outname, char *exename, char **cause_r) +static int recursive_copy_runtime(char *outname, char *exename, char **cause_r) { char *cause = NULL, *runtime = get_runtime_path(exename); char command[2 * (FILE_MAXDIR+FILE_MAXFILE) + 32]; @@ -2054,7 +2051,7 @@ goto cleanup; } //printf("runtimepath %s\n", runtime); - + progfd= open(runtime, O_BINARY|O_RDONLY, 0); if (progfd==-1) { cause= "Unable to find runtime"; diff -Naur /home/olabomba/blender/source/blender/blenpluginapi/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/blenpluginapi/CVS/Entries --- /home/olabomba/blender/source/blender/blenpluginapi/CVS/Entries 2006-12-04 19:26:21.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/blenpluginapi/CVS/Entries 2006-12-06 21:37:00.000000000 +0100 @@ -8,4 +8,4 @@ /plugin.DEF/1.1/Fri Jun 16 20:00:00 2006// /plugin.h/1.9/Wed Nov 22 15:53:46 2006// /util.h/1.7/Fri Jun 16 20:00:00 2006// -D/intern//// +D diff -Naur /home/olabomba/blender/source/blender/blenpluginapi/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/blender/blenpluginapi/CVS/Entries.Log --- /home/olabomba/blender/source/blender/blenpluginapi/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/blenpluginapi/CVS/Entries.Log 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +A D/intern//// diff -Naur /home/olabomba/blender/source/blender/bpython/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/bpython/CVS/Entries --- /home/olabomba/blender/source/blender/bpython/CVS/Entries 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/bpython/CVS/Entries 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +D diff -Naur /home/olabomba/blender/source/blender/bpython/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/blender/bpython/CVS/Entries.Log --- /home/olabomba/blender/source/blender/bpython/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/bpython/CVS/Entries.Log 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1,4 @@ +A D/frozen//// +A D/include//// +A D/intern//// +A D/py//// diff -Naur /home/olabomba/blender/source/blender/bpython/CVS/Repository /home/olabomba/blender-propre/blender/source/blender/bpython/CVS/Repository --- /home/olabomba/blender/source/blender/bpython/CVS/Repository 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/bpython/CVS/Repository 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +blender/source/blender/bpython diff -Naur /home/olabomba/blender/source/blender/bpython/CVS/Root /home/olabomba/blender-propre/blender/source/blender/bpython/CVS/Root --- /home/olabomba/blender/source/blender/bpython/CVS/Root 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/bpython/CVS/Root 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +:pserver:anonymous@cvs.blender.org:/cvsroot/bf-blender diff -Naur /home/olabomba/blender/source/blender/bpython/frozen/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/bpython/frozen/CVS/Entries --- /home/olabomba/blender/source/blender/bpython/frozen/CVS/Entries 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/bpython/frozen/CVS/Entries 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +D diff -Naur /home/olabomba/blender/source/blender/bpython/frozen/CVS/Repository /home/olabomba/blender-propre/blender/source/blender/bpython/frozen/CVS/Repository --- /home/olabomba/blender/source/blender/bpython/frozen/CVS/Repository 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/bpython/frozen/CVS/Repository 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +blender/source/blender/bpython/frozen diff -Naur /home/olabomba/blender/source/blender/bpython/frozen/CVS/Root /home/olabomba/blender-propre/blender/source/blender/bpython/frozen/CVS/Root --- /home/olabomba/blender/source/blender/bpython/frozen/CVS/Root 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/bpython/frozen/CVS/Root 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +:pserver:anonymous@cvs.blender.org:/cvsroot/bf-blender diff -Naur /home/olabomba/blender/source/blender/bpython/include/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/bpython/include/CVS/Entries --- /home/olabomba/blender/source/blender/bpython/include/CVS/Entries 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/bpython/include/CVS/Entries 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +D diff -Naur /home/olabomba/blender/source/blender/bpython/include/CVS/Repository /home/olabomba/blender-propre/blender/source/blender/bpython/include/CVS/Repository --- /home/olabomba/blender/source/blender/bpython/include/CVS/Repository 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/bpython/include/CVS/Repository 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +blender/source/blender/bpython/include diff -Naur /home/olabomba/blender/source/blender/bpython/include/CVS/Root /home/olabomba/blender-propre/blender/source/blender/bpython/include/CVS/Root --- /home/olabomba/blender/source/blender/bpython/include/CVS/Root 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/bpython/include/CVS/Root 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +:pserver:anonymous@cvs.blender.org:/cvsroot/bf-blender diff -Naur /home/olabomba/blender/source/blender/bpython/intern/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/bpython/intern/CVS/Entries --- /home/olabomba/blender/source/blender/bpython/intern/CVS/Entries 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/bpython/intern/CVS/Entries 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +D diff -Naur /home/olabomba/blender/source/blender/bpython/intern/CVS/Repository /home/olabomba/blender-propre/blender/source/blender/bpython/intern/CVS/Repository --- /home/olabomba/blender/source/blender/bpython/intern/CVS/Repository 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/bpython/intern/CVS/Repository 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +blender/source/blender/bpython/intern diff -Naur /home/olabomba/blender/source/blender/bpython/intern/CVS/Root /home/olabomba/blender-propre/blender/source/blender/bpython/intern/CVS/Root --- /home/olabomba/blender/source/blender/bpython/intern/CVS/Root 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/bpython/intern/CVS/Root 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +:pserver:anonymous@cvs.blender.org:/cvsroot/bf-blender diff -Naur /home/olabomba/blender/source/blender/bpython/py/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/bpython/py/CVS/Entries --- /home/olabomba/blender/source/blender/bpython/py/CVS/Entries 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/bpython/py/CVS/Entries 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +D diff -Naur /home/olabomba/blender/source/blender/bpython/py/CVS/Repository /home/olabomba/blender-propre/blender/source/blender/bpython/py/CVS/Repository --- /home/olabomba/blender/source/blender/bpython/py/CVS/Repository 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/bpython/py/CVS/Repository 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +blender/source/blender/bpython/py diff -Naur /home/olabomba/blender/source/blender/bpython/py/CVS/Root /home/olabomba/blender-propre/blender/source/blender/bpython/py/CVS/Root --- /home/olabomba/blender/source/blender/bpython/py/CVS/Root 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/bpython/py/CVS/Root 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +:pserver:anonymous@cvs.blender.org:/cvsroot/bf-blender diff -Naur /home/olabomba/blender/source/blender/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/CVS/Entries --- /home/olabomba/blender/source/blender/CVS/Entries 2006-12-04 21:56:55.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/CVS/Entries 2006-12-06 21:36:55.000000000 +0100 @@ -2,20 +2,4 @@ /CMakeLists.txt/1.1/Fri Nov 17 02:27:09 2006// /Makefile/1.16/Wed Jul 26 22:29:22 2006// /SConscript/1.12/Wed Nov 8 20:33:28 2006// -D/avi//// -D/blenkernel//// -D/blenlib//// -D/blenloader//// -D/blenpluginapi//// -D/ftfont//// -D/imbuf//// -D/include//// -D/makesdna//// -D/python//// -D/quicktime//// -D/radiosity//// -D/readblenfile//// -D/render//// -D/src//// -D/verify//// -D/yafray//// +D diff -Naur /home/olabomba/blender/source/blender/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/blender/CVS/Entries.Log --- /home/olabomba/blender/source/blender/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/CVS/Entries.Log 2006-12-06 21:37:20.000000000 +0100 @@ -0,0 +1,29 @@ +A D/avi//// +A D/blenkernel//// +A D/blenlib//// +A D/blenloader//// +A D/blenpluginapi//// +A D/bpython//// +A D/decrypt//// +A D/deflate//// +A D/encrypt//// +A D/ftfont//// +A D/imbuf//// +A D/img//// +A D/include//// +A D/inflate//// +A D/makesdna//// +A D/misc//// +A D/python//// +A D/quicktime//// +A D/radiosity//// +A D/readblenfile//// +A D/readstreamglue//// +A D/render//// +A D/renderconverter//// +A D/sign//// +A D/src//// +A D/verify//// +A D/writeblenfile//// +A D/writestreamglue//// +A D/yafray//// diff -Naur /home/olabomba/blender/source/blender/decrypt/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/decrypt/CVS/Entries --- /home/olabomba/blender/source/blender/decrypt/CVS/Entries 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/decrypt/CVS/Entries 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +D diff -Naur /home/olabomba/blender/source/blender/decrypt/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/blender/decrypt/CVS/Entries.Log --- /home/olabomba/blender/source/blender/decrypt/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/decrypt/CVS/Entries.Log 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1,2 @@ +A D/intern//// +A D/stub//// diff -Naur /home/olabomba/blender/source/blender/decrypt/CVS/Repository /home/olabomba/blender-propre/blender/source/blender/decrypt/CVS/Repository --- /home/olabomba/blender/source/blender/decrypt/CVS/Repository 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/decrypt/CVS/Repository 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +blender/source/blender/decrypt diff -Naur /home/olabomba/blender/source/blender/decrypt/CVS/Root /home/olabomba/blender-propre/blender/source/blender/decrypt/CVS/Root --- /home/olabomba/blender/source/blender/decrypt/CVS/Root 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/decrypt/CVS/Root 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +:pserver:anonymous@cvs.blender.org:/cvsroot/bf-blender diff -Naur /home/olabomba/blender/source/blender/decrypt/intern/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/decrypt/intern/CVS/Entries --- /home/olabomba/blender/source/blender/decrypt/intern/CVS/Entries 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/decrypt/intern/CVS/Entries 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +D diff -Naur /home/olabomba/blender/source/blender/decrypt/intern/CVS/Repository /home/olabomba/blender-propre/blender/source/blender/decrypt/intern/CVS/Repository --- /home/olabomba/blender/source/blender/decrypt/intern/CVS/Repository 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/decrypt/intern/CVS/Repository 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +blender/source/blender/decrypt/intern diff -Naur /home/olabomba/blender/source/blender/decrypt/intern/CVS/Root /home/olabomba/blender-propre/blender/source/blender/decrypt/intern/CVS/Root --- /home/olabomba/blender/source/blender/decrypt/intern/CVS/Root 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/decrypt/intern/CVS/Root 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +:pserver:anonymous@cvs.blender.org:/cvsroot/bf-blender diff -Naur /home/olabomba/blender/source/blender/decrypt/stub/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/decrypt/stub/CVS/Entries --- /home/olabomba/blender/source/blender/decrypt/stub/CVS/Entries 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/decrypt/stub/CVS/Entries 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +D diff -Naur /home/olabomba/blender/source/blender/decrypt/stub/CVS/Repository /home/olabomba/blender-propre/blender/source/blender/decrypt/stub/CVS/Repository --- /home/olabomba/blender/source/blender/decrypt/stub/CVS/Repository 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/decrypt/stub/CVS/Repository 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +blender/source/blender/decrypt/stub diff -Naur /home/olabomba/blender/source/blender/decrypt/stub/CVS/Root /home/olabomba/blender-propre/blender/source/blender/decrypt/stub/CVS/Root --- /home/olabomba/blender/source/blender/decrypt/stub/CVS/Root 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/decrypt/stub/CVS/Root 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +:pserver:anonymous@cvs.blender.org:/cvsroot/bf-blender diff -Naur /home/olabomba/blender/source/blender/deflate/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/deflate/CVS/Entries --- /home/olabomba/blender/source/blender/deflate/CVS/Entries 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/deflate/CVS/Entries 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +D diff -Naur /home/olabomba/blender/source/blender/deflate/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/blender/deflate/CVS/Entries.Log --- /home/olabomba/blender/source/blender/deflate/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/deflate/CVS/Entries.Log 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1,3 @@ +A D/intern//// +A D/stub//// +A D/test//// diff -Naur /home/olabomba/blender/source/blender/deflate/CVS/Repository /home/olabomba/blender-propre/blender/source/blender/deflate/CVS/Repository --- /home/olabomba/blender/source/blender/deflate/CVS/Repository 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/deflate/CVS/Repository 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +blender/source/blender/deflate diff -Naur /home/olabomba/blender/source/blender/deflate/CVS/Root /home/olabomba/blender-propre/blender/source/blender/deflate/CVS/Root --- /home/olabomba/blender/source/blender/deflate/CVS/Root 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/deflate/CVS/Root 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +:pserver:anonymous@cvs.blender.org:/cvsroot/bf-blender diff -Naur /home/olabomba/blender/source/blender/deflate/intern/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/deflate/intern/CVS/Entries --- /home/olabomba/blender/source/blender/deflate/intern/CVS/Entries 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/deflate/intern/CVS/Entries 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +D diff -Naur /home/olabomba/blender/source/blender/deflate/intern/CVS/Repository /home/olabomba/blender-propre/blender/source/blender/deflate/intern/CVS/Repository --- /home/olabomba/blender/source/blender/deflate/intern/CVS/Repository 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/deflate/intern/CVS/Repository 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +blender/source/blender/deflate/intern diff -Naur /home/olabomba/blender/source/blender/deflate/intern/CVS/Root /home/olabomba/blender-propre/blender/source/blender/deflate/intern/CVS/Root --- /home/olabomba/blender/source/blender/deflate/intern/CVS/Root 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/deflate/intern/CVS/Root 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +:pserver:anonymous@cvs.blender.org:/cvsroot/bf-blender diff -Naur /home/olabomba/blender/source/blender/deflate/stub/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/deflate/stub/CVS/Entries --- /home/olabomba/blender/source/blender/deflate/stub/CVS/Entries 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/deflate/stub/CVS/Entries 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +D diff -Naur /home/olabomba/blender/source/blender/deflate/stub/CVS/Repository /home/olabomba/blender-propre/blender/source/blender/deflate/stub/CVS/Repository --- /home/olabomba/blender/source/blender/deflate/stub/CVS/Repository 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/deflate/stub/CVS/Repository 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +blender/source/blender/deflate/stub diff -Naur /home/olabomba/blender/source/blender/deflate/stub/CVS/Root /home/olabomba/blender-propre/blender/source/blender/deflate/stub/CVS/Root --- /home/olabomba/blender/source/blender/deflate/stub/CVS/Root 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/deflate/stub/CVS/Root 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +:pserver:anonymous@cvs.blender.org:/cvsroot/bf-blender diff -Naur /home/olabomba/blender/source/blender/deflate/test/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/deflate/test/CVS/Entries --- /home/olabomba/blender/source/blender/deflate/test/CVS/Entries 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/deflate/test/CVS/Entries 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +D diff -Naur /home/olabomba/blender/source/blender/deflate/test/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/blender/deflate/test/CVS/Entries.Log --- /home/olabomba/blender/source/blender/deflate/test/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/deflate/test/CVS/Entries.Log 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +A D/stubbed//// diff -Naur /home/olabomba/blender/source/blender/deflate/test/CVS/Repository /home/olabomba/blender-propre/blender/source/blender/deflate/test/CVS/Repository --- /home/olabomba/blender/source/blender/deflate/test/CVS/Repository 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/deflate/test/CVS/Repository 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +blender/source/blender/deflate/test diff -Naur /home/olabomba/blender/source/blender/deflate/test/CVS/Root /home/olabomba/blender-propre/blender/source/blender/deflate/test/CVS/Root --- /home/olabomba/blender/source/blender/deflate/test/CVS/Root 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/deflate/test/CVS/Root 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +:pserver:anonymous@cvs.blender.org:/cvsroot/bf-blender diff -Naur /home/olabomba/blender/source/blender/deflate/test/stubbed/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/deflate/test/stubbed/CVS/Entries --- /home/olabomba/blender/source/blender/deflate/test/stubbed/CVS/Entries 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/deflate/test/stubbed/CVS/Entries 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +D diff -Naur /home/olabomba/blender/source/blender/deflate/test/stubbed/CVS/Repository /home/olabomba/blender-propre/blender/source/blender/deflate/test/stubbed/CVS/Repository --- /home/olabomba/blender/source/blender/deflate/test/stubbed/CVS/Repository 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/deflate/test/stubbed/CVS/Repository 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +blender/source/blender/deflate/test/stubbed diff -Naur /home/olabomba/blender/source/blender/deflate/test/stubbed/CVS/Root /home/olabomba/blender-propre/blender/source/blender/deflate/test/stubbed/CVS/Root --- /home/olabomba/blender/source/blender/deflate/test/stubbed/CVS/Root 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/deflate/test/stubbed/CVS/Root 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +:pserver:anonymous@cvs.blender.org:/cvsroot/bf-blender diff -Naur /home/olabomba/blender/source/blender/encrypt/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/encrypt/CVS/Entries --- /home/olabomba/blender/source/blender/encrypt/CVS/Entries 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/encrypt/CVS/Entries 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +D diff -Naur /home/olabomba/blender/source/blender/encrypt/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/blender/encrypt/CVS/Entries.Log --- /home/olabomba/blender/source/blender/encrypt/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/encrypt/CVS/Entries.Log 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +A D/intern//// diff -Naur /home/olabomba/blender/source/blender/encrypt/CVS/Repository /home/olabomba/blender-propre/blender/source/blender/encrypt/CVS/Repository --- /home/olabomba/blender/source/blender/encrypt/CVS/Repository 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/encrypt/CVS/Repository 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +blender/source/blender/encrypt diff -Naur /home/olabomba/blender/source/blender/encrypt/CVS/Root /home/olabomba/blender-propre/blender/source/blender/encrypt/CVS/Root --- /home/olabomba/blender/source/blender/encrypt/CVS/Root 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/encrypt/CVS/Root 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +:pserver:anonymous@cvs.blender.org:/cvsroot/bf-blender diff -Naur /home/olabomba/blender/source/blender/encrypt/intern/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/encrypt/intern/CVS/Entries --- /home/olabomba/blender/source/blender/encrypt/intern/CVS/Entries 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/encrypt/intern/CVS/Entries 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +D diff -Naur /home/olabomba/blender/source/blender/encrypt/intern/CVS/Repository /home/olabomba/blender-propre/blender/source/blender/encrypt/intern/CVS/Repository --- /home/olabomba/blender/source/blender/encrypt/intern/CVS/Repository 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/encrypt/intern/CVS/Repository 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +blender/source/blender/encrypt/intern diff -Naur /home/olabomba/blender/source/blender/encrypt/intern/CVS/Root /home/olabomba/blender-propre/blender/source/blender/encrypt/intern/CVS/Root --- /home/olabomba/blender/source/blender/encrypt/intern/CVS/Root 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/encrypt/intern/CVS/Root 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +:pserver:anonymous@cvs.blender.org:/cvsroot/bf-blender diff -Naur /home/olabomba/blender/source/blender/ftfont/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/ftfont/CVS/Entries --- /home/olabomba/blender/source/blender/ftfont/CVS/Entries 2006-12-04 19:26:21.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/ftfont/CVS/Entries 2006-12-06 21:37:00.000000000 +0100 @@ -3,4 +3,4 @@ /FTF_Settings.h/1.2/Wed Jan 19 13:53:42 2005// /Makefile/1.1/Sat May 3 12:17:08 2003// /SConscript/1.11/Tue Feb 7 21:24:34 2006// -D/intern//// +D diff -Naur /home/olabomba/blender/source/blender/ftfont/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/blender/ftfont/CVS/Entries.Log --- /home/olabomba/blender/source/blender/ftfont/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/ftfont/CVS/Entries.Log 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +A D/intern//// diff -Naur /home/olabomba/blender/source/blender/imbuf/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/imbuf/CVS/Entries --- /home/olabomba/blender/source/blender/imbuf/CVS/Entries 2006-12-04 19:26:21.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/imbuf/CVS/Entries 2006-12-06 21:37:00.000000000 +0100 @@ -4,4 +4,4 @@ /Makefile/1.4/Mon Jan 5 00:06:07 2004// /SConscript/1.24/Tue Aug 22 13:04:07 2006// /readme.txt/1.5/Fri Dec 2 21:13:14 2005// -D/intern//// +D diff -Naur /home/olabomba/blender/source/blender/imbuf/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/blender/imbuf/CVS/Entries.Log --- /home/olabomba/blender/source/blender/imbuf/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/imbuf/CVS/Entries.Log 2006-12-06 21:37:00.000000000 +0100 @@ -0,0 +1 @@ +A D/intern//// diff -Naur /home/olabomba/blender/source/blender/imbuf/intern/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/imbuf/intern/CVS/Entries --- /home/olabomba/blender/source/blender/imbuf/intern/CVS/Entries 2006-12-04 19:26:21.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/imbuf/intern/CVS/Entries 2006-12-06 21:37:01.000000000 +0100 @@ -53,5 +53,4 @@ /tiff.c/1.5/Sat Jan 28 18:33:09 2006// /util.c/1.19/Thu Mar 30 21:51:59 2006// /writeimage.c/1.18/Sun Mar 12 14:11:22 2006// -D/cineon//// -D/openexr//// +D diff -Naur /home/olabomba/blender/source/blender/imbuf/intern/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/blender/imbuf/intern/CVS/Entries.Log --- /home/olabomba/blender/source/blender/imbuf/intern/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/imbuf/intern/CVS/Entries.Log 2006-12-06 21:37:01.000000000 +0100 @@ -0,0 +1,2 @@ +A D/cineon//// +A D/openexr//// diff -Naur /home/olabomba/blender/source/blender/img/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/img/CVS/Entries --- /home/olabomba/blender/source/blender/img/CVS/Entries 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/img/CVS/Entries 2006-12-06 21:37:01.000000000 +0100 @@ -0,0 +1 @@ +D diff -Naur /home/olabomba/blender/source/blender/img/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/blender/img/CVS/Entries.Log --- /home/olabomba/blender/source/blender/img/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/img/CVS/Entries.Log 2006-12-06 21:37:01.000000000 +0100 @@ -0,0 +1 @@ +A D/intern//// diff -Naur /home/olabomba/blender/source/blender/img/CVS/Repository /home/olabomba/blender-propre/blender/source/blender/img/CVS/Repository --- /home/olabomba/blender/source/blender/img/CVS/Repository 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/img/CVS/Repository 2006-12-06 21:37:01.000000000 +0100 @@ -0,0 +1 @@ +blender/source/blender/img diff -Naur /home/olabomba/blender/source/blender/img/CVS/Root /home/olabomba/blender-propre/blender/source/blender/img/CVS/Root --- /home/olabomba/blender/source/blender/img/CVS/Root 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/img/CVS/Root 2006-12-06 21:37:01.000000000 +0100 @@ -0,0 +1 @@ +:pserver:anonymous@cvs.blender.org:/cvsroot/bf-blender diff -Naur /home/olabomba/blender/source/blender/img/intern/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/img/intern/CVS/Entries --- /home/olabomba/blender/source/blender/img/intern/CVS/Entries 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/img/intern/CVS/Entries 2006-12-06 21:37:01.000000000 +0100 @@ -0,0 +1 @@ +D diff -Naur /home/olabomba/blender/source/blender/img/intern/CVS/Repository /home/olabomba/blender-propre/blender/source/blender/img/intern/CVS/Repository --- /home/olabomba/blender/source/blender/img/intern/CVS/Repository 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/img/intern/CVS/Repository 2006-12-06 21:37:01.000000000 +0100 @@ -0,0 +1 @@ +blender/source/blender/img/intern diff -Naur /home/olabomba/blender/source/blender/img/intern/CVS/Root /home/olabomba/blender-propre/blender/source/blender/img/intern/CVS/Root --- /home/olabomba/blender/source/blender/img/intern/CVS/Root 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/img/intern/CVS/Root 2006-12-06 21:37:01.000000000 +0100 @@ -0,0 +1 @@ +:pserver:anonymous@cvs.blender.org:/cvsroot/bf-blender diff -Naur /home/olabomba/blender/source/blender/include/BSE_seqeffects.h /home/olabomba/blender-propre/blender/source/blender/include/BSE_seqeffects.h --- /home/olabomba/blender/source/blender/include/BSE_seqeffects.h 2006-12-05 20:35:01.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/include/BSE_seqeffects.h 2006-11-11 23:35:39.000000000 +0100 @@ -38,9 +38,6 @@ enum {DO_SINGLE_WIPE, DO_DOUBLE_WIPE, DO_BOX_WIPE, DO_CROSS_WIPE, DO_IRIS_WIPE,DO_CLOCK_WIPE}; -/* Push effect */ -enum {DO_LEFT_PUSH, DO_RIGHT_PUSH, DO_TOP_PUSH, DO_BOTTOM_PUSH, DO_HORI_PUSH, DO_VERT_PUSH}; - struct Sequence; struct ImBuf; @@ -50,7 +47,7 @@ void (*init)(struct Sequence *seq); void (*init_plugin)(struct Sequence * seq, const char * fname); - /* number of input strips needed + /* number of input strips needed (called directly after construction) */ int (*num_inputs)(); @@ -65,11 +62,11 @@ void (*free)(struct Sequence *seq); /* returns: -1: no input needed, - 0: no early out, - 1: out = ibuf1, + 0: no early out, + 1: out = ibuf1, 2: out = ibuf2 */ int (*early_out)(struct Sequence *seq, - float facf0, float facf1); + float facf0, float facf1); /* stores the default facf0 and facf1 if no IPO is present */ void (*get_default_fac)(struct Sequence * seq, int cfra, @@ -77,7 +74,7 @@ /* execute the effect sequence effects are only required to either support - float-rects or byte-rects + float-rects or byte-rects (mixed cases are handled one layer up...) */ void (*execute)(struct Sequence *seq, int cfra, diff -Naur /home/olabomba/blender/source/blender/include/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/include/CVS/Entries --- /home/olabomba/blender/source/blender/include/CVS/Entries 2006-12-06 21:32:51.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/include/CVS/Entries 2006-12-06 21:37:02.000000000 +0100 @@ -1,3 +1,4 @@ +/BDR_drawaction.h/1.7/Wed Dec 6 02:37:31 2006// /BDR_drawmesh.h/1.11/Sun Nov 26 23:14:52 2006// /BDR_drawobject.h/1.23/Mon Nov 6 01:08:22 2006// /BDR_editcurve.h/1.14/Mon Nov 6 18:20:56 2006// @@ -5,6 +6,7 @@ /BDR_editmball.h/1.7/Mon Feb 21 10:40:30 2005// /BDR_editobject.h/1.31/Tue Nov 14 18:13:34 2006// /BDR_imagepaint.h/1.4/Sun Aug 27 13:29:00 2006// +/BDR_sculptmode.h/1.6/Mon Dec 4 00:11:25 2006// /BDR_unwrapper.h/1.10/Mon Sep 25 22:00:52 2006// /BDR_vpaint.h/1.10/Mon Nov 20 12:08:05 2006// /BIF_butspace.h/1.11/Thu Nov 10 16:01:56 2005// @@ -15,6 +17,7 @@ /BIF_drawscript.h/1.3/Wed Oct 6 18:54:59 2004// /BIF_drawseq.h/1.8/Thu Jun 8 19:05:58 2006// /BIF_drawtext.h/1.8/Fri May 13 16:11:27 2005// +/BIF_editaction.h/1.23/Wed Dec 6 02:37:31 2006// /BIF_editarmature.h/1.30/Wed Nov 1 14:29:06 2006// /BIF_editconstraint.h/1.15/Thu Nov 2 10:13:00 2006// /BIF_editdeform.h/1.11/Sun Sep 3 12:16:13 2006// @@ -41,6 +44,7 @@ /BIF_keyval.h/1.5/Fri Dec 27 13:10:20 2002// /BIF_language.h/1.6/Fri Jan 21 14:48:02 2005// /BIF_mainqueue.h/1.5/Fri Dec 27 13:10:20 2002// +/BIF_meshtools.h/1.9/Wed Dec 6 12:34:26 2006// /BIF_mywindow.h/1.9/Thu Aug 3 12:25:32 2006// /BIF_oops.h/1.6/Wed Mar 9 19:45:55 2005// /BIF_outliner.h/1.16/Sat Nov 11 16:45:16 2006// @@ -56,6 +60,7 @@ /BIF_tbcallback.h/1.5/Fri Dec 20 09:41:25 2002// /BIF_toets.h/1.6/Sat Jan 28 18:33:13 2006// /BIF_toolbox.h/1.18/Fri Nov 24 18:58:58 2006// +/BIF_transform.h/1.40/Sun Dec 3 19:54:26 2006// /BIF_usiblender.h/1.6/Tue May 30 13:38:22 2006// /BIF_verse.h/1.5/Mon Nov 20 05:12:55 2006// /BIF_writeavicodec.h/1.8/Sun Jan 29 17:46:18 2006// @@ -73,15 +78,18 @@ /BSE_editnla_types.h/1.6/Mon Oct 10 18:05:29 2005// /BSE_filesel.h/1.9/Sat Jan 28 18:33:13 2006// /BSE_headerbuttons.h/1.29/Tue Nov 7 11:24:10 2006// +/BSE_node.h/1.7/Tue Dec 5 21:33:56 2006// /BSE_seqaudio.h/1.2/Sun Feb 5 19:36:32 2006// /BSE_seqeffects.h/1.3/Sat Nov 11 22:35:39 2006// /BSE_seqscopes.h/1.1/Tue Mar 7 20:01:12 2006// /BSE_sequence.h/1.16/Sat Nov 11 22:35:39 2006// +/BSE_time.h/1.9/Tue Dec 5 05:25:34 2006// /BSE_trans_types.h/1.9/Mon Nov 20 12:08:05 2006// /BSE_types.h/1.7/Mon Nov 20 04:27:50 2006// /BSE_view.h/1.15/Mon Nov 6 01:08:22 2006// /LOD_DependKludge.h/1.5/Fri Dec 27 13:10:20 2002// /blendef.h/1.58/Tue Aug 29 10:27:47 2006// +/butspace.h/1.96/Wed Dec 6 12:34:26 2006// /datatoc.h/1.6/Mon Nov 8 15:46:57 2004// /editlattice_ext.h/1.5/Fri Dec 27 13:10:20 2002// /editmesh.h/1.16/Wed Nov 15 22:24:05 2006// @@ -95,12 +103,4 @@ /particle_effect.h/1.6/Wed Jul 20 04:14:20 2005// /playanim_ext.h/1.5/Fri Dec 27 13:10:20 2002// /transform.h/1.29/Thu Nov 30 01:57:14 2006// -/BDR_sculptmode.h/1.6/Mon Dec 4 18:26:26 2006// -/BIF_transform.h/1.40/Mon Dec 4 18:26:26 2006// -/BDR_drawaction.h/1.7/Wed Dec 6 20:32:51 2006// -/BIF_editaction.h/1.23/Wed Dec 6 20:32:51 2006// -/BIF_meshtools.h/1.9/Wed Dec 6 20:32:51 2006// -/BSE_node.h/1.7/Wed Dec 6 20:32:51 2006// -/BSE_time.h/1.9/Wed Dec 6 20:32:51 2006// -/butspace.h/1.96/Wed Dec 6 20:32:51 2006// D diff -Naur /home/olabomba/blender/source/blender/inflate/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/inflate/CVS/Entries --- /home/olabomba/blender/source/blender/inflate/CVS/Entries 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/inflate/CVS/Entries 2006-12-06 21:37:02.000000000 +0100 @@ -0,0 +1 @@ +D diff -Naur /home/olabomba/blender/source/blender/inflate/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/blender/inflate/CVS/Entries.Log --- /home/olabomba/blender/source/blender/inflate/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/inflate/CVS/Entries.Log 2006-12-06 21:37:02.000000000 +0100 @@ -0,0 +1 @@ +A D/intern//// diff -Naur /home/olabomba/blender/source/blender/inflate/CVS/Repository /home/olabomba/blender-propre/blender/source/blender/inflate/CVS/Repository --- /home/olabomba/blender/source/blender/inflate/CVS/Repository 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/inflate/CVS/Repository 2006-12-06 21:37:02.000000000 +0100 @@ -0,0 +1 @@ +blender/source/blender/inflate diff -Naur /home/olabomba/blender/source/blender/inflate/CVS/Root /home/olabomba/blender-propre/blender/source/blender/inflate/CVS/Root --- /home/olabomba/blender/source/blender/inflate/CVS/Root 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/inflate/CVS/Root 2006-12-06 21:37:02.000000000 +0100 @@ -0,0 +1 @@ +:pserver:anonymous@cvs.blender.org:/cvsroot/bf-blender diff -Naur /home/olabomba/blender/source/blender/inflate/intern/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/inflate/intern/CVS/Entries --- /home/olabomba/blender/source/blender/inflate/intern/CVS/Entries 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/inflate/intern/CVS/Entries 2006-12-06 21:37:02.000000000 +0100 @@ -0,0 +1 @@ +D diff -Naur /home/olabomba/blender/source/blender/inflate/intern/CVS/Repository /home/olabomba/blender-propre/blender/source/blender/inflate/intern/CVS/Repository --- /home/olabomba/blender/source/blender/inflate/intern/CVS/Repository 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/inflate/intern/CVS/Repository 2006-12-06 21:37:02.000000000 +0100 @@ -0,0 +1 @@ +blender/source/blender/inflate/intern diff -Naur /home/olabomba/blender/source/blender/inflate/intern/CVS/Root /home/olabomba/blender-propre/blender/source/blender/inflate/intern/CVS/Root --- /home/olabomba/blender/source/blender/inflate/intern/CVS/Root 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/inflate/intern/CVS/Root 2006-12-06 21:37:02.000000000 +0100 @@ -0,0 +1 @@ +:pserver:anonymous@cvs.blender.org:/cvsroot/bf-blender diff -Naur /home/olabomba/blender/source/blender/makesdna/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/makesdna/CVS/Entries --- /home/olabomba/blender/source/blender/makesdna/CVS/Entries 2006-12-06 21:32:51.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/makesdna/CVS/Entries 2006-12-06 21:37:02.000000000 +0100 @@ -1,12 +1,15 @@ /CMakeLists.txt/1.1/Fri Nov 17 02:27:10 2006// /DNA_ID.h/1.18/Fri Dec 1 10:12:40 2006// +/DNA_action_types.h/1.36/Wed Dec 6 02:37:32 2006// /DNA_actuator_types.h/1.8/Sun Nov 26 12:23:21 2006// /DNA_armature_types.h/1.30/Sat Nov 11 16:45:16 2006// /DNA_brush_types.h/1.7/Tue Nov 7 00:10:37 2006// /DNA_camera_types.h/1.14/Mon Nov 6 15:42:37 2006// /DNA_color_types.h/1.6/Fri Nov 24 16:56:02 2006// +/DNA_constraint_types.h/1.33/Wed Dec 6 02:37:32 2006// /DNA_controller_types.h/1.5/Fri Dec 27 13:10:28 2002// /DNA_curve_types.h/1.28/Mon Nov 6 01:08:22 2006// +/DNA_customdata_types.h/1.3/Tue Dec 5 17:42:02 2006// /DNA_documentation.h/1.4/Mon Jun 23 12:28:20 2003// /DNA_effect_types.h/1.14/Thu Nov 16 20:23:00 2006// /DNA_fileglobal_types.h/1.9/Mon Nov 27 10:43:00 2006// @@ -19,23 +22,29 @@ /DNA_listBase.h/1.5/Fri Dec 27 13:10:28 2002// /DNA_material_types.h/1.44/Sat Oct 14 10:21:19 2006// /DNA_mesh_types.h/1.34/Mon Nov 20 04:27:50 2006// +/DNA_meshdata_types.h/1.25/Tue Dec 5 16:44:54 2006// /DNA_meta_types.h/1.12/Thu Sep 14 11:37:34 2006// /DNA_modifier_types.h/1.25/Wed Nov 22 15:09:41 2006// /DNA_nla_types.h/1.12/Wed Nov 1 15:33:45 2006// +/DNA_node_types.h/1.20/Tue Dec 5 21:33:56 2006// /DNA_object_fluidsim.h/1.8/Sun Nov 5 16:30:29 2006// /DNA_object_force.h/1.17/Thu Nov 16 20:57:02 2006// +/DNA_object_types.h/1.59/Tue Dec 5 17:42:02 2006// /DNA_oops_types.h/1.11/Tue Nov 7 14:25:58 2006// /DNA_packedFile_types.h/1.5/Fri Dec 27 13:10:28 2002// /DNA_property_types.h/1.5/Fri Dec 27 13:10:28 2002// /DNA_radio_types.h/1.6/Sun Apr 27 11:55:09 2003// +/DNA_scene_types.h/1.90/Wed Dec 6 02:10:27 2006// /DNA_screen_types.h/1.25/Thu Nov 16 20:55:10 2006// /DNA_scriptlink_types.h/1.7/Sun May 8 21:20:32 2005// /DNA_sdna_types.h/1.7/Sat May 24 20:04:30 2003// /DNA_sensor_types.h/1.9/Wed Aug 17 14:29:58 2005// /DNA_sequence_types.h/1.26/Sat Nov 11 22:35:39 2006// /DNA_sound_types.h/1.11/Sun Nov 26 12:23:21 2006// +/DNA_space_types.h/1.54/Wed Dec 6 14:37:52 2006// /DNA_text_types.h/1.8/Fri May 13 16:11:28 2005// /DNA_texture_types.h/1.29/Wed Nov 22 15:53:46 2006// +/DNA_userdef_types.h/1.62/Mon Dec 4 23:16:55 2006// /DNA_vec_types.h/1.5/Fri Dec 27 13:10:28 2002// /DNA_vfont_types.h/1.6/Fri Jun 17 21:04:27 2005// /DNA_view2d_types.h/1.7/Thu Oct 20 14:41:10 2005// @@ -44,13 +53,4 @@ /DNA_world_types.h/1.20/Wed Nov 29 17:01:07 2006// /Makefile/1.4/Mon Jan 5 00:06:07 2004// /SConscript/1.6/Tue Feb 7 21:24:34 2006// -D/intern//// -/DNA_action_types.h/1.36/Wed Dec 6 20:32:51 2006// -/DNA_constraint_types.h/1.33/Wed Dec 6 20:32:51 2006// -/DNA_customdata_types.h/1.3/Wed Dec 6 20:32:51 2006// -/DNA_meshdata_types.h/1.25/Wed Dec 6 20:32:51 2006// -/DNA_node_types.h/1.20/Wed Dec 6 20:32:51 2006// -/DNA_object_types.h/1.59/Wed Dec 6 20:32:51 2006// -/DNA_scene_types.h/1.90/Wed Dec 6 20:32:51 2006// -/DNA_space_types.h/1.54/Wed Dec 6 20:32:51 2006// -/DNA_userdef_types.h/1.62/Wed Dec 6 20:32:51 2006// +D diff -Naur /home/olabomba/blender/source/blender/makesdna/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/blender/makesdna/CVS/Entries.Log --- /home/olabomba/blender/source/blender/makesdna/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/makesdna/CVS/Entries.Log 2006-12-06 21:37:02.000000000 +0100 @@ -0,0 +1 @@ +A D/intern//// diff -Naur /home/olabomba/blender/source/blender/makesdna/DNA_sequence_types.h /home/olabomba/blender-propre/blender/source/blender/makesdna/DNA_sequence_types.h --- /home/olabomba/blender/source/blender/makesdna/DNA_sequence_types.h 2006-12-05 20:39:56.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/makesdna/DNA_sequence_types.h 2006-11-11 23:35:39.000000000 +0100 @@ -145,16 +145,12 @@ } Editing; /* ************* Effect Variable Structs ********* */ -typedef struct PushVars { - short pushtype, pushnb; -} PushVars; - typedef struct WipeVars { float edgeWidth,angle; short forward, wipetype; } WipeVars; -typedef struct GlowVars { +typedef struct GlowVars { float fMini; /* Minimum intensity to trigger a glow */ float fClamp; float fBoost; /* Amount to multiply glow intensity */ @@ -229,10 +225,10 @@ #define SEQ_PLUGIN 24 #define SEQ_WIPE 25 #define SEQ_GLOW 26 -#define SEQ_TRANSFORM 27 -#define SEQ_COLOR 28 -#define SEQ_SPEED 29 -#define SEQ_PUSH 30 +#define SEQ_TRANSFORM 27 +#define SEQ_COLOR 28 +#define SEQ_SPEED 29 + #endif diff -Naur /home/olabomba/blender/source/blender/misc/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/misc/CVS/Entries --- /home/olabomba/blender/source/blender/misc/CVS/Entries 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/misc/CVS/Entries 2006-12-06 21:37:03.000000000 +0100 @@ -0,0 +1 @@ +D diff -Naur /home/olabomba/blender/source/blender/misc/CVS/Repository /home/olabomba/blender-propre/blender/source/blender/misc/CVS/Repository --- /home/olabomba/blender/source/blender/misc/CVS/Repository 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/misc/CVS/Repository 2006-12-06 21:37:03.000000000 +0100 @@ -0,0 +1 @@ +blender/source/blender/misc diff -Naur /home/olabomba/blender/source/blender/misc/CVS/Root /home/olabomba/blender-propre/blender/source/blender/misc/CVS/Root --- /home/olabomba/blender/source/blender/misc/CVS/Root 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/misc/CVS/Root 2006-12-06 21:37:03.000000000 +0100 @@ -0,0 +1 @@ +:pserver:anonymous@cvs.blender.org:/cvsroot/bf-blender diff -Naur /home/olabomba/blender/source/blender/python/api2_2x/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/python/api2_2x/CVS/Entries --- /home/olabomba/blender/source/blender/python/api2_2x/CVS/Entries 2006-12-06 21:32:51.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/python/api2_2x/CVS/Entries 2006-12-06 21:37:06.000000000 +0100 @@ -29,6 +29,7 @@ /Geometry.h/1.3/Fri Dec 1 17:53:04 2006// /Group.c/1.16/Thu Nov 16 21:38:07 2006// /Group.h/1.4/Sun Aug 27 16:27:33 2006// +/IDProp.c/1.8/Mon Dec 4 04:51:32 2006// /IDProp.h/1.3/Wed Nov 29 23:31:46 2006// /Image.c/1.59/Sun Nov 19 16:00:04 2006// /Image.h/1.14/Mon Jul 18 03:50:36 2005// @@ -50,6 +51,7 @@ /Material.h/1.11/Mon Jul 18 03:50:37 2005// /Mathutils.c/1.33/Tue Oct 3 16:07:48 2006// /Mathutils.h/1.13/Sun Jul 2 15:28:28 2006// +/Mesh.c/1.100/Tue Dec 5 17:42:02 2006// /Mesh.h/1.8/Wed Oct 4 17:06:29 2006// /Metaball.c/1.29/Sat Sep 30 14:14:49 2006// /Metaball.h/1.18/Sat Sep 30 14:14:49 2006// @@ -57,6 +59,7 @@ /Modifier.h/1.5/Sun Sep 24 08:30:38 2006// /NLA.c/1.19/Fri Oct 6 16:48:27 2006// /NLA.h/1.6/Mon May 22 14:19:52 2006// +/NMesh.c/1.125/Tue Dec 5 17:42:02 2006// /NMesh.h/1.39/Thu Jul 6 21:51:54 2006// /Node.c/1.3/Fri Dec 1 17:53:04 2006// /Node.h/1.1/Thu Nov 23 05:59:09 2006// @@ -121,7 +124,4 @@ /vector.h/1.21/Sat Oct 7 11:49:53 2006// /windowTheme.c/1.12/Thu Jun 8 19:05:58 2006// /windowTheme.h/1.5/Tue Nov 7 11:24:10 2006// -D/doc//// -/IDProp.c/1.8/Mon Dec 4 18:26:26 2006// -/Mesh.c/1.100/Wed Dec 6 20:32:51 2006// -/NMesh.c/1.125/Wed Dec 6 20:32:51 2006// +D diff -Naur /home/olabomba/blender/source/blender/python/api2_2x/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/blender/python/api2_2x/CVS/Entries.Log --- /home/olabomba/blender/source/blender/python/api2_2x/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/python/api2_2x/CVS/Entries.Log 2006-12-06 21:37:06.000000000 +0100 @@ -0,0 +1 @@ +A D/doc//// diff -Naur /home/olabomba/blender/source/blender/python/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/python/CVS/Entries --- /home/olabomba/blender/source/blender/python/CVS/Entries 2006-12-04 19:26:26.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/python/CVS/Entries 2006-12-06 21:37:03.000000000 +0100 @@ -4,5 +4,5 @@ /BPY_menus.h/1.19/Fri Jul 28 02:51:44 2006// /CMakeLists.txt/1.2/Sat Nov 18 02:48:14 2006// /Makefile/1.3/Mon Jan 5 00:06:07 2004// -D/api2_2x//// -/SConscript/1.35/Mon Dec 4 18:26:26 2006// +/SConscript/1.35/Mon Dec 4 14:32:07 2006// +D diff -Naur /home/olabomba/blender/source/blender/python/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/blender/python/CVS/Entries.Log --- /home/olabomba/blender/source/blender/python/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/python/CVS/Entries.Log 2006-12-06 21:37:03.000000000 +0100 @@ -0,0 +1 @@ +A D/api2_2x//// diff -Naur /home/olabomba/blender/source/blender/quicktime/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/quicktime/CVS/Entries --- /home/olabomba/blender/source/blender/quicktime/CVS/Entries 2006-12-04 19:26:21.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/quicktime/CVS/Entries 2006-12-06 21:37:07.000000000 +0100 @@ -3,4 +3,4 @@ /SConscript/1.9/Tue Feb 7 22:24:41 2006// /quicktime_export.h/1.7/Sat Jan 28 18:33:14 2006// /quicktime_import.h/1.7/Wed Apr 5 12:03:43 2006// -D/apple//// +D diff -Naur /home/olabomba/blender/source/blender/quicktime/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/blender/quicktime/CVS/Entries.Log --- /home/olabomba/blender/source/blender/quicktime/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/quicktime/CVS/Entries.Log 2006-12-06 21:37:07.000000000 +0100 @@ -0,0 +1 @@ +A D/apple//// diff -Naur /home/olabomba/blender/source/blender/radiosity/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/radiosity/CVS/Entries --- /home/olabomba/blender/source/blender/radiosity/CVS/Entries 2006-12-04 19:26:21.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/radiosity/CVS/Entries 2006-12-06 21:37:07.000000000 +0100 @@ -1,5 +1,4 @@ /CMakeLists.txt/1.1/Fri Nov 17 02:27:10 2006// /Makefile/1.4/Mon Jan 5 00:06:08 2004// /SConscript/1.7/Sat Feb 4 14:15:08 2006// -D/extern//// -D/intern//// +D diff -Naur /home/olabomba/blender/source/blender/radiosity/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/blender/radiosity/CVS/Entries.Log --- /home/olabomba/blender/source/blender/radiosity/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/radiosity/CVS/Entries.Log 2006-12-06 21:37:07.000000000 +0100 @@ -0,0 +1,2 @@ +A D/extern//// +A D/intern//// diff -Naur /home/olabomba/blender/source/blender/radiosity/extern/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/radiosity/extern/CVS/Entries --- /home/olabomba/blender/source/blender/radiosity/extern/CVS/Entries 2006-12-04 19:26:21.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/radiosity/extern/CVS/Entries 2006-12-06 21:37:07.000000000 +0100 @@ -1 +1 @@ -D/include//// +D diff -Naur /home/olabomba/blender/source/blender/radiosity/extern/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/blender/radiosity/extern/CVS/Entries.Log --- /home/olabomba/blender/source/blender/radiosity/extern/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/radiosity/extern/CVS/Entries.Log 2006-12-06 21:37:07.000000000 +0100 @@ -0,0 +1 @@ +A D/include//// diff -Naur /home/olabomba/blender/source/blender/radiosity/intern/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/radiosity/intern/CVS/Entries --- /home/olabomba/blender/source/blender/radiosity/intern/CVS/Entries 2006-12-04 21:56:55.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/radiosity/intern/CVS/Entries 2006-12-06 21:37:07.000000000 +0100 @@ -1,2 +1,2 @@ /Makefile/1.2/Sun Oct 13 15:57:08 2002// -D/source//// +D diff -Naur /home/olabomba/blender/source/blender/radiosity/intern/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/blender/radiosity/intern/CVS/Entries.Log --- /home/olabomba/blender/source/blender/radiosity/intern/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/radiosity/intern/CVS/Entries.Log 2006-12-06 21:37:07.000000000 +0100 @@ -0,0 +1,2 @@ +A D/include//// +A D/source//// diff -Naur /home/olabomba/blender/source/blender/radiosity/intern/include/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/radiosity/intern/include/CVS/Entries --- /home/olabomba/blender/source/blender/radiosity/intern/include/CVS/Entries 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/radiosity/intern/include/CVS/Entries 2006-12-06 21:37:07.000000000 +0100 @@ -0,0 +1 @@ +D diff -Naur /home/olabomba/blender/source/blender/radiosity/intern/include/CVS/Repository /home/olabomba/blender-propre/blender/source/blender/radiosity/intern/include/CVS/Repository --- /home/olabomba/blender/source/blender/radiosity/intern/include/CVS/Repository 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/radiosity/intern/include/CVS/Repository 2006-12-06 21:37:07.000000000 +0100 @@ -0,0 +1 @@ +blender/source/blender/radiosity/intern/include diff -Naur /home/olabomba/blender/source/blender/radiosity/intern/include/CVS/Root /home/olabomba/blender-propre/blender/source/blender/radiosity/intern/include/CVS/Root --- /home/olabomba/blender/source/blender/radiosity/intern/include/CVS/Root 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/radiosity/intern/include/CVS/Root 2006-12-06 21:37:07.000000000 +0100 @@ -0,0 +1 @@ +:pserver:anonymous@cvs.blender.org:/cvsroot/bf-blender diff -Naur /home/olabomba/blender/source/blender/readblenfile/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/readblenfile/CVS/Entries --- /home/olabomba/blender/source/blender/readblenfile/CVS/Entries 2006-12-04 19:26:21.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/readblenfile/CVS/Entries 2006-12-06 21:37:07.000000000 +0100 @@ -2,6 +2,4 @@ /CMakeLists.txt/1.1/Fri Nov 17 02:27:10 2006// /Makefile/1.4/Mon Jan 5 00:06:08 2004// /SConscript/1.8/Tue Feb 7 21:24:35 2006// -D/intern//// -D/stub//// -D/test//// +D diff -Naur /home/olabomba/blender/source/blender/readblenfile/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/blender/readblenfile/CVS/Entries.Log --- /home/olabomba/blender/source/blender/readblenfile/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/readblenfile/CVS/Entries.Log 2006-12-06 21:37:07.000000000 +0100 @@ -0,0 +1,3 @@ +A D/intern//// +A D/stub//// +A D/test//// diff -Naur /home/olabomba/blender/source/blender/readstreamglue/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/readstreamglue/CVS/Entries --- /home/olabomba/blender/source/blender/readstreamglue/CVS/Entries 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/readstreamglue/CVS/Entries 2006-12-06 21:37:07.000000000 +0100 @@ -0,0 +1 @@ +D diff -Naur /home/olabomba/blender/source/blender/readstreamglue/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/blender/readstreamglue/CVS/Entries.Log --- /home/olabomba/blender/source/blender/readstreamglue/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/readstreamglue/CVS/Entries.Log 2006-12-06 21:37:07.000000000 +0100 @@ -0,0 +1 @@ +A D/intern//// diff -Naur /home/olabomba/blender/source/blender/readstreamglue/CVS/Repository /home/olabomba/blender-propre/blender/source/blender/readstreamglue/CVS/Repository --- /home/olabomba/blender/source/blender/readstreamglue/CVS/Repository 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/readstreamglue/CVS/Repository 2006-12-06 21:37:07.000000000 +0100 @@ -0,0 +1 @@ +blender/source/blender/readstreamglue diff -Naur /home/olabomba/blender/source/blender/readstreamglue/CVS/Root /home/olabomba/blender-propre/blender/source/blender/readstreamglue/CVS/Root --- /home/olabomba/blender/source/blender/readstreamglue/CVS/Root 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/readstreamglue/CVS/Root 2006-12-06 21:37:07.000000000 +0100 @@ -0,0 +1 @@ +:pserver:anonymous@cvs.blender.org:/cvsroot/bf-blender diff -Naur /home/olabomba/blender/source/blender/readstreamglue/intern/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/readstreamglue/intern/CVS/Entries --- /home/olabomba/blender/source/blender/readstreamglue/intern/CVS/Entries 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/readstreamglue/intern/CVS/Entries 2006-12-06 21:37:07.000000000 +0100 @@ -0,0 +1 @@ +D diff -Naur /home/olabomba/blender/source/blender/readstreamglue/intern/CVS/Repository /home/olabomba/blender-propre/blender/source/blender/readstreamglue/intern/CVS/Repository --- /home/olabomba/blender/source/blender/readstreamglue/intern/CVS/Repository 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/readstreamglue/intern/CVS/Repository 2006-12-06 21:37:07.000000000 +0100 @@ -0,0 +1 @@ +blender/source/blender/readstreamglue/intern diff -Naur /home/olabomba/blender/source/blender/readstreamglue/intern/CVS/Root /home/olabomba/blender-propre/blender/source/blender/readstreamglue/intern/CVS/Root --- /home/olabomba/blender/source/blender/readstreamglue/intern/CVS/Root 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/readstreamglue/intern/CVS/Root 2006-12-06 21:37:07.000000000 +0100 @@ -0,0 +1 @@ +:pserver:anonymous@cvs.blender.org:/cvsroot/bf-blender diff -Naur /home/olabomba/blender/source/blender/render/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/render/CVS/Entries --- /home/olabomba/blender/source/blender/render/CVS/Entries 2006-12-04 19:26:21.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/render/CVS/Entries 2006-12-06 21:37:07.000000000 +0100 @@ -1,5 +1,4 @@ /CMakeLists.txt/1.2/Fri Nov 17 13:07:44 2006// /Makefile/1.4/Mon Jan 5 00:06:08 2004// /SConscript/1.17/Wed Oct 18 05:45:47 2006// -D/extern//// -D/intern//// +D diff -Naur /home/olabomba/blender/source/blender/render/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/blender/render/CVS/Entries.Log --- /home/olabomba/blender/source/blender/render/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/render/CVS/Entries.Log 2006-12-06 21:37:07.000000000 +0100 @@ -0,0 +1,2 @@ +A D/extern//// +A D/intern//// diff -Naur /home/olabomba/blender/source/blender/render/extern/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/render/extern/CVS/Entries --- /home/olabomba/blender/source/blender/render/extern/CVS/Entries 2006-12-04 19:26:21.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/render/extern/CVS/Entries 2006-12-06 21:37:07.000000000 +0100 @@ -1 +1 @@ -D/include//// +D diff -Naur /home/olabomba/blender/source/blender/render/extern/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/blender/render/extern/CVS/Entries.Log --- /home/olabomba/blender/source/blender/render/extern/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/render/extern/CVS/Entries.Log 2006-12-06 21:37:07.000000000 +0100 @@ -0,0 +1 @@ +A D/include//// diff -Naur /home/olabomba/blender/source/blender/render/extern/include/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/render/extern/include/CVS/Entries --- /home/olabomba/blender/source/blender/render/extern/include/CVS/Entries 2006-12-06 21:32:51.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/render/extern/include/CVS/Entries 2006-12-06 21:37:07.000000000 +0100 @@ -1,4 +1,4 @@ /RE_pipeline.h/1.21/Wed Nov 29 19:31:44 2006// /RE_render_ext.h/1.4/Mon Jul 31 15:53:03 2006// -/RE_shader_ext.h/1.17/Wed Dec 6 20:32:51 2006// +/RE_shader_ext.h/1.17/Wed Dec 6 09:56:20 2006// D diff -Naur /home/olabomba/blender/source/blender/render/intern/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/render/intern/CVS/Entries --- /home/olabomba/blender/source/blender/render/intern/CVS/Entries 2006-12-04 19:26:21.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/render/intern/CVS/Entries 2006-12-06 21:37:07.000000000 +0100 @@ -1,3 +1,2 @@ /Makefile/1.2/Sun Oct 13 15:57:08 2002// -D/include//// -D/source//// +D diff -Naur /home/olabomba/blender/source/blender/render/intern/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/blender/render/intern/CVS/Entries.Log --- /home/olabomba/blender/source/blender/render/intern/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/render/intern/CVS/Entries.Log 2006-12-06 21:37:07.000000000 +0100 @@ -0,0 +1,2 @@ +A D/include//// +A D/source//// diff -Naur /home/olabomba/blender/source/blender/render/intern/include/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/render/intern/include/CVS/Entries --- /home/olabomba/blender/source/blender/render/intern/include/CVS/Entries 2006-12-06 21:32:51.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/render/intern/include/CVS/Entries 2006-12-06 21:37:07.000000000 +0100 @@ -1,14 +1,14 @@ /envmap.h/1.7/Sat Jan 28 18:33:16 2006// /gammaCorrectionTables.h/1.7/Sat Jan 28 18:33:16 2006// /initrender.h/1.6/Sat Jan 28 18:33:16 2006// +/pixelblending.h/1.11/Tue Dec 5 16:42:59 2006// +/pixelshading.h/1.11/Tue Dec 5 16:42:59 2006// +/render_types.h/1.23/Tue Dec 5 16:42:59 2006// +/rendercore.h/1.30/Tue Dec 5 16:42:59 2006// /renderdatabase.h/1.7/Sun Nov 12 16:24:59 2006// /renderpipeline.h/1.6/Mon Feb 27 12:39:35 2006// /shadbuf.h/1.10/Sat Oct 14 10:21:19 2006// -/texture.h/1.12/Sun Jul 2 07:59:42 2006// -/pixelblending.h/1.11/Wed Dec 6 20:32:51 2006// -/pixelshading.h/1.11/Wed Dec 6 20:32:51 2006// -/render_types.h/1.23/Wed Dec 6 20:32:51 2006// -/rendercore.h/1.30/Wed Dec 6 20:32:51 2006// /shading.h/1.1/Tue Dec 5 16:42:59 2006// -/zbuf.h/1.16/Wed Dec 6 20:32:51 2006// +/texture.h/1.12/Sun Jul 2 07:59:42 2006// +/zbuf.h/1.16/Tue Dec 5 16:42:59 2006// D diff -Naur /home/olabomba/blender/source/blender/render/intern/source/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/render/intern/source/CVS/Entries --- /home/olabomba/blender/source/blender/render/intern/source/CVS/Entries 2006-12-06 21:32:51.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/render/intern/source/CVS/Entries 2006-12-06 21:37:07.000000000 +0100 @@ -1,18 +1,18 @@ /Makefile/1.11/Tue Feb 21 21:24:06 2006// +/convertblender.c/1.73/Tue Dec 5 17:42:02 2006// /envmap.c/1.36/Fri Nov 17 18:17:56 2006// /gammaCorrectionTables.c/1.6/Sat Jan 28 18:33:16 2006// /imagetexture.c/1.23/Sat Sep 30 21:29:47 2006// +/initrender.c/1.85/Tue Dec 5 16:43:00 2006// +/pipeline.c/1.100/Tue Dec 5 16:43:00 2006// +/pixelblending.c/1.17/Tue Dec 5 16:43:00 2006// +/pixelshading.c/1.43/Tue Dec 5 16:43:00 2006// +/ray.c/1.86/Tue Dec 5 16:43:00 2006// +/rendercore.c/1.191/Tue Dec 5 18:02:43 2006// /renderdatabase.c/1.19/Sun Nov 12 11:41:43 2006// /shadbuf.c/1.28/Fri Nov 24 15:11:29 2006// -/convertblender.c/1.73/Wed Dec 6 20:32:51 2006// -/initrender.c/1.85/Wed Dec 6 20:32:51 2006// -/pipeline.c/1.100/Wed Dec 6 20:32:51 2006// -/pixelblending.c/1.17/Wed Dec 6 20:32:51 2006// -/pixelshading.c/1.43/Wed Dec 6 20:32:51 2006// -/ray.c/1.86/Wed Dec 6 20:32:51 2006// -/rendercore.c/1.191/Wed Dec 6 20:32:51 2006// /shadeinput.c/1.6/Wed Dec 6 15:48:40 2006// /shadeoutput.c/1.3/Wed Dec 6 11:17:34 2006// -/texture.c/1.76/Wed Dec 6 20:32:51 2006// -/zbuf.c/1.74/Wed Dec 6 20:32:51 2006// +/texture.c/1.76/Tue Dec 5 16:43:01 2006// +/zbuf.c/1.74/Tue Dec 5 16:43:01 2006// D diff -Naur /home/olabomba/blender/source/blender/renderconverter/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/renderconverter/CVS/Entries --- /home/olabomba/blender/source/blender/renderconverter/CVS/Entries 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/renderconverter/CVS/Entries 2006-12-06 21:37:07.000000000 +0100 @@ -0,0 +1 @@ +D diff -Naur /home/olabomba/blender/source/blender/renderconverter/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/blender/renderconverter/CVS/Entries.Log --- /home/olabomba/blender/source/blender/renderconverter/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/renderconverter/CVS/Entries.Log 2006-12-06 21:37:07.000000000 +0100 @@ -0,0 +1 @@ +A D/intern//// diff -Naur /home/olabomba/blender/source/blender/renderconverter/CVS/Repository /home/olabomba/blender-propre/blender/source/blender/renderconverter/CVS/Repository --- /home/olabomba/blender/source/blender/renderconverter/CVS/Repository 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/renderconverter/CVS/Repository 2006-12-06 21:37:07.000000000 +0100 @@ -0,0 +1 @@ +blender/source/blender/renderconverter diff -Naur /home/olabomba/blender/source/blender/renderconverter/CVS/Root /home/olabomba/blender-propre/blender/source/blender/renderconverter/CVS/Root --- /home/olabomba/blender/source/blender/renderconverter/CVS/Root 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/renderconverter/CVS/Root 2006-12-06 21:37:07.000000000 +0100 @@ -0,0 +1 @@ +:pserver:anonymous@cvs.blender.org:/cvsroot/bf-blender diff -Naur /home/olabomba/blender/source/blender/renderconverter/intern/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/renderconverter/intern/CVS/Entries --- /home/olabomba/blender/source/blender/renderconverter/intern/CVS/Entries 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/renderconverter/intern/CVS/Entries 2006-12-06 21:37:07.000000000 +0100 @@ -0,0 +1 @@ +D diff -Naur /home/olabomba/blender/source/blender/renderconverter/intern/CVS/Repository /home/olabomba/blender-propre/blender/source/blender/renderconverter/intern/CVS/Repository --- /home/olabomba/blender/source/blender/renderconverter/intern/CVS/Repository 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/renderconverter/intern/CVS/Repository 2006-12-06 21:37:07.000000000 +0100 @@ -0,0 +1 @@ +blender/source/blender/renderconverter/intern diff -Naur /home/olabomba/blender/source/blender/renderconverter/intern/CVS/Root /home/olabomba/blender-propre/blender/source/blender/renderconverter/intern/CVS/Root --- /home/olabomba/blender/source/blender/renderconverter/intern/CVS/Root 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/renderconverter/intern/CVS/Root 2006-12-06 21:37:07.000000000 +0100 @@ -0,0 +1 @@ +:pserver:anonymous@cvs.blender.org:/cvsroot/bf-blender diff -Naur /home/olabomba/blender/source/blender/sign/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/sign/CVS/Entries --- /home/olabomba/blender/source/blender/sign/CVS/Entries 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/sign/CVS/Entries 2006-12-06 21:37:07.000000000 +0100 @@ -0,0 +1 @@ +D diff -Naur /home/olabomba/blender/source/blender/sign/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/blender/sign/CVS/Entries.Log --- /home/olabomba/blender/source/blender/sign/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/sign/CVS/Entries.Log 2006-12-06 21:37:07.000000000 +0100 @@ -0,0 +1 @@ +A D/intern//// diff -Naur /home/olabomba/blender/source/blender/sign/CVS/Repository /home/olabomba/blender-propre/blender/source/blender/sign/CVS/Repository --- /home/olabomba/blender/source/blender/sign/CVS/Repository 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/sign/CVS/Repository 2006-12-06 21:37:07.000000000 +0100 @@ -0,0 +1 @@ +blender/source/blender/sign diff -Naur /home/olabomba/blender/source/blender/sign/CVS/Root /home/olabomba/blender-propre/blender/source/blender/sign/CVS/Root --- /home/olabomba/blender/source/blender/sign/CVS/Root 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/sign/CVS/Root 2006-12-06 21:37:07.000000000 +0100 @@ -0,0 +1 @@ +:pserver:anonymous@cvs.blender.org:/cvsroot/bf-blender diff -Naur /home/olabomba/blender/source/blender/sign/intern/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/sign/intern/CVS/Entries --- /home/olabomba/blender/source/blender/sign/intern/CVS/Entries 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/sign/intern/CVS/Entries 2006-12-06 21:37:07.000000000 +0100 @@ -0,0 +1 @@ +D diff -Naur /home/olabomba/blender/source/blender/sign/intern/CVS/Repository /home/olabomba/blender-propre/blender/source/blender/sign/intern/CVS/Repository --- /home/olabomba/blender/source/blender/sign/intern/CVS/Repository 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/sign/intern/CVS/Repository 2006-12-06 21:37:07.000000000 +0100 @@ -0,0 +1 @@ +blender/source/blender/sign/intern diff -Naur /home/olabomba/blender/source/blender/sign/intern/CVS/Root /home/olabomba/blender-propre/blender/source/blender/sign/intern/CVS/Root --- /home/olabomba/blender/source/blender/sign/intern/CVS/Root 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/sign/intern/CVS/Root 2006-12-06 21:37:07.000000000 +0100 @@ -0,0 +1 @@ +:pserver:anonymous@cvs.blender.org:/cvsroot/bf-blender diff -Naur /home/olabomba/blender/source/blender/src/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/src/CVS/Entries --- /home/olabomba/blender/source/blender/src/CVS/Entries 2006-12-06 21:32:52.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/src/CVS/Entries 2006-12-06 21:37:20.000000000 +0100 @@ -2,6 +2,7 @@ /.obj.Makefile/1.1.1.1/Sat Oct 12 11:37:42 2002// /B.blend.c/1.17/Mon Jun 12 01:45:38 2006// /Bfont.c/1.3/Mon Nov 25 12:02:05 2002// +/CMakeLists.txt/1.4/Wed Dec 6 09:24:13 2006// /Makefile/1.31/Thu Nov 9 15:45:19 2006// /SConscript/1.42/Tue Nov 28 21:12:31 2006// /bfont.ttf.c/1.2/Thu Oct 12 02:58:32 2006// @@ -9,14 +10,25 @@ /booleanops.c/1.28/Mon Nov 20 04:27:58 2006// /booleanops_mesh.c/1.8/Wed Nov 8 20:14:04 2006// /butspace.c/1.48/Wed Nov 29 21:59:19 2006// +/buttons_editing.c/1.311/Wed Dec 6 12:34:26 2006// /buttons_logic.c/1.40/Fri Dec 1 01:04:27 2006// +/buttons_object.c/1.203/Tue Dec 5 16:44:54 2006// +/buttons_scene.c/1.153/Tue Dec 5 16:44:54 2006// /buttons_script.c/1.18/Wed Sep 27 06:40:10 2006// +/buttons_shading.c/1.217/Wed Dec 6 17:56:38 2006// /cmap.tga.c/1.3/Mon Nov 25 12:02:05 2002// /cmovie.tga.c/1.3/Mon Nov 25 12:02:05 2002// /cursors.c/1.10/Thu Jun 15 14:22:59 2006// +/drawaction.c/1.42/Wed Dec 6 03:04:34 2006// /drawarmature.c/1.38/Sat Nov 11 18:17:53 2006// /drawdeps.c/1.5/Sat Sep 24 16:02:56 2005// +/drawimage.c/1.84/Tue Dec 5 17:42:02 2006// /drawimasel.c/1.21/Wed Mar 29 16:47:56 2006// +/drawipo.c/1.89/Wed Dec 6 14:37:52 2006// +/drawmesh.c/1.58/Tue Dec 5 17:42:02 2006// +/drawnla.c/1.36/Wed Dec 6 03:38:28 2006// +/drawnode.c/1.48/Tue Dec 5 16:44:57 2006// +/drawobject.c/1.311/Tue Dec 5 17:42:02 2006// /drawoops.c/1.29/Thu Jun 15 19:29:25 2006// /drawscene.c/1.16/Sun Nov 26 23:14:52 2006// /drawscript.c/1.9/Fri Jul 7 18:39:51 2006// @@ -24,28 +36,39 @@ /drawsound.c/1.17/Thu Nov 30 01:57:14 2006// /drawtext.c/1.66/Mon Nov 27 09:33:43 2006// /drawtime.c/1.16/Thu Nov 30 01:57:14 2006// +/drawview.c/1.249/Tue Dec 5 23:49:58 2006// /edit.c/1.94/Wed Nov 29 21:59:19 2006// +/editaction.c/1.99/Wed Dec 6 02:37:32 2006// /editarmature.c/1.116/Tue Nov 21 10:52:11 2006// /editconstraint.c/1.42/Thu Nov 30 15:54:21 2006// /editcurve.c/1.54/Tue Nov 7 11:24:11 2006// /editdeform.c/1.33/Fri Dec 1 19:52:04 2006// +/editface.c/1.76/Tue Dec 5 17:42:02 2006// /editfont.c/1.38/Thu Sep 28 01:55:43 2006// /editgroup.c/1.13/Fri Oct 13 00:27:49 2006// /editimasel.c/1.20/Sat Nov 25 14:53:30 2006// /editipo.c/1.112/Thu Nov 30 01:57:14 2006// /editipo_lib.c/1.4/Thu Jun 15 04:13:25 2006// +/editipo_mods.c/1.14/Tue Dec 5 05:25:34 2006// /editkey.c/1.34/Fri Nov 3 12:23:04 2006// /editlattice.c/1.19/Sun Sep 3 12:16:14 2006// /editmball.c/1.25/Tue Nov 7 11:24:11 2006// +/editmesh.c/1.189/Sun Dec 3 22:17:45 2006// /editmesh_add.c/1.60/Wed Nov 15 22:24:05 2006// /editmesh_lib.c/1.68/Mon Nov 20 04:27:59 2006// /editmesh_loop.c/1.51/Wed Nov 15 10:02:57 2006// +/editmesh_mods.c/1.118/Wed Dec 6 11:17:34 2006// +/editmesh_tools.c/1.174/Wed Dec 6 11:17:34 2006// +/editmode_undo.c/1.19/Wed Dec 6 06:47:59 2006// /editnla.c/1.66/Thu Nov 30 05:29:05 2006// +/editnode.c/1.46/Tue Dec 5 21:33:56 2006// +/editobject.c/1.348/Tue Dec 5 17:42:03 2006// /editoops.c/1.21/Thu Jan 19 01:15:17 2006// /editscreen.c/1.142/Thu Nov 30 02:35:12 2006// /editseq.c/1.50/Fri Nov 17 17:50:43 2006// /editsima.c/1.55/Mon Nov 27 13:00:50 2006// /editsound.c/1.31/Thu Nov 30 05:29:05 2006// +/edittime.c/1.24/Tue Dec 5 05:38:33 2006// /editview.c/1.118/Mon Nov 27 21:52:34 2006// /eventdebug.c/1.7/Wed Mar 9 19:45:56 2005// /filesel.c/1.86/Fri Dec 1 10:12:41 2006// @@ -53,6 +76,7 @@ /ghostwinlay.c/1.45/Thu Aug 3 12:25:32 2006// /glutil.c/1.27/Tue Nov 7 16:43:44 2006// /hddaudio.c/1.8/Sat Jun 24 20:48:57 2006// +/header_action.c/1.55/Tue Dec 5 05:25:34 2006// /header_buttonswin.c/1.44/Mon Nov 6 01:08:24 2006// /header_filesel.c/1.26/Fri Dec 1 10:12:41 2006// /header_image.c/1.65/Wed Nov 22 11:25:39 2006// @@ -60,15 +84,18 @@ /header_info.c/1.98/Sun Nov 19 14:12:55 2006// /header_ipo.c/1.56/Thu Nov 30 05:29:05 2006// /header_nla.c/1.25/Thu Nov 30 05:29:05 2006// +/header_node.c/1.14/Tue Dec 5 21:33:56 2006// /header_oops.c/1.29/Mon Nov 20 05:12:57 2006// /header_script.c/1.18/Sat Jan 28 18:33:18 2006// /header_seq.c/1.33/Thu Nov 16 21:40:30 2006// /header_sound.c/1.22/Thu Nov 30 05:29:05 2006// /header_text.c/1.33/Tue May 16 22:54:55 2006// /header_time.c/1.19/Thu Nov 30 05:29:05 2006// +/header_view3d.c/1.208/Mon Dec 4 21:28:05 2006// /headerbuttons.c/1.135/Mon Nov 27 13:00:50 2006// /imagepaint.c/1.16/Sun Nov 26 23:14:52 2006// /imasel.c/1.9/Sat Jan 28 18:33:20 2006// +/interface.c/1.249/Sun Dec 3 18:59:13 2006// /interface_draw.c/1.64/Fri Nov 24 16:56:02 2006// /interface_icons.c/1.16/Mon Nov 20 05:12:57 2006// /interface_panel.c/1.40/Thu Nov 16 20:55:11 2006// @@ -76,12 +103,16 @@ /language.c/1.36/Sun Jul 2 13:08:27 2006// /lorem.c/1.1/Fri Jun 17 21:05:38 2005// /mainqueue.c/1.8/Sun Jan 11 11:56:08 2004// +/meshtools.c/1.42/Wed Dec 6 12:34:26 2006// +/multires.c/1.23/Wed Dec 6 01:29:15 2006// /mywindow.c/1.27/Sat Jan 28 18:33:21 2006// /oops.c/1.11/Sat Sep 24 13:49:55 2005// +/outliner.c/1.89/Wed Dec 6 14:37:52 2006// /parametrizer.c/1.13/Wed Sep 27 19:45:38 2006// /parametrizer.h/1.3/Sun Feb 5 14:12:45 2006// /parametrizer_intern.h/1.6/Sat Jun 10 20:35:54 2006// /playanim.c/1.14/Mon Jul 10 13:50:46 2006// +/poseobject.c/1.51/Tue Dec 5 17:42:03 2006// /preview.blend.c/1.11/Tue Jul 4 20:56:53 2006// /previewrender.c/1.86/Mon Jul 31 19:23:42 2006// /renderwin.c/1.113/Tue Nov 7 11:24:11 2006// @@ -89,66 +120,34 @@ /retopo.c/1.3/Sat Nov 11 23:23:15 2006// /scrarea.c/1.3/Mon Nov 25 12:02:05 2002// /screendump.c/1.14/Sun Jul 9 13:00:41 2006// +/sculptmode.c/1.23/Wed Dec 6 02:28:15 2006// /seqaudio.c/1.24/Sat Jun 24 20:48:57 2006// +/seqeffects.c/1.11/Mon Dec 4 20:00:17 2006// /seqscopes.c/1.3/Thu May 4 13:13:49 2006// /sequence.c/1.62/Wed Nov 22 14:43:59 2006// +/space.c/1.420/Wed Dec 6 14:37:52 2006// /spacetypes.c/1.13/Tue Nov 7 11:24:11 2006// /splash.jpg.c/1.28/Sun Jul 23 15:20:01 2006// /swapbuffers.c/1.14/Sun Apr 17 18:00:33 2005// +/toets.c/1.89/Wed Dec 6 02:28:15 2006// /toolbox.c/1.149/Tue Nov 28 10:16:24 2006// +/transform.c/1.147/Sun Dec 3 19:54:26 2006// /transform_constraints.c/1.71/Fri Aug 11 00:26:35 2006// +/transform_conversions.c/1.90/Wed Dec 6 04:41:14 2006// /transform_generics.c/1.95/Tue Nov 14 15:27:43 2006// /transform_manipulator.c/1.62/Sat Sep 16 12:03:35 2006// /transform_numinput.c/1.14/Sat Jul 8 14:24:57 2006// +/transform_snap.c/1.4/Sun Dec 3 19:54:27 2006// /unwrapper.c/1.18/Mon Nov 20 04:28:00 2006// /usiblender.c/1.131/Wed Nov 8 12:46:41 2006// /verse_common.c/1.3/Mon Oct 16 15:28:57 2006// /verse_image.c/1.3/Tue Nov 7 11:10:37 2006// /verse_mesh.c/1.4/Mon Nov 20 04:28:00 2006// +/verse_object.c/1.6/Tue Dec 5 17:42:03 2006// /view.c/1.76/Wed Nov 29 12:44:48 2006// +/vpaint.c/1.80/Tue Dec 5 17:42:03 2006// /winlay.h/1.12/Thu Aug 3 12:25:32 2006// /writeavicodec.c/1.20/Wed May 17 11:31:12 2006// /writeimage.c/1.26/Sat Jul 8 13:18:57 2006// /writemovie.c/1.10/Mon Feb 27 12:39:36 2006// -D/cre//// -D/pub//// -/editmesh.c/1.189/Mon Dec 4 18:26:26 2006// -/interface.c/1.249/Mon Dec 4 18:26:26 2006// -/transform.c/1.147/Mon Dec 4 18:26:26 2006// -/transform_snap.c/1.4/Mon Dec 4 18:26:26 2006// -/seqeffects.c/1.11/Mon Dec 4 20:56:55 2006// -/CMakeLists.txt/1.4/Wed Dec 6 20:32:51 2006// -/buttons_editing.c/1.311/Wed Dec 6 20:32:51 2006// -/buttons_object.c/1.203/Wed Dec 6 20:32:51 2006// -/buttons_scene.c/1.153/Wed Dec 6 20:32:51 2006// -/buttons_shading.c/1.217/Wed Dec 6 20:32:51 2006// -/drawaction.c/1.42/Wed Dec 6 20:32:51 2006// -/drawimage.c/1.84/Wed Dec 6 20:32:51 2006// -/drawipo.c/1.89/Wed Dec 6 20:32:51 2006// -/drawmesh.c/1.58/Wed Dec 6 20:32:51 2006// -/drawnla.c/1.36/Wed Dec 6 20:32:51 2006// -/drawnode.c/1.48/Wed Dec 6 20:32:51 2006// -/drawobject.c/1.311/Wed Dec 6 20:32:51 2006// -/drawview.c/1.249/Wed Dec 6 20:32:52 2006// -/editaction.c/1.99/Wed Dec 6 20:32:52 2006// -/editface.c/1.76/Wed Dec 6 20:32:52 2006// -/editipo_mods.c/1.14/Wed Dec 6 20:32:52 2006// -/editmesh_mods.c/1.118/Wed Dec 6 20:32:52 2006// -/editmesh_tools.c/1.174/Wed Dec 6 20:32:52 2006// -/editmode_undo.c/1.19/Wed Dec 6 20:32:52 2006// -/editnode.c/1.46/Wed Dec 6 20:32:52 2006// -/editobject.c/1.348/Wed Dec 6 20:32:52 2006// -/edittime.c/1.24/Wed Dec 6 20:32:52 2006// -/header_action.c/1.55/Wed Dec 6 20:32:52 2006// -/header_node.c/1.14/Wed Dec 6 20:32:52 2006// -/header_view3d.c/1.208/Wed Dec 6 20:32:52 2006// -/meshtools.c/1.42/Wed Dec 6 20:32:52 2006// -/multires.c/1.23/Wed Dec 6 20:32:52 2006// -/outliner.c/1.89/Wed Dec 6 20:32:52 2006// -/poseobject.c/1.51/Wed Dec 6 20:32:52 2006// -/sculptmode.c/1.23/Wed Dec 6 20:32:52 2006// -/space.c/1.420/Wed Dec 6 20:32:52 2006// -/toets.c/1.89/Wed Dec 6 20:32:52 2006// -/transform_conversions.c/1.90/Wed Dec 6 20:32:52 2006// -/verse_object.c/1.6/Wed Dec 6 20:32:52 2006// -/vpaint.c/1.80/Wed Dec 6 20:32:52 2006// +D diff -Naur /home/olabomba/blender/source/blender/src/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/blender/src/CVS/Entries.Log --- /home/olabomba/blender/source/blender/src/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/src/CVS/Entries.Log 2006-12-06 21:37:20.000000000 +0100 @@ -0,0 +1,2 @@ +A D/cre//// +A D/pub//// diff -Naur /home/olabomba/blender/source/blender/src/drawseq.c /home/olabomba/blender-propre/blender/source/blender/src/drawseq.c --- /home/olabomba/blender/source/blender/src/drawseq.c 2006-12-05 21:39:27.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/src/drawseq.c 2006-11-11 23:35:40.000000000 +0100 @@ -56,7 +56,7 @@ #include "BKE_plugin_types.h" #include "BKE_scene.h" #include "BKE_utildefines.h" - + #include "BIF_cursors.h" #include "BIF_gl.h" #include "BIF_graphics.h" @@ -115,7 +115,6 @@ else if(seq->type==SEQ_ALPHAUNDER) return "Alpha Under"; else if(seq->type==SEQ_OVERDROP) return "Over Drop"; else if(seq->type==SEQ_WIPE) return "Wipe"; - else if(seq->type==SEQ_PUSH) return "Push"; else if(seq->type==SEQ_GLOW) return "Glow"; else if(seq->type==SEQ_TRANSFORM) return "Transform"; else if(seq->type==SEQ_COLOR) return "Color"; @@ -157,7 +156,7 @@ break; case SEQ_SCENE: BIF_GetThemeColor3ubv(TH_SEQ_SCENE, col); - + if(seq->scene==G.scene) { BIF_GetColorPtrBlendShade3ubv(col, col, col, 1.0, 20); } @@ -167,23 +166,21 @@ case SEQ_CROSS: case SEQ_GAMCROSS: case SEQ_WIPE: - case SEQ_PUSH: /* slightly offset hue to distinguish different effects */ BIF_GetThemeColor3ubv(TH_SEQ_TRANSITION, col); - - rgb[0] = col[0]/255.0; rgb[1] = col[1]/255.0; rgb[2] = col[2]/255.0; + + rgb[0] = col[0]/255.0; rgb[1] = col[1]/255.0; rgb[2] = col[2]/255.0; rgb_to_hsv(rgb[0], rgb[1], rgb[2], hsv, hsv+1, hsv+2); - + if (seq->type == SEQ_CROSS) hsv[0]+= 0.04; if (seq->type == SEQ_GAMCROSS) hsv[0]+= 0.08; if (seq->type == SEQ_WIPE) hsv[0]+= 0.12; - if (seq->type == SEQ_PUSH) hsv[0]+= 0.16; - + if(hsv[0]>1.0) hsv[0]-=1.0; else if(hsv[0]<0.0) hsv[0]+= 1.0; hsv_to_rgb(hsv[0], hsv[1], hsv[2], rgb, rgb+1, rgb+2); - col[0] = (char)(rgb[0]*255); col[1] = (char)(rgb[1]*255); col[2] = (char)(rgb[2]*255); + col[0] = (char)(rgb[0]*255); col[1] = (char)(rgb[1]*255); col[2] = (char)(rgb[2]*255); break; - + /* effects */ case SEQ_TRANSFORM: case SEQ_SPEED: @@ -196,10 +193,10 @@ case SEQ_GLOW: /* slightly offset hue to distinguish different effects */ BIF_GetThemeColor3ubv(TH_SEQ_EFFECT, col); - - rgb[0] = col[0]/255.0; rgb[1] = col[1]/255.0; rgb[2] = col[2]/255.0; + + rgb[0] = col[0]/255.0; rgb[1] = col[1]/255.0; rgb[2] = col[2]/255.0; rgb_to_hsv(rgb[0], rgb[1], rgb[2], hsv, hsv+1, hsv+2); - + if (seq->type == SEQ_ADD) hsv[0]+= 0.04; if (seq->type == SEQ_SUB) hsv[0]+= 0.08; if (seq->type == SEQ_MUL) hsv[0]+= 0.12; @@ -211,7 +208,7 @@ if(hsv[0]>1.0) hsv[0]-=1.0; else if(hsv[0]<0.0) hsv[0]+= 1.0; hsv_to_rgb(hsv[0], hsv[1], hsv[2], rgb, rgb+1, rgb+2); - col[0] = (char)(rgb[0]*255); col[1] = (char)(rgb[1]*255); col[2] = (char)(rgb[2]*255); + col[0] = (char)(rgb[0]*255); col[1] = (char)(rgb[1]*255); col[2] = (char)(rgb[2]*255); break; case SEQ_COLOR: if (colvars->col) { @@ -242,7 +239,7 @@ float dx; int nr; char col[3]; - + nr= 0; WHILE_SEQ(&seqm->seqbase) { nr++; @@ -253,16 +250,16 @@ WHILE_SEQ(&seqm->seqbase) { get_seq_color3ubv(seq, col); - + glColor3ubv(col); glRectf(x1, y1, x1+0.9*dx, y2); - + BIF_GetColorPtrBlendShade3ubv(col, col, col, 0.0, -30); glColor3ubv(col); fdrawbox(x1, y1, x1+0.9*dx, y2); - + x1+= dx; } END_SEQ @@ -275,7 +272,7 @@ x2 the end x value, same for y1 and y2 winx is the zoom level. */ - + float f, /* floating point value used to store the X draw location for the wave lines when openGL drawing*/ midy, /* fast access to the middle location (y1+y2)/2 */ @@ -286,7 +283,7 @@ feofs_sofs, /* */ sound_width, /* convenience: x2-x1 */ wavemulti; /* scale the samples by this value when GL_LINE drawing so it renders the right height */ - + int offset, /* initial offset value for the wave drawing */ offset_next, /* when in the wave drawing loop this value is the samples intil the next vert */ @@ -299,27 +296,27 @@ the wave is evaluated for min and max values used to draw the wave, however this is slow ehrn zoomed out so when the sample step is above 1 (the larger the further out the zoom is) so not evaluate all samples, only some. */ - + signed short* s; bSound *sound; Uint8 *stream; - + audio_makestream(seq->sound); if(seq->sound==NULL || seq->sound->stream==NULL) return; - + if (seq->flag & SEQ_MUTE) glColor3ub(0x70, 0x80, 0x80); else glColor3ub(0x70, 0xc0, 0xc0); - + sofs = ((int)( (((float)(seq->startdisp-seq->start))/(float)G.scene->r.frs_sec)*(float)G.scene->audio.mixrate*4.0 )) & (~3); eofs = ((int)( (((float)(seq->enddisp-seq->start))/(float)G.scene->r.frs_sec)*(float)G.scene->audio.mixrate*4.0 )) & (~3); - + /* clip the drawing area to the screen bounds to save time */ sample_step= (G.v2d->cur.xmax - G.v2d->cur.xmin)/winx; clipxmin= MAX2(x1, G.v2d->cur.xmin); clipxmax= MIN2(x2, G.v2d->cur.xmax); - + if (sample_step > 1) subsample_step= ((int)(subsample_step*sample_step*8)) & (~3); - + /* for speedy access */ midy = (y1+y2)/2; fsofs= (float)sofs; @@ -329,28 +326,28 @@ stream = sound->stream; wavemulti = (y2-y1)/196605; /*y2-y1 is the height*/ wavesample=0; - + /* we need to get the starting offset value, excuse the duplicate code */ f=clipxmin; offset= (int) (fsofs + ((f-x1)/sound_width) * feofs_sofs) & (~3); - + /* start the loop, draw a line per sample_step -sample_step is about 1 line drawn per pixel */ glBegin(GL_LINES); for (f=x1+sample_step; f<=clipxmax; f+=sample_step) { - + offset_next = (int) (fsofs + ((f-x1)/sound_width) * feofs_sofs) & (~3); if (f > G.v2d->cur.xmin) { /* if this is close to the last sample just exit */ if (offset_next >= sound->streamlen) break; - + wavesamplemin = 131070; wavesamplemax = -131070; - + /*find with high and low of the waveform for this draw, evaluate small samples to find this range */ while (offset < offset_next) { s = (signed short*)(stream+offset); - + wavesample = s[0]*2 + s[1]; if (wavesamplemin>wavesample) wavesamplemin=wavesample; @@ -364,7 +361,7 @@ } else { while (offset < offset_next) offset+=subsample_step; } - + offset=offset_next; } glEnd(); @@ -381,68 +378,68 @@ char str[120]; unsigned int whichsel=0; View2D *v2d; - + x1= seq->startdisp; x2= seq->enddisp; - + y1= seq->machine+SEQ_STRIP_OFSBOTTOM; y2= seq->machine+SEQ_STRIP_OFSTOP; - + v2d = &sseq->v2d; pixelx = (v2d->cur.xmax - v2d->cur.xmin)/(v2d->mask.xmax - v2d->mask.xmin); - + /* clamp handles to defined size in pixel space */ handsize = seq->handsize; minhandle = 7; maxhandle = 28; CLAMP(handsize, minhandle*pixelx, maxhandle*pixelx); - + /* set up co-ordinates/dimensions for either left or right handle */ - if (direction == SEQ_LEFTHANDLE) { + if (direction == SEQ_LEFTHANDLE) { rx1 = x1; rx2 = x1+handsize*0.75; - + v1[0]= x1+handsize/4; v1[1]= y1+( ((y1+y2)/2.0 - y1)/2); v2[0]= x1+handsize/4; v2[1]= y2-( ((y1+y2)/2.0 - y1)/2); v3[0]= v2[0] + handsize/4; v3[1]= (y1+y2)/2.0; - + whichsel = SEQ_LEFTSEL; - } else if (direction == SEQ_RIGHTHANDLE) { + } else if (direction == SEQ_RIGHTHANDLE) { rx1 = x2-handsize*0.75; rx2 = x2; - + v1[0]= x2-handsize/4; v1[1]= y1+( ((y1+y2)/2.0 - y1)/2); v2[0]= x2-handsize/4; v2[1]= y2-( ((y1+y2)/2.0 - y1)/2); v3[0]= v2[0] - handsize/4; v3[1]= (y1+y2)/2.0; - + whichsel = SEQ_RIGHTSEL; } - + /* draw! */ - if(seq->type < SEQ_EFFECT || + if(seq->type < SEQ_EFFECT || get_sequence_effect_num_inputs(seq->type) == 0) { glEnable( GL_BLEND ); - + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - + if(seq->flag & whichsel) glColor4ub(0, 0, 0, 80); else if (seq->flag & SELECT) glColor4ub(255, 255, 255, 30); else glColor4ub(0, 0, 0, 22); - + glRectf(rx1, y1, rx2, y2); - + if(seq->flag & whichsel) glColor4ub(255, 255, 255, 200); else glColor4ub(0, 0, 0, 50); - + glEnable( GL_POLYGON_SMOOTH ); glBegin(GL_TRIANGLES); glVertex2fv(v1); glVertex2fv(v2); glVertex2fv(v3); glEnd(); - + glDisable( GL_POLYGON_SMOOTH ); glDisable( GL_BLEND ); } - + if(G.moving || (seq->flag & whichsel)) { cpack(0xFFFFFF); if (direction == SEQ_LEFTHANDLE) { @@ -453,7 +450,7 @@ glRasterPos3f((x2-BMF_GetStringWidth(G.font, str)*pixelx), y2+0.05, 0.0); } BMF_DrawString(G.font, str); - } + } } static void draw_seq_extensions(Sequence *seq, SpaceSeq *sseq) @@ -461,26 +458,26 @@ float x1, x2, y1, y2, pixely, a; char col[3], blendcol[3]; View2D *v2d; - + if(seq->type >= SEQ_EFFECT) return; x1= seq->startdisp; x2= seq->enddisp; - + y1= seq->machine+SEQ_STRIP_OFSBOTTOM; y2= seq->machine+SEQ_STRIP_OFSTOP; - + v2d = &sseq->v2d; pixely = (v2d->cur.ymax - v2d->cur.ymin)/(v2d->mask.ymax - v2d->mask.ymin); - + blendcol[0] = blendcol[1] = blendcol[2] = 120; if(seq->startofs) { glEnable( GL_BLEND ); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - + get_seq_color3ubv(seq, col); - + if (seq->flag & SELECT) { BIF_GetColorPtrBlendShade3ubv(col, blendcol, col, 0.3, -40); glColor4ub(col[0], col[1], col[2], 170); @@ -488,22 +485,22 @@ BIF_GetColorPtrBlendShade3ubv(col, blendcol, col, 0.6, 0); glColor4ub(col[0], col[1], col[2], 110); } - + glRectf((float)(seq->start), y1-SEQ_STRIP_OFSBOTTOM, x1, y1); - + if (seq->flag & SELECT) glColor4ub(col[0], col[1], col[2], 255); else glColor4ub(col[0], col[1], col[2], 160); fdrawbox((float)(seq->start), y1-SEQ_STRIP_OFSBOTTOM, x1, y1); //outline - + glDisable( GL_BLEND ); } if(seq->endofs) { glEnable( GL_BLEND ); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - + get_seq_color3ubv(seq, col); - + if (seq->flag & SELECT) { BIF_GetColorPtrBlendShade3ubv(col, blendcol, col, 0.3, -40); glColor4ub(col[0], col[1], col[2], 170); @@ -511,30 +508,30 @@ BIF_GetColorPtrBlendShade3ubv(col, blendcol, col, 0.6, 0); glColor4ub(col[0], col[1], col[2], 110); } - + glRectf(x2, y2, (float)(seq->start+seq->len), y2+SEQ_STRIP_OFSBOTTOM); - + if (seq->flag & SELECT) glColor4ub(col[0], col[1], col[2], 255); else glColor4ub(col[0], col[1], col[2], 160); fdrawbox(x2, y2, (float)(seq->start+seq->len), y2+SEQ_STRIP_OFSBOTTOM); //outline - + glDisable( GL_BLEND ); } if(seq->startstill) { get_seq_color3ubv(seq, col); BIF_GetColorPtrBlendShade3ubv(col, blendcol, col, 0.75, 40); glColor3ubv(col); - + draw_shadedstrip(seq, col, x1, y1, (float)(seq->start), y2); - + /* feint pinstripes, helps see exactly which is extended and which isn't, - * especially when the extension is very small */ + * especially when the extension is very small */ if (seq->flag & SELECT) BIF_GetColorPtrBlendShade3ubv(col, col, col, 0.0, 24); else BIF_GetColorPtrBlendShade3ubv(col, col, col, 0.0, -16); - + glColor3ubv(col); - + for(a=y1; a< y2; a+= pixely*2.0 ) { fdrawline(x1, a, (float)(seq->start), a); } @@ -543,16 +540,16 @@ get_seq_color3ubv(seq, col); BIF_GetColorPtrBlendShade3ubv(col, blendcol, col, 0.75, 40); glColor3ubv(col); - + draw_shadedstrip(seq, col, (float)(seq->start+seq->len), y1, x2, y2); - + /* feint pinstripes, helps see exactly which is extended and which isn't, - * especially when the extension is very small */ + * especially when the extension is very small */ if (seq->flag & SELECT) BIF_GetColorPtrBlendShade3ubv(col, col, col, 0.0, 24); else BIF_GetColorPtrBlendShade3ubv(col, col, col, 0.0, -16); - + glColor3ubv(col); - + for(a=y1; a< y2; a+= pixely*2.0 ) { fdrawline((float)(seq->start+seq->len), a, x2, a); } @@ -566,10 +563,10 @@ int len, size; char str[32 + FILE_MAXDIR+FILE_MAXFILE], *strp; short mval[2]; - + v1[1]= y1; v2[1]= y2; - + v1[0]= x1; ipoco_to_areaco_noclip(G.v2d, v1, mval); x1= mval[0]; @@ -577,7 +574,7 @@ ipoco_to_areaco_noclip(G.v2d, v2, mval); x2= mval[0]; size= x2-x1; - + if(seq->name[2]) { sprintf(str, "%d | %s: %s", seq->len, give_seqname(seq), seq->name+2); }else{ @@ -587,7 +584,7 @@ else if(seq->type == SEQ_SCENE) { if(seq->scene) sprintf(str, "%d | %s: %s", seq->len, give_seqname(seq), seq->scene->id.name+2); else sprintf(str, "%d | %s", seq->len, give_seqname(seq)); - + } else if(seq->type == SEQ_IMAGE) { sprintf(str, "%d | %s%s", seq->len, seq->strip->dir, seq->strip->stripdata->name); @@ -600,7 +597,7 @@ sprintf(str, "%d | %s: %d>%d (use %d)%s", seq->len, give_seqname(seq), seq->seq1->machine, seq->seq2->machine, seq->seq3->machine, can_float ? "" : " No float, upgrade plugin!"); else if (seq->seq1 && seq->seq2) sprintf(str, "%d | %s: %d>%d%s", seq->len, give_seqname(seq), seq->seq1->machine, seq->seq2->machine, can_float ? "" : " No float, upgrade plugin!"); - else + else sprintf(str, "%d | %s", seq->len, give_seqname(seq)); } else if (seq->type == SEQ_RAM_SOUND) { @@ -613,19 +610,19 @@ sprintf(str, "%d | %s%s", seq->len, seq->strip->dir, seq->strip->stripdata->name); } } - + strp= str; - + while( (len= BMF_GetStringWidth(G.font, strp)) > size) { if(len < 10) break; if(strp[1]==0) break; strp++; } - + mval[0]= (x1+x2-len+1)/2; mval[1]= 1; areamouseco_to_ipoco(G.v2d, mval, &x1, &x2); - + if(seq->flag & SELECT) cpack(0xFFFFFF); else cpack(0); glRasterPos3f(x1, y1+SEQ_STRIP_OFSBOTTOM, 0.0); @@ -636,48 +633,48 @@ static void draw_shadedstrip(Sequence *seq, char *col, float x1, float y1, float x2, float y2) { float ymid1, ymid2; - + ymid1 = (y2-y1)*0.25 + y1; ymid2 = (y2-y1)*0.65 + y1; - + glShadeModel(GL_SMOOTH); glBegin(GL_QUADS); - + if(seq->flag & SELECT) BIF_GetColorPtrBlendShade3ubv(col, col, col, 0.0, -50); else BIF_GetColorPtrBlendShade3ubv(col, col, col, 0.0, 0); - + glColor3ubv(col); - + glVertex2f(x1,y1); glVertex2f(x2,y1); - + if(seq->flag & SELECT) BIF_GetColorPtrBlendShade3ubv(col, col, col, 0.0, 5); else BIF_GetColorPtrBlendShade3ubv(col, col, col, 0.0, -5); glColor3ubv(col); - + glVertex2f(x2,ymid1); glVertex2f(x1,ymid1); - + glEnd(); - + glRectf(x1, ymid1, x2, ymid2); - + glBegin(GL_QUADS); - + glVertex2f(x1,ymid2); glVertex2f(x2,ymid2); - + if(seq->flag & SELECT) BIF_GetColorPtrBlendShade3ubv(col, col, col, 0.0, -15); else BIF_GetColorPtrBlendShade3ubv(col, col, col, 0.0, 25); - + glColor3ubv(col); - + glVertex2f(x2,y2); glVertex2f(x1,y2); - + glEnd(); - + } /* @@ -698,24 +695,24 @@ if(seq->endstill) x2= seq->start+seq->len; else x2= seq->enddisp; y2= seq->machine+SEQ_STRIP_OFSTOP; - - + + /* get the correct colour per strip type*/ get_seq_color3ubv(seq, col); - + /* draw the main strip body */ draw_shadedstrip(seq, col, x1, y1, x2, y2); - + /* draw additional info and controls */ if (seq->type == SEQ_RAM_SOUND) drawseqwave(seq, x1, y1, x2, y2, sa->winx); draw_seq_extensions(seq, sseq); draw_seq_handle(seq, sseq, SEQ_LEFTHANDLE); draw_seq_handle(seq, sseq, SEQ_RIGHTHANDLE); - + /* draw the strip outline */ x1= seq->startdisp; x2= seq->enddisp; - + get_seq_color3ubv(seq, col); if (G.moving && (seq->flag & SELECT)) { if(seq->flag & SEQ_OVERLAP) { @@ -729,7 +726,7 @@ glColor3ubv(col); gl_round_box_shade(GL_LINE_LOOP, x1, y1, x2, y2, 0.0, 0.1, 0.0); - + /* calculate if seq is long enough to print a name */ x1= seq->startdisp+seq->handsize; x2= seq->enddisp-seq->handsize; @@ -746,7 +743,7 @@ if(x1 != x2) { draw_seq_text(seq, x1, x2, y1, y2); } - + } static Sequence *special_seq_update= 0; @@ -784,16 +781,16 @@ /* BIG PROBLEM: the give_ibuf_seq() can call a rendering, which in turn calls redraws... this shouldn't belong in a window drawing.... - So: solve this once event based. + So: solve this once event based. Now we check for recursion, space type and active area again (ton) */ - + if(recursive) return; else { recursive= 1; ibuf= (ImBuf *)give_ibuf_seq(rectx, recty, (G.scene->r.cfra), sseq->chanshown); recursive= 0; - + /* HURMF! the give_ibuf_seq can call image display in this window */ if(sa->spacetype!=SPACE_SEQ) return; @@ -801,7 +798,7 @@ areawinset(sa->win); } } - + if(special_seq_update) { se = special_seq_update->curelem; if(se) { @@ -812,11 +809,11 @@ else ibuf= se->ibuf; } } - if(ibuf==NULL) + if(ibuf==NULL) return; if(ibuf->rect_float && ibuf->rect==NULL) IMB_rect_from_float(ibuf); - if(ibuf->rect==NULL) + if(ibuf->rect==NULL) return; if (sseq->mainb == SEQ_DRAW_IMG_WAVEFORM) { @@ -844,7 +841,7 @@ glPixelZoom(zoom, zoom); glaDrawPixelsSafe(x1, y1, ibuf->x, ibuf->y, ibuf->x, GL_RGBA, GL_UNSIGNED_BYTE, ibuf->rect); - + glPixelZoom(1.0, 1.0); if (free_ibuf) { @@ -939,7 +936,7 @@ else if(last_seq->type==SEQ_SCENE) { se= (StripElem *)give_stripelem(last_seq, (G.scene->r.cfra)); if(se && last_seq->scene) { - sprintf(str, "Cur: %d First: %d Last: %d", last_seq->sfra+se->nr, last_seq->sfra, last_seq->sfra+last_seq->len-1); + sprintf(str, "Cur: %d First: %d Last: %d", last_seq->sfra+se->nr, last_seq->sfra, last_seq->sfra+last_seq->len-1); glRasterPos3f(xco, 0.3, 0.0); BMF_DrawString(G.font, str); } @@ -966,46 +963,46 @@ } void seq_viewmove(SpaceSeq *sseq) -{ +{ ScrArea *sa; short mval[2], mvalo[2]; short rectx, recty, xmin, xmax, ymin, ymax, pad; int oldcursor; Window *win; - + sa = sseq->area; rectx= (G.scene->r.size*G.scene->r.xsch)/100; recty= (G.scene->r.size*G.scene->r.ysch)/100; - + pad = 10; xmin = -(sa->winx/2) - rectx/2 + pad; xmax = sa->winx/2 + rectx/2 - pad; ymin = -(sa->winy/2) - recty/2 + pad; ymax = sa->winy/2 + recty/2 - pad; - + getmouseco_sc(mvalo); oldcursor=get_cursor(); win=winlay_get_active_window(); - + SetBlenderCursor(BC_NSEW_SCROLLCURSOR); - + while(get_mbut()&(L_MOUSE|M_MOUSE)) { - + getmouseco_sc(mval); - + if(mvalo[0]!=mval[0] || mvalo[1]!=mval[1]) { sseq->xof -= (mvalo[0]-mval[0]); sseq->yof -= (mvalo[1]-mval[1]); - + /* prevent dragging image outside of the window and losing it! */ CLAMP(sseq->xof, xmin, xmax); CLAMP(sseq->yof, ymin, ymax); - + mvalo[0]= mval[0]; mvalo[1]= mval[1]; - + scrarea_do_windraw(curarea); screen_swapbuffers(); } @@ -1079,7 +1076,7 @@ uiDefBut(block, LABEL, 0, "Type: Image", 10,140,150,20, 0, 0, 0, 0, 0, ""); uiDefBut(block, TEX, B_NOP, "Name: ", 10,120,150,19, last_seq->name+2, 0.0, 21.0, 100, 0, ""); - + uiBlockBeginAlign(block); uiDefButBitS(block, TOG, SEQ_MAKE_PREMUL, SEQ_BUT_RELOAD, "Convert to Premul", 10,90,150,19, &last_seq->flag, 0.0, 21.0, 100, 0, "Converts RGB values to become premultiplied with Alpha"); uiDefButBitS(block, TOG, SEQ_FILTERY, SEQ_BUT_RELOAD, "FilterY", 10,70,150,19, &last_seq->flag, 0.0, 21.0, 100, 0, "For video movies to remove fields"); @@ -1106,28 +1103,28 @@ uiDefBut(block, LABEL, 0, "Type: Movie", 10,140,150,20, 0, 0, 0, 0, 0, ""); uiDefBut(block, TEX, B_NOP, "Name: ", 10,120,150,19, last_seq->name+2, 0.0, 21.0, 100, 0, ""); - + uiBlockBeginAlign(block); uiDefButBitS(block, TOG, SEQ_MAKE_PREMUL, SEQ_BUT_RELOAD, "Make Premul Alpha ", 10,90,150,19, &last_seq->flag, 0.0, 21.0, 100, 0, "Converts RGB values to become premultiplied with Alpha"); uiDefButBitS(block, TOG, SEQ_FILTERY, SEQ_BUT_RELOAD, "FilterY ", 10,70,150,19, &last_seq->flag, 0.0, 21.0, 100, 0, "For video movies to remove fields"); uiDefButF(block, NUM, SEQ_BUT_RELOAD, "Mul:", 10,50,150,19, &last_seq->mul, 0.001, 5.0, 100, 0, "Multiply colors"); - + uiDefButS(block, TOG|BIT|7, SEQ_BUT_RELOAD, "Reverse Frames", 10,30,150,19, &last_seq->flag, 0.0, 21.0, 100, 0, "Reverse frame order"); uiDefButF(block, NUM, SEQ_BUT_RELOAD, "Strobe:", 10,10,150,19, &last_seq->strobe, 1.0, 30.0, 100, 0, "Only display every nth frame"); uiDefButI(block, NUM, SEQ_BUT_RELOAD, "Preseek:", 10,-10,150,19, &last_seq->anim_preseek, 0.0, 50.0, 100, 0, "On MPEG-seeking preseek this many frames"); uiBlockEndAlign(block); } - else if(last_seq->type==SEQ_RAM_SOUND || + else if(last_seq->type==SEQ_RAM_SOUND || last_seq->type==SEQ_HD_SOUND) { uiDefBut(block, LABEL, 0, "Type: Audio", 10,140,150,20, 0, 0, 0, 0, 0, ""); uiDefBut(block, TEX, 0, "Name: ", 10,120,150,19, last_seq->name+2, 0.0, 21.0, 100, 0, ""); - + uiBlockBeginAlign(block); uiDefButBitS(block, TOG, SEQ_IPO_FRAME_LOCKED, SEQ_BUT_RELOAD, "IPO Frame locked", - 10,90,150,19, &last_seq->flag, - 0.0, 1.0, 0, 0, + 10,90,150,19, &last_seq->flag, + 0.0, 1.0, 0, 0, "Lock the IPO coordinates to the " "global frame counter."); @@ -1139,33 +1136,19 @@ else if(last_seq->type>=SEQ_EFFECT) { uiDefBut(block, LABEL, 0, "Type: Effect", 10,140,150,20, 0, 0, 0, 0, 0, ""); uiDefBut(block, TEX, B_NOP, "Name: ", 10,120,150,19, last_seq->name+2, 0.0, 21.0, 100, 0, ""); - + uiDefButBitS(block, TOG, SEQ_IPO_FRAME_LOCKED, SEQ_BUT_RELOAD, "IPO Frame locked", - 10,90,150,19, &last_seq->flag, - 0.0, 1.0, 0, 0, + 10,90,150,19, &last_seq->flag, + 0.0, 1.0, 0, 0, "Lock the IPO coordinates to the " "global frame counter."); - + uiBlockBeginAlign(block); - - //PUSH SEQUENCE - if(last_seq->type==SEQ_PUSH){ - PushVars *push = (PushVars *)last_seq->effectdata; - char formatstring[256]; - strncpy(formatstring, "Transition Type %t|Left Push%x0|Right Push %x1|Top Push %x2|Bottom Push %x3|Hori Push %x4|Vert Push %x5", 255); - uiDefButS(block, MENU,SEQ_BUT_EFFECT, formatstring, 10,65,220,22, &push->pushtype, 0, 0, 0, 0, "What type of push should be performed"); - switch(push->pushtype){ - case DO_HORI_PUSH: - case DO_VERT_PUSH: - uiDefButS(block, NUM, SEQ_BUT_EFFECT, "Bands:", 10,15,220,22, &push->pushnb, 2, 100, 1, 2, "The Numbers of bands"); - break; - } - } - else if(last_seq->type==SEQ_WIPE){ + if(last_seq->type==SEQ_WIPE){ WipeVars *wipe = (WipeVars *)last_seq->effectdata; char formatstring[256]; - + strncpy(formatstring, "Transition Type %t|Single Wipe%x0|Double Wipe %x1|Iris Wipe %x4|Clock Wipe %x5", 255); uiDefButS(block, MENU,SEQ_BUT_EFFECT, formatstring, 10,65,220,22, &wipe->wipetype, 0, 0, 0, 0, "What type of wipe should be performed"); uiDefButF(block, NUM,SEQ_BUT_EFFECT,"Blur:", 10,40,220,22, &wipe->edgeWidth,0.0,1.0, 1, 2, "The percent width of the blur edge"); @@ -1173,11 +1156,11 @@ case DO_IRIS_WIPE: case DO_CLOCK_WIPE: break; - + default: uiDefButF(block, NUM,SEQ_BUT_EFFECT,"Angle:", 10,15,220,22, &wipe->angle,-90.0,90.0, 1, 2, "The Angle of the Edge"); } - uiDefButS(block, TOG,SEQ_BUT_EFFECT,"Wipe In", 10,-10,220,22, &wipe->forward,0,0, 0, 0, "Controls Primary Direction of Wipe"); + uiDefButS(block, TOG,SEQ_BUT_EFFECT,"Wipe In", 10,-10,220,22, &wipe->forward,0,0, 0, 0, "Controls Primary Direction of Wipe"); } else if(last_seq->type==SEQ_GLOW){ GlowVars *glow = (GlowVars *)last_seq->effectdata; @@ -1196,7 +1179,7 @@ uiDefButF(block, NUM, SEQ_BUT_EFFECT, "xScale End:", 160,70,150,19, &transform->ScalexFin, 0.0, 10.0, 0, 0, "X Scale End"); uiDefButF(block, NUM, SEQ_BUT_EFFECT, "yScale Start:", 10,50,150,19, &transform->ScaleyIni, 0.0, 10.0, 0, 0, "Y Scale Start"); uiDefButF(block, NUM, SEQ_BUT_EFFECT, "yScale End:", 160,50,150,19, &transform->ScaleyFin, 0.0, 10.0, 0, 0, "Y Scale End"); - + uiDefButF(block, NUM, SEQ_BUT_EFFECT, "x Start:", 10,30,150,19, &transform->xIni, -1000.0, 1000.0, 0, 0, "X Position Start"); uiDefButF(block, NUM, SEQ_BUT_EFFECT, "x End:", 160,30,150,19, &transform->xFin, -1000.0, 1000.0, 0, 0, "X Position End"); @@ -1209,32 +1192,32 @@ SolidColorVars *colvars = (SolidColorVars *)last_seq->effectdata; uiDefButF(block, COL, SEQ_BUT_RELOAD, "",10,90,150,19, colvars->col, 0, 0, 0, 0, ""); } else if(last_seq->type==SEQ_SPEED){ - SpeedControlVars *sp = + SpeedControlVars *sp = (SpeedControlVars *)last_seq->effectdata; uiDefButF(block, NUM, SEQ_BUT_EFFECT, "Global Speed:", 10,70,150,19, &sp->globalSpeed, 0.0, 100.0, 0, 0, "Global Speed"); uiDefButBitI(block, TOG, SEQ_SPEED_INTEGRATE, - SEQ_BUT_EFFECT, + SEQ_BUT_EFFECT, "IPO is velocity", - 10,50,150,19, &sp->flags, - 0.0, 1.0, 0, 0, + 10,50,150,19, &sp->flags, + 0.0, 1.0, 0, 0, "Interpret the IPO value as a " "velocity instead of a frame number"); uiDefButBitI(block, TOG, SEQ_SPEED_BLEND, - SEQ_BUT_EFFECT, + SEQ_BUT_EFFECT, "Enable frame blending", - 10,30,150,19, &sp->flags, - 0.0, 1.0, 0, 0, + 10,30,150,19, &sp->flags, + 0.0, 1.0, 0, 0, "Blend two frames into the " "target for a smoother result"); uiDefButBitI(block, TOG, SEQ_SPEED_COMPRESS_IPO_Y, - SEQ_BUT_EFFECT, + SEQ_BUT_EFFECT, "IPO value runs from [0..1]", - 10,10,150,19, &sp->flags, - 0.0, 1.0, 0, 0, + 10,10,150,19, &sp->flags, + 0.0, 1.0, 0, 0, "Scale IPO value to get the " "target frame number."); } @@ -1309,10 +1292,10 @@ BIF_ThemeColorShade(TH_BACK, -20); glRectf(v2d->cur.xmin, 0.0, v2d->cur.xmax, 1.0); - + boundbox_seq(); calc_ipogrid(); - + i= MAX2(1, ((int)G.v2d->cur.ymin)-1); glBegin(GL_QUADS); @@ -1321,7 +1304,7 @@ BIF_ThemeColorShade(TH_BACK, -15); else BIF_ThemeColorShade(TH_BACK, -25); - + glVertex2f(v2d->cur.xmax, i); glVertex2f(v2d->cur.xmin, i); glVertex2f(v2d->cur.xmin, i+1); @@ -1329,7 +1312,7 @@ i+=1.0; } glEnd(); - + /* Force grid lines */ i= MAX2(1, ((int)G.v2d->cur.ymin)-1); glBegin(GL_LINES); @@ -1341,8 +1324,8 @@ i+=1.0; } glEnd(); - - + + draw_ipogrid(); draw_cfra_seq(); diff -Naur /home/olabomba/blender/source/blender/src/drawseq.c.save /home/olabomba/blender-propre/blender/source/blender/src/drawseq.c.save --- /home/olabomba/blender/source/blender/src/drawseq.c.save 2006-12-04 23:17:57.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/src/drawseq.c.save 1970-01-01 01:00:00.000000000 +0100 @@ -1,1404 +0,0 @@ -/** - * $Id: drawseq.c,v 1.70 2006/11/11 22:35:40 schlaile Exp $ - * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. - * - * This program 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** - */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include - -#include "MEM_guardedalloc.h" - -#include "BMF_Api.h" - -#include "BLI_blenlib.h" -#include "BLI_arithb.h" - -#include "IMB_imbuf_types.h" - -#include "DNA_sequence_types.h" -#include "DNA_scene_types.h" -#include "DNA_screen_types.h" -#include "DNA_space_types.h" -#include "DNA_view2d_types.h" - -#include "BKE_global.h" -#include "BKE_plugin_types.h" -#include "BKE_scene.h" -#include "BKE_utildefines.h" - -#include "BIF_cursors.h" -#include "BIF_gl.h" -#include "BIF_graphics.h" -#include "BIF_mywindow.h" -#include "BIF_screen.h" -#include "BIF_drawseq.h" -#include "BIF_editseq.h" -#include "BIF_glutil.h" -#include "BIF_resources.h" -#include "BIF_space.h" -#include "BIF_interface.h" - -#include "BSE_view.h" -#include "BSE_drawipo.h" -#include "BSE_sequence.h" -#include "BSE_seqeffects.h" -#include "BSE_seqscopes.h" -#include "BSE_seqaudio.h" - -#include "IMB_imbuf_types.h" -#include "IMB_imbuf.h" - -#include "blendef.h" /* CFRA */ -#include "mydevice.h" /* REDRAWSEQ */ -#include "interface.h" -#include "winlay.h" - -#define SEQ_LEFTHANDLE 1 -#define SEQ_RIGHTHANDLE 2 - -#define SEQ_STRIP_OFSBOTTOM 0.2 -#define SEQ_STRIP_OFSTOP 0.8 - -int no_rightbox=0, no_leftbox= 0; -static void draw_seq_handle(Sequence *seq, SpaceSeq *sseq, short direction); -static void draw_seq_extensions(Sequence *seq, SpaceSeq *sseq); -static void draw_seq_text(Sequence *seq, float x1, float x2, float y1, float y2); -static void draw_shadedstrip(Sequence *seq, char *col, float x1, float y1, float x2, float y2); -static void draw_seq_strip(struct Sequence *seq, struct ScrArea *sa, struct SpaceSeq *sseq); - -static char *give_seqname(Sequence *seq) -{ - if(seq->type==SEQ_META) return "Meta"; - else if(seq->type==SEQ_IMAGE) return "Image"; - else if(seq->type==SEQ_SCENE) return "Scene"; - else if(seq->type==SEQ_MOVIE) return "Movie"; - else if(seq->type==SEQ_RAM_SOUND) return "Audio (RAM)"; - else if(seq->type==SEQ_HD_SOUND) return "Audio (HD)"; - else if(seq->typestrip->dir; - else if(seq->type==SEQ_CROSS) return "Cross"; - else if(seq->type==SEQ_GAMCROSS) return "Gamma Cross"; - else if(seq->type==SEQ_ADD) return "Add"; - else if(seq->type==SEQ_SUB) return "Sub"; - else if(seq->type==SEQ_MUL) return "Mul"; - else if(seq->type==SEQ_ALPHAOVER) return "Alpha Over"; - else if(seq->type==SEQ_ALPHAUNDER) return "Alpha Under"; - else if(seq->type==SEQ_OVERDROP) return "Over Drop"; - else if(seq->type==SEQ_WIPE) return "Wipe"; - else if(seq->type==SEQ_PUSH) return "Push"; - else if(seq->type==SEQ_GLOW) return "Glow"; - else if(seq->type==SEQ_TRANSFORM) return "Transform"; - else if(seq->type==SEQ_COLOR) return "Color"; - else if(seq->type==SEQ_SPEED) return "Speed"; - else if(seq->type==SEQ_PLUGIN) { - if(!(seq->flag & SEQ_EFFECT_NOT_LOADED) && - seq->plugin && seq->plugin->doit) return seq->plugin->pname; - return "Plugin"; - } - else return "Effect"; - -} -static void draw_cfra_seq(void) -{ - glColor3ub(0x30, 0x90, 0x50); - glLineWidth(2.0); - glBegin(GL_LINES); - glVertex2f(G.scene->r.cfra, G.v2d->cur.ymin); - glVertex2f(G.scene->r.cfra, G.v2d->cur.ymax); - glEnd(); - glLineWidth(1.0); -} - -static void get_seq_color3ubv(Sequence *seq, char *col) -{ - char blendcol[3]; - float hsv[3], rgb[3]; - SolidColorVars *colvars = (SolidColorVars *)seq->effectdata; - - switch(seq->type) { - case SEQ_IMAGE: - BIF_GetThemeColor3ubv(TH_SEQ_IMAGE, col); - break; - case SEQ_META: - BIF_GetThemeColor3ubv(TH_SEQ_META, col); - break; - case SEQ_MOVIE: - BIF_GetThemeColor3ubv(TH_SEQ_MOVIE, col); - break; - case SEQ_SCENE: - BIF_GetThemeColor3ubv(TH_SEQ_SCENE, col); - - if(seq->scene==G.scene) { - BIF_GetColorPtrBlendShade3ubv(col, col, col, 1.0, 20); - } - break; - - /* transitions */ - case SEQ_CROSS: - case SEQ_GAMCROSS: - case SEQ_WIPE: - case SEQ_PUSH: - /* slightly offset hue to distinguish different effects */ - BIF_GetThemeColor3ubv(TH_SEQ_TRANSITION, col); - - rgb[0] = col[0]/255.0; rgb[1] = col[1]/255.0; rgb[2] = col[2]/255.0; - rgb_to_hsv(rgb[0], rgb[1], rgb[2], hsv, hsv+1, hsv+2); - - if (seq->type == SEQ_CROSS) hsv[0]+= 0.04; - if (seq->type == SEQ_GAMCROSS) hsv[0]+= 0.08; - if (seq->type == SEQ_WIPE) hsv[0]+= 0.12; - if (seq->type == SEQ_PUSH) hsv[0]+= 0.16; - - if(hsv[0]>1.0) hsv[0]-=1.0; else if(hsv[0]<0.0) hsv[0]+= 1.0; - hsv_to_rgb(hsv[0], hsv[1], hsv[2], rgb, rgb+1, rgb+2); - col[0] = (char)(rgb[0]*255); col[1] = (char)(rgb[1]*255); col[2] = (char)(rgb[2]*255); - break; - - /* effects */ - case SEQ_TRANSFORM: - case SEQ_SPEED: - case SEQ_ADD: - case SEQ_SUB: - case SEQ_MUL: - case SEQ_ALPHAOVER: - case SEQ_ALPHAUNDER: - case SEQ_OVERDROP: - case SEQ_GLOW: - /* slightly offset hue to distinguish different effects */ - BIF_GetThemeColor3ubv(TH_SEQ_EFFECT, col); - - rgb[0] = col[0]/255.0; rgb[1] = col[1]/255.0; rgb[2] = col[2]/255.0; - rgb_to_hsv(rgb[0], rgb[1], rgb[2], hsv, hsv+1, hsv+2); - - if (seq->type == SEQ_ADD) hsv[0]+= 0.04; - if (seq->type == SEQ_SUB) hsv[0]+= 0.08; - if (seq->type == SEQ_MUL) hsv[0]+= 0.12; - if (seq->type == SEQ_ALPHAOVER) hsv[0]+= 0.16; - if (seq->type == SEQ_ALPHAUNDER) hsv[0]+= 0.20; - if (seq->type == SEQ_OVERDROP) hsv[0]+= 0.24; - if (seq->type == SEQ_GLOW) hsv[0]+= 0.28; - if (seq->type == SEQ_TRANSFORM) hsv[0]+= 0.36; - - if(hsv[0]>1.0) hsv[0]-=1.0; else if(hsv[0]<0.0) hsv[0]+= 1.0; - hsv_to_rgb(hsv[0], hsv[1], hsv[2], rgb, rgb+1, rgb+2); - col[0] = (char)(rgb[0]*255); col[1] = (char)(rgb[1]*255); col[2] = (char)(rgb[2]*255); - break; - case SEQ_COLOR: - if (colvars->col) { - col[0]= (char)(colvars->col[0]*255); - col[1]= (char)(colvars->col[1]*255); - col[2]= (char)(colvars->col[2]*255); - } else { - col[0] = col[1] = col[2] = 128; - } - break; - case SEQ_PLUGIN: - BIF_GetThemeColor3ubv(TH_SEQ_PLUGIN, col); - break; - case SEQ_HD_SOUND: - case SEQ_RAM_SOUND: - BIF_GetThemeColor3ubv(TH_SEQ_AUDIO, col); - blendcol[0] = blendcol[1] = blendcol[2] = 128; - if(seq->flag & SEQ_MUTE) BIF_GetColorPtrBlendShade3ubv(col, blendcol, col, 0.5, 20); - break; - default: - col[0] = 10; col[1] = 255; col[2] = 40; - } -} - -static void drawmeta_contents(Sequence *seqm, float x1, float y1, float x2, float y2) -{ - Sequence *seq; - float dx; - int nr; - char col[3]; - - nr= 0; - WHILE_SEQ(&seqm->seqbase) { - nr++; - } - END_SEQ - - dx= (x2-x1)/nr; - - WHILE_SEQ(&seqm->seqbase) { - get_seq_color3ubv(seq, col); - - glColor3ubv(col); - - glRectf(x1, y1, x1+0.9*dx, y2); - - BIF_GetColorPtrBlendShade3ubv(col, col, col, 0.0, -30); - glColor3ubv(col); - - fdrawbox(x1, y1, x1+0.9*dx, y2); - - x1+= dx; - } - END_SEQ -} - -static void drawseqwave(Sequence *seq, float x1, float y1, float x2, float y2, int winx) -{ - /* - x1 is the starting x value to draw the wave, - x2 the end x value, same for y1 and y2 - winx is the zoom level. - */ - - float - f, /* floating point value used to store the X draw location for the wave lines when openGL drawing*/ - midy, /* fast access to the middle location (y1+y2)/2 */ - clipxmin, /* the minimum X value, clip this with the window */ - clipxmax, /* the maximum X value, clip this with the window */ - sample_step, /* steps to move per sample, floating value must later translate into an int */ - fsofs, /* steps to move per sample, floating value must later translate into an int */ - feofs_sofs, /* */ - sound_width, /* convenience: x2-x1 */ - wavemulti; /* scale the samples by this value when GL_LINE drawing so it renders the right height */ - - int - offset, /* initial offset value for the wave drawing */ - offset_next, /* when in the wave drawing loop this value is the samples intil the next vert */ - sofs, /* Constrained offset value (~3) for the wave, start */ - eofs, /* ditto, end */ - wavesample, /* inner loop storage if the current wave sample value, used to make the 2 values below */ - wavesamplemin, /* used for finding the min and max wave peaks */ - wavesamplemax, /* ditto */ - subsample_step=4; /* when the sample step is 4 every sample of - the wave is evaluated for min and max values used to draw the wave, - however this is slow ehrn zoomed out so when the sample step is above - 1 (the larger the further out the zoom is) so not evaluate all samples, only some. */ - - signed short* s; - bSound *sound; - Uint8 *stream; - - audio_makestream(seq->sound); - if(seq->sound==NULL || seq->sound->stream==NULL) return; - - if (seq->flag & SEQ_MUTE) glColor3ub(0x70, 0x80, 0x80); else glColor3ub(0x70, 0xc0, 0xc0); - - sofs = ((int)( (((float)(seq->startdisp-seq->start))/(float)G.scene->r.frs_sec)*(float)G.scene->audio.mixrate*4.0 )) & (~3); - eofs = ((int)( (((float)(seq->enddisp-seq->start))/(float)G.scene->r.frs_sec)*(float)G.scene->audio.mixrate*4.0 )) & (~3); - - /* clip the drawing area to the screen bounds to save time */ - sample_step= (G.v2d->cur.xmax - G.v2d->cur.xmin)/winx; - clipxmin= MAX2(x1, G.v2d->cur.xmin); - clipxmax= MIN2(x2, G.v2d->cur.xmax); - - if (sample_step > 1) - subsample_step= ((int)(subsample_step*sample_step*8)) & (~3); - - /* for speedy access */ - midy = (y1+y2)/2; - fsofs= (float)sofs; - feofs_sofs= (float)(eofs-sofs); - sound_width= x2-x1; - sound = seq->sound; - stream = sound->stream; - wavemulti = (y2-y1)/196605; /*y2-y1 is the height*/ - wavesample=0; - - /* we need to get the starting offset value, excuse the duplicate code */ - f=clipxmin; - offset= (int) (fsofs + ((f-x1)/sound_width) * feofs_sofs) & (~3); - - /* start the loop, draw a line per sample_step -sample_step is about 1 line drawn per pixel */ - glBegin(GL_LINES); - for (f=x1+sample_step; f<=clipxmax; f+=sample_step) { - - offset_next = (int) (fsofs + ((f-x1)/sound_width) * feofs_sofs) & (~3); - if (f > G.v2d->cur.xmin) { - /* if this is close to the last sample just exit */ - if (offset_next >= sound->streamlen) break; - - wavesamplemin = 131070; - wavesamplemax = -131070; - - /*find with high and low of the waveform for this draw, - evaluate small samples to find this range */ - while (offset < offset_next) { - s = (signed short*)(stream+offset); - - wavesample = s[0]*2 + s[1]; - if (wavesamplemin>wavesample) - wavesamplemin=wavesample; - if (wavesamplemaxstartdisp; - x2= seq->enddisp; - - y1= seq->machine+SEQ_STRIP_OFSBOTTOM; - y2= seq->machine+SEQ_STRIP_OFSTOP; - - v2d = &sseq->v2d; - pixelx = (v2d->cur.xmax - v2d->cur.xmin)/(v2d->mask.xmax - v2d->mask.xmin); - - /* clamp handles to defined size in pixel space */ - handsize = seq->handsize; - minhandle = 7; - maxhandle = 28; - CLAMP(handsize, minhandle*pixelx, maxhandle*pixelx); - - /* set up co-ordinates/dimensions for either left or right handle */ - if (direction == SEQ_LEFTHANDLE) { - rx1 = x1; - rx2 = x1+handsize*0.75; - - v1[0]= x1+handsize/4; v1[1]= y1+( ((y1+y2)/2.0 - y1)/2); - v2[0]= x1+handsize/4; v2[1]= y2-( ((y1+y2)/2.0 - y1)/2); - v3[0]= v2[0] + handsize/4; v3[1]= (y1+y2)/2.0; - - whichsel = SEQ_LEFTSEL; - } else if (direction == SEQ_RIGHTHANDLE) { - rx1 = x2-handsize*0.75; - rx2 = x2; - - v1[0]= x2-handsize/4; v1[1]= y1+( ((y1+y2)/2.0 - y1)/2); - v2[0]= x2-handsize/4; v2[1]= y2-( ((y1+y2)/2.0 - y1)/2); - v3[0]= v2[0] - handsize/4; v3[1]= (y1+y2)/2.0; - - whichsel = SEQ_RIGHTSEL; - } - - /* draw! */ - if(seq->type < SEQ_EFFECT || - get_sequence_effect_num_inputs(seq->type) == 0) { - glEnable( GL_BLEND ); - - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - - if(seq->flag & whichsel) glColor4ub(0, 0, 0, 80); - else if (seq->flag & SELECT) glColor4ub(255, 255, 255, 30); - else glColor4ub(0, 0, 0, 22); - - glRectf(rx1, y1, rx2, y2); - - if(seq->flag & whichsel) glColor4ub(255, 255, 255, 200); - else glColor4ub(0, 0, 0, 50); - - glEnable( GL_POLYGON_SMOOTH ); - glBegin(GL_TRIANGLES); - glVertex2fv(v1); glVertex2fv(v2); glVertex2fv(v3); - glEnd(); - - glDisable( GL_POLYGON_SMOOTH ); - glDisable( GL_BLEND ); - } - - if(G.moving || (seq->flag & whichsel)) { - cpack(0xFFFFFF); - if (direction == SEQ_LEFTHANDLE) { - sprintf(str, "%d", seq->startdisp); - glRasterPos3f(rx1, y1-0.15, 0.0); - } else { - sprintf(str, "%d", seq->enddisp - 1); - glRasterPos3f((x2-BMF_GetStringWidth(G.font, str)*pixelx), y2+0.05, 0.0); - } - BMF_DrawString(G.font, str); - } -} - -static void draw_seq_extensions(Sequence *seq, SpaceSeq *sseq) -{ - float x1, x2, y1, y2, pixely, a; - char col[3], blendcol[3]; - View2D *v2d; - - if(seq->type >= SEQ_EFFECT) return; - - x1= seq->startdisp; - x2= seq->enddisp; - - y1= seq->machine+SEQ_STRIP_OFSBOTTOM; - y2= seq->machine+SEQ_STRIP_OFSTOP; - - v2d = &sseq->v2d; - pixely = (v2d->cur.ymax - v2d->cur.ymin)/(v2d->mask.ymax - v2d->mask.ymin); - - blendcol[0] = blendcol[1] = blendcol[2] = 120; - - if(seq->startofs) { - glEnable( GL_BLEND ); - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - - get_seq_color3ubv(seq, col); - - if (seq->flag & SELECT) { - BIF_GetColorPtrBlendShade3ubv(col, blendcol, col, 0.3, -40); - glColor4ub(col[0], col[1], col[2], 170); - } else { - BIF_GetColorPtrBlendShade3ubv(col, blendcol, col, 0.6, 0); - glColor4ub(col[0], col[1], col[2], 110); - } - - glRectf((float)(seq->start), y1-SEQ_STRIP_OFSBOTTOM, x1, y1); - - if (seq->flag & SELECT) glColor4ub(col[0], col[1], col[2], 255); - else glColor4ub(col[0], col[1], col[2], 160); - - fdrawbox((float)(seq->start), y1-SEQ_STRIP_OFSBOTTOM, x1, y1); //outline - - glDisable( GL_BLEND ); - } - if(seq->endofs) { - glEnable( GL_BLEND ); - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - - get_seq_color3ubv(seq, col); - - if (seq->flag & SELECT) { - BIF_GetColorPtrBlendShade3ubv(col, blendcol, col, 0.3, -40); - glColor4ub(col[0], col[1], col[2], 170); - } else { - BIF_GetColorPtrBlendShade3ubv(col, blendcol, col, 0.6, 0); - glColor4ub(col[0], col[1], col[2], 110); - } - - glRectf(x2, y2, (float)(seq->start+seq->len), y2+SEQ_STRIP_OFSBOTTOM); - - if (seq->flag & SELECT) glColor4ub(col[0], col[1], col[2], 255); - else glColor4ub(col[0], col[1], col[2], 160); - - fdrawbox(x2, y2, (float)(seq->start+seq->len), y2+SEQ_STRIP_OFSBOTTOM); //outline - - glDisable( GL_BLEND ); - } - if(seq->startstill) { - get_seq_color3ubv(seq, col); - BIF_GetColorPtrBlendShade3ubv(col, blendcol, col, 0.75, 40); - glColor3ubv(col); - - draw_shadedstrip(seq, col, x1, y1, (float)(seq->start), y2); - - /* feint pinstripes, helps see exactly which is extended and which isn't, - * especially when the extension is very small */ - if (seq->flag & SELECT) BIF_GetColorPtrBlendShade3ubv(col, col, col, 0.0, 24); - else BIF_GetColorPtrBlendShade3ubv(col, col, col, 0.0, -16); - - glColor3ubv(col); - - for(a=y1; a< y2; a+= pixely*2.0 ) { - fdrawline(x1, a, (float)(seq->start), a); - } - } - if(seq->endstill) { - get_seq_color3ubv(seq, col); - BIF_GetColorPtrBlendShade3ubv(col, blendcol, col, 0.75, 40); - glColor3ubv(col); - - draw_shadedstrip(seq, col, (float)(seq->start+seq->len), y1, x2, y2); - - /* feint pinstripes, helps see exactly which is extended and which isn't, - * especially when the extension is very small */ - if (seq->flag & SELECT) BIF_GetColorPtrBlendShade3ubv(col, col, col, 0.0, 24); - else BIF_GetColorPtrBlendShade3ubv(col, col, col, 0.0, -16); - - glColor3ubv(col); - - for(a=y1; a< y2; a+= pixely*2.0 ) { - fdrawline((float)(seq->start+seq->len), a, x2, a); - } - } -} - -/* draw info text on a sequence strip */ -static void draw_seq_text(Sequence *seq, float x1, float x2, float y1, float y2) -{ - float v1[2], v2[2]; - int len, size; - char str[32 + FILE_MAXDIR+FILE_MAXFILE], *strp; - short mval[2]; - - v1[1]= y1; - v2[1]= y2; - - v1[0]= x1; - ipoco_to_areaco_noclip(G.v2d, v1, mval); - x1= mval[0]; - v2[0]= x2; - ipoco_to_areaco_noclip(G.v2d, v2, mval); - x2= mval[0]; - size= x2-x1; - - if(seq->name[2]) { - sprintf(str, "%d | %s: %s", seq->len, give_seqname(seq), seq->name+2); - }else{ - if(seq->type == SEQ_META) { - sprintf(str, "%d | %s", seq->len, give_seqname(seq)); - } - else if(seq->type == SEQ_SCENE) { - if(seq->scene) sprintf(str, "%d | %s: %s", seq->len, give_seqname(seq), seq->scene->id.name+2); - else sprintf(str, "%d | %s", seq->len, give_seqname(seq)); - - } - else if(seq->type == SEQ_IMAGE) { - sprintf(str, "%d | %s%s", seq->len, seq->strip->dir, seq->strip->stripdata->name); - } - else if(seq->type & SEQ_EFFECT) { - int can_float = (seq->type != SEQ_PLUGIN) - || (seq->plugin && seq->plugin->version >= 4); - - if(seq->seq3!=seq->seq2 && seq->seq1!=seq->seq3) - sprintf(str, "%d | %s: %d>%d (use %d)%s", seq->len, give_seqname(seq), seq->seq1->machine, seq->seq2->machine, seq->seq3->machine, can_float ? "" : " No float, upgrade plugin!"); - else if (seq->seq1 && seq->seq2) - sprintf(str, "%d | %s: %d>%d%s", seq->len, give_seqname(seq), seq->seq1->machine, seq->seq2->machine, can_float ? "" : " No float, upgrade plugin!"); - else - sprintf(str, "%d | %s", seq->len, give_seqname(seq)); - } - else if (seq->type == SEQ_RAM_SOUND) { - sprintf(str, "%d | %s", seq->len, seq->strip->stripdata->name); - } - else if (seq->type == SEQ_HD_SOUND) { - sprintf(str, "%d | %s", seq->len, seq->strip->stripdata->name); - } - else if (seq->type == SEQ_MOVIE) { - sprintf(str, "%d | %s%s", seq->len, seq->strip->dir, seq->strip->stripdata->name); - } - } - - strp= str; - - while( (len= BMF_GetStringWidth(G.font, strp)) > size) { - if(len < 10) break; - if(strp[1]==0) break; - strp++; - } - - mval[0]= (x1+x2-len+1)/2; - mval[1]= 1; - areamouseco_to_ipoco(G.v2d, mval, &x1, &x2); - - if(seq->flag & SELECT) cpack(0xFFFFFF); - else cpack(0); - glRasterPos3f(x1, y1+SEQ_STRIP_OFSBOTTOM, 0.0); - BMF_DrawString(G.font, strp); -} - -/* draws a shaded strip, made from gradient + flat colour + gradient */ -static void draw_shadedstrip(Sequence *seq, char *col, float x1, float y1, float x2, float y2) -{ - float ymid1, ymid2; - - ymid1 = (y2-y1)*0.25 + y1; - ymid2 = (y2-y1)*0.65 + y1; - - glShadeModel(GL_SMOOTH); - glBegin(GL_QUADS); - - if(seq->flag & SELECT) BIF_GetColorPtrBlendShade3ubv(col, col, col, 0.0, -50); - else BIF_GetColorPtrBlendShade3ubv(col, col, col, 0.0, 0); - - glColor3ubv(col); - - glVertex2f(x1,y1); - glVertex2f(x2,y1); - - if(seq->flag & SELECT) BIF_GetColorPtrBlendShade3ubv(col, col, col, 0.0, 5); - else BIF_GetColorPtrBlendShade3ubv(col, col, col, 0.0, -5); - - glColor3ubv(col); - - glVertex2f(x2,ymid1); - glVertex2f(x1,ymid1); - - glEnd(); - - glRectf(x1, ymid1, x2, ymid2); - - glBegin(GL_QUADS); - - glVertex2f(x1,ymid2); - glVertex2f(x2,ymid2); - - if(seq->flag & SELECT) BIF_GetColorPtrBlendShade3ubv(col, col, col, 0.0, -15); - else BIF_GetColorPtrBlendShade3ubv(col, col, col, 0.0, 25); - - glColor3ubv(col); - - glVertex2f(x2,y2); - glVertex2f(x1,y2); - - glEnd(); - -} - -/* -Draw a sequence strip, bounds check alredy made -ScrArea is currently only used to get the windows width in pixels -so wave file sample drawing precission is zoom adjusted -*/ -static void draw_seq_strip(Sequence *seq, ScrArea *sa, SpaceSeq *sseq) -{ - float x1, x2, y1, y2; - char col[3]; - Sequence *last_seq = get_last_seq(); - - /* body */ - if(seq->startstill) x1= seq->start; - else x1= seq->startdisp; - y1= seq->machine+SEQ_STRIP_OFSBOTTOM; - if(seq->endstill) x2= seq->start+seq->len; - else x2= seq->enddisp; - y2= seq->machine+SEQ_STRIP_OFSTOP; - - - /* get the correct colour per strip type*/ - get_seq_color3ubv(seq, col); - - /* draw the main strip body */ - draw_shadedstrip(seq, col, x1, y1, x2, y2); - - /* draw additional info and controls */ - if (seq->type == SEQ_RAM_SOUND) drawseqwave(seq, x1, y1, x2, y2, sa->winx); - draw_seq_extensions(seq, sseq); - draw_seq_handle(seq, sseq, SEQ_LEFTHANDLE); - draw_seq_handle(seq, sseq, SEQ_RIGHTHANDLE); - - /* draw the strip outline */ - x1= seq->startdisp; - x2= seq->enddisp; - - get_seq_color3ubv(seq, col); - if (G.moving && (seq->flag & SELECT)) { - if(seq->flag & SEQ_OVERLAP) { - col[0]= 255; col[1]= col[2]= 40; - } else BIF_GetColorPtrBlendShade3ubv(col, col, col, 0.0, 120); - } - else if (seq == last_seq) BIF_GetColorPtrBlendShade3ubv(col, col, col, 0.0, 120); - else if (seq->flag & SELECT) BIF_GetColorPtrBlendShade3ubv(col, col, col, 0.0, -150); - else BIF_GetColorPtrBlendShade3ubv(col, col, col, 0.0, -60); - - glColor3ubv(col); - gl_round_box_shade(GL_LINE_LOOP, x1, y1, x2, y2, 0.0, 0.1, 0.0); - - - /* calculate if seq is long enough to print a name */ - x1= seq->startdisp+seq->handsize; - x2= seq->enddisp-seq->handsize; - - /* but first the contents of a meta */ - if(seq->type==SEQ_META) drawmeta_contents(seq, x1, y1+0.15, x2, y2-0.15); - - /* info text on the strip */ - if(x1cur.xmin) x1= G.v2d->cur.xmin; - else if(x1>G.v2d->cur.xmax) x1= G.v2d->cur.xmax; - if(x2cur.xmin) x2= G.v2d->cur.xmin; - else if(x2>G.v2d->cur.xmax) x2= G.v2d->cur.xmax; - - if(x1 != x2) { - draw_seq_text(seq, x1, x2, y1, y2); - } - -} - -static Sequence *special_seq_update= 0; - -void set_special_seq_update(int val) -{ - int x; - - /* if mouse over a sequence && LEFTMOUSE */ - if(val) { - special_seq_update= find_nearest_seq(&x); - } - else special_seq_update= 0; -} - - -static void draw_image_seq(ScrArea *sa) -{ - SpaceSeq *sseq; - StripElem *se; - struct ImBuf *ibuf; - int x1, y1, rectx, recty; - int free_ibuf = 0; - static int recursive= 0; - float zoom; - - glClearColor(0.0, 0.0, 0.0, 0.0); - glClear(GL_COLOR_BUFFER_BIT); - - sseq= sa->spacedata.first; - if(sseq==0) return; - - rectx= (G.scene->r.size*G.scene->r.xsch)/100; - recty= (G.scene->r.size*G.scene->r.ysch)/100; - - /* BIG PROBLEM: the give_ibuf_seq() can call a rendering, which in turn calls redraws... - this shouldn't belong in a window drawing.... - So: solve this once event based. - Now we check for recursion, space type and active area again (ton) */ - - if(recursive) - return; - else { - recursive= 1; - ibuf= (ImBuf *)give_ibuf_seq(rectx, recty, (G.scene->r.cfra), sseq->chanshown); - recursive= 0; - - /* HURMF! the give_ibuf_seq can call image display in this window */ - if(sa->spacetype!=SPACE_SEQ) - return; - if(sa!=curarea) { - areawinset(sa->win); - } - } - - if(special_seq_update) { - se = special_seq_update->curelem; - if(se) { - if(se->ok==2) { - if(se->se1) - ibuf= se->se1->ibuf; - } - else ibuf= se->ibuf; - } - } - if(ibuf==NULL) - return; - if(ibuf->rect_float && ibuf->rect==NULL) - IMB_rect_from_float(ibuf); - if(ibuf->rect==NULL) - return; - - if (sseq->mainb == SEQ_DRAW_IMG_WAVEFORM) { - ibuf = make_waveform_view_from_ibuf(ibuf); - free_ibuf = 1; - } else if (sseq->mainb == SEQ_DRAW_IMG_VECTORSCOPE) { - ibuf = make_vectorscope_view_from_ibuf(ibuf); - free_ibuf = 1; - } - - if (sseq->zoom > 0) { - zoom = sseq->zoom; - } else if (sseq->zoom == 0) { - zoom = 1.0; - } else { - zoom = -1.0/sseq->zoom; - } - - /* calc location */ - x1= (sa->winx-zoom*ibuf->x)/2 + sseq->xof; - y1= (sa->winy-zoom*ibuf->y)/2 + sseq->yof; - - /* needed for gla draw */ - glaDefine2DArea(&curarea->winrct); - glPixelZoom(zoom, zoom); - - glaDrawPixelsSafe(x1, y1, ibuf->x, ibuf->y, ibuf->x, GL_RGBA, GL_UNSIGNED_BYTE, ibuf->rect); - - glPixelZoom(1.0, 1.0); - - if (free_ibuf) { - IMB_freeImBuf(ibuf); - } - - sa->win_swap= WIN_BACK_OK; -} - -static void draw_extra_seqinfo(void) -{ - Sequence *last_seq = get_last_seq(); - StripElem *se, *last; - float xco, xfac; - int sta, end; - char str[256]; - - if(last_seq==0) return; - - /* xfac: size of 1 pixel */ - xfac= G.v2d->cur.xmax - G.v2d->cur.xmin; - xfac/= (float)(G.v2d->mask.xmax-G.v2d->mask.xmin); - xco= G.v2d->cur.xmin+40*xfac; - - BIF_ThemeColor(TH_TEXT); - - /* NAME */ - glRasterPos3f(xco, 0.3, 0.0); - strncpy(str, give_seqname(last_seq), 255); - BMF_DrawString(G.font, str); - xco += xfac*BMF_GetStringWidth(G.font, str) +30.0*xfac; - - if(last_seq->type==SEQ_SCENE && last_seq->scene) { - glRasterPos3f(xco, 0.3, 0.0); - BMF_DrawString(G.font, last_seq->scene->id.name+2); - xco += xfac*BMF_GetStringWidth(G.font, last_seq->scene->id.name+2) +30.0*xfac; - } - - /* LEN */ - if(last_seq->type & SEQ_EFFECT) - sprintf(str, "len: %d From %d - %d", last_seq->len, last_seq->startdisp, last_seq->enddisp-1); - else - sprintf(str, "len: %d (%d)", last_seq->enddisp-last_seq->startdisp, last_seq->len); - - glRasterPos3f(xco, 0.3, 0.0); - BMF_DrawString(G.font, str); - xco += xfac*BMF_GetStringWidth(G.font, str) +30.0*xfac; - - if(last_seq->type==SEQ_IMAGE) { - - /* CURRENT */ - se= (StripElem *)give_stripelem(last_seq, (G.scene->r.cfra)); - if(se) { - sprintf(str, "Cur: %s", se->name); - glRasterPos3f(xco, 0.3, 0.0); - BMF_DrawString(G.font, str); - xco += xfac*BMF_GetStringWidth(G.font, str) +30.0*xfac; - } - - /* FIRST AND LAST */ - - if(last_seq->strip) { - se= last_seq->strip->stripdata; - last= se+last_seq->len-1; - if(last_seq->startofs) se+= last_seq->startofs; - if(last_seq->endofs) last-= last_seq->endofs; - - sprintf(str, "First: %s at %d Last: %s at %d", se->name, last_seq->startdisp, last->name, last_seq->enddisp-1); - glRasterPos3f(xco, 0.3, 0.0); - BMF_DrawString(G.font, str); - xco += xfac*BMF_GetStringWidth(G.font, str) +30.0*xfac; - - /* orig size */ - sprintf(str, "OrigSize: %d x %d", last_seq->strip->orx, last_seq->strip->ory); - glRasterPos3f(xco, 0.3, 0.0); - BMF_DrawString(G.font, str); - xco += xfac*BMF_GetStringWidth(G.font, str) +30.0*xfac; - } - } - else if(last_seq->type==SEQ_MOVIE) { - - sta= last_seq->startofs; - end= last_seq->len-1-last_seq->endofs; - - sprintf(str, "%s %s%s First: %d at %d Last: %d at %d Cur: %d", - last_seq->name+2, last_seq->strip->dir, last_seq->strip->stripdata->name, - sta, last_seq->startdisp, end, last_seq->enddisp-1, (G.scene->r.cfra)-last_seq->startdisp); - - glRasterPos3f(xco, 0.3, 0.0); - BMF_DrawString(G.font, str); - } - else if(last_seq->type==SEQ_SCENE) { - se= (StripElem *)give_stripelem(last_seq, (G.scene->r.cfra)); - if(se && last_seq->scene) { - sprintf(str, "Cur: %d First: %d Last: %d", last_seq->sfra+se->nr, last_seq->sfra, last_seq->sfra+last_seq->len-1); - glRasterPos3f(xco, 0.3, 0.0); - BMF_DrawString(G.font, str); - } - } - else if(last_seq->type==SEQ_RAM_SOUND - || last_seq->type == SEQ_HD_SOUND) { - - sta= last_seq->startofs; - end= last_seq->len-1-last_seq->endofs; - - sprintf(str, "%s %s%s First: %d at %d Last: %d at %d Cur: %d Gain: %.2f dB Pan: %.2f", - last_seq->name+2, last_seq->strip->dir, last_seq->strip->stripdata->name, - sta, last_seq->startdisp, end, last_seq->enddisp-1, (G.scene->r.cfra)-last_seq->startdisp, - last_seq->level, last_seq->pan); - - glRasterPos3f(xco, 0.3, 0.0); - BMF_DrawString(G.font, str); - } -} - -void seq_reset_imageofs(SpaceSeq *sseq) -{ - sseq->xof = sseq->yof = sseq->zoom = 0; -} - -void seq_viewmove(SpaceSeq *sseq) -{ - ScrArea *sa; - short mval[2], mvalo[2]; - short rectx, recty, xmin, xmax, ymin, ymax, pad; - int oldcursor; - Window *win; - - sa = sseq->area; - rectx= (G.scene->r.size*G.scene->r.xsch)/100; - recty= (G.scene->r.size*G.scene->r.ysch)/100; - - pad = 10; - xmin = -(sa->winx/2) - rectx/2 + pad; - xmax = sa->winx/2 + rectx/2 - pad; - ymin = -(sa->winy/2) - recty/2 + pad; - ymax = sa->winy/2 + recty/2 - pad; - - getmouseco_sc(mvalo); - - oldcursor=get_cursor(); - win=winlay_get_active_window(); - - SetBlenderCursor(BC_NSEW_SCROLLCURSOR); - - while(get_mbut()&(L_MOUSE|M_MOUSE)) { - - getmouseco_sc(mval); - - if(mvalo[0]!=mval[0] || mvalo[1]!=mval[1]) { - - sseq->xof -= (mvalo[0]-mval[0]); - sseq->yof -= (mvalo[1]-mval[1]); - - /* prevent dragging image outside of the window and losing it! */ - CLAMP(sseq->xof, xmin, xmax); - CLAMP(sseq->yof, ymin, ymax); - - mvalo[0]= mval[0]; - mvalo[1]= mval[1]; - - scrarea_do_windraw(curarea); - screen_swapbuffers(); - } - else BIF_wait_for_statechange(); - } - window_set_cursor(win, oldcursor); -} - -#define SEQ_BUT_PLUGIN 1 -#define SEQ_BUT_RELOAD 2 -#define SEQ_BUT_EFFECT 3 - -void do_seqbuttons(short val) -{ - Sequence *last_seq = get_last_seq(); - - switch(val) { - case SEQ_BUT_PLUGIN: - case SEQ_BUT_EFFECT: - update_changed_seq_and_deps(last_seq, 0, 1); - break; - - case SEQ_BUT_RELOAD: - free_imbuf_seq(); // frees all - break; - } - - allqueue(REDRAWSEQ, 0); -} - -static void seq_panel_properties(short cntrl) // SEQ_HANDLER_PROPERTIES -{ - Sequence *last_seq = get_last_seq(); - uiBlock *block; - - block= uiNewBlock(&curarea->uiblocks, "seq_panel_properties", UI_EMBOSS, UI_HELV, curarea->win); - uiPanelControl(UI_PNL_SOLID | UI_PNL_CLOSE | cntrl); - uiSetPanelHandler(SEQ_HANDLER_PROPERTIES); // for close and esc - if(uiNewPanel(curarea, block, "Strip Properties", "Seq", 10, 230, 318, 204)==0) return; - - if(last_seq==NULL) return; - - if(last_seq->type==SEQ_PLUGIN) { - PluginSeq *pis; - VarStruct *varstr; - int a, xco, yco; - - uiDefBut(block, LABEL, 0, "Type: Plugin", 10,50,70,20, 0, 0, 0, 0, 0, ""); - - pis= last_seq->plugin; - if(pis->vars==0) return; - - varstr= pis->varstr; - if(varstr) { - for(a=0; avars; a++, varstr++) { - xco= 150*(a/6)+10; - yco= 125 - 20*(a % 6)+1; - uiDefBut(block, varstr->type, SEQ_BUT_PLUGIN, varstr->name, xco,yco,150,19, &(pis->data[a]), varstr->min, varstr->max, 100, 0, varstr->tip); - - } - } - uiDefButBitS(block, TOG, SEQ_IPO_FRAME_LOCKED, - SEQ_BUT_RELOAD, "IPO Frame locked", - 10,-40,150,19, &last_seq->flag, - 0.0, 1.0, 0, 0, - "Lock the IPO coordinates to the " - "global frame counter."); - - } - else if(last_seq->type==SEQ_IMAGE) { - - uiDefBut(block, LABEL, 0, "Type: Image", 10,140,150,20, 0, 0, 0, 0, 0, ""); - uiDefBut(block, TEX, B_NOP, "Name: ", 10,120,150,19, last_seq->name+2, 0.0, 21.0, 100, 0, ""); - - uiBlockBeginAlign(block); - uiDefButBitS(block, TOG, SEQ_MAKE_PREMUL, SEQ_BUT_RELOAD, "Convert to Premul", 10,90,150,19, &last_seq->flag, 0.0, 21.0, 100, 0, "Converts RGB values to become premultiplied with Alpha"); - uiDefButBitS(block, TOG, SEQ_FILTERY, SEQ_BUT_RELOAD, "FilterY", 10,70,150,19, &last_seq->flag, 0.0, 21.0, 100, 0, "For video movies to remove fields"); - uiDefButF(block, NUM, SEQ_BUT_RELOAD, "Mul:", 10,50,150,19, &last_seq->mul, 0.001, 5.0, 100, 0, "Multiply colors"); - uiDefButS(block, TOG|BIT|7, SEQ_BUT_RELOAD, "Reverse Frames", 10,30,150,19, &last_seq->flag, 0.0, 21.0, 100, 0, "Reverse frame order"); - uiDefButF(block, NUM, SEQ_BUT_RELOAD, "Strobe:", 10,10,150,19, &last_seq->strobe, 1.0, 30.0, 100, 0, "Only display every nth frame"); - uiBlockEndAlign(block); - } - else if(last_seq->type==SEQ_META) { - - uiDefBut(block, LABEL, 0, "Type: Meta", 10,140,150,20, 0, 0, 0, 0, 0, ""); - uiDefBut(block, TEX, B_NOP, "Name: ", 10,120,150,19, last_seq->name+2, 0.0, 21.0, 100, 0, ""); - - } - else if(last_seq->type==SEQ_SCENE) { - - uiDefBut(block, LABEL, 0, "Type: Scene", 10,140,150,20, 0, 0, 0, 0, 0, ""); - uiDefBut(block, TEX, B_NOP, "Name: ", 10,120,150,19, last_seq->name+2, 0.0, 21.0, 100, 0, ""); - uiDefButS(block, TOG|BIT|7, SEQ_BUT_RELOAD, "Reverse Frames", 10,90,150,19, &last_seq->flag, 0.0, 21.0, 100, 0, "Reverse frame order"); - } - else if(last_seq->type==SEQ_MOVIE) { - - if(last_seq->mul==0.0) last_seq->mul= 1.0; - - uiDefBut(block, LABEL, 0, "Type: Movie", 10,140,150,20, 0, 0, 0, 0, 0, ""); - uiDefBut(block, TEX, B_NOP, "Name: ", 10,120,150,19, last_seq->name+2, 0.0, 21.0, 100, 0, ""); - - uiBlockBeginAlign(block); - uiDefButBitS(block, TOG, SEQ_MAKE_PREMUL, SEQ_BUT_RELOAD, "Make Premul Alpha ", 10,90,150,19, &last_seq->flag, 0.0, 21.0, 100, 0, "Converts RGB values to become premultiplied with Alpha"); - uiDefButBitS(block, TOG, SEQ_FILTERY, SEQ_BUT_RELOAD, "FilterY ", 10,70,150,19, &last_seq->flag, 0.0, 21.0, 100, 0, "For video movies to remove fields"); - uiDefButF(block, NUM, SEQ_BUT_RELOAD, "Mul:", 10,50,150,19, &last_seq->mul, 0.001, 5.0, 100, 0, "Multiply colors"); - - uiDefButS(block, TOG|BIT|7, SEQ_BUT_RELOAD, "Reverse Frames", 10,30,150,19, &last_seq->flag, 0.0, 21.0, 100, 0, "Reverse frame order"); - uiDefButF(block, NUM, SEQ_BUT_RELOAD, "Strobe:", 10,10,150,19, &last_seq->strobe, 1.0, 30.0, 100, 0, "Only display every nth frame"); - uiDefButI(block, NUM, SEQ_BUT_RELOAD, "Preseek:", 10,-10,150,19, &last_seq->anim_preseek, 0.0, 50.0, 100, 0, "On MPEG-seeking preseek this many frames"); - uiBlockEndAlign(block); - } - else if(last_seq->type==SEQ_RAM_SOUND || - last_seq->type==SEQ_HD_SOUND) { - - uiDefBut(block, LABEL, 0, "Type: Audio", 10,140,150,20, 0, 0, 0, 0, 0, ""); - uiDefBut(block, TEX, 0, "Name: ", 10,120,150,19, last_seq->name+2, 0.0, 21.0, 100, 0, ""); - - uiBlockBeginAlign(block); - uiDefButBitS(block, TOG, SEQ_IPO_FRAME_LOCKED, - SEQ_BUT_RELOAD, "IPO Frame locked", - 10,90,150,19, &last_seq->flag, - 0.0, 1.0, 0, 0, - "Lock the IPO coordinates to the " - "global frame counter."); - - uiDefButBitS(block, TOG, SEQ_MUTE, B_NOP, "Mute", 10,70,120,19, &last_seq->flag, 0.0, 21.0, 100, 0, ""); - uiDefButF(block, NUM, SEQ_BUT_RELOAD, "Gain (dB):", 10,50,150,19, &last_seq->level, -96.0, 6.0, 100, 0, ""); - uiDefButF(block, NUM, SEQ_BUT_RELOAD, "Pan:", 10,30,150,19, &last_seq->pan, -1.0, 1.0, 100, 0, ""); - uiBlockEndAlign(block); - } - else if(last_seq->type>=SEQ_EFFECT) { - uiDefBut(block, LABEL, 0, "Type: Effect", 10,140,150,20, 0, 0, 0, 0, 0, ""); - uiDefBut(block, TEX, B_NOP, "Name: ", 10,120,150,19, last_seq->name+2, 0.0, 21.0, 100, 0, ""); - - uiDefButBitS(block, TOG, SEQ_IPO_FRAME_LOCKED, - SEQ_BUT_RELOAD, "IPO Frame locked", - 10,90,150,19, &last_seq->flag, - 0.0, 1.0, 0, 0, - "Lock the IPO coordinates to the " - "global frame counter."); - - uiBlockBeginAlign(block); - - //PUSH SEQUE - if(last_seq->type==SEQ_PUSH){ - PushVars *push = (PushVars *)last_seq->effectdata; - char formatstring[256]; - strncpy(formatstring, "Transition Type %t|Left Push%x0|Right Push %x1|Top Push %x4|Bottom Push %x5", 255); - uiDefButS(block, MENU,SEQ_BUT_EFFECT, formatstring, 10,65,220,22, &push->pushtype, 0, 0, 0, 0, "What type of push should be performed"); - } - else if(last_seq->type==SEQ_WIPE){ - WipeVars *wipe = (WipeVars *)last_seq->effectdata; - char formatstring[256]; - - strncpy(formatstring, "Transition Type %t|Single Wipe%x0|Double Wipe %x1|Iris Wipe %x4|Clock Wipe %x5", 255); - uiDefButS(block, MENU,SEQ_BUT_EFFECT, formatstring, 10,65,220,22, &wipe->wipetype, 0, 0, 0, 0, "What type of wipe should be performed"); - uiDefButF(block, NUM,SEQ_BUT_EFFECT,"Blur:", 10,40,220,22, &wipe->edgeWidth,0.0,1.0, 1, 2, "The percent width of the blur edge"); - switch(wipe->wipetype){ /*Skip Types that do not require angle*/ - case DO_IRIS_WIPE: - case DO_CLOCK_WIPE: - break; - - default: - uiDefButF(block, NUM,SEQ_BUT_EFFECT,"Angle:", 10,15,220,22, &wipe->angle,-90.0,90.0, 1, 2, "The Angle of the Edge"); - } - uiDefButS(block, TOG,SEQ_BUT_EFFECT,"Wipe In", 10,-10,220,22, &wipe->forward,0,0, 0, 0, "Controls Primary Direction of Wipe"); - } - else if(last_seq->type==SEQ_GLOW){ - GlowVars *glow = (GlowVars *)last_seq->effectdata; - - uiDefButF(block, NUM, SEQ_BUT_EFFECT, "Threshold:", 10,70,150,19, &glow->fMini, 0.0, 1.0, 0, 0, "Trigger Intensity"); - uiDefButF(block, NUM, SEQ_BUT_EFFECT, "Clamp:", 10,50,150,19, &glow->fClamp, 0.0, 1.0, 0, 0, "Brightness limit of intensity"); - uiDefButF(block, NUM, SEQ_BUT_EFFECT, "Boost factor:", 10,30,150,19, &glow->fBoost, 0.0, 10.0, 0, 0, "Brightness multiplier"); - uiDefButF(block, NUM, SEQ_BUT_EFFECT, "Blur distance:", 10,10,150,19, &glow->dDist, 0.5, 20.0, 0, 0, "Radius of glow effect"); - uiDefButI(block, NUM, B_NOP, "Quality:", 10,-5,150,19, &glow->dQuality, 1.0, 5.0, 0, 0, "Accuracy of the blur effect"); - uiDefButI(block, TOG, B_NOP, "Only boost", 10,-25,150,19, &glow->bNoComp, 0.0, 0.0, 0, 0, "Show the glow buffer only"); - } - else if(last_seq->type==SEQ_TRANSFORM){ - TransformVars *transform = (TransformVars *)last_seq->effectdata; - - uiDefButF(block, NUM, SEQ_BUT_EFFECT, "xScale Start:", 10,70,150,19, &transform->ScalexIni, 0.0, 10.0, 0, 0, "X Scale Start"); - uiDefButF(block, NUM, SEQ_BUT_EFFECT, "xScale End:", 160,70,150,19, &transform->ScalexFin, 0.0, 10.0, 0, 0, "X Scale End"); - uiDefButF(block, NUM, SEQ_BUT_EFFECT, "yScale Start:", 10,50,150,19, &transform->ScaleyIni, 0.0, 10.0, 0, 0, "Y Scale Start"); - uiDefButF(block, NUM, SEQ_BUT_EFFECT, "yScale End:", 160,50,150,19, &transform->ScaleyFin, 0.0, 10.0, 0, 0, "Y Scale End"); - - uiDefButF(block, NUM, SEQ_BUT_EFFECT, "x Start:", 10,30,150,19, &transform->xIni, -1000.0, 1000.0, 0, 0, "X Position Start"); - uiDefButF(block, NUM, SEQ_BUT_EFFECT, "x End:", 160,30,150,19, &transform->xFin, -1000.0, 1000.0, 0, 0, "X Position End"); - - uiDefButF(block, NUM, SEQ_BUT_EFFECT, "y Start:", 10,10,150,19, &transform->yIni, -1000.0, 1000.0, 0, 0, "Y Position Start"); - uiDefButF(block, NUM, SEQ_BUT_EFFECT, "y End:", 160,10,150,19, &transform->yFin, -1000.0, 1000.0, 0, 0, "Y Position End"); - - uiDefButF(block, NUM, SEQ_BUT_EFFECT, "rot Start:",10,-10,150,19, &transform->rotIni, 0.0, 360.0, 0, 0, "Rotation Start"); - uiDefButF(block, NUM, SEQ_BUT_EFFECT, "rot End:",160,-10,150,19, &transform->rotFin, 0.0, 360.0, 0, 0, "Rotation End"); - } else if(last_seq->type==SEQ_COLOR) { - SolidColorVars *colvars = (SolidColorVars *)last_seq->effectdata; - uiDefButF(block, COL, SEQ_BUT_RELOAD, "",10,90,150,19, colvars->col, 0, 0, 0, 0, ""); - } else if(last_seq->type==SEQ_SPEED){ - SpeedControlVars *sp = - (SpeedControlVars *)last_seq->effectdata; - - uiDefButF(block, NUM, SEQ_BUT_EFFECT, "Global Speed:", 10,70,150,19, &sp->globalSpeed, 0.0, 100.0, 0, 0, "Global Speed"); - - uiDefButBitI(block, TOG, SEQ_SPEED_INTEGRATE, - SEQ_BUT_EFFECT, - "IPO is velocity", - 10,50,150,19, &sp->flags, - 0.0, 1.0, 0, 0, - "Interpret the IPO value as a " - "velocity instead of a frame number"); - - uiDefButBitI(block, TOG, SEQ_SPEED_BLEND, - SEQ_BUT_EFFECT, - "Enable frame blending", - 10,30,150,19, &sp->flags, - 0.0, 1.0, 0, 0, - "Blend two frames into the " - "target for a smoother result"); - - uiDefButBitI(block, TOG, SEQ_SPEED_COMPRESS_IPO_Y, - SEQ_BUT_EFFECT, - "IPO value runs from [0..1]", - 10,10,150,19, &sp->flags, - 0.0, 1.0, 0, 0, - "Scale IPO value to get the " - "target frame number."); - } - - uiBlockEndAlign(block); - } -} - -static void seq_blockhandlers(ScrArea *sa) -{ - SpaceSeq *sseq= sa->spacedata.first; - short a; - - /* warning; blocks need to be freed each time, handlers dont remove (for ipo moved to drawipospace) */ - uiFreeBlocksWin(&sa->uiblocks, sa->win); - - for(a=0; ablockhandler[a]) { - - case SEQ_HANDLER_PROPERTIES: - seq_panel_properties(sseq->blockhandler[a+1]); - break; - - } - /* clear action value for event */ - sseq->blockhandler[a+1]= 0; - } - uiDrawBlocksPanels(sa, 0); - -} - -void drawseqspace(ScrArea *sa, void *spacedata) -{ - SpaceSeq *sseq= sa->spacedata.first; - View2D *v2d= &sseq->v2d; - Editing *ed; - Sequence *seq; - float col[3]; - int ofsx, ofsy; - int i; - - ed= G.scene->ed; - - if(sseq->mainb) { - draw_image_seq(sa); - return; - } - - bwin_clear_viewmat(sa->win); /* clear buttons view */ - glLoadIdentity(); - - BIF_GetThemeColor3fv(TH_BACK, col); - if(ed && ed->metastack.first) glClearColor(col[0], col[1], col[2]-0.1, 0.0); - else glClearColor(col[0], col[1], col[2], 0.0); - - glClear(GL_COLOR_BUFFER_BIT); - - calc_scrollrcts(sa, v2d, sa->winx, sa->winy); - - if(sa->winx>SCROLLB+10 && sa->winy>SCROLLH+10) { - if(v2d->scroll) { - ofsx= sa->winrct.xmin; /* because of mywin */ - ofsy= sa->winrct.ymin; - glViewport(ofsx+v2d->mask.xmin, ofsy+v2d->mask.ymin, ( ofsx+v2d->mask.xmax-1)-(ofsx+v2d->mask.xmin)+1, ( ofsy+v2d->mask.ymax-1)-( ofsy+v2d->mask.ymin)+1); - glScissor(ofsx+v2d->mask.xmin, ofsy+v2d->mask.ymin, ( ofsx+v2d->mask.xmax-1)-(ofsx+v2d->mask.xmin)+1, ( ofsy+v2d->mask.ymax-1)-( ofsy+v2d->mask.ymin)+1); - } - } - - - myortho2(v2d->cur.xmin, v2d->cur.xmax, v2d->cur.ymin, v2d->cur.ymax); - - BIF_ThemeColorShade(TH_BACK, -20); - glRectf(v2d->cur.xmin, 0.0, v2d->cur.xmax, 1.0); - - - boundbox_seq(); - calc_ipogrid(); - - i= MAX2(1, ((int)G.v2d->cur.ymin)-1); - - glBegin(GL_QUADS); - while (icur.ymax) { - if (((int)i) & 1) - BIF_ThemeColorShade(TH_BACK, -15); - else - BIF_ThemeColorShade(TH_BACK, -25); - - glVertex2f(v2d->cur.xmax, i); - glVertex2f(v2d->cur.xmin, i); - glVertex2f(v2d->cur.xmin, i+1); - glVertex2f(v2d->cur.xmax, i+1); - i+=1.0; - } - glEnd(); - - /* Force grid lines */ - i= MAX2(1, ((int)G.v2d->cur.ymin)-1); - glBegin(GL_LINES); - - while (icur.ymax) { - BIF_ThemeColor(TH_GRID); - glVertex2f(G.v2d->cur.xmax, i); - glVertex2f(G.v2d->cur.xmin, i); - i+=1.0; - } - glEnd(); - - - draw_ipogrid(); - draw_cfra_seq(); - - - /* sequences: first deselect */ - if(ed) { - seq= ed->seqbasep->first; - while(seq) { /* bound box test, dont draw outside the view */ - if (seq->flag & SELECT || - MIN2(seq->startdisp, seq->start) > v2d->cur.xmax || - MAX2(seq->enddisp, seq->start+seq->len) < v2d->cur.xmin || - seq->machine+1.0 < v2d->cur.ymin || - seq->machine > v2d->cur.ymax) - { - /* dont draw */ - } else { - draw_seq_strip(seq, sa, sseq); - } - seq= seq->next; - } - } - ed= G.scene->ed; - if(ed) { - seq= ed->seqbasep->first; - while(seq) { /* bound box test, dont draw outside the view */ - if (!(seq->flag & SELECT) || - MIN2(seq->startdisp, seq->start) > v2d->cur.xmax || - MAX2(seq->enddisp, seq->start+seq->len) < v2d->cur.xmin || - seq->machine+1.0 < v2d->cur.ymin || - seq->machine > v2d->cur.ymax) - { - /* dont draw */ - } else { - draw_seq_strip(seq, sa, sseq); - } - seq= seq->next; - } - } - - draw_extra_seqinfo(); - - /* restore viewport */ - mywinset(sa->win); - - /* ortho at pixel level sa */ - myortho2(-0.375, sa->winx-0.375, -0.375, sa->winy-0.375); - - if(sa->winx>SCROLLB+10 && sa->winy>SCROLLH+10) { - if(v2d->scroll) { - drawscroll(0); - } - } - - draw_area_emboss(sa); - - if(sseq->mainb==0) { - /* it is important to end a view in a transform compatible with buttons */ - bwin_scalematrix(sa->win, sseq->blockscale, sseq->blockscale, sseq->blockscale); - seq_blockhandlers(sa); - } - - sa->win_swap= WIN_BACK_OK; -} - - diff -Naur /home/olabomba/blender/source/blender/src/editseq.c /home/olabomba/blender-propre/blender/source/blender/src/editseq.c --- /home/olabomba/blender/source/blender/src/editseq.c 2006-12-04 23:59:41.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/src/editseq.c 2006-11-17 18:50:43.000000000 +0100 @@ -153,12 +153,12 @@ sh.free(last_seq); sh.init_plugin(last_seq, str); - last_seq->machine = MAX3(last_seq->seq1->machine, - last_seq->seq2->machine, + last_seq->machine = MAX3(last_seq->seq1->machine, + last_seq->seq2->machine, last_seq->seq3->machine); if( test_overlap_seq(last_seq) ) shuffle_seq(last_seq); - + BIF_undo_push("Load/change Sequencer plugin"); } @@ -214,21 +214,21 @@ ed= G.scene->ed; if(ed==0) return 0; - + pixelx = (v2d->cur.xmax - v2d->cur.xmin)/(v2d->mask.xmax - v2d->mask.xmin); getmouseco_areawin(mval); areamouseco_to_ipoco(G.v2d, mval, &x, &y); - + seq= ed->seqbasep->first; - + while(seq) { /* clamp handles to defined size in pixel space */ handsize = seq->handsize; minhandle = 7; maxhandle = 28; CLAMP(handsize, minhandle*pixelx, maxhandle*pixelx); - + if(seq->machine == (int)y) { /* check for both normal strips, and strips that have been flipped horizontally */ if( ((seq->startdisp < seq->enddisp) && (seq->startdisp<=x && seq->enddisp>=x)) || @@ -259,8 +259,8 @@ start = -5.0; end = 105.0; - /* Adjust IPO window to sequence and - avoid annoying snap-back to startframe + /* Adjust IPO window to sequence and + avoid annoying snap-back to startframe when Lock Time is on */ if (G.v2d->flag & V2D_VIEWLOCK) { if ((seq->flag & SEQ_IPO_FRAME_LOCKED) != 0) { @@ -373,7 +373,7 @@ seq->flag &= SEQ_DESEL; } END_SEQ - + BIF_undo_push("(De)select all Sequencer"); } @@ -446,12 +446,12 @@ if((G.qual & LR_SHIFTKEY) && (seq->flag & SELECT)) { if(hand==0) seq->flag &= SEQ_DESEL; else if(hand==1) { - if(seq->flag & SEQ_LEFTSEL) + if(seq->flag & SEQ_LEFTSEL) seq->flag &= ~SEQ_LEFTSEL; else seq->flag |= SEQ_LEFTSEL; } else if(hand==2) { - if(seq->flag & SEQ_RIGHTSEL) + if(seq->flag & SEQ_RIGHTSEL) seq->flag &= ~SEQ_RIGHTSEL; else seq->flag |= SEQ_RIGHTSEL; } @@ -491,7 +491,7 @@ seq->start= cfra; seq->machine= machine; seq->mul= 1.0; - + return seq; } @@ -530,7 +530,7 @@ } calc_sequence(seq); - + if(sfile->flag & FILE_STRINGCODE) { strcpy(name, sfile->dir); strcpy(rel, G.sce); @@ -600,7 +600,7 @@ seq->anim_preseek = IMB_anim_get_preseek(anim); calc_sequence(seq); - + if(sfile->flag & FILE_STRINGCODE) { strcpy(name, sfile->dir); strcpy(rel, G.sce); @@ -628,7 +628,7 @@ strncpy(last_imagename, seq->strip->dir, FILE_MAXDIR-1); } -static Sequence *sfile_to_ramsnd_sequence(SpaceFile *sfile, +static Sequence *sfile_to_ramsnd_sequence(SpaceFile *sfile, int cfra, int machine) { Sequence *seq; @@ -667,7 +667,7 @@ seq->sound = sound; calc_sequence(seq); - + if(sfile->flag & FILE_STRINGCODE) { strcpy(name, sfile->dir); strcpy(rel, G.sce); @@ -730,7 +730,7 @@ seq->hdaudio= hdaudio; calc_sequence(seq); - + if(sfile->flag & FILE_STRINGCODE) { strcpy(name, sfile->dir); strcpy(rel, G.sce); @@ -1047,21 +1047,20 @@ if(event==15) return SEQ_TRANSFORM; if(event==16) return SEQ_COLOR; if(event==17) return SEQ_SPEED; - if(event==18) return SEQ_PUSH; return 0; } static int seq_effect_find_selected(Editing *ed, Sequence *activeseq, int type, Sequence **selseq1, Sequence **selseq2, Sequence **selseq3) { Sequence *seq1= 0, *seq2= 0, *seq3= 0, *seq; - + if (!activeseq) seq2= get_last_seq(); for(seq=ed->seqbasep->first; seq; seq=seq->next) { if(seq->flag & SELECT) { if (seq->type == SEQ_RAM_SOUND - || seq->type == SEQ_HD_SOUND) { + || seq->type == SEQ_HD_SOUND) { error("Can't apply effects to " "audio sequence strips"); return 0; @@ -1077,7 +1076,7 @@ } } } - + /* make sequence selection a little bit more intuitive for 3 strips: the last-strip should be sequence3 */ if (seq3 != 0 && seq2 != 0) { @@ -1085,7 +1084,7 @@ seq2 = seq3; seq3 = tmp; } - + switch(get_sequence_effect_num_inputs(type)) { case 0: @@ -1177,7 +1176,7 @@ /* set find a free spot to but the strip */ if (newseq->seq1) { - newseq->machine= MAX3(newseq->seq1->machine, + newseq->machine= MAX3(newseq->seq1->machine, newseq->seq2->machine, newseq->seq3->machine); } @@ -1276,9 +1275,6 @@ case SEQ_SPEED: event = 17; break; - case SEQ_PUSH: - event = 18; - break; default: event = 0; break; @@ -1309,8 +1305,7 @@ "|Glow%x14" "|Transforms%x15" "|Color Generator%x16" - "|Speed Control%x17" - "|Push%x18"); + "|Speed Control%x17"); } if(event<1) return; @@ -1364,7 +1359,7 @@ seq->len= sce->r.efra - sce->r.sfra + 1; seq->strip= strip= MEM_callocN(sizeof(Strip), "strip"); - strncpy(seq->name + 2, sce->id.name + 2, + strncpy(seq->name + 2, sce->id.name + 2, sizeof(seq->name) - 2); strip->len= seq->len; strip->us= 1; @@ -1391,8 +1386,7 @@ case 15: case 16: case 17: - case 18: - if(get_last_seq()==0 && + if(get_last_seq()==0 && get_sequence_effect_num_inputs( event_to_efftype(event))> 0) error("Need at least one active sequence strip"); else if(event==10) @@ -1438,8 +1432,7 @@ "|Glow%x14" "|Transform%x15" "|Color Generator%x16" - "|Speed Control%x17" - "|Push%x18"); + "|Speed Control%x17"); if(event > 0) { if(event==1) { SWAP(Sequence *,last_seq->seq1,last_seq->seq2); @@ -1449,10 +1442,10 @@ } else if(event==11) { activate_fileselect( - FILE_SPECIAL, "Select Plugin", + FILE_SPECIAL, "Select Plugin", U.plugseqdir, change_plugin_seq); } - else if(event==12); + else if(event==12); /* recalculate: only new_stripdata */ else { /* free previous effect and init new effect */ @@ -1467,10 +1460,10 @@ } else { sh = get_sequence_effect(last_seq); sh.free(last_seq); - - last_seq->type + + last_seq->type = event_to_efftype(event); - + sh = get_sequence_effect(last_seq); sh.init(last_seq); } @@ -1483,9 +1476,9 @@ } else if(last_seq->type == SEQ_IMAGE) { if(okee("Change images")) { - activate_fileselect(FILE_SPECIAL, - "Select Images", - last_imagename, + activate_fileselect(FILE_SPECIAL, + "Select Images", + last_imagename, reload_image_strip); } } @@ -1525,7 +1518,7 @@ error("Can't reassign inputs: no cycles allowed"); return; } - + last_seq->seq1 = seq1; last_seq->seq2 = seq2; last_seq->seq3 = seq3; @@ -1583,7 +1576,7 @@ while(seq) { seqn= seq->next; if((seq->flag & flag) || deleteall) { - if(seq->type==SEQ_RAM_SOUND && seq->sound) + if(seq->type==SEQ_RAM_SOUND && seq->sound) seq->sound->id.us--; BLI_remlink(lb, seq); @@ -1786,7 +1779,7 @@ if(seq->len>0) seq->strip->stripdata= MEM_callocN(seq->len*sizeof(StripElem), "stripelem"); seq->flag &= SEQ_DESEL; - + seqn->flag &= ~(SEQ_LEFTSEL+SEQ_RIGHTSEL); } @@ -1922,7 +1915,7 @@ Sequence *seq, *seqm, *next; Editing *ed; int tot; - + ed= G.scene->ed; if(ed==0) return; @@ -1932,9 +1925,9 @@ while(seq) { if(seq->flag & SELECT) { tot++; - if (seq->type == SEQ_RAM_SOUND) { - error("Can't make Meta Strip from audio"); - return; + if (seq->type == SEQ_RAM_SOUND) { + error("Can't make Meta Strip from audio"); + return; } } seq= seq->next; @@ -1948,7 +1941,7 @@ while(seq) { if(seq->flag & SELECT) { if(seq->type & SEQ_EFFECT) { - if(seq->seq1 && + if(seq->seq1 && (seq->seq1->flag & SELECT)==0) tot= 0; if(seq->seq2 && (seq->seq2->flag & SELECT)==0) tot= 0; @@ -2388,10 +2381,10 @@ TransSeq *ts, *transmain; int tot=0; ListBase newlist; - + ed= G.scene->ed; if(ed==0) return; - + /* test for validity */ for(seq= ed->seqbasep->first; seq; seq= seq->next) { if(seq->flag & SELECT) { @@ -2403,7 +2396,7 @@ error("Cannot cut Meta strips"); return; } - + /* we build an array of TransSeq, to denote which strips take part in cutting */ for(seq= ed->seqbasep->first; seq; seq= seq->next) { if(seq->flag & SELECT) { @@ -2413,17 +2406,17 @@ seq->flag &= ~SELECT; // bad code, but we need it for recurs_dupli_seq... note that this ~SELECT assumption is used in loops below too (ton) } } - + if(tot==0) { error("No strips to cut"); return; } - + ts=transmain= MEM_callocN(tot*sizeof(TransSeq), "transseq"); - + for(seq= ed->seqbasep->first; seq; seq= seq->next) { if(seq->flag & SELECT) { - + ts->start= seq->start; ts->machine= seq->machine; ts->startstill= seq->startstill; @@ -2433,14 +2426,14 @@ ts->startofs= seq->startofs; ts->endofs= seq->endofs; ts->len= seq->len; - + ts++; } } - + for(seq= ed->seqbasep->first; seq; seq= seq->next) { if(seq->flag & SELECT) { - + /* strips with extended stillframes before */ if ((seq->startstill) && (cutframe start)) { seq->start= cutframe -1; @@ -2448,29 +2441,29 @@ seq->len= 1; seq->endstill= 0; } - + /* normal strip */ else if ((cutframe >=seq->start)&&(cutframe <=(seq->start+seq->len))) { seq->endofs = (seq->start+seq->len) - cutframe; } - + /* strips with extended stillframes after */ else if (((seq->start+seq->len) < cutframe) && (seq->endstill)) { seq->endstill -= seq->enddisp - cutframe; } - + calc_sequence(seq); } } - + newlist.first= newlist.last= NULL; - + /* now we duplicate the cut strip and move it into place afterwards */ recurs_dupli_seq(ed->seqbasep, &newlist); addlisttolist(ed->seqbasep, &newlist); - + ts= transmain; - + /* go through all the strips and correct them based on their stored values */ for(seq= ed->seqbasep->first; seq; seq= seq->next) { if(seq->flag & SELECT) { @@ -2482,15 +2475,15 @@ seq->len = ts->len; seq->endstill = ts->endstill; } - + /* normal strip */ else if ((cutframe>=seq->start)&&(cutframe<=(seq->start+seq->len))) { seq->startstill = 0; seq->startofs = cutframe - ts->start; seq->endofs = ts->endofs; seq->endstill = ts->endstill; - } - + } + /* strips with extended stillframes after */ else if (((seq->start+seq->len) < cutframe) && (seq->endstill)) { seq->start = cutframe - ts->len +1; @@ -2499,15 +2492,15 @@ seq->startstill = 0; } calc_sequence(seq); - + ts++; } } - - /* as last: */ + + /* as last: */ sort_seq(); MEM_freeN(transmain); - + allqueue(REDRAWSEQ, 0); } diff -Naur /home/olabomba/blender/source/blender/src/header_seq.c /home/olabomba/blender-propre/blender/source/blender/src/header_seq.c --- /home/olabomba/blender/source/blender/src/header_seq.c 2006-12-04 23:19:58.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/src/header_seq.c 2006-11-16 22:40:30.000000000 +0100 @@ -129,7 +129,7 @@ /* Lock Time */ uiDefIconTextBut(block, BUTM, 1, (G.v2d->flag & V2D_VIEWLOCK)?ICON_CHECKBOX_HLT:ICON_CHECKBOX_DEHLT, - "Lock Time to Other Windows|", 0, yco-=20, + "Lock Time to Other Windows|", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 5, ""); /* Draw time or frames.*/ @@ -241,9 +241,6 @@ case 13: add_sequence(SEQ_SPEED); break; - case 14: - add_sequence(SEQ_PUSH); - break; } } @@ -268,7 +265,6 @@ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Transform", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 11, ""); uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Color Generator", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 12, ""); uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Speed Control", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 13, ""); - uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Push", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 14, ""); uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, ""); uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Plugin...", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 8, ""); @@ -329,7 +325,7 @@ #ifdef WITH_FFMPEG uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Movie + Audio (HD)", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 5, ""); #endif - + if(curarea->headertype==HEADERTOP) { uiBlockSetDirection(block, UI_DOWN); } @@ -403,16 +399,16 @@ block= uiNewBlock(&curarea->uiblocks, "seq_editmenu", UI_EMBOSSP, UI_HELV, curarea->headwin); uiBlockSetButmFunc(block, do_seq_editmenu, NULL); - + uiDefIconTextBut(block, BUTM, 1, ICON_MENU_PANEL, "Strip Properties...|N", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 4, ""); uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Grab/Move|G", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 11, ""); uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Snap to Current Frame|Shift S, 1", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 12, ""); uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, ""); - + uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Cut at Current Frame|K", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 13, ""); - + uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, ""); uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Duplicate|Shift D", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 5, ""); @@ -447,7 +443,7 @@ uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Enter/Exit Meta Strip|Tab", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 9, ""); } } - + if(curarea->headertype==HEADERTOP) { uiBlockSetDirection(block, UI_DOWN); @@ -467,10 +463,10 @@ { Editing *ed; SpaceSeq *sseq= curarea->spacedata.first; - + ed= G.scene->ed; if(ed==0) return; - + switch(event) { case B_SEQHOME: if(sseq->mainb) @@ -550,18 +546,18 @@ } /* IMAGE */ - uiDefIconTextButS(block, ICONTEXTROW,B_REDR, ICON_SEQ_SEQUENCER, - "Image Preview: %t" + uiDefIconTextButS(block, ICONTEXTROW,B_REDR, ICON_SEQ_SEQUENCER, + "Image Preview: %t" "|Sequence %x0" "|Image Preview %x1" "|Luma Waveform %x2" "|Chroma Vectorscope %x3", - xco,0,XIC+10,YIC, &sseq->mainb, 0.0, 3.0, - 0, 0, + xco,0,XIC+10,YIC, &sseq->mainb, 0.0, 3.0, + 0, 0, "Shows the sequence output image preview"); - + xco+= 8 + XIC+10; - + /* CHANNEL shown in 3D preview */ if(sseq->mainb) { int minchan = 0; @@ -573,11 +569,11 @@ xco, 0, 3.5 * XIC,YIC, &sseq->chanshown, minchan, MAXSEQ, 0, 0, "The channel number shown in the image preview. 0 is the result of all strips combined."); - + xco+= 8 + XIC*3.5; } - + /* ZOOM and BORDER */ xco+= 8; uiBlockBeginAlign(block); diff -Naur /home/olabomba/blender/source/blender/src/seqeffects /home/olabomba/blender-propre/blender/source/blender/src/seqeffects --- /home/olabomba/blender/source/blender/src/seqeffects 2006-12-05 22:46:59.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/src/seqeffects 1970-01-01 01:00:00.000000000 +0100 @@ -1,3613 +0,0 @@ -/** - * $Id: seqeffects.c,v 1.11 2006/12/04 20:00:17 schlaile Exp $ - * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. - * - * This program 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. - * All rights reserved. - * - * Contributor(s): Peter Schlaile 2005/2006 - * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** - */ - -#include -#include -#include - -#include "MEM_guardedalloc.h" -#include "PIL_dynlib.h" - -#include "DNA_sequence_types.h" - -#include "BLI_blenlib.h" -#include "BLI_arithb.h" - -#include "BIF_interface.h" -#include "BIF_toolbox.h" - -#include "BSE_seqeffects.h" -#include "BSE_sequence.h" - -#include "BKE_global.h" -#include "BKE_ipo.h" -#include "BKE_plugin_types.h" -#include "BKE_texture.h" -#include "BKE_utildefines.h" - -#include "IMB_imbuf_types.h" -#include "IMB_imbuf.h" - -#include "RE_pipeline.h" // talks to entire render API - -#include "blendef.h" - -/* Glow effect */ -enum { - GlowR=0, - GlowG=1, - GlowB=2, - GlowA=3 -}; - - -/* ********************************************************************** - PLUGINS - ********************************************************************** */ - -static void open_plugin_seq(PluginSeq *pis, const char *seqname) -{ - int (*version)(); - void* (*alloc_private)(); - char *cp; - - /* to be sure: (is tested for) */ - pis->doit= 0; - pis->pname= 0; - pis->varstr= 0; - pis->cfra= 0; - pis->version= 0; - pis->instance_private_data = 0; - - /* clear the error list */ - PIL_dynlib_get_error_as_string(NULL); - - /* if(pis->handle) PIL_dynlib_close(pis->handle); */ - /* pis->handle= 0; */ - - /* open the needed object */ - pis->handle= PIL_dynlib_open(pis->name); - if(test_dlerr(pis->name, pis->name)) return; - - if (pis->handle != 0) { - /* find the address of the version function */ - version= (int (*)())PIL_dynlib_find_symbol(pis->handle, "plugin_seq_getversion"); - if (test_dlerr(pis->name, "plugin_seq_getversion")) return; - - if (version != 0) { - pis->version= version(); - if (pis->version==2 || pis->version==3 - || pis->version==4) { - int (*info_func)(PluginInfo *); - PluginInfo *info= (PluginInfo*) MEM_mallocN(sizeof(PluginInfo), "plugin_info");; - - info_func= (int (*)(PluginInfo *))PIL_dynlib_find_symbol(pis->handle, "plugin_getinfo"); - - if(info_func == NULL) error("No info func"); - else { - info_func(info); - - pis->pname= info->name; - pis->vars= info->nvars; - pis->cfra= info->cfra; - - pis->varstr= info->varstr; - - pis->doit= (void(*)(void))info->seq_doit; - if (info->init) - info->init(); - } - MEM_freeN(info); - - cp= PIL_dynlib_find_symbol(pis->handle, "seqname"); - if(cp) strncpy(cp, seqname, 21); - } else { - printf ("Plugin returned unrecognized version number\n"); - return; - } - } - alloc_private = (void* (*)())PIL_dynlib_find_symbol( - pis->handle, "plugin_seq_alloc_private_data"); - if (alloc_private) { - pis->instance_private_data = alloc_private(); - } - - pis->current_private_data = (void**) - PIL_dynlib_find_symbol( - pis->handle, "plugin_private_data"); - } -} - -static PluginSeq *add_plugin_seq(const char *str, const char *seqname) -{ - PluginSeq *pis; - VarStruct *varstr; - int a; - - pis= MEM_callocN(sizeof(PluginSeq), "PluginSeq"); - - strncpy(pis->name, str, FILE_MAXDIR+FILE_MAXFILE); - open_plugin_seq(pis, seqname); - - if(pis->doit==0) { - if(pis->handle==0) error("no plugin: %s", str); - else error("in plugin: %s", str); - MEM_freeN(pis); - return 0; - } - - /* default values */ - varstr= pis->varstr; - for(a=0; avars; a++, varstr++) { - if( (varstr->type & FLO)==FLO) - pis->data[a]= varstr->def; - else if( (varstr->type & INT)==INT) - *((int *)(pis->data+a))= (int) varstr->def; - } - - return pis; -} - -static void free_plugin_seq(PluginSeq *pis) -{ - if(pis==0) return; - - /* no PIL_dynlib_close: same plugin can be opened multiple times with 1 handle */ - - if (pis->instance_private_data) { - void (*free_private)(void *); - - free_private = (void (*)(void *))PIL_dynlib_find_symbol( - pis->handle, "plugin_seq_free_private_data"); - if (free_private) { - free_private(pis->instance_private_data); - } - } - - MEM_freeN(pis); -} - -static void init_plugin(Sequence * seq, const char * fname) -{ - seq->plugin= (PluginSeq *)add_plugin_seq(fname, seq->name+2); -} - -/* - * FIXME: should query plugin! Could be generator, that needs zero inputs... - */ -static int num_inputs_plugin() -{ - return 1; -} - -static void load_plugin(Sequence * seq) -{ - if (seq) { - open_plugin_seq(seq->plugin, seq->name+2); - } -} - -static void copy_plugin(Sequence * dst, Sequence * src) -{ - if(src->plugin) { - dst->plugin= MEM_dupallocN(src->plugin); - open_plugin_seq(dst->plugin, dst->name+2); - } -} - -static void do_plugin_effect(Sequence * seq,int cfra, - float facf0, float facf1, int x, int y, - struct ImBuf *ibuf1, struct ImBuf *ibuf2, - struct ImBuf *ibuf3, struct ImBuf *out) -{ - char *cp; - int float_rendering; - int use_temp_bufs = 0; /* Are needed since blur.c (and maybe some other - old plugins) do very bad stuff - with imbuf-internals */ - - if(seq->plugin && seq->plugin->doit) { - if(seq->plugin->cfra) - *(seq->plugin->cfra)= frame_to_float(cfra); - - cp = PIL_dynlib_find_symbol( - seq->plugin->handle, "seqname"); - - if(cp) strncpy(cp, seq->name+2, 22); - - if (seq->plugin->current_private_data) { - *seq->plugin->current_private_data - = seq->plugin->instance_private_data; - } - - float_rendering = (out->rect_float != NULL); - - if (seq->plugin->version<=3 && float_rendering) { - use_temp_bufs = 1; - - if (ibuf1) { - ibuf1 = IMB_dupImBuf(ibuf1); - IMB_rect_from_float(ibuf1); - imb_freerectfloatImBuf(ibuf1); - ibuf1->flags &= ~IB_rectfloat; - } - if (ibuf2) { - ibuf2 = IMB_dupImBuf(ibuf2); - IMB_rect_from_float(ibuf2); - imb_freerectfloatImBuf(ibuf2); - ibuf2->flags &= ~IB_rectfloat; - } - if (ibuf3) { - ibuf3 = IMB_dupImBuf(ibuf3); - IMB_rect_from_float(ibuf3); - imb_freerectfloatImBuf(ibuf3); - ibuf3->flags &= ~IB_rectfloat; - } - if (!out->rect) imb_addrectImBuf(out); - imb_freerectfloatImBuf(out); - out->flags &= ~IB_rectfloat; - } - - if (seq->plugin->version<=2) { - if(ibuf1) IMB_convert_rgba_to_abgr(ibuf1); - if(ibuf2) IMB_convert_rgba_to_abgr(ibuf2); - if(ibuf3) IMB_convert_rgba_to_abgr(ibuf3); - } - - ((SeqDoit)seq->plugin->doit)( - seq->plugin->data, facf0, facf1, x, y, - ibuf1, ibuf2, out, ibuf3); - - if (seq->plugin->version<=2) { - if (!use_temp_bufs) { - if(ibuf1) IMB_convert_rgba_to_abgr(ibuf1); - if(ibuf2) IMB_convert_rgba_to_abgr(ibuf2); - if(ibuf3) IMB_convert_rgba_to_abgr(ibuf3); - } - IMB_convert_rgba_to_abgr(out); - } - if (seq->plugin->version<=3 && float_rendering) { - IMB_float_from_rect(out); - } - - if (use_temp_bufs) { - if (ibuf1) IMB_freeImBuf(ibuf1); - if (ibuf2) IMB_freeImBuf(ibuf2); - if (ibuf3) IMB_freeImBuf(ibuf3); - } - } -} - -static int do_plugin_early_out(struct Sequence *seq, - float facf0, float facf1) -{ - return 0; -} - -static void free_plugin(struct Sequence * seq) -{ - free_plugin_seq(seq->plugin); - seq->plugin = 0; -} - -/* ********************************************************************** - ALPHA OVER - ********************************************************************** */ - -static void init_alpha_over_or_under(Sequence * seq) -{ - Sequence * seq1 = seq->seq1; - Sequence * seq2 = seq->seq2; - - seq->seq2= seq1; - seq->seq1= seq2; -} - -static void do_alphaover_effect_byte(float facf0, float facf1, int x, int y, - char * rect1, char *rect2, char *out) -{ - int fac2, mfac, fac, fac4; - int xo, tempc; - char *rt1, *rt2, *rt; - - xo= x; - rt1= (char *)rect1; - rt2= (char *)rect2; - rt= (char *)out; - - fac2= (int)(256.0*facf0); - fac4= (int)(256.0*facf1); - - while(y--) { - - x= xo; - while(x--) { - - /* rt = rt1 over rt2 (alpha from rt1) */ - - fac= fac2; - mfac= 256 - ( (fac2*rt1[3])>>8 ); - - if(fac==0) *( (unsigned int *)rt) = *( (unsigned int *)rt2); - else if(mfac==0) *( (unsigned int *)rt) = *( (unsigned int *)rt1); - else { - tempc= ( fac*rt1[0] + mfac*rt2[0])>>8; - if(tempc>255) rt[0]= 255; else rt[0]= tempc; - tempc= ( fac*rt1[1] + mfac*rt2[1])>>8; - if(tempc>255) rt[1]= 255; else rt[1]= tempc; - tempc= ( fac*rt1[2] + mfac*rt2[2])>>8; - if(tempc>255) rt[2]= 255; else rt[2]= tempc; - tempc= ( fac*rt1[3] + mfac*rt2[3])>>8; - if(tempc>255) rt[3]= 255; else rt[3]= tempc; - } - rt1+= 4; rt2+= 4; rt+= 4; - } - - if(y==0) break; - y--; - - x= xo; - while(x--) { - - fac= fac4; - mfac= 256 - ( (fac4*rt1[3])>>8 ); - - if(fac==0) *( (unsigned int *)rt) = *( (unsigned int *)rt2); - else if(mfac==0) *( (unsigned int *)rt) = *( (unsigned int *)rt1); - else { - tempc= ( fac*rt1[0] + mfac*rt2[0])>>8; - if(tempc>255) rt[0]= 255; else rt[0]= tempc; - tempc= ( fac*rt1[1] + mfac*rt2[1])>>8; - if(tempc>255) rt[1]= 255; else rt[1]= tempc; - tempc= ( fac*rt1[2] + mfac*rt2[2])>>8; - if(tempc>255) rt[2]= 255; else rt[2]= tempc; - tempc= ( fac*rt1[3] + mfac*rt2[3])>>8; - if(tempc>255) rt[3]= 255; else rt[3]= tempc; - } - rt1+= 4; rt2+= 4; rt+= 4; - } - } -} - -static void do_alphaover_effect_float(float facf0, float facf1, int x, int y, - float * rect1, float *rect2, float *out) -{ - float fac2, mfac, fac, fac4; - int xo; - float *rt1, *rt2, *rt; - - xo= x; - rt1= rect1; - rt2= rect2; - rt= out; - - fac2= facf0; - fac4= facf1; - - while(y--) { - - x= xo; - while(x--) { - - /* rt = rt1 over rt2 (alpha from rt1) */ - - fac= fac2; - mfac= 1.0 - (fac2*rt1[3]) ; - - if(fac <= 0.0) { - memcpy(rt, rt2, 4 * sizeof(float)); - } else if(mfac <=0) { - memcpy(rt, rt1, 4 * sizeof(float)); - } else { - rt[0] = fac*rt1[0] + mfac*rt2[0]; - rt[1] = fac*rt1[1] + mfac*rt2[1]; - rt[2] = fac*rt1[2] + mfac*rt2[2]; - rt[3] = fac*rt1[3] + mfac*rt2[3]; - } - rt1+= 4; rt2+= 4; rt+= 4; - } - - if(y==0) break; - y--; - - x= xo; - while(x--) { - - fac= fac4; - mfac= 1.0 - (fac4*rt1[3]); - - if(fac <= 0.0) { - memcpy(rt, rt2, 4 * sizeof(float)); - } else if(mfac <= 0.0) { - memcpy(rt, rt1, 4 * sizeof(float)); - } else { - rt[0] = fac*rt1[0] + mfac*rt2[0]; - rt[1] = fac*rt1[1] + mfac*rt2[1]; - rt[2] = fac*rt1[2] + mfac*rt2[2]; - rt[3] = fac*rt1[3] + mfac*rt2[3]; - } - rt1+= 4; rt2+= 4; rt+= 4; - } - } -} - -static void do_alphaover_effect(Sequence * seq,int cfra, - float facf0, float facf1, int x, int y, - struct ImBuf *ibuf1, struct ImBuf *ibuf2, - struct ImBuf *ibuf3, struct ImBuf *out) -{ - if (out->rect_float) { - do_alphaover_effect_float( - facf0, facf1, x, y, - ibuf1->rect_float, ibuf2->rect_float, - out->rect_float); - } else { - do_alphaover_effect_byte( - facf0, facf1, x, y, - (char*) ibuf1->rect, (char*) ibuf2->rect, - (char*) out->rect); - } -} - - -/* ********************************************************************** - ALPHA UNDER - ********************************************************************** */ - -void do_alphaunder_effect_byte( - float facf0, float facf1, int x, int y, char *rect1, - char *rect2, char *out) -{ - int fac2, mfac, fac, fac4; - int xo; - char *rt1, *rt2, *rt; - - xo= x; - rt1= rect1; - rt2= rect2; - rt= out; - - fac2= (int)(256.0*facf0); - fac4= (int)(256.0*facf1); - - while(y--) { - - x= xo; - while(x--) { - - /* rt = rt1 under rt2 (alpha from rt2) */ - - /* this complex optimalisation is because the - * 'skybuf' can be crossed in - */ - if(rt2[3]==0 && fac2==256) *( (unsigned int *)rt) = *( (unsigned int *)rt1); - else if(rt2[3]==255) *( (unsigned int *)rt) = *( (unsigned int *)rt2); - else { - mfac= rt2[3]; - fac= (fac2*(256-mfac))>>8; - - if(fac==0) *( (unsigned int *)rt) = *( (unsigned int *)rt2); - else { - rt[0]= ( fac*rt1[0] + mfac*rt2[0])>>8; - rt[1]= ( fac*rt1[1] + mfac*rt2[1])>>8; - rt[2]= ( fac*rt1[2] + mfac*rt2[2])>>8; - rt[3]= ( fac*rt1[3] + mfac*rt2[3])>>8; - } - } - rt1+= 4; rt2+= 4; rt+= 4; - } - - if(y==0) break; - y--; - - x= xo; - while(x--) { - - if(rt2[3]==0 && fac4==256) *( (unsigned int *)rt) = *( (unsigned int *)rt1); - else if(rt2[3]==255) *( (unsigned int *)rt) = *( (unsigned int *)rt2); - else { - mfac= rt2[3]; - fac= (fac4*(256-mfac))>>8; - - if(fac==0) *( (unsigned int *)rt) = *( (unsigned int *)rt2); - else { - rt[0]= ( fac*rt1[0] + mfac*rt2[0])>>8; - rt[1]= ( fac*rt1[1] + mfac*rt2[1])>>8; - rt[2]= ( fac*rt1[2] + mfac*rt2[2])>>8; - rt[3]= ( fac*rt1[3] + mfac*rt2[3])>>8; - } - } - rt1+= 4; rt2+= 4; rt+= 4; - } - } -} - - -static void do_alphaunder_effect_float(float facf0, float facf1, int x, int y, - float *rect1, float *rect2, - float *out) -{ - float fac2, mfac, fac, fac4; - int xo; - float *rt1, *rt2, *rt; - - xo= x; - rt1= rect1; - rt2= rect2; - rt= out; - - fac2= facf0; - fac4= facf1; - - while(y--) { - - x= xo; - while(x--) { - - /* rt = rt1 under rt2 (alpha from rt2) */ - - /* this complex optimalisation is because the - * 'skybuf' can be crossed in - */ - if( rt2[3]<=0 && fac2>=1.0) { - memcpy(rt, rt1, 4 * sizeof(float)); - } else if(rt2[3]>=1.0) { - memcpy(rt, rt2, 4 * sizeof(float)); - } else { - mfac = rt2[3]; - fac = fac2 * (1.0 - mfac); - - if(fac == 0) { - memcpy(rt, rt2, 4 * sizeof(float)); - } else { - rt[0]= fac*rt1[0] + mfac*rt2[0]; - rt[1]= fac*rt1[1] + mfac*rt2[1]; - rt[2]= fac*rt1[2] + mfac*rt2[2]; - rt[3]= fac*rt1[3] + mfac*rt2[3]; - } - } - rt1+= 4; rt2+= 4; rt+= 4; - } - - if(y==0) break; - y--; - - x= xo; - while(x--) { - - if(rt2[3]<=0 && fac4 >= 1.0) { - memcpy(rt, rt1, 4 * sizeof(float)); - - } else if(rt2[3]>=1.0) { - memcpy(rt, rt2, 4 * sizeof(float)); - } else { - mfac= rt2[3]; - fac= fac4*(1.0-mfac); - - if(fac == 0) { - memcpy(rt, rt2, 4 * sizeof(float)); - } else { - rt[0]= fac * rt1[0] + mfac * rt2[0]; - rt[1]= fac * rt1[1] + mfac * rt2[1]; - rt[2]= fac * rt1[2] + mfac * rt2[2]; - rt[3]= fac * rt1[3] + mfac * rt2[3]; - } - } - rt1+= 4; rt2+= 4; rt+= 4; - } - } -} - -static void do_alphaunder_effect(Sequence * seq,int cfra, - float facf0, float facf1, int x, int y, - struct ImBuf *ibuf1, struct ImBuf *ibuf2, - struct ImBuf *ibuf3, struct ImBuf *out) -{ - if (out->rect_float) { - do_alphaunder_effect_float( - facf0, facf1, x, y, - ibuf1->rect_float, ibuf2->rect_float, - out->rect_float); - } else { - do_alphaunder_effect_byte( - facf0, facf1, x, y, - (char*) ibuf1->rect, (char*) ibuf2->rect, - (char*) out->rect); - } -} - - -/* ********************************************************************** - CROSS - ********************************************************************** */ - -void do_cross_effect_byte(float facf0, float facf1, int x, int y, - char *rect1, char *rect2, - char *out) -{ - int fac1, fac2, fac3, fac4; - int xo; - char *rt1, *rt2, *rt; - - xo= x; - rt1= rect1; - rt2= rect2; - rt= out; - - fac2= (int)(256.0*facf0); - fac1= 256-fac2; - fac4= (int)(256.0*facf1); - fac3= 256-fac4; - - while(y--) { - - x= xo; - while(x--) { - - rt[0]= (fac1*rt1[0] + fac2*rt2[0])>>8; - rt[1]= (fac1*rt1[1] + fac2*rt2[1])>>8; - rt[2]= (fac1*rt1[2] + fac2*rt2[2])>>8; - rt[3]= (fac1*rt1[3] + fac2*rt2[3])>>8; - - rt1+= 4; rt2+= 4; rt+= 4; - } - - if(y==0) break; - y--; - - x= xo; - while(x--) { - - rt[0]= (fac3*rt1[0] + fac4*rt2[0])>>8; - rt[1]= (fac3*rt1[1] + fac4*rt2[1])>>8; - rt[2]= (fac3*rt1[2] + fac4*rt2[2])>>8; - rt[3]= (fac3*rt1[3] + fac4*rt2[3])>>8; - - rt1+= 4; rt2+= 4; rt+= 4; - } - - } -} - -void do_cross_effect_float(float facf0, float facf1, int x, int y, - float *rect1, float *rect2, float *out) -{ - float fac1, fac2, fac3, fac4; - int xo; - float *rt1, *rt2, *rt; - - xo= x; - rt1= rect1; - rt2= rect2; - rt= out; - - fac2= facf0; - fac1= 1.0 - fac2; - fac4= facf1; - fac3= 1.0 - fac4; - - while(y--) { - - x= xo; - while(x--) { - - rt[0]= fac1*rt1[0] + fac2*rt2[0]; - rt[1]= fac1*rt1[1] + fac2*rt2[1]; - rt[2]= fac1*rt1[2] + fac2*rt2[2]; - rt[3]= fac1*rt1[3] + fac2*rt2[3]; - - rt1+= 4; rt2+= 4; rt+= 4; - } - - if(y==0) break; - y--; - - x= xo; - while(x--) { - - rt[0]= fac3*rt1[0] + fac4*rt2[0]; - rt[1]= fac3*rt1[1] + fac4*rt2[1]; - rt[2]= fac3*rt1[2] + fac4*rt2[2]; - rt[3]= fac3*rt1[3] + fac4*rt2[3]; - - rt1+= 4; rt2+= 4; rt+= 4; - } - - } -} - -/* carefull: also used by speed effect! */ - -static void do_cross_effect(Sequence * seq,int cfra, - float facf0, float facf1, int x, int y, - struct ImBuf *ibuf1, struct ImBuf *ibuf2, - struct ImBuf *ibuf3, struct ImBuf *out) -{ - if (out->rect_float) { - do_cross_effect_float( - facf0, facf1, x, y, - ibuf1->rect_float, ibuf2->rect_float, - out->rect_float); - } else { - do_cross_effect_byte( - facf0, facf1, x, y, - (char*) ibuf1->rect, (char*) ibuf2->rect, - (char*) out->rect); - } -} - - -/* ********************************************************************** - GAMMA CROSS - ********************************************************************** */ - -/* copied code from initrender.c */ -static unsigned short *gamtab = 0; -static unsigned short *igamtab1 = 0; -static int gamma_tabs_refcount = 0; - -#define RE_GAMMA_TABLE_SIZE 400 - -static float gamma_range_table[RE_GAMMA_TABLE_SIZE + 1]; -static float gamfactor_table[RE_GAMMA_TABLE_SIZE]; -static float inv_gamma_range_table[RE_GAMMA_TABLE_SIZE + 1]; -static float inv_gamfactor_table[RE_GAMMA_TABLE_SIZE]; -static float colour_domain_table[RE_GAMMA_TABLE_SIZE + 1]; -static float colour_step; -static float inv_colour_step; -static float valid_gamma; -static float valid_inv_gamma; - -static void makeGammaTables(float gamma) -{ - /* we need two tables: one forward, one backward */ - int i; - - valid_gamma = gamma; - valid_inv_gamma = 1.0 / gamma; - colour_step = 1.0 / RE_GAMMA_TABLE_SIZE; - inv_colour_step = (float) RE_GAMMA_TABLE_SIZE; - - /* We could squeeze out the two range tables to gain some memory. */ - for (i = 0; i < RE_GAMMA_TABLE_SIZE; i++) { - colour_domain_table[i] = i * colour_step; - gamma_range_table[i] = pow(colour_domain_table[i], - valid_gamma); - inv_gamma_range_table[i] = pow(colour_domain_table[i], - valid_inv_gamma); - } - - /* The end of the table should match 1.0 carefully. In order to avoid */ - /* rounding errors, we just set this explicitly. The last segment may */ - /* have a different lenght than the other segments, but our */ - /* interpolation is insensitive to that. */ - colour_domain_table[RE_GAMMA_TABLE_SIZE] = 1.0; - gamma_range_table[RE_GAMMA_TABLE_SIZE] = 1.0; - inv_gamma_range_table[RE_GAMMA_TABLE_SIZE] = 1.0; - - /* To speed up calculations, we make these calc factor tables. They are */ - /* multiplication factors used in scaling the interpolation. */ - for (i = 0; i < RE_GAMMA_TABLE_SIZE; i++ ) { - gamfactor_table[i] = inv_colour_step - * (gamma_range_table[i + 1] - gamma_range_table[i]) ; - inv_gamfactor_table[i] = inv_colour_step - * (inv_gamma_range_table[i + 1] - inv_gamma_range_table[i]) ; - } - -} /* end of void makeGammaTables(float gamma) */ - - -static float gammaCorrect(float c) -{ - int i; - float res = 0.0; - - i = floor(c * inv_colour_step); - /* Clip to range [0,1]: outside, just do the complete calculation. */ - /* We may have some performance problems here. Stretching up the LUT */ - /* may help solve that, by exchanging LUT size for the interpolation. */ - /* Negative colours are explicitly handled. */ - if (i < 0) res = -pow(abs(c), valid_gamma); - else if (i >= RE_GAMMA_TABLE_SIZE ) res = pow(c, valid_gamma); - else res = gamma_range_table[i] + - ( (c - colour_domain_table[i]) * gamfactor_table[i]); - - return res; -} /* end of float gammaCorrect(float col) */ - -/* ------------------------------------------------------------------------- */ - -static float invGammaCorrect(float col) -{ - int i; - float res = 0.0; - - i = floor(col*inv_colour_step); - /* Negative colours are explicitly handled. */ - if (i < 0) res = -pow(abs(col), valid_inv_gamma); - else if (i >= RE_GAMMA_TABLE_SIZE) res = pow(col, valid_inv_gamma); - else res = inv_gamma_range_table[i] + - ( (col - colour_domain_table[i]) * inv_gamfactor_table[i]); - - return res; -} /* end of float invGammaCorrect(float col) */ - - -static void gamtabs(float gamma) -{ - float val, igamma= 1.0f/gamma; - int a; - - gamtab= MEM_mallocN(65536*sizeof(short), "initGaus2"); - igamtab1= MEM_mallocN(256*sizeof(short), "initGaus2"); - - /* gamtab: in short, out short */ - for(a=0; a<65536; a++) { - val= a; - val/= 65535.0; - - if(gamma==2.0) val= sqrt(val); - else if(gamma!=1.0) val= pow(val, igamma); - - gamtab[a]= (65535.99*val); - } - /* inverse gamtab1 : in byte, out short */ - for(a=1; a<=256; a++) { - if(gamma==2.0) igamtab1[a-1]= a*a-1; - else if(gamma==1.0) igamtab1[a-1]= 256*a-1; - else { - val= a/256.0; - igamtab1[a-1]= (65535.0*pow(val, gamma)) -1 ; - } - } - -} - -static void alloc_or_ref_gammatabs() -{ - if (gamma_tabs_refcount == 0) { - gamtabs(2.0f); - makeGammaTables(2.0f); - } - gamma_tabs_refcount++; -} - -static void init_gammacross(Sequence * seq) -{ - alloc_or_ref_gammatabs(); -} - -static void load_gammacross(Sequence * seq) -{ - alloc_or_ref_gammatabs(); -} - -static void free_gammacross(Sequence * seq) -{ - if (--gamma_tabs_refcount == 0) { - MEM_freeN(gamtab); - MEM_freeN(igamtab1); - gamtab = 0; - igamtab1 = 0; - } - if (gamma_tabs_refcount < 0) { - fprintf(stderr, "seqeffects: free_gammacross double free!\n"); - } -} - -static void do_gammacross_effect_byte(float facf0, float facf1, - int x, int y, - char *rect1, - char *rect2, - char *out) -{ - int fac1, fac2, col; - int xo; - char *rt1, *rt2, *rt; - - xo= x; - rt1= (char *)rect1; - rt2= (char *)rect2; - rt= (char *)out; - - fac2= (int)(256.0*facf0); - fac1= 256-fac2; - - while(y--) { - - x= xo; - while(x--) { - - col= (fac1*igamtab1[rt1[0]] + fac2*igamtab1[rt2[0]])>>8; - if(col>65535) rt[0]= 255; else rt[0]= ( (char *)(gamtab+col))[MOST_SIG_BYTE]; - col=(fac1*igamtab1[rt1[1]] + fac2*igamtab1[rt2[1]])>>8; - if(col>65535) rt[1]= 255; else rt[1]= ( (char *)(gamtab+col))[MOST_SIG_BYTE]; - col= (fac1*igamtab1[rt1[2]] + fac2*igamtab1[rt2[2]])>>8; - if(col>65535) rt[2]= 255; else rt[2]= ( (char *)(gamtab+col))[MOST_SIG_BYTE]; - col= (fac1*igamtab1[rt1[3]] + fac2*igamtab1[rt2[3]])>>8; - if(col>65535) rt[3]= 255; else rt[3]= ( (char *)(gamtab+col))[MOST_SIG_BYTE]; - - rt1+= 4; rt2+= 4; rt+= 4; - } - - if(y==0) break; - y--; - - x= xo; - while(x--) { - - col= (fac1*igamtab1[rt1[0]] + fac2*igamtab1[rt2[0]])>>8; - if(col>65535) rt[0]= 255; else rt[0]= ( (char *)(gamtab+col))[MOST_SIG_BYTE]; - col= (fac1*igamtab1[rt1[1]] + fac2*igamtab1[rt2[1]])>>8; - if(col>65535) rt[1]= 255; else rt[1]= ( (char *)(gamtab+col))[MOST_SIG_BYTE]; - col= (fac1*igamtab1[rt1[2]] + fac2*igamtab1[rt2[2]])>>8; - if(col>65535) rt[2]= 255; else rt[2]= ( (char *)(gamtab+col))[MOST_SIG_BYTE]; - col= (fac1*igamtab1[rt1[3]] + fac2*igamtab1[rt2[3]])>>8; - if(col>65535) rt[3]= 255; else rt[3]= ( (char *)(gamtab+col))[MOST_SIG_BYTE]; - - rt1+= 4; rt2+= 4; rt+= 4; - } - } - -} - -static void do_gammacross_effect_float(float facf0, float facf1, - int x, int y, - float *rect1, float *rect2, - float *out) -{ - float fac1, fac2, col; - int xo; - float *rt1, *rt2, *rt; - - xo= x; - rt1= rect1; - rt2= rect2; - rt= out; - - fac2= facf0; - fac1= 1.0 - fac2; - - while(y--) { - - x= xo * 4; - while(x--) { - - *rt= gammaCorrect( - fac1 * invGammaCorrect(*rt1) - + fac2 * invGammaCorrect(*rt2)); - rt1++; rt2++; rt++; - } - - if(y==0) break; - y--; - - x= xo * 4; - while(x--) { - - col= gammaCorrect( - fac1*invGammaCorrect(*rt1) - + fac2*invGammaCorrect(*rt2)); - - rt1++; rt2++; rt++; - } - } -} - -static void do_gammacross_effect(Sequence * seq,int cfra, - float facf0, float facf1, int x, int y, - struct ImBuf *ibuf1, struct ImBuf *ibuf2, - struct ImBuf *ibuf3, struct ImBuf *out) -{ - if (out->rect_float) { - do_gammacross_effect_float( - facf0, facf1, x, y, - ibuf1->rect_float, ibuf2->rect_float, - out->rect_float); - } else { - do_gammacross_effect_byte( - facf0, facf1, x, y, - (char*) ibuf1->rect, (char*) ibuf2->rect, - (char*) out->rect); - } -} - - -/* ********************************************************************** - ADD - ********************************************************************** */ - -static void do_add_effect_byte(float facf0, float facf1, int x, int y, - unsigned char *rect1, unsigned char *rect2, - unsigned char *out) -{ - int col, xo, fac1, fac3; - char *rt1, *rt2, *rt; - - xo= x; - rt1= (char *)rect1; - rt2= (char *)rect2; - rt= (char *)out; - - fac1= (int)(256.0*facf0); - fac3= (int)(256.0*facf1); - - while(y--) { - - x= xo; - while(x--) { - - col= rt1[0]+ ((fac1*rt2[0])>>8); - if(col>255) rt[0]= 255; else rt[0]= col; - col= rt1[1]+ ((fac1*rt2[1])>>8); - if(col>255) rt[1]= 255; else rt[1]= col; - col= rt1[2]+ ((fac1*rt2[2])>>8); - if(col>255) rt[2]= 255; else rt[2]= col; - col= rt1[3]+ ((fac1*rt2[3])>>8); - if(col>255) rt[3]= 255; else rt[3]= col; - - rt1+= 4; rt2+= 4; rt+= 4; - } - - if(y==0) break; - y--; - - x= xo; - while(x--) { - - col= rt1[0]+ ((fac3*rt2[0])>>8); - if(col>255) rt[0]= 255; else rt[0]= col; - col= rt1[1]+ ((fac3*rt2[1])>>8); - if(col>255) rt[1]= 255; else rt[1]= col; - col= rt1[2]+ ((fac3*rt2[2])>>8); - if(col>255) rt[2]= 255; else rt[2]= col; - col= rt1[3]+ ((fac3*rt2[3])>>8); - if(col>255) rt[3]= 255; else rt[3]= col; - - rt1+= 4; rt2+= 4; rt+= 4; - } - } -} - -static void do_add_effect_float(float facf0, float facf1, int x, int y, - float *rect1, float *rect2, - float *out) -{ - int xo; - float fac1, fac3; - float *rt1, *rt2, *rt; - - xo= x; - rt1= rect1; - rt2= rect2; - rt= out; - - fac1= facf0; - fac3= facf1; - - while(y--) { - - x= xo * 4; - while(x--) { - *rt = *rt1 + fac1 * (*rt2); - - rt1++; rt2++; rt++; - } - - if(y==0) break; - y--; - - x= xo * 4; - while(x--) { - *rt = *rt1 + fac3 * (*rt2); - - rt1++; rt2++; rt++; - } - } -} - -static void do_add_effect(Sequence * seq,int cfra, - float facf0, float facf1, int x, int y, - struct ImBuf *ibuf1, struct ImBuf *ibuf2, - struct ImBuf *ibuf3, struct ImBuf *out) -{ - if (out->rect_float) { - do_add_effect_float( - facf0, facf1, x, y, - ibuf1->rect_float, ibuf2->rect_float, - out->rect_float); - } else { - do_add_effect_byte( - facf0, facf1, x, y, - (char*) ibuf1->rect, (char*) ibuf2->rect, - (char*) out->rect); - } -} - - -/* ********************************************************************** - SUB - ********************************************************************** */ - -static void do_sub_effect_byte(float facf0, float facf1, - int x, int y, - char *rect1, char *rect2, char *out) -{ - int col, xo, fac1, fac3; - char *rt1, *rt2, *rt; - - xo= x; - rt1= (char *)rect1; - rt2= (char *)rect2; - rt= (char *)out; - - fac1= (int)(256.0*facf0); - fac3= (int)(256.0*facf1); - - while(y--) { - - x= xo; - while(x--) { - - col= rt1[0]- ((fac1*rt2[0])>>8); - if(col<0) rt[0]= 0; else rt[0]= col; - col= rt1[1]- ((fac1*rt2[1])>>8); - if(col<0) rt[1]= 0; else rt[1]= col; - col= rt1[2]- ((fac1*rt2[2])>>8); - if(col<0) rt[2]= 0; else rt[2]= col; - col= rt1[3]- ((fac1*rt2[3])>>8); - if(col<0) rt[3]= 0; else rt[3]= col; - - rt1+= 4; rt2+= 4; rt+= 4; - } - - if(y==0) break; - y--; - - x= xo; - while(x--) { - - col= rt1[0]- ((fac3*rt2[0])>>8); - if(col<0) rt[0]= 0; else rt[0]= col; - col= rt1[1]- ((fac3*rt2[1])>>8); - if(col<0) rt[1]= 0; else rt[1]= col; - col= rt1[2]- ((fac3*rt2[2])>>8); - if(col<0) rt[2]= 0; else rt[2]= col; - col= rt1[3]- ((fac3*rt2[3])>>8); - if(col<0) rt[3]= 0; else rt[3]= col; - - rt1+= 4; rt2+= 4; rt+= 4; - } - } -} - -static void do_sub_effect_float(float facf0, float facf1, int x, int y, - float *rect1, float *rect2, - float *out) -{ - int xo; - float fac1, fac3; - float *rt1, *rt2, *rt; - - xo= x; - rt1= rect1; - rt2= rect2; - rt= out; - - fac1= facf0; - fac3= facf1; - - while(y--) { - - x= xo * 4; - while(x--) { - *rt = *rt1 - fac1 * (*rt2); - - rt1++; rt2++; rt++; - } - - if(y==0) break; - y--; - - x= xo * 4; - while(x--) { - *rt = *rt1 - fac3 * (*rt2); - - rt1++; rt2++; rt++; - } - } -} - -static void do_sub_effect(Sequence * seq,int cfra, - float facf0, float facf1, int x, int y, - struct ImBuf *ibuf1, struct ImBuf *ibuf2, - struct ImBuf *ibuf3, struct ImBuf *out) -{ - if (out->rect_float) { - do_sub_effect_float( - facf0, facf1, x, y, - ibuf1->rect_float, ibuf2->rect_float, - out->rect_float); - } else { - do_sub_effect_byte( - facf0, facf1, x, y, - (char*) ibuf1->rect, (char*) ibuf2->rect, - (char*) out->rect); - } -} - -/* ********************************************************************** - DROP - ********************************************************************** */ - -/* Must be > 0 or add precopy, etc to the function */ -#define XOFF 8 -#define YOFF 8 - -static void do_drop_effect_byte(float facf0, float facf1, int x, int y, - unsigned char *rect2i, unsigned char *rect1i, - unsigned char *outi) -{ - int height, width, temp, fac, fac1, fac2; - char *rt1, *rt2, *out; - int field= 1; - - width= x; - height= y; - - fac1= (int)(70.0*facf0); - fac2= (int)(70.0*facf1); - - rt2= (char*) (rect2i + YOFF*width); - rt1= (char*) rect1i; - out= (char*) outi; - for (y=0; y>8); - - *(out++)= MAX2(0, *rt1 - temp); rt1++; - *(out++)= MAX2(0, *rt1 - temp); rt1++; - *(out++)= MAX2(0, *rt1 - temp); rt1++; - *(out++)= MAX2(0, *rt1 - temp); rt1++; - rt2+=4; - } - rt2+=XOFF*4; - } - memcpy(out, rt1, sizeof(int)*YOFF*width); -} - -static void do_drop_effect_float(float facf0, float facf1, int x, int y, - float *rect2i, float *rect1i, - float *outi) -{ - int height, width; - float temp, fac, fac1, fac2; - float *rt1, *rt2, *out; - int field= 1; - - width= x; - height= y; - - fac1= 70.0*facf0; - fac2= 70.0*facf1; - - rt2= (rect2i + YOFF*width); - rt1= rect1i; - out= outi; - for (y=0; yrect_float) { - do_drop_effect_float( - facf0, facf1, x, y, - ibuf1->rect_float, ibuf2->rect_float, - out->rect_float); - } else { - do_drop_effect_byte( - facf0, facf1, x, y, - (char*) ibuf1->rect, (char*) ibuf2->rect, - (char*) out->rect); - } -} - -/* ********************************************************************** - MUL - ********************************************************************** */ - -static void do_mul_effect_byte(float facf0, float facf1, int x, int y, - unsigned char *rect1, unsigned char *rect2, - unsigned char *out) -{ - int xo, fac1, fac3; - char *rt1, *rt2, *rt; - - xo= x; - rt1= (char *)rect1; - rt2= (char *)rect2; - rt= (char *)out; - - fac1= (int)(256.0*facf0); - fac3= (int)(256.0*facf1); - - /* formula: - * fac*(a*b) + (1-fac)*a => fac*a*(b-1)+axaux= c*px + py*s ;//+centx - yaux= -s*px + c*py;//+centy - */ - - while(y--) { - - x= xo; - while(x--) { - - rt[0]= rt1[0] + ((fac1*rt1[0]*(rt2[0]-256))>>16); - rt[1]= rt1[1] + ((fac1*rt1[1]*(rt2[1]-256))>>16); - rt[2]= rt1[2] + ((fac1*rt1[2]*(rt2[2]-256))>>16); - rt[3]= rt1[3] + ((fac1*rt1[3]*(rt2[3]-256))>>16); - - rt1+= 4; rt2+= 4; rt+= 4; - } - - if(y==0) break; - y--; - - x= xo; - while(x--) { - - rt[0]= rt1[0] + ((fac3*rt1[0]*(rt2[0]-256))>>16); - rt[1]= rt1[1] + ((fac3*rt1[1]*(rt2[1]-256))>>16); - rt[2]= rt1[2] + ((fac3*rt1[2]*(rt2[2]-256))>>16); - rt[3]= rt1[3] + ((fac3*rt1[3]*(rt2[3]-256))>>16); - - rt1+= 4; rt2+= 4; rt+= 4; - } - } -} - -static void do_mul_effect_float(float facf0, float facf1, int x, int y, - float *rect1, float *rect2, - float *out) -{ - int xo; - float fac1, fac3; - float *rt1, *rt2, *rt; - - xo= x; - rt1= rect1; - rt2= rect2; - rt= out; - - fac1= facf0; - fac3= facf1; - - /* formula: - * fac*(a*b) + (1-fac)*a => fac*a*(b-1)+a - */ - - while(y--) { - - x= xo; - while(x--) { - - rt[0]= rt1[0] + fac1*rt1[0]*(rt2[0]-1.0); - rt[1]= rt1[1] + fac1*rt1[1]*(rt2[1]-1.0); - rt[2]= rt1[2] + fac1*rt1[2]*(rt2[2]-1.0); - rt[3]= rt1[3] + fac1*rt1[3]*(rt2[3]-1.0); - - rt1+= 4; rt2+= 4; rt+= 4; - } - - if(y==0) break; - y--; - - x= xo; - while(x--) { - - rt[0]= rt1[0] + fac3*rt1[0]*(rt2[0]-1.0); - rt[1]= rt1[1] + fac3*rt1[1]*(rt2[1]-1.0); - rt[2]= rt1[2] + fac3*rt1[2]*(rt2[2]-1.0); - rt[3]= rt1[3] + fac3*rt1[3]*(rt2[3]-1.0); - - rt1+= 4; rt2+= 4; rt+= 4; - } - } -} - -static void do_mul_effect(Sequence * seq,int cfra, - float facf0, float facf1, int x, int y, - struct ImBuf *ibuf1, struct ImBuf *ibuf2, - struct ImBuf *ibuf3, struct ImBuf *out) -{ - if (out->rect_float) { - do_mul_effect_float( - facf0, facf1, x, y, - ibuf1->rect_float, ibuf2->rect_float, - out->rect_float); - } else { - do_mul_effect_byte( - facf0, facf1, x, y, - (char*) ibuf1->rect, (char*) ibuf2->rect, - (char*) out->rect); - } -} - -/* ********************************************************************** - PUSH - ********************************************************************** */ - -static void init_push_effect(Sequence *seq) -{ - if(seq->effectdata)MEM_freeN(seq->effectdata); - seq->effectdata = MEM_callocN(sizeof(struct PushVars), "pushvars"); -} - -static int num_inputs_push() -{ - return 1; -} - -static void free_push_effect(Sequence *seq) -{ - if(seq->effectdata)MEM_freeN(seq->effectdata); - seq->effectdata = 0; -} - -static void copy_push_effect(Sequence *dst, Sequence *src) -{ - dst->effectdata = MEM_dupallocN(src->effectdata); -} - - -static void do_push_effect_byte(Sequence *seq, float facf0, float facf1, - int x, int y, - unsigned char *rect1, - unsigned char *rect2, unsigned char *out) -{ - int xo, yo, position, position2, offset, offset2, line, nb, size; - char *rt1, *rt2, *rt3, *rt4, *rt; - rt = (char *)out; - xo = x; - yo = y; - - PushVars *push = (PushVars *)seq->effectdata; - nb = push->pushnb; - switch (push->pushtype) { - - case DO_LEFT_PUSH: - position = (int)(facf0 * xo); - offset = (xo - position) * 4; - for (y=0; yeffectdata; - switch (push->pushtype) { - - case DO_LEFT_PUSH: - position = (int)(facf0 * xo); - offset = (xo - position) * 4; - for (y=0; yrect_float) { - do_push_effect_float(seq, - facf0, facf1, x, y, - ibuf1->rect_float, ibuf2->rect_float, - out->rect_float); - } else { - do_push_effect_byte(seq, - facf0, facf1, x, y, - (char*) ibuf1->rect, (char*) ibuf2->rect, - (char*) out->rect); - } -} - -/* ********************************************************************** - WIPE - ********************************************************************** */ - -// This function calculates the blur band for the wipe effects -static float in_band(float width,float dist, float perc,int side,int dir){ - - float t1,t2,alpha,percwidth; - if(width == 0) - return (float)side; - if(side == 1) - percwidth = width * perc; - else - percwidth = width * (1 - perc); - - if(width < dist) - return side; - - t1 = dist / width; //percentange of width that is - t2 = 1 / width; //amount of alpha per % point - - if(side == 1) - alpha = (t1*t2*100) + (1-perc); // add point's alpha contrib to current position in wipe - else - alpha = (1-perc) - (t1*t2*100); - - if(dir == 0) - alpha = 1-alpha; - return alpha; -} - -static float check_zone(int x, int y, int xo, int yo, - Sequence *seq, float facf0) -{ - float posx, posy,hyp,hyp2,angle,hwidth,b1,b2,b3,pointdist; - /*some future stuff - float hyp3,hyp4,b4,b5 - */ - float temp1,temp2,temp3,temp4; //some placeholder variables - float halfx = xo/2; - float halfy = yo/2; - float widthf,output=0; - WipeVars *wipe = (WipeVars *)seq->effectdata; - int width; - - angle = wipe->angle; - if(angle < 0){ - x = xo-x; - //y = yo-y - } - angle = pow(fabs(angle)/45,log(xo)/log(2)); - - posy = facf0 * yo; - if(wipe->forward){ - posx = facf0 * xo; - posy = facf0 * yo; - } else{ - posx = xo - facf0 * xo; - posy = yo - facf0 * yo; - } - switch (wipe->wipetype) { - case DO_SINGLE_WIPE: - width = (int)(wipe->edgeWidth*((xo+yo)/2.0)); - hwidth = (float)width/2.0; - - if (angle == 0.0)angle = 0.000001; - b1 = posy - (-angle)*posx; - b2 = y - (-angle)*x; - hyp = fabs(angle*x+y+(-posy-angle*posx))/sqrt(angle*angle+1); - if(angle < 0){ - temp1 = b1; - b1 = b2; - b2 = temp1; - } - if(wipe->forward){ - if(b1 < b2) - output = in_band(width,hyp,facf0,1,1); - else - output = in_band(width,hyp,facf0,0,1); - } - else{ - if(b1 < b2) - output = in_band(width,hyp,facf0,0,1); - else - output = in_band(width,hyp,facf0,1,1); - } - break; - - - case DO_DOUBLE_WIPE: - if(!wipe->forward)facf0 = 1-facf0; // Go the other direction - - width = (int)(wipe->edgeWidth*((xo+yo)/2.0)); // calculate the blur width - hwidth = (float)width/2.0; - if (angle == 0)angle = 0.000001; - b1 = posy/2 - (-angle)*posx/2; - b3 = (yo-posy/2) - (-angle)*(xo-posx/2); - b2 = y - (-angle)*x; - - hyp = abs(angle*x+y+(-posy/2-angle*posx/2))/sqrt(angle*angle+1); - hyp2 = abs(angle*x+y+(-(yo-posy/2)-angle*(xo-posx/2)))/sqrt(angle*angle+1); - - temp1 = xo*(1-facf0/2)-xo*facf0/2; - temp2 = yo*(1-facf0/2)-yo*facf0/2; - pointdist = sqrt(temp1*temp1 + temp2*temp2); - - if(b2 < b1 && b2 < b3 ){ - if(hwidth < pointdist) - output = in_band(hwidth,hyp,facf0,0,1); - } - else if(b2 > b1 && b2 > b3 ){ - if(hwidth < pointdist) - output = in_band(hwidth,hyp2,facf0,0,1); - } - else{ - if( hyp < hwidth && hyp2 > hwidth ) - output = in_band(hwidth,hyp,facf0,1,1); - else if( hyp > hwidth && hyp2 < hwidth ) - output = in_band(hwidth,hyp2,facf0,1,1); - else - output = in_band(hwidth,hyp2,facf0,1,1) * in_band(hwidth,hyp,facf0,1,1); - } - if(!wipe->forward)output = 1-output; - break; - case DO_CLOCK_WIPE: - /* - temp1: angle of effect center in rads - temp2: angle of line through (halfx,halfy) and (x,y) in rads - temp3: angle of low side of blur - temp4: angle of high side of blur - */ - output = 1-facf0; - widthf = wipe->edgeWidth*2*3.14159; - temp1 = 2 * 3.14159 * facf0; - - if(wipe->forward){ - temp1 = 2*3.14159-temp1; - } - - x = x - halfx; - y = y - halfy; - - temp2 = asin(abs(y)/sqrt(x*x + y*y)); - if(x <= 0 && y >= 0) - temp2 = 3.14159 - temp2; - else if(x<=0 && y <= 0) - temp2 += 3.14159; - else if(x >= 0 && y <= 0) - temp2 = 2*3.14159 - temp2; - - if(wipe->forward){ - temp3 = temp1-(widthf/2)*facf0; - temp4 = temp1+(widthf/2)*(1-facf0); - } - else{ - temp3 = temp1-(widthf/2)*(1-facf0); - temp4 = temp1+(widthf/2)*facf0; - } - if (temp3 < 0) temp3 = 0; - if (temp4 > 2*3.14159) temp4 = 2*3.14159; - - - if(temp2 < temp3) - output = 0; - else if (temp2 > temp4) - output = 1; - else - output = (temp2-temp3)/(temp4-temp3); - if(x == 0 && y == 0){ - output = 1; - } - if(output != output) - output = 1; - if(wipe->forward) - output = 1 - output; - break; - /* BOX WIPE IS NOT WORKING YET */ - /* case DO_CROSS_WIPE: */ - /* BOX WIPE IS NOT WORKING YET */ - /* case DO_BOX_WIPE: - if(invert)facf0 = 1-facf0; - - width = (int)(wipe->edgeWidth*((xo+yo)/2.0)); - hwidth = (float)width/2.0; - if (angle == 0)angle = 0.000001; - b1 = posy/2 - (-angle)*posx/2; - b3 = (yo-posy/2) - (-angle)*(xo-posx/2); - b2 = y - (-angle)*x; - - hyp = abs(angle*x+y+(-posy/2-angle*posx/2))/sqrt(angle*angle+1); - hyp2 = abs(angle*x+y+(-(yo-posy/2)-angle*(xo-posx/2)))/sqrt(angle*angle+1); - - temp1 = xo*(1-facf0/2)-xo*facf0/2; - temp2 = yo*(1-facf0/2)-yo*facf0/2; - pointdist = sqrt(temp1*temp1 + temp2*temp2); - - if(b2 < b1 && b2 < b3 ){ - if(hwidth < pointdist) - output = in_band(hwidth,hyp,facf0,0,1); - } - else if(b2 > b1 && b2 > b3 ){ - if(hwidth < pointdist) - output = in_band(hwidth,hyp2,facf0,0,1); - } - else{ - if( hyp < hwidth && hyp2 > hwidth ) - output = in_band(hwidth,hyp,facf0,1,1); - else if( hyp > hwidth && hyp2 < hwidth ) - output = in_band(hwidth,hyp2,facf0,1,1); - else - output = in_band(hwidth,hyp2,facf0,1,1) * in_band(hwidth,hyp,facf0,1,1); - } - if(invert)facf0 = 1-facf0; - angle = -1/angle; - b1 = posy/2 - (-angle)*posx/2; - b3 = (yo-posy/2) - (-angle)*(xo-posx/2); - b2 = y - (-angle)*x; - - hyp = abs(angle*x+y+(-posy/2-angle*posx/2))/sqrt(angle*angle+1); - hyp2 = abs(angle*x+y+(-(yo-posy/2)-angle*(xo-posx/2)))/sqrt(angle*angle+1); - - if(b2 < b1 && b2 < b3 ){ - if(hwidth < pointdist) - output *= in_band(hwidth,hyp,facf0,0,1); - } - else if(b2 > b1 && b2 > b3 ){ - if(hwidth < pointdist) - output *= in_band(hwidth,hyp2,facf0,0,1); - } - else{ - if( hyp < hwidth && hyp2 > hwidth ) - output *= in_band(hwidth,hyp,facf0,1,1); - else if( hyp > hwidth && hyp2 < hwidth ) - output *= in_band(hwidth,hyp2,facf0,1,1); - else - output *= in_band(hwidth,hyp2,facf0,1,1) * in_band(hwidth,hyp,facf0,1,1); - } - - break;*/ - case DO_IRIS_WIPE: - if(xo > yo) yo = xo; - else xo = yo; - - if(!wipe->forward) - facf0 = 1-facf0; - - width = (int)(wipe->edgeWidth*((xo+yo)/2.0)); - hwidth = (float)width/2.0; - - temp1 = (halfx-(halfx)*facf0); - pointdist = sqrt(temp1*temp1 + temp1*temp1); - - temp2 = sqrt((halfx-x)*(halfx-x) + (halfy-y)*(halfy-y)); - if(temp2 > pointdist) - output = in_band(hwidth,fabs(temp2-pointdist),facf0,0,1); - else - output = in_band(hwidth,fabs(temp2-pointdist),facf0,1,1); - - if(!wipe->forward) - output = 1-output; - - break; - } - if (output < 0) output = 0; - else if(output > 1) output = 1; - return output; -} - -static void init_wipe_effect(Sequence *seq) -{ - if(seq->effectdata)MEM_freeN(seq->effectdata); - seq->effectdata = MEM_callocN(sizeof(struct WipeVars), "wipevars"); -} - -static int num_inputs_wipe() -{ - return 1; -} - -static void free_wipe_effect(Sequence *seq) -{ - if(seq->effectdata)MEM_freeN(seq->effectdata); - seq->effectdata = 0; -} - -static void copy_wipe_effect(Sequence *dst, Sequence *src) -{ - dst->effectdata = MEM_dupallocN(src->effectdata); -} - -static void do_wipe_effect_byte(Sequence *seq, float facf0, float facf1, - int x, int y, - unsigned char *rect1, - unsigned char *rect2, unsigned char *out) -{ - int xo, yo; - char *rt1, *rt2, *rt; - rt1 = (char *)rect1; - rt2 = (char *)rect2; - rt = (char *)out; - - xo = x; - yo = y; - for(y=0;yrect_float) { - do_wipe_effect_float(seq, - facf0, facf1, x, y, - ibuf1->rect_float, ibuf2->rect_float, - out->rect_float); - } else { - do_wipe_effect_byte(seq, - facf0, facf1, x, y, - (char*) ibuf1->rect, (char*) ibuf2->rect, - (char*) out->rect); - } -} -/* ********************************************************************** - TRANSFORM - ********************************************************************** */ -static void init_transform_effect(Sequence *seq) -{ - TransformVars *scale; - - if(seq->effectdata)MEM_freeN(seq->effectdata); - seq->effectdata = MEM_callocN(sizeof(struct TransformVars), "transformvars"); - - scale = (TransformVars *)seq->effectdata; - scale->ScalexIni = 1; - scale->ScaleyIni = 1; - scale->ScalexFin = 1; - scale->ScaleyFin = 1; - - scale->xIni=0; - scale->xFin=0; - scale->yIni=0; - scale->yFin=0; - - scale->rotIni=0; - scale->rotFin=0; - -} - -static int num_inputs_transform() -{ - return 1; -} - -static void free_transform_effect(Sequence *seq) -{ - if(seq->effectdata)MEM_freeN(seq->effectdata); - seq->effectdata = 0; -} - -static void copy_transform_effect(Sequence *dst, Sequence *src) -{ - dst->effectdata = MEM_dupallocN(src->effectdata); -} - -/* function assumes out to be zero'ed, only does RGBA */ -static void bilinear_interpolation_transform_float(ImBuf *in, float *out, float u, float v) -{ - float *row1, *row2, *row3, *row4, a, b; - float a_b, ma_b, a_mb, ma_mb; - float empty[4]= {0.0f, 0.0f, 0.0f, 0.0f}; - int y1, y2, x1, x2; - - x1= (int)floor(u); - x2= (int)ceil(u); - y1= (int)floor(v); - y2= (int)ceil(v); - - /* sample area entirely outside image? */ - if(x2<0 || x1>in->x-1 || y2<0 || y1>in->y-1) - return; - - /* sample including outside of edges of image */ - if(x1<0 || y1<0) row1= empty; - else row1= in->rect_float + in->x * y1 * 4 + 4*x1; - - if(x1<0 || y2>in->y-1) row2= empty; - else row2= in->rect_float + in->x * y2 * 4 + 4*x1; - - if(x2>in->x-1 || y1<0) row3= empty; - else row3= in->rect_float + in->x * y1 * 4 + 4*x2; - - if(x2>in->x-1 || y2>in->y-1) row4= empty; - else row4= in->rect_float + in->x * y2 * 4 + 4*x2; - - a= u-floor(u); - b= v-floor(v); - a_b= a*b; ma_b= (1.0f-a)*b; a_mb= a*(1.0f-b); ma_mb= (1.0f-a)*(1.0f-b); - - out[0]= ma_mb*row1[0] + a_mb*row3[0] + ma_b*row2[0]+ a_b*row4[0]; - out[1]= ma_mb*row1[1] + a_mb*row3[1] + ma_b*row2[1]+ a_b*row4[1]; - out[2]= ma_mb*row1[2] + a_mb*row3[2] + ma_b*row2[2]+ a_b*row4[2]; - out[3]= ma_mb*row1[3] + a_mb*row3[3] + ma_b*row2[3]+ a_b*row4[3]; -} - - -static void do_transform_effect_float(Sequence * seq,float facf0, int x, int y, - struct ImBuf *ibuf1,float *out) -{ - int xo, yo, xi, yi; - float xs,ys,factxScale,factyScale,tx,ty,rad,s,c,xaux,yaux,factRot,px,py; - TransformVars *scale; - - scale = (TransformVars *)seq->effectdata; - xo = x; - yo = y; - - /*factor scale*/ - factxScale = scale->ScalexIni + (scale->ScalexFin - scale->ScalexIni) * facf0; - factyScale = scale->ScaleyIni + (scale->ScaleyFin - scale->ScaleyIni) * facf0; - - /*Factor translate*/ - tx = scale->xIni+(xo / 2.0f) + (scale->xFin-(xo / 2.0f) - scale->xIni+(xo / 2.0f)) * facf0; - ty = scale->yIni+(yo / 2.0f) + (scale->yFin-(yo / 2.0f) - scale->yIni+(yo / 2.0f)) * facf0; - - /*factor Rotate*/ - factRot = scale->rotIni + (scale->rotFin - scale->rotIni) * facf0; - rad = (M_PI * factRot) / 180.0f; - s= sin(rad); - c= cos(rad); - - for (yi = 0; yi < yo; yi++) { - for (xi = 0; xi < xo; xi++) { - /*tranlate point*/ - px = xi-tx; - py = yi-ty; - - /*rotate point with center ref*/ - xaux = c*px + py*s ; - yaux = -s*px + c*py; - - /*scale point with center ref*/ - xs = xaux / factxScale; - ys = yaux / factyScale; - - /*undo reference center point */ - xs += (xo / 2.0f); - ys += (yo / 2.0f); - - /*interpolate*/ - bilinear_interpolation_transform_float(ibuf1,out, xs,ys); - - out+=4; - } - } - -} - -/* function assumes out to be zero'ed, only does RGBA */ -static void bilinear_interpolation_transform_byte(unsigned char *in, unsigned char *out, float u, float v,int x,int y) -{ - float a, b; - float a_b, ma_b, a_mb, ma_mb; - int y1, y2, x1, x2; - - int row1R,row1G,row1B,row1A; - int row2R,row2G,row2B,row2A; - int row3R,row3G,row3B,row3A; - int row4R,row4G,row4B,row4A; - - x1= (int)floor(u); - x2= (int)ceil(u); - y1= (int)floor(v); - y2= (int)ceil(v); - - /* sample area entirely outside image? */ - if(x2<0 || x1>x-1 || y2<0 || y1>y-1) - return; - - /* sample including outside of edges of image */ - if(x1<0 || y1<0){ - row1R = 0; - row1G = 0; - row1B = 0; - row1A = 0; - } - else{ - row1R= in[x * y1 * 4 + 4 * x1]; - row1G= in[x * y1 * 4 + 4 * x1 + 1]; - row1B= in[x * y1 * 4 + 4 * x1 + 2]; - row1A= in[x * y1 * 4 + 4 * x1 + 3]; - } - - if(x1<0 || y2>y-1){ - row2R = 0; - row2G = 0; - row2B = 0; - row2A = 0; - } - else{ - row2R= in[x * y2 * 4 + 4 * x1]; - row2G= in[x * y2 * 4 + 4 * x1 + 1]; - row2B= in[x * y2 * 4 + 4 * x1 + 2]; - row2A= in[x * y2 * 4 + 4 * x1 + 3]; - } - - if(x2>x-1 || y1<0){ - row3R = 0; - row3G = 0; - row3B = 0; - row3A = 0; - } - else{ - row3R= in[x * y1 * 4 + 4 * x2]; - row3G= in[x * y1 * 4 + 4 * x2 + 1]; - row3B= in[x * y1 * 4 + 4 * x2 + 2]; - row3A= in[x * y1 * 4 + 4 * x2 + 3]; - } - - if(x2>x-1 || y2>y-1){ - row4R = 0; - row4G = 0; - row4B = 0; - row4A = 0; - } - else{ - row4R= in[x * y2 * 4 + 4 * x2]; - row4G= in[x * y2 * 4 + 4 * x2 + 1]; - row4B= in[x * y2 * 4 + 4 * x2 + 2]; - row4A= in[x * y2 * 4 + 4 * x2 + 3]; - } - - a= u-floor(u); - b= v-floor(v); - a_b= a*b; ma_b= (1-a)*b; a_mb= a*(1-b); ma_mb= (1-a)*(1-b); - - out[0]= (int)(ma_mb*row1R + a_mb*row3R + ma_b*row2R + a_b*row4R); - out[1]= (int)(ma_mb*row1G + a_mb*row3G + ma_b*row2G + a_b*row4G); - out[2]= (int)(ma_mb*row1B + a_mb*row3B + ma_b*row2B + a_b*row4B); - out[3]= (int)(ma_mb*row1A + a_mb*row3A + ma_b*row2A + a_b*row4A); -} - -static void do_transform_effect_byte(Sequence * seq,float facf0, int x, int y, - unsigned char *ibuf1,unsigned char *out) -{ - int xo, yo, xi, yi; - float xs,ys,factxScale,factyScale,tx,ty,rad,s,c,xaux,yaux,factRot,px,py; - TransformVars *scale; - - scale = (TransformVars *)seq->effectdata; - xo = x; - yo = y; - - /*factor scale*/ - factxScale = scale->ScalexIni + (scale->ScalexFin - scale->ScalexIni) * facf0; - factyScale = scale->ScaleyIni + (scale->ScaleyFin - scale->ScaleyIni) * facf0; - - /*Factor translate*/ - tx = scale->xIni+(xo / 2.0f) + (scale->xFin-(xo / 2.0f) - scale->xIni+(xo / 2.0f)) * facf0; - ty = scale->yIni+(yo / 2.0f) + (scale->yFin-(yo / 2.0f) - scale->yIni+(yo / 2.0f)) * facf0; - - /*factor Rotate*/ - factRot = scale->rotIni + (scale->rotFin - scale->rotIni) * facf0; - rad = (M_PI * factRot) / 180.0f; - s= sin(rad); - c= cos(rad); - - for (yi = 0; yi < yo; yi++) { - for (xi = 0; xi < xo; xi++) { - /*tranlate point*/ - px = xi-tx; - py = yi-ty; - - /*rotate point with center ref*/ - xaux = c*px + py*s ; - yaux = -s*px + c*py; - - /*scale point with center ref*/ - xs = xaux / factxScale; - ys = yaux / factyScale; - - /*undo reference center point */ - xs += (xo / 2.0f); - ys += (yo / 2.0f); - - /*interpolate*/ - bilinear_interpolation_transform_byte(ibuf1,out, xs,ys,x,y); - - out+=4; - } - } - -} -static void do_transform_effect(Sequence * seq,int cfra, - float facf0, float facf1, int x, int y, - struct ImBuf *ibuf1, struct ImBuf *ibuf2, - struct ImBuf *ibuf3, struct ImBuf *out) -{ - if (out->rect_float) { - do_transform_effect_float(seq, - facf0,x, y, - ibuf1, - out->rect_float); - } else { - do_transform_effect_byte(seq, - facf0,x, y, - (unsigned char*) ibuf1->rect, - (unsigned char*) out->rect); - } -} - - -/* ********************************************************************** - GLOW - ********************************************************************** */ - -static void RVBlurBitmap2_byte ( unsigned char* map, int width,int height, - float blur, - int quality) -/* MUUUCCH better than the previous blur. */ -/* We do the blurring in two passes which is a whole lot faster. */ -/* I changed the math arount to implement an actual Gaussian */ -/* distribution. */ -/* */ -/* Watch out though, it tends to misbehaven with large blur values on */ -/* a small bitmap. Avoid avoid avoid. */ -/*=============================== */ -{ - unsigned char* temp=NULL,*swap; - float *filter=NULL; - int x,y,i,fx,fy; - int index, ix, halfWidth; - float fval, k, curColor[3], curColor2[3], weight=0; - - /* If we're not really blurring, bail out */ - if (blur<=0) - return; - - /* Allocate memory for the tempmap and the blur filter matrix */ - temp= MEM_mallocN( (width*height*4), "blurbitmaptemp"); - if (!temp) - return; - - /* Allocate memory for the filter elements */ - halfWidth = ((quality+1)*blur); - filter = (float *)MEM_mallocN(sizeof(float)*halfWidth*2, "blurbitmapfilter"); - if (!filter){ - MEM_freeN (temp); - return; - } - - /* Apparently we're calculating a bell curve */ - /* based on the standard deviation (or radius) */ - /* This code is based on an example */ - /* posted to comp.graphics.algorithms by */ - /* Blancmange (bmange@airdmhor.gen.nz) */ - - k = -1.0/(2.0*3.14159*blur*blur); - fval=0; - for (ix = 0;ix< halfWidth;ix++){ - weight = (float)exp(k*(ix*ix)); - filter[halfWidth - ix] = weight; - filter[halfWidth + ix] = weight; - } - filter[0] = weight; - - /* Normalize the array */ - fval=0; - for (ix = 0;ix< halfWidth*2;ix++) - fval+=filter[ix]; - - for (ix = 0;ix< halfWidth*2;ix++) - filter[ix]/=fval; - - /* Blur the rows */ - for (y=0;y=0)&&(i=0)&&(i=0)&&(i=0)&&(i0){ - out[index+GlowR]=MIN2(255*clamp, (in[index+GlowR]*boost*intensity)/255); - out[index+GlowG]=MIN2(255*clamp, (in[index+GlowG]*boost*intensity)/255); - out[index+GlowB]=MIN2(255*clamp, (in[index+GlowB]*boost*intensity)/255); - out[index+GlowA]=MIN2(255*clamp, (in[index+GlowA]*boost*intensity)/255); - } - else{ - out[index+GlowR]=0; - out[index+GlowG]=0; - out[index+GlowB]=0; - out[index+GlowA]=0; - } - } - } -} - -static void RVIsolateHighlights_float (float* in, float* out, - int width, int height, float threshold, - float boost, float clamp) -{ - int x,y,index; - float intensity; - - - for(y=0;y< height;y++) { - for (x=0;x< width;x++) { - index= (x+y*width)*4; - - /* Isolate the intensity */ - intensity=(in[index+GlowR]+in[index+GlowG]+in[index+GlowB]-threshold); - if (intensity>0){ - out[index+GlowR]=MIN2(clamp, (in[index+GlowR]*boost*intensity)); - out[index+GlowG]=MIN2(clamp, (in[index+GlowG]*boost*intensity)); - out[index+GlowB]=MIN2(clamp, (in[index+GlowB]*boost*intensity)); - out[index+GlowA]=MIN2(clamp, (in[index+GlowA]*boost*intensity)); - } - else{ - out[index+GlowR]=0; - out[index+GlowG]=0; - out[index+GlowB]=0; - out[index+GlowA]=0; - } - } - } -} - -static void init_glow_effect(Sequence *seq) -{ - GlowVars *glow; - - if(seq->effectdata)MEM_freeN(seq->effectdata); - seq->effectdata = MEM_callocN(sizeof(struct GlowVars), "glowvars"); - - glow = (GlowVars *)seq->effectdata; - glow->fMini = 0.25; - glow->fClamp = 1.0; - glow->fBoost = 0.5; - glow->dDist = 3.0; - glow->dQuality = 3; - glow->bNoComp = 0; -} - -static int num_inputs_glow() -{ - return 1; -} - -static void free_glow_effect(Sequence *seq) -{ - if(seq->effectdata)MEM_freeN(seq->effectdata); - seq->effectdata = 0; -} - -static void copy_glow_effect(Sequence *dst, Sequence *src) -{ - dst->effectdata = MEM_dupallocN(src->effectdata); -} - -//void do_glow_effect(Cast *cast, float facf0, float facf1, int xo, int yo, ImBuf *ibuf1, ImBuf *ibuf2, ImBuf *outbuf, ImBuf *use) -static void do_glow_effect_byte(Sequence *seq, float facf0, float facf1, - int x, int y, char *rect1, - char *rect2, char *out) -{ - unsigned char *outbuf=(unsigned char *)out; - unsigned char *inbuf=(unsigned char *)rect1; - GlowVars *glow = (GlowVars *)seq->effectdata; - - RVIsolateHighlights_byte(inbuf, outbuf , x, y, glow->fMini*765, glow->fBoost, glow->fClamp); - RVBlurBitmap2_byte (outbuf, x, y, glow->dDist,glow->dQuality); - if (!glow->bNoComp) - RVAddBitmaps_byte (inbuf , outbuf, outbuf, x, y); -} - -static void do_glow_effect_float(Sequence *seq, float facf0, float facf1, - int x, int y, - float *rect1, float *rect2, float *out) -{ - float *outbuf = out; - float *inbuf = rect1; - GlowVars *glow = (GlowVars *)seq->effectdata; - - RVIsolateHighlights_float(inbuf, outbuf , x, y, glow->fMini*3.0f, glow->fBoost, glow->fClamp); - RVBlurBitmap2_float (outbuf, x, y, glow->dDist,glow->dQuality); - if (!glow->bNoComp) - RVAddBitmaps_float (inbuf , outbuf, outbuf, x, y); -} - -static void do_glow_effect(Sequence * seq,int cfra, - float facf0, float facf1, int x, int y, - struct ImBuf *ibuf1, struct ImBuf *ibuf2, - struct ImBuf *ibuf3, struct ImBuf *out) -{ - if (out->rect_float) { - do_glow_effect_float(seq, - facf0, facf1, x, y, - ibuf1->rect_float, ibuf2->rect_float, - out->rect_float); - } else { - do_glow_effect_byte(seq, - facf0, facf1, x, y, - (char*) ibuf1->rect, (char*) ibuf2->rect, - (char*) out->rect); - } -} - -/* ********************************************************************** - SOLID COLOR - ********************************************************************** */ - -static void init_solid_color(Sequence *seq) -{ - SolidColorVars *cv; - - if(seq->effectdata)MEM_freeN(seq->effectdata); - seq->effectdata = MEM_callocN(sizeof(struct SolidColorVars), "solidcolor"); - - cv = (SolidColorVars *)seq->effectdata; - cv->col[0] = cv->col[1] = cv->col[2] = 0.5; -} - -static int num_inputs_color() -{ - return 0; -} - -static void free_solid_color(Sequence *seq) -{ - if(seq->effectdata)MEM_freeN(seq->effectdata); - seq->effectdata = 0; -} - -static void copy_solid_color(Sequence *dst, Sequence *src) -{ - dst->effectdata = MEM_dupallocN(src->effectdata); -} - -static int early_out_color(struct Sequence *seq, - float facf0, float facf1) -{ - return -1; -} - -static void do_solid_color(Sequence * seq,int cfra, - float facf0, float facf1, int x, int y, - struct ImBuf *ibuf1, struct ImBuf *ibuf2, - struct ImBuf *ibuf3, struct ImBuf *out) -{ - SolidColorVars *cv = (SolidColorVars *)seq->effectdata; - - unsigned char *rect; - float *rect_float; - - if (out->rect) { - rect = (unsigned char *)out->rect; - - for(y=0; yy; y++) { - for(x=0; xx; x++, rect+=4) { - rect[0]= (char)(cv->col[0]*255); - rect[1]= (char)(cv->col[1]*255); - rect[2]= (char)(cv->col[2]*255); - rect[3]= 255; - } - } - } else if (out->rect_float) { - rect_float = out->rect_float; - - for(y=0; yy; y++) { - for(x=0; xx; x++, rect_float+=4) { - rect_float[0]= cv->col[0]; - rect_float[1]= cv->col[1]; - rect_float[2]= cv->col[2]; - rect_float[3]= 1.0; - } - } - } -} - -/* ********************************************************************** - SPEED - ********************************************************************** */ -static void init_speed_effect(Sequence *seq) -{ - SpeedControlVars * v; - - if(seq->effectdata) MEM_freeN(seq->effectdata); - seq->effectdata = MEM_callocN(sizeof(struct SpeedControlVars), - "speedcontrolvars"); - - v = (SpeedControlVars *)seq->effectdata; - v->globalSpeed = 1.0; - v->frameMap = 0; - v->flags = SEQ_SPEED_COMPRESS_IPO_Y; - v->length = 0; -} - -static void load_speed_effect(Sequence * seq) -{ - SpeedControlVars * v = (SpeedControlVars *)seq->effectdata; - - v->frameMap = 0; - v->length = 0; -} - -static int num_inputs_speed() -{ - return 1; -} - -static void free_speed_effect(Sequence *seq) -{ - SpeedControlVars * v = (SpeedControlVars *)seq->effectdata; - if(v->frameMap) MEM_freeN(v->frameMap); - if(seq->effectdata) MEM_freeN(seq->effectdata); - seq->effectdata = 0; -} - -static void copy_speed_effect(Sequence *dst, Sequence *src) -{ - dst->effectdata = MEM_dupallocN(src->effectdata); -} - -static int early_out_speed(struct Sequence *seq, - float facf0, float facf1) -{ - return 1; -} - -void sequence_effect_speed_rebuild_map(struct Sequence * seq, int force) -{ - float facf0 = seq->facf0; - float ctime, div; - int cfra; - float fallback_fac; - SpeedControlVars * v = (SpeedControlVars *)seq->effectdata; - - /* if not already done, load / initialize data */ - get_sequence_effect(seq); - - if (!(force || seq->len != v->length || !v->frameMap)) { - return; - } - - if (!v->frameMap || v->length != seq->len) { - if (v->frameMap) MEM_freeN(v->frameMap); - - v->length = seq->len; - - v->frameMap = MEM_callocN(sizeof(float) * v->length, - "speedcontrol frameMap"); - } - - fallback_fac = 1.0; - - /* if there is no IPO, try to make retiming easy by stretching the - strip */ - - if (!seq->ipo && seq->seq1 && seq->seq1->enddisp != seq->seq1->start - && seq->seq1->len != 0) { - fallback_fac = (float) seq->seq1->len / - (float) (seq->seq1->enddisp - seq->seq1->start); - /* FIXME: this strip stretching gets screwed by stripdata - handling one layer up. - - So it currently works by enlarging, never by shrinking! - - (IPOs still work, if used correctly) - */ - if (fallback_fac > 1.0) { - fallback_fac = 1.0; - } - } - - if ((v->flags & SEQ_SPEED_INTEGRATE) != 0) { - float cursor = 0; - - v->frameMap[0] = 0; - - for (cfra = 1; cfra < v->length; cfra++) { - if(seq->ipo) { - if((seq->flag & SEQ_IPO_FRAME_LOCKED) != 0) { - ctime = frame_to_float(seq->startdisp - + cfra); - div = 1.0; - } else { - ctime= frame_to_float(cfra); - div= v->length / 100.0f; - if(div==0.0) return; - } - - calc_ipo(seq->ipo, ctime/div); - execute_ipo((ID *)seq, seq->ipo); - } else { - seq->facf0 = fallback_fac; - } - seq->facf0 *= v->globalSpeed; - - cursor += seq->facf0; - - if (cursor >= v->length) { - v->frameMap[cfra] = v->length - 1; - } else { - v->frameMap[cfra] = cursor; - } - } - } else { - for (cfra = 0; cfra < v->length; cfra++) { - if(seq->ipo) { - if((seq->flag & SEQ_IPO_FRAME_LOCKED) != 0) { - ctime = frame_to_float(seq->startdisp - + cfra); - div = 1.0; - } else { - ctime= frame_to_float(cfra); - div= v->length / 100.0f; - if(div==0.0) return; - } - - calc_ipo(seq->ipo, ctime/div); - execute_ipo((ID *)seq, seq->ipo); - } - - if (v->flags & SEQ_SPEED_COMPRESS_IPO_Y) { - seq->facf0 *= v->length; - } - if (!seq->ipo) { - seq->facf0 = (float) cfra * fallback_fac; - } - seq->facf0 *= v->globalSpeed; - if (seq->facf0 >= v->length) { - seq->facf0 = v->length - 1; - } - v->frameMap[cfra] = seq->facf0; - } - } - seq->facf0 = facf0; -} - -/* - simply reuse do_cross_effect for blending... - -static void do_speed_effect(Sequence * seq,int cfra, - float facf0, float facf1, int x, int y, - struct ImBuf *ibuf1, struct ImBuf *ibuf2, - struct ImBuf *ibuf3, struct ImBuf *out) -{ - -} -*/ - - -/* ********************************************************************** - sequence effect factory - ********************************************************************** */ - - -static void init_noop(struct Sequence *seq) -{ - -} - -static void load_noop(struct Sequence *seq) -{ - -} - -static void init_plugin_noop(struct Sequence *seq, const char * fname) -{ - -} - -static void free_noop(struct Sequence *seq) -{ - -} - -static int num_inputs_default() -{ - return 2; -} - -static int early_out_noop(struct Sequence *seq, - float facf0, float facf1) -{ - return 0; -} - -static int early_out_fade(struct Sequence *seq, - float facf0, float facf1) -{ - if (facf0 == 0.0 && facf1 == 0.0) { - return 1; - } else if (facf0 == 1.0 && facf1 == 1.0) { - return 2; - } - return 0; -} - -static int early_out_mul_input2(struct Sequence *seq, - float facf0, float facf1) -{ - if (facf0 == 0.0 && facf1 == 0.0) { - return 1; - } - return 0; -} - -static void get_default_fac_noop(struct Sequence *seq, int cfra, - float * facf0, float * facf1) -{ - *facf0 = *facf1 = 1.0; -} - -static void get_default_fac_fade(struct Sequence *seq, int cfra, - float * facf0, float * facf1) -{ - *facf0 = (float)(cfra - seq->startdisp); - *facf1 = (float)(*facf0 + 0.5); - *facf0 /= seq->len; - *facf1 /= seq->len; -} - -static void do_overdrop_effect(struct Sequence * seq, int cfra, - float fac, float facf, - int x, int y, struct ImBuf * ibuf1, - struct ImBuf * ibuf2, - struct ImBuf * ibuf3, - struct ImBuf * out) -{ - do_drop_effect(seq, cfra, fac, facf, x, y, - ibuf1, ibuf2, ibuf3, out); - do_alphaover_effect(seq, cfra, fac, facf, x, y, - ibuf1, ibuf2, ibuf3, out); -} - -static struct SeqEffectHandle get_sequence_effect_impl(int seq_type) -{ - struct SeqEffectHandle rval; - int sequence_type = seq_type; - - rval.init = init_noop; - rval.init_plugin = init_plugin_noop; - rval.num_inputs = num_inputs_default; - rval.load = load_noop; - rval.free = free_noop; - rval.early_out = early_out_noop; - rval.get_default_fac = get_default_fac_noop; - rval.execute = NULL; - rval.copy = NULL; - - switch (sequence_type) { - case SEQ_CROSS: - rval.execute = do_cross_effect; - rval.early_out = early_out_fade; - rval.get_default_fac = get_default_fac_fade; - break; - case SEQ_GAMCROSS: - rval.init = init_gammacross; - rval.load = load_gammacross; - rval.free = free_gammacross; - rval.early_out = early_out_fade; - rval.get_default_fac = get_default_fac_fade; - rval.execute = do_gammacross_effect; - break; - case SEQ_ADD: - rval.execute = do_add_effect; - rval.early_out = early_out_mul_input2; - break; - case SEQ_SUB: - rval.execute = do_sub_effect; - rval.early_out = early_out_mul_input2; - break; - case SEQ_MUL: - rval.execute = do_mul_effect; - rval.early_out = early_out_mul_input2; - break; - case SEQ_ALPHAOVER: - rval.init = init_alpha_over_or_under; - rval.execute = do_alphaover_effect; - break; - case SEQ_OVERDROP: - rval.execute = do_overdrop_effect; - break; - case SEQ_ALPHAUNDER: - rval.init = init_alpha_over_or_under; - rval.execute = do_alphaunder_effect; - break; - case SEQ_WIPE: - rval.init = init_wipe_effect; - rval.num_inputs = num_inputs_wipe; - rval.free = free_wipe_effect; - rval.copy = copy_wipe_effect; - rval.early_out = early_out_fade; - rval.get_default_fac = get_default_fac_fade; - rval.execute = do_wipe_effect; - break; - case SEQ_GLOW: - rval.init = init_glow_effect; - rval.num_inputs = num_inputs_glow; - rval.free = free_glow_effect; - rval.copy = copy_glow_effect; - rval.execute = do_glow_effect; - break; - case SEQ_TRANSFORM: - rval.init = init_transform_effect; - rval.num_inputs = num_inputs_transform; - rval.free = free_transform_effect; - rval.copy = copy_transform_effect; - rval.execute = do_transform_effect; - break; - case SEQ_SPEED: - rval.init = init_speed_effect; - rval.num_inputs = num_inputs_speed; - rval.load = load_speed_effect; - rval.free = free_speed_effect; - rval.copy = copy_speed_effect; - rval.execute = do_cross_effect; - rval.early_out = early_out_speed; - break; - case SEQ_COLOR: - rval.init = init_solid_color; - rval.num_inputs = num_inputs_color; - rval.early_out = early_out_color; - rval.free = free_solid_color; - rval.copy = copy_solid_color; - rval.execute = do_solid_color; - break; - case SEQ_PLUGIN: - rval.init_plugin = init_plugin; - rval.num_inputs = num_inputs_plugin; - rval.load = load_plugin; - rval.free = free_plugin; - rval.copy = copy_plugin; - rval.execute = do_plugin_effect; - rval.early_out = do_plugin_early_out; - rval.get_default_fac = get_default_fac_fade; - break; - case SEQ_PUSH: - rval.init = init_push_effect; - rval.num_inputs = num_inputs_push; - rval.free = free_push_effect; - rval.copy = copy_push_effect; - rval.early_out = early_out_fade; - rval.get_default_fac = get_default_fac_fade; - rval.execute = do_push_effect; - break; - } - - return rval; -} - - -struct SeqEffectHandle get_sequence_effect(Sequence * seq) -{ - struct SeqEffectHandle rval = get_sequence_effect_impl(seq->type); - - if ((seq->flag & SEQ_EFFECT_NOT_LOADED) != 0) { - rval.load(seq); - seq->flag &= ~SEQ_EFFECT_NOT_LOADED; - } - - return rval; -} - -int get_sequence_effect_num_inputs(int seq_type) -{ - struct SeqEffectHandle rval = get_sequence_effect_impl(seq_type); - - return rval.num_inputs(); -} diff -Naur /home/olabomba/blender/source/blender/src/seqeffects.c /home/olabomba/blender-propre/blender/source/blender/src/seqeffects.c --- /home/olabomba/blender/source/blender/src/seqeffects.c 2006-12-07 21:18:47.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/src/seqeffects.c 2006-12-04 21:00:17.000000000 +0100 @@ -138,8 +138,8 @@ if (alloc_private) { pis->instance_private_data = alloc_private(); } - - pis->current_private_data = (void**) + + pis->current_private_data = (void**) PIL_dynlib_find_symbol( pis->handle, "plugin_private_data"); } @@ -199,7 +199,7 @@ seq->plugin= (PluginSeq *)add_plugin_seq(fname, seq->name+2); } -/* +/* * FIXME: should query plugin! Could be generator, that needs zero inputs... */ static int num_inputs_plugin() @@ -223,8 +223,8 @@ } static void do_plugin_effect(Sequence * seq,int cfra, - float facf0, float facf1, int x, int y, - struct ImBuf *ibuf1, struct ImBuf *ibuf2, + float facf0, float facf1, int x, int y, + struct ImBuf *ibuf1, struct ImBuf *ibuf2, struct ImBuf *ibuf3, struct ImBuf *out) { char *cp; @@ -234,7 +234,7 @@ with imbuf-internals */ if(seq->plugin && seq->plugin->doit) { - if(seq->plugin->cfra) + if(seq->plugin->cfra) *(seq->plugin->cfra)= frame_to_float(cfra); cp = PIL_dynlib_find_symbol( @@ -243,7 +243,7 @@ if(cp) strncpy(cp, seq->name+2, 22); if (seq->plugin->current_private_data) { - *seq->plugin->current_private_data + *seq->plugin->current_private_data = seq->plugin->instance_private_data; } @@ -263,13 +263,13 @@ IMB_rect_from_float(ibuf2); imb_freerectfloatImBuf(ibuf2); ibuf2->flags &= ~IB_rectfloat; - } + } if (ibuf3) { ibuf3 = IMB_dupImBuf(ibuf3); IMB_rect_from_float(ibuf3); imb_freerectfloatImBuf(ibuf3); ibuf3->flags &= ~IB_rectfloat; - } + } if (!out->rect) imb_addrectImBuf(out); imb_freerectfloatImBuf(out); out->flags &= ~IB_rectfloat; @@ -330,7 +330,7 @@ seq->seq1= seq2; } -static void do_alphaover_effect_byte(float facf0, float facf1, int x, int y, +static void do_alphaover_effect_byte(float facf0, float facf1, int x, int y, char * rect1, char *rect2, char *out) { int fac2, mfac, fac, fac4; @@ -396,7 +396,7 @@ } } -static void do_alphaover_effect_float(float facf0, float facf1, int x, int y, +static void do_alphaover_effect_float(float facf0, float facf1, int x, int y, float * rect1, float *rect2, float *out) { float fac2, mfac, fac, fac4; @@ -459,8 +459,8 @@ } static void do_alphaover_effect(Sequence * seq,int cfra, - float facf0, float facf1, int x, int y, - struct ImBuf *ibuf1, struct ImBuf *ibuf2, + float facf0, float facf1, int x, int y, + struct ImBuf *ibuf1, struct ImBuf *ibuf2, struct ImBuf *ibuf3, struct ImBuf *out) { if (out->rect_float) { @@ -482,7 +482,7 @@ ********************************************************************** */ void do_alphaunder_effect_byte( - float facf0, float facf1, int x, int y, char *rect1, + float facf0, float facf1, int x, int y, char *rect1, char *rect2, char *out) { int fac2, mfac, fac, fac4; @@ -550,8 +550,8 @@ } -static void do_alphaunder_effect_float(float facf0, float facf1, int x, int y, - float *rect1, float *rect2, +static void do_alphaunder_effect_float(float facf0, float facf1, int x, int y, + float *rect1, float *rect2, float *out) { float fac2, mfac, fac, fac4; @@ -604,7 +604,7 @@ if(rt2[3]<=0 && fac4 >= 1.0) { memcpy(rt, rt1, 4 * sizeof(float)); - + } else if(rt2[3]>=1.0) { memcpy(rt, rt2, 4 * sizeof(float)); } else { @@ -626,8 +626,8 @@ } static void do_alphaunder_effect(Sequence * seq,int cfra, - float facf0, float facf1, int x, int y, - struct ImBuf *ibuf1, struct ImBuf *ibuf2, + float facf0, float facf1, int x, int y, + struct ImBuf *ibuf1, struct ImBuf *ibuf2, struct ImBuf *ibuf3, struct ImBuf *out) { if (out->rect_float) { @@ -648,8 +648,8 @@ CROSS ********************************************************************** */ -void do_cross_effect_byte(float facf0, float facf1, int x, int y, - char *rect1, char *rect2, +void do_cross_effect_byte(float facf0, float facf1, int x, int y, + char *rect1, char *rect2, char *out) { int fac1, fac2, fac3, fac4; @@ -696,7 +696,7 @@ } } -void do_cross_effect_float(float facf0, float facf1, int x, int y, +void do_cross_effect_float(float facf0, float facf1, int x, int y, float *rect1, float *rect2, float *out) { float fac1, fac2, fac3, fac4; @@ -746,8 +746,8 @@ /* carefull: also used by speed effect! */ static void do_cross_effect(Sequence * seq,int cfra, - float facf0, float facf1, int x, int y, - struct ImBuf *ibuf1, struct ImBuf *ibuf2, + float facf0, float facf1, int x, int y, + struct ImBuf *ibuf1, struct ImBuf *ibuf2, struct ImBuf *ibuf3, struct ImBuf *out) { if (out->rect_float) { @@ -793,9 +793,9 @@ valid_gamma = gamma; valid_inv_gamma = 1.0 / gamma; colour_step = 1.0 / RE_GAMMA_TABLE_SIZE; - inv_colour_step = (float) RE_GAMMA_TABLE_SIZE; + inv_colour_step = (float) RE_GAMMA_TABLE_SIZE; - /* We could squeeze out the two range tables to gain some memory. */ + /* We could squeeze out the two range tables to gain some memory. */ for (i = 0; i < RE_GAMMA_TABLE_SIZE; i++) { colour_domain_table[i] = i * colour_step; gamma_range_table[i] = pow(colour_domain_table[i], @@ -828,7 +828,7 @@ { int i; float res = 0.0; - + i = floor(c * inv_colour_step); /* Clip to range [0,1]: outside, just do the complete calculation. */ /* We may have some performance problems here. Stretching up the LUT */ @@ -836,9 +836,9 @@ /* Negative colours are explicitly handled. */ if (i < 0) res = -pow(abs(c), valid_gamma); else if (i >= RE_GAMMA_TABLE_SIZE ) res = pow(c, valid_gamma); - else res = gamma_range_table[i] + - ( (c - colour_domain_table[i]) * gamfactor_table[i]); - + else res = gamma_range_table[i] + + ( (c - colour_domain_table[i]) * gamfactor_table[i]); + return res; } /* end of float gammaCorrect(float col) */ @@ -853,9 +853,9 @@ /* Negative colours are explicitly handled. */ if (i < 0) res = -pow(abs(col), valid_inv_gamma); else if (i >= RE_GAMMA_TABLE_SIZE) res = pow(col, valid_inv_gamma); - else res = inv_gamma_range_table[i] + + else res = inv_gamma_range_table[i] + ( (col - colour_domain_table[i]) * inv_gamfactor_table[i]); - + return res; } /* end of float invGammaCorrect(float col) */ @@ -864,7 +864,7 @@ { float val, igamma= 1.0f/gamma; int a; - + gamtab= MEM_mallocN(65536*sizeof(short), "initGaus2"); igamtab1= MEM_mallocN(256*sizeof(short), "initGaus2"); @@ -872,10 +872,10 @@ for(a=0; a<65536; a++) { val= a; val/= 65535.0; - + if(gamma==2.0) val= sqrt(val); else if(gamma!=1.0) val= pow(val, igamma); - + gamtab[a]= (65535.99*val); } /* inverse gamtab1 : in byte, out short */ @@ -922,16 +922,16 @@ } } -static void do_gammacross_effect_byte(float facf0, float facf1, - int x, int y, - char *rect1, - char *rect2, +static void do_gammacross_effect_byte(float facf0, float facf1, + int x, int y, + char *rect1, + char *rect2, char *out) { int fac1, fac2, col; int xo; char *rt1, *rt2, *rt; - + xo= x; rt1= (char *)rect1; rt2= (char *)rect2; @@ -978,9 +978,9 @@ } -static void do_gammacross_effect_float(float facf0, float facf1, - int x, int y, - float *rect1, float *rect2, +static void do_gammacross_effect_float(float facf0, float facf1, + int x, int y, + float *rect1, float *rect2, float *out) { float fac1, fac2, col; @@ -1001,7 +1001,7 @@ while(x--) { *rt= gammaCorrect( - fac1 * invGammaCorrect(*rt1) + fac1 * invGammaCorrect(*rt1) + fac2 * invGammaCorrect(*rt2)); rt1++; rt2++; rt++; } @@ -1013,7 +1013,7 @@ while(x--) { col= gammaCorrect( - fac1*invGammaCorrect(*rt1) + fac1*invGammaCorrect(*rt1) + fac2*invGammaCorrect(*rt2)); rt1++; rt2++; rt++; @@ -1022,8 +1022,8 @@ } static void do_gammacross_effect(Sequence * seq,int cfra, - float facf0, float facf1, int x, int y, - struct ImBuf *ibuf1, struct ImBuf *ibuf2, + float facf0, float facf1, int x, int y, + struct ImBuf *ibuf1, struct ImBuf *ibuf2, struct ImBuf *ibuf3, struct ImBuf *out) { if (out->rect_float) { @@ -1044,8 +1044,8 @@ ADD ********************************************************************** */ -static void do_add_effect_byte(float facf0, float facf1, int x, int y, - unsigned char *rect1, unsigned char *rect2, +static void do_add_effect_byte(float facf0, float facf1, int x, int y, + unsigned char *rect1, unsigned char *rect2, unsigned char *out) { int col, xo, fac1, fac3; @@ -1096,8 +1096,8 @@ } } -static void do_add_effect_float(float facf0, float facf1, int x, int y, - float *rect1, float *rect2, +static void do_add_effect_float(float facf0, float facf1, int x, int y, + float *rect1, float *rect2, float *out) { int xo; @@ -1134,8 +1134,8 @@ } static void do_add_effect(Sequence * seq,int cfra, - float facf0, float facf1, int x, int y, - struct ImBuf *ibuf1, struct ImBuf *ibuf2, + float facf0, float facf1, int x, int y, + struct ImBuf *ibuf1, struct ImBuf *ibuf2, struct ImBuf *ibuf3, struct ImBuf *out) { if (out->rect_float) { @@ -1156,8 +1156,8 @@ SUB ********************************************************************** */ -static void do_sub_effect_byte(float facf0, float facf1, - int x, int y, +static void do_sub_effect_byte(float facf0, float facf1, + int x, int y, char *rect1, char *rect2, char *out) { int col, xo, fac1, fac3; @@ -1208,8 +1208,8 @@ } } -static void do_sub_effect_float(float facf0, float facf1, int x, int y, - float *rect1, float *rect2, +static void do_sub_effect_float(float facf0, float facf1, int x, int y, + float *rect1, float *rect2, float *out) { int xo; @@ -1246,8 +1246,8 @@ } static void do_sub_effect(Sequence * seq,int cfra, - float facf0, float facf1, int x, int y, - struct ImBuf *ibuf1, struct ImBuf *ibuf2, + float facf0, float facf1, int x, int y, + struct ImBuf *ibuf1, struct ImBuf *ibuf2, struct ImBuf *ibuf3, struct ImBuf *out) { if (out->rect_float) { @@ -1271,8 +1271,8 @@ #define XOFF 8 #define YOFF 8 -static void do_drop_effect_byte(float facf0, float facf1, int x, int y, - unsigned char *rect2i, unsigned char *rect1i, +static void do_drop_effect_byte(float facf0, float facf1, int x, int y, + unsigned char *rect2i, unsigned char *rect1i, unsigned char *outi) { int height, width, temp, fac, fac1, fac2; @@ -1311,8 +1311,8 @@ memcpy(out, rt1, sizeof(int)*YOFF*width); } -static void do_drop_effect_float(float facf0, float facf1, int x, int y, - float *rect2i, float *rect1i, +static void do_drop_effect_float(float facf0, float facf1, int x, int y, + float *rect2i, float *rect1i, float *outi) { int height, width; @@ -1354,8 +1354,8 @@ static void do_drop_effect(Sequence * seq,int cfra, - float facf0, float facf1, int x, int y, - struct ImBuf *ibuf1, struct ImBuf *ibuf2, + float facf0, float facf1, int x, int y, + struct ImBuf *ibuf1, struct ImBuf *ibuf2, struct ImBuf * ibuf3, struct ImBuf *out) { @@ -1376,8 +1376,8 @@ MUL ********************************************************************** */ -static void do_mul_effect_byte(float facf0, float facf1, int x, int y, - unsigned char *rect1, unsigned char *rect2, +static void do_mul_effect_byte(float facf0, float facf1, int x, int y, + unsigned char *rect1, unsigned char *rect2, unsigned char *out) { int xo, fac1, fac3; @@ -1425,8 +1425,8 @@ } } -static void do_mul_effect_float(float facf0, float facf1, int x, int y, - float *rect1, float *rect2, +static void do_mul_effect_float(float facf0, float facf1, int x, int y, + float *rect1, float *rect2, float *out) { int xo; @@ -1475,8 +1475,8 @@ } static void do_mul_effect(Sequence * seq,int cfra, - float facf0, float facf1, int x, int y, - struct ImBuf *ibuf1, struct ImBuf *ibuf2, + float facf0, float facf1, int x, int y, + struct ImBuf *ibuf1, struct ImBuf *ibuf2, struct ImBuf *ibuf3, struct ImBuf *out) { if (out->rect_float) { @@ -1493,551 +1493,12 @@ } /* ********************************************************************** - PUSH - ********************************************************************** */ - -static void init_push_effect(Sequence *seq) -{ - if(seq->effectdata)MEM_freeN(seq->effectdata); - seq->effectdata = MEM_callocN(sizeof(struct PushVars), "pushvars"); -} - -static int num_inputs_push() -{ - return 1; -} - -static void free_push_effect(Sequence *seq) -{ - if(seq->effectdata)MEM_freeN(seq->effectdata); - seq->effectdata = 0; -} - -static void copy_push_effect(Sequence *dst, Sequence *src) -{ - dst->effectdata = MEM_dupallocN(src->effectdata); -} - - -static void do_push_effect_byte(Sequence *seq, float facf0, float facf1, - int x, int y, - unsigned char *rect1, - unsigned char *rect2, unsigned char *out) -{ - int xo, yo, position, position2, offset, offset2, line, nb, size; - char *rt1, *rt2, *rt3, *rt4, *rt; - rt = (char *)out; - xo = x; - yo = y; - - PushVars *push = (PushVars *)seq->effectdata; - nb = push->pushnb; - switch (push->pushtype) { - - case DO_LEFT_PUSH: - position = (int)(facf0 * xo); - offset = (xo - position) * 4; - for (y=0; yeffectdata; - nb = push->pushnb; - switch (push->pushtype) { - - case DO_LEFT_PUSH: - position = facf0 * xo; - offset = (xo - position) * 4; - for (y=0; yrect_float) { - do_push_effect_float(seq, - facf0, facf1, x, y, - ibuf1->rect_float, ibuf2->rect_float, - out->rect_float); - } else { - do_push_effect_byte(seq, - facf0, facf1, x, y, - (char*) ibuf1->rect, (char*) ibuf2->rect, - (char*) out->rect); - } -} - -/* ********************************************************************** WIPE ********************************************************************** */ // This function calculates the blur band for the wipe effects static float in_band(float width,float dist, float perc,int side,int dir){ - + float t1,t2,alpha,percwidth; if(width == 0) return (float)side; @@ -2045,29 +1506,29 @@ percwidth = width * perc; else percwidth = width * (1 - perc); - + if(width < dist) return side; - + t1 = dist / width; //percentange of width that is t2 = 1 / width; //amount of alpha per % point - + if(side == 1) alpha = (t1*t2*100) + (1-perc); // add point's alpha contrib to current position in wipe else alpha = (1-perc) - (t1*t2*100); - + if(dir == 0) alpha = 1-alpha; return alpha; } -static float check_zone(int x, int y, int xo, int yo, - Sequence *seq, float facf0) +static float check_zone(int x, int y, int xo, int yo, + Sequence *seq, float facf0) { float posx, posy,hyp,hyp2,angle,hwidth,b1,b2,b3,pointdist; /*some future stuff - float hyp3,hyp4,b4,b5 + float hyp3,hyp4,b4,b5 */ float temp1,temp2,temp3,temp4; //some placeholder variables float halfx = xo/2; @@ -2094,8 +1555,8 @@ switch (wipe->wipetype) { case DO_SINGLE_WIPE: width = (int)(wipe->edgeWidth*((xo+yo)/2.0)); - hwidth = (float)width/2.0; - + hwidth = (float)width/2.0; + if (angle == 0.0)angle = 0.000001; b1 = posy - (-angle)*posx; b2 = y - (-angle)*x; @@ -2105,26 +1566,26 @@ b1 = b2; b2 = temp1; } - if(wipe->forward){ + if(wipe->forward){ if(b1 < b2) output = in_band(width,hyp,facf0,1,1); else output = in_band(width,hyp,facf0,0,1); } - else{ + else{ if(b1 < b2) output = in_band(width,hyp,facf0,0,1); else output = in_band(width,hyp,facf0,1,1); } break; - - + + case DO_DOUBLE_WIPE: if(!wipe->forward)facf0 = 1-facf0; // Go the other direction width = (int)(wipe->edgeWidth*((xo+yo)/2.0)); // calculate the blur width - hwidth = (float)width/2.0; + hwidth = (float)width/2.0; if (angle == 0)angle = 0.000001; b1 = posy/2 - (-angle)*posx/2; b3 = (yo-posy/2) - (-angle)*(xo-posx/2); @@ -2132,7 +1593,7 @@ hyp = abs(angle*x+y+(-posy/2-angle*posx/2))/sqrt(angle*angle+1); hyp2 = abs(angle*x+y+(-(yo-posy/2)-angle*(xo-posx/2)))/sqrt(angle*angle+1); - + temp1 = xo*(1-facf0/2)-xo*facf0/2; temp2 = yo*(1-facf0/2)-yo*facf0/2; pointdist = sqrt(temp1*temp1 + temp2*temp2); @@ -2143,8 +1604,8 @@ } else if(b2 > b1 && b2 > b3 ){ if(hwidth < pointdist) - output = in_band(hwidth,hyp2,facf0,0,1); - } + output = in_band(hwidth,hyp2,facf0,0,1); + } else{ if( hyp < hwidth && hyp2 > hwidth ) output = in_band(hwidth,hyp,facf0,1,1); @@ -2154,7 +1615,7 @@ output = in_band(hwidth,hyp2,facf0,1,1) * in_band(hwidth,hyp,facf0,1,1); } if(!wipe->forward)output = 1-output; - break; + break; case DO_CLOCK_WIPE: /* temp1: angle of effect center in rads @@ -2165,11 +1626,11 @@ output = 1-facf0; widthf = wipe->edgeWidth*2*3.14159; temp1 = 2 * 3.14159 * facf0; - + if(wipe->forward){ temp1 = 2*3.14159-temp1; } - + x = x - halfx; y = y - halfy; @@ -2180,7 +1641,7 @@ temp2 += 3.14159; else if(x >= 0 && y <= 0) temp2 = 2*3.14159 - temp2; - + if(wipe->forward){ temp3 = temp1-(widthf/2)*facf0; temp4 = temp1+(widthf/2)*(1-facf0); @@ -2191,8 +1652,8 @@ } if (temp3 < 0) temp3 = 0; if (temp4 > 2*3.14159) temp4 = 2*3.14159; - - + + if(temp2 < temp3) output = 0; else if (temp2 > temp4) @@ -2210,11 +1671,11 @@ /* BOX WIPE IS NOT WORKING YET */ /* case DO_CROSS_WIPE: */ /* BOX WIPE IS NOT WORKING YET */ - /* case DO_BOX_WIPE: + /* case DO_BOX_WIPE: if(invert)facf0 = 1-facf0; width = (int)(wipe->edgeWidth*((xo+yo)/2.0)); - hwidth = (float)width/2.0; + hwidth = (float)width/2.0; if (angle == 0)angle = 0.000001; b1 = posy/2 - (-angle)*posx/2; b3 = (yo-posy/2) - (-angle)*(xo-posx/2); @@ -2222,7 +1683,7 @@ hyp = abs(angle*x+y+(-posy/2-angle*posx/2))/sqrt(angle*angle+1); hyp2 = abs(angle*x+y+(-(yo-posy/2)-angle*(xo-posx/2)))/sqrt(angle*angle+1); - + temp1 = xo*(1-facf0/2)-xo*facf0/2; temp2 = yo*(1-facf0/2)-yo*facf0/2; pointdist = sqrt(temp1*temp1 + temp2*temp2); @@ -2233,8 +1694,8 @@ } else if(b2 > b1 && b2 > b3 ){ if(hwidth < pointdist) - output = in_band(hwidth,hyp2,facf0,0,1); - } + output = in_band(hwidth,hyp2,facf0,0,1); + } else{ if( hyp < hwidth && hyp2 > hwidth ) output = in_band(hwidth,hyp,facf0,1,1); @@ -2251,15 +1712,15 @@ hyp = abs(angle*x+y+(-posy/2-angle*posx/2))/sqrt(angle*angle+1); hyp2 = abs(angle*x+y+(-(yo-posy/2)-angle*(xo-posx/2)))/sqrt(angle*angle+1); - + if(b2 < b1 && b2 < b3 ){ if(hwidth < pointdist) output *= in_band(hwidth,hyp,facf0,0,1); } else if(b2 > b1 && b2 > b3 ){ if(hwidth < pointdist) - output *= in_band(hwidth,hyp2,facf0,0,1); - } + output *= in_band(hwidth,hyp2,facf0,0,1); + } else{ if( hyp < hwidth && hyp2 > hwidth ) output *= in_band(hwidth,hyp,facf0,1,1); @@ -2268,30 +1729,30 @@ else output *= in_band(hwidth,hyp2,facf0,1,1) * in_band(hwidth,hyp,facf0,1,1); } - + break;*/ case DO_IRIS_WIPE: if(xo > yo) yo = xo; else xo = yo; - + if(!wipe->forward) facf0 = 1-facf0; width = (int)(wipe->edgeWidth*((xo+yo)/2.0)); - hwidth = (float)width/2.0; - - temp1 = (halfx-(halfx)*facf0); + hwidth = (float)width/2.0; + + temp1 = (halfx-(halfx)*facf0); pointdist = sqrt(temp1*temp1 + temp1*temp1); - + temp2 = sqrt((halfx-x)*(halfx-x) + (halfy-y)*(halfy-y)); if(temp2 > pointdist) output = in_band(hwidth,fabs(temp2-pointdist),facf0,0,1); else output = in_band(hwidth,fabs(temp2-pointdist),facf0,1,1); - + if(!wipe->forward) output = 1-output; - + break; } if (output < 0) output = 0; @@ -2321,9 +1782,9 @@ dst->effectdata = MEM_dupallocN(src->effectdata); } -static void do_wipe_effect_byte(Sequence *seq, float facf0, float facf1, - int x, int y, - unsigned char *rect1, +static void do_wipe_effect_byte(Sequence *seq, float facf0, float facf1, + int x, int y, + unsigned char *rect1, unsigned char *rect2, unsigned char *out) { int xo, yo; @@ -2374,9 +1835,9 @@ } } -static void do_wipe_effect_float(Sequence *seq, float facf0, float facf1, - int x, int y, - float *rect1, +static void do_wipe_effect_float(Sequence *seq, float facf0, float facf1, + int x, int y, + float *rect1, float *rect2, float *out) { int xo, yo; @@ -2428,8 +1889,8 @@ } static void do_wipe_effect(Sequence * seq,int cfra, - float facf0, float facf1, int x, int y, - struct ImBuf *ibuf1, struct ImBuf *ibuf2, + float facf0, float facf1, int x, int y, + struct ImBuf *ibuf1, struct ImBuf *ibuf2, struct ImBuf *ibuf3, struct ImBuf *out) { if (out->rect_float) { @@ -2459,15 +1920,15 @@ scale->ScaleyIni = 1; scale->ScalexFin = 1; scale->ScaleyFin = 1; - + scale->xIni=0; scale->xFin=0; scale->yIni=0; scale->yFin=0; - + scale->rotIni=0; scale->rotFin=0; - + } static int num_inputs_transform() @@ -2502,24 +1963,24 @@ /* sample area entirely outside image? */ if(x2<0 || x1>in->x-1 || y2<0 || y1>in->y-1) return; - + /* sample including outside of edges of image */ if(x1<0 || y1<0) row1= empty; else row1= in->rect_float + in->x * y1 * 4 + 4*x1; - + if(x1<0 || y2>in->y-1) row2= empty; else row2= in->rect_float + in->x * y2 * 4 + 4*x1; - + if(x2>in->x-1 || y1<0) row3= empty; else row3= in->rect_float + in->x * y1 * 4 + 4*x2; - + if(x2>in->x-1 || y2>in->y-1) row4= empty; else row4= in->rect_float + in->x * y2 * 4 + 4*x2; - + a= u-floor(u); b= v-floor(v); a_b= a*b; ma_b= (1.0f-a)*b; a_mb= a*(1.0f-b); ma_mb= (1.0f-a)*(1.0f-b); - + out[0]= ma_mb*row1[0] + a_mb*row3[0] + ma_b*row2[0]+ a_b*row4[0]; out[1]= ma_mb*row1[1] + a_mb*row3[1] + ma_b*row2[1]+ a_b*row4[1]; out[2]= ma_mb*row1[2] + a_mb*row3[2] + ma_b*row2[2]+ a_b*row4[2]; @@ -2527,13 +1988,13 @@ } -static void do_transform_effect_float(Sequence * seq,float facf0, int x, int y, +static void do_transform_effect_float(Sequence * seq,float facf0, int x, int y, struct ImBuf *ibuf1,float *out) { int xo, yo, xi, yi; float xs,ys,factxScale,factyScale,tx,ty,rad,s,c,xaux,yaux,factRot,px,py; TransformVars *scale; - + scale = (TransformVars *)seq->effectdata; xo = x; yo = y; @@ -2572,11 +2033,11 @@ /*interpolate*/ bilinear_interpolation_transform_float(ibuf1,out, xs,ys); - + out+=4; } - } - + } + } /* function assumes out to be zero'ed, only does RGBA */ @@ -2599,7 +2060,7 @@ /* sample area entirely outside image? */ if(x2<0 || x1>x-1 || y2<0 || y1>y-1) return; - + /* sample including outside of edges of image */ if(x1<0 || y1<0){ row1R = 0; @@ -2607,69 +2068,69 @@ row1B = 0; row1A = 0; } - else{ + else{ row1R= in[x * y1 * 4 + 4 * x1]; row1G= in[x * y1 * 4 + 4 * x1 + 1]; row1B= in[x * y1 * 4 + 4 * x1 + 2]; row1A= in[x * y1 * 4 + 4 * x1 + 3]; } - + if(x1<0 || y2>y-1){ row2R = 0; row2G = 0; row2B = 0; row2A = 0; } - else{ + else{ row2R= in[x * y2 * 4 + 4 * x1]; row2G= in[x * y2 * 4 + 4 * x1 + 1]; row2B= in[x * y2 * 4 + 4 * x1 + 2]; row2A= in[x * y2 * 4 + 4 * x1 + 3]; } - + if(x2>x-1 || y1<0){ row3R = 0; row3G = 0; row3B = 0; row3A = 0; } - else{ + else{ row3R= in[x * y1 * 4 + 4 * x2]; row3G= in[x * y1 * 4 + 4 * x2 + 1]; row3B= in[x * y1 * 4 + 4 * x2 + 2]; row3A= in[x * y1 * 4 + 4 * x2 + 3]; } - + if(x2>x-1 || y2>y-1){ row4R = 0; row4G = 0; row4B = 0; row4A = 0; } - else{ + else{ row4R= in[x * y2 * 4 + 4 * x2]; row4G= in[x * y2 * 4 + 4 * x2 + 1]; row4B= in[x * y2 * 4 + 4 * x2 + 2]; row4A= in[x * y2 * 4 + 4 * x2 + 3]; } - + a= u-floor(u); b= v-floor(v); a_b= a*b; ma_b= (1-a)*b; a_mb= a*(1-b); ma_mb= (1-a)*(1-b); - + out[0]= (int)(ma_mb*row1R + a_mb*row3R + ma_b*row2R + a_b*row4R); out[1]= (int)(ma_mb*row1G + a_mb*row3G + ma_b*row2G + a_b*row4G); out[2]= (int)(ma_mb*row1B + a_mb*row3B + ma_b*row2B + a_b*row4B); out[3]= (int)(ma_mb*row1A + a_mb*row3A + ma_b*row2A + a_b*row4A); } -static void do_transform_effect_byte(Sequence * seq,float facf0, int x, int y, +static void do_transform_effect_byte(Sequence * seq,float facf0, int x, int y, unsigned char *ibuf1,unsigned char *out) { int xo, yo, xi, yi; float xs,ys,factxScale,factyScale,tx,ty,rad,s,c,xaux,yaux,factRot,px,py; TransformVars *scale; - + scale = (TransformVars *)seq->effectdata; xo = x; yo = y; @@ -2708,15 +2169,15 @@ /*interpolate*/ bilinear_interpolation_transform_byte(ibuf1,out, xs,ys,x,y); - + out+=4; } - } + } } static void do_transform_effect(Sequence * seq,int cfra, - float facf0, float facf1, int x, int y, - struct ImBuf *ibuf1, struct ImBuf *ibuf2, + float facf0, float facf1, int x, int y, + struct ImBuf *ibuf1, struct ImBuf *ibuf2, struct ImBuf *ibuf3, struct ImBuf *out) { if (out->rect_float) { @@ -3097,7 +2558,7 @@ } } -static void RVAddBitmaps_float (float* a, float* b, float* c, +static void RVAddBitmaps_float (float* a, float* b, float* c, int width, int height) { int x,y,index; @@ -3115,8 +2576,8 @@ /* For each pixel whose total luminance exceeds the threshold, */ /* Multiply it's value by BOOST and add it to the output map */ -static void RVIsolateHighlights_byte (unsigned char* in, unsigned char* out, - int width, int height, int threshold, +static void RVIsolateHighlights_byte (unsigned char* in, unsigned char* out, + int width, int height, int threshold, float boost, float clamp) { int x,y,index; @@ -3145,8 +2606,8 @@ } } -static void RVIsolateHighlights_float (float* in, float* out, - int width, int height, float threshold, +static void RVIsolateHighlights_float (float* in, float* out, + int width, int height, float threshold, float boost, float clamp) { int x,y,index; @@ -3208,8 +2669,8 @@ } //void do_glow_effect(Cast *cast, float facf0, float facf1, int xo, int yo, ImBuf *ibuf1, ImBuf *ibuf2, ImBuf *outbuf, ImBuf *use) -static void do_glow_effect_byte(Sequence *seq, float facf0, float facf1, - int x, int y, char *rect1, +static void do_glow_effect_byte(Sequence *seq, float facf0, float facf1, + int x, int y, char *rect1, char *rect2, char *out) { unsigned char *outbuf=(unsigned char *)out; @@ -3222,8 +2683,8 @@ RVAddBitmaps_byte (inbuf , outbuf, outbuf, x, y); } -static void do_glow_effect_float(Sequence *seq, float facf0, float facf1, - int x, int y, +static void do_glow_effect_float(Sequence *seq, float facf0, float facf1, + int x, int y, float *rect1, float *rect2, float *out) { float *outbuf = out; @@ -3237,8 +2698,8 @@ } static void do_glow_effect(Sequence * seq,int cfra, - float facf0, float facf1, int x, int y, - struct ImBuf *ibuf1, struct ImBuf *ibuf2, + float facf0, float facf1, int x, int y, + struct ImBuf *ibuf1, struct ImBuf *ibuf2, struct ImBuf *ibuf3, struct ImBuf *out) { if (out->rect_float) { @@ -3261,10 +2722,10 @@ static void init_solid_color(Sequence *seq) { SolidColorVars *cv; - + if(seq->effectdata)MEM_freeN(seq->effectdata); seq->effectdata = MEM_callocN(sizeof(struct SolidColorVars), "solidcolor"); - + cv = (SolidColorVars *)seq->effectdata; cv->col[0] = cv->col[1] = cv->col[2] = 0.5; } @@ -3292,8 +2753,8 @@ } static void do_solid_color(Sequence * seq,int cfra, - float facf0, float facf1, int x, int y, - struct ImBuf *ibuf1, struct ImBuf *ibuf2, + float facf0, float facf1, int x, int y, + struct ImBuf *ibuf1, struct ImBuf *ibuf2, struct ImBuf *ibuf3, struct ImBuf *out) { SolidColorVars *cv = (SolidColorVars *)seq->effectdata; @@ -3303,19 +2764,19 @@ if (out->rect) { rect = (unsigned char *)out->rect; - - for(y=0; yy; y++) { + + for(y=0; yy; y++) { for(x=0; xx; x++, rect+=4) { rect[0]= (char)(cv->col[0]*255); rect[1]= (char)(cv->col[1]*255); rect[2]= (char)(cv->col[2]*255); rect[3]= 255; - } + } } } else if (out->rect_float) { rect_float = out->rect_float; - - for(y=0; yy; y++) { + + for(y=0; yy; y++) { for(x=0; xx; x++, rect_float+=4) { rect_float[0]= cv->col[0]; rect_float[1]= cv->col[1]; @@ -3334,7 +2795,7 @@ SpeedControlVars * v; if(seq->effectdata) MEM_freeN(seq->effectdata); - seq->effectdata = MEM_callocN(sizeof(struct SpeedControlVars), + seq->effectdata = MEM_callocN(sizeof(struct SpeedControlVars), "speedcontrolvars"); v = (SpeedControlVars *)seq->effectdata; @@ -3396,22 +2857,22 @@ v->length = seq->len; - v->frameMap = MEM_callocN(sizeof(float) * v->length, + v->frameMap = MEM_callocN(sizeof(float) * v->length, "speedcontrol frameMap"); } fallback_fac = 1.0; - + /* if there is no IPO, try to make retiming easy by stretching the strip */ if (!seq->ipo && seq->seq1 && seq->seq1->enddisp != seq->seq1->start && seq->seq1->len != 0) { - fallback_fac = (float) seq->seq1->len / + fallback_fac = (float) seq->seq1->len / (float) (seq->seq1->enddisp - seq->seq1->start); /* FIXME: this strip stretching gets screwed by stripdata handling one layer up. - + So it currently works by enlarging, never by shrinking! (IPOs still work, if used correctly) @@ -3437,7 +2898,7 @@ div= v->length / 100.0f; if(div==0.0) return; } - + calc_ipo(seq->ipo, ctime/div); execute_ipo((ID *)seq, seq->ipo); } else { @@ -3465,11 +2926,11 @@ div= v->length / 100.0f; if(div==0.0) return; } - + calc_ipo(seq->ipo, ctime/div); execute_ipo((ID *)seq, seq->ipo); } - + if (v->flags & SEQ_SPEED_COMPRESS_IPO_Y) { seq->facf0 *= v->length; } @@ -3490,8 +2951,8 @@ simply reuse do_cross_effect for blending... static void do_speed_effect(Sequence * seq,int cfra, - float facf0, float facf1, int x, int y, - struct ImBuf *ibuf1, struct ImBuf *ibuf2, + float facf0, float facf1, int x, int y, + struct ImBuf *ibuf1, struct ImBuf *ibuf2, struct ImBuf *ibuf3, struct ImBuf *out) { @@ -3571,15 +3032,15 @@ } static void do_overdrop_effect(struct Sequence * seq, int cfra, - float fac, float facf, - int x, int y, struct ImBuf * ibuf1, - struct ImBuf * ibuf2, - struct ImBuf * ibuf3, + float fac, float facf, + int x, int y, struct ImBuf * ibuf1, + struct ImBuf * ibuf2, + struct ImBuf * ibuf3, struct ImBuf * out) { - do_drop_effect(seq, cfra, fac, facf, x, y, + do_drop_effect(seq, cfra, fac, facf, x, y, ibuf1, ibuf2, ibuf3, out); - do_alphaover_effect(seq, cfra, fac, facf, x, y, + do_alphaover_effect(seq, cfra, fac, facf, x, y, ibuf1, ibuf2, ibuf3, out); } @@ -3685,15 +3146,6 @@ rval.early_out = do_plugin_early_out; rval.get_default_fac = get_default_fac_fade; break; - case SEQ_PUSH: - rval.init = init_push_effect; - rval.num_inputs = num_inputs_push; - rval.free = free_push_effect; - rval.copy = copy_push_effect; - rval.early_out = early_out_fade; - rval.get_default_fac = get_default_fac_fade; - rval.execute = do_push_effect; - break; } return rval; diff -Naur /home/olabomba/blender/source/blender/src/seqeffects.c.save /home/olabomba/blender-propre/blender/source/blender/src/seqeffects.c.save --- /home/olabomba/blender/source/blender/src/seqeffects.c.save 2006-12-07 21:17:36.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/src/seqeffects.c.save 1970-01-01 01:00:00.000000000 +0100 @@ -1,3720 +0,0 @@ -/** - * $Id: seqeffects.c,v 1.11 2006/12/04 20:00:17 schlaile Exp $ - * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. - * - * This program 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. - * All rights reserved. - * - * Contributor(s): Peter Schlaile 2005/2006 - * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** - */ - -#include -#include -#include - -#include "MEM_guardedalloc.h" -#include "PIL_dynlib.h" - -#include "DNA_sequence_types.h" - -#include "BLI_blenlib.h" -#include "BLI_arithb.h" - -#include "BIF_interface.h" -#include "BIF_toolbox.h" - -#include "BSE_seqeffects.h" -#include "BSE_sequence.h" - -#include "BKE_global.h" -#include "BKE_ipo.h" -#include "BKE_plugin_types.h" -#include "BKE_texture.h" -#include "BKE_utildefines.h" - -#include "IMB_imbuf_types.h" -#include "IMB_imbuf.h" - -#include "RE_pipeline.h" // talks to entire render API - -#include "blendef.h" - -/* Glow effect */ -enum { - GlowR=0, - GlowG=1, - GlowB=2, - GlowA=3 -}; - - -/* ********************************************************************** - PLUGINS - ********************************************************************** */ - -static void open_plugin_seq(PluginSeq *pis, const char *seqname) -{ - int (*version)(); - void* (*alloc_private)(); - char *cp; - - /* to be sure: (is tested for) */ - pis->doit= 0; - pis->pname= 0; - pis->varstr= 0; - pis->cfra= 0; - pis->version= 0; - pis->instance_private_data = 0; - - /* clear the error list */ - PIL_dynlib_get_error_as_string(NULL); - - /* if(pis->handle) PIL_dynlib_close(pis->handle); */ - /* pis->handle= 0; */ - - /* open the needed object */ - pis->handle= PIL_dynlib_open(pis->name); - if(test_dlerr(pis->name, pis->name)) return; - - if (pis->handle != 0) { - /* find the address of the version function */ - version= (int (*)())PIL_dynlib_find_symbol(pis->handle, "plugin_seq_getversion"); - if (test_dlerr(pis->name, "plugin_seq_getversion")) return; - - if (version != 0) { - pis->version= version(); - if (pis->version==2 || pis->version==3 - || pis->version==4) { - int (*info_func)(PluginInfo *); - PluginInfo *info= (PluginInfo*) MEM_mallocN(sizeof(PluginInfo), "plugin_info");; - - info_func= (int (*)(PluginInfo *))PIL_dynlib_find_symbol(pis->handle, "plugin_getinfo"); - - if(info_func == NULL) error("No info func"); - else { - info_func(info); - - pis->pname= info->name; - pis->vars= info->nvars; - pis->cfra= info->cfra; - - pis->varstr= info->varstr; - - pis->doit= (void(*)(void))info->seq_doit; - if (info->init) - info->init(); - } - MEM_freeN(info); - - cp= PIL_dynlib_find_symbol(pis->handle, "seqname"); - if(cp) strncpy(cp, seqname, 21); - } else { - printf ("Plugin returned unrecognized version number\n"); - return; - } - } - alloc_private = (void* (*)())PIL_dynlib_find_symbol( - pis->handle, "plugin_seq_alloc_private_data"); - if (alloc_private) { - pis->instance_private_data = alloc_private(); - } - - pis->current_private_data = (void**) - PIL_dynlib_find_symbol( - pis->handle, "plugin_private_data"); - } -} - -static PluginSeq *add_plugin_seq(const char *str, const char *seqname) -{ - PluginSeq *pis; - VarStruct *varstr; - int a; - - pis= MEM_callocN(sizeof(PluginSeq), "PluginSeq"); - - strncpy(pis->name, str, FILE_MAXDIR+FILE_MAXFILE); - open_plugin_seq(pis, seqname); - - if(pis->doit==0) { - if(pis->handle==0) error("no plugin: %s", str); - else error("in plugin: %s", str); - MEM_freeN(pis); - return 0; - } - - /* default values */ - varstr= pis->varstr; - for(a=0; avars; a++, varstr++) { - if( (varstr->type & FLO)==FLO) - pis->data[a]= varstr->def; - else if( (varstr->type & INT)==INT) - *((int *)(pis->data+a))= (int) varstr->def; - } - - return pis; -} - -static void free_plugin_seq(PluginSeq *pis) -{ - if(pis==0) return; - - /* no PIL_dynlib_close: same plugin can be opened multiple times with 1 handle */ - - if (pis->instance_private_data) { - void (*free_private)(void *); - - free_private = (void (*)(void *))PIL_dynlib_find_symbol( - pis->handle, "plugin_seq_free_private_data"); - if (free_private) { - free_private(pis->instance_private_data); - } - } - - MEM_freeN(pis); -} - -static void init_plugin(Sequence * seq, const char * fname) -{ - seq->plugin= (PluginSeq *)add_plugin_seq(fname, seq->name+2); -} - -/* - * FIXME: should query plugin! Could be generator, that needs zero inputs... - */ -static int num_inputs_plugin() -{ - return 1; -} - -static void load_plugin(Sequence * seq) -{ - if (seq) { - open_plugin_seq(seq->plugin, seq->name+2); - } -} - -static void copy_plugin(Sequence * dst, Sequence * src) -{ - if(src->plugin) { - dst->plugin= MEM_dupallocN(src->plugin); - open_plugin_seq(dst->plugin, dst->name+2); - } -} - -static void do_plugin_effect(Sequence * seq,int cfra, - float facf0, float facf1, int x, int y, - struct ImBuf *ibuf1, struct ImBuf *ibuf2, - struct ImBuf *ibuf3, struct ImBuf *out) -{ - char *cp; - int float_rendering; - int use_temp_bufs = 0; /* Are needed since blur.c (and maybe some other - old plugins) do very bad stuff - with imbuf-internals */ - - if(seq->plugin && seq->plugin->doit) { - if(seq->plugin->cfra) - *(seq->plugin->cfra)= frame_to_float(cfra); - - cp = PIL_dynlib_find_symbol( - seq->plugin->handle, "seqname"); - - if(cp) strncpy(cp, seq->name+2, 22); - - if (seq->plugin->current_private_data) { - *seq->plugin->current_private_data - = seq->plugin->instance_private_data; - } - - float_rendering = (out->rect_float != NULL); - - if (seq->plugin->version<=3 && float_rendering) { - use_temp_bufs = 1; - - if (ibuf1) { - ibuf1 = IMB_dupImBuf(ibuf1); - IMB_rect_from_float(ibuf1); - imb_freerectfloatImBuf(ibuf1); - ibuf1->flags &= ~IB_rectfloat; - } - if (ibuf2) { - ibuf2 = IMB_dupImBuf(ibuf2); - IMB_rect_from_float(ibuf2); - imb_freerectfloatImBuf(ibuf2); - ibuf2->flags &= ~IB_rectfloat; - } - if (ibuf3) { - ibuf3 = IMB_dupImBuf(ibuf3); - IMB_rect_from_float(ibuf3); - imb_freerectfloatImBuf(ibuf3); - ibuf3->flags &= ~IB_rectfloat; - } - if (!out->rect) imb_addrectImBuf(out); - imb_freerectfloatImBuf(out); - out->flags &= ~IB_rectfloat; - } - - if (seq->plugin->version<=2) { - if(ibuf1) IMB_convert_rgba_to_abgr(ibuf1); - if(ibuf2) IMB_convert_rgba_to_abgr(ibuf2); - if(ibuf3) IMB_convert_rgba_to_abgr(ibuf3); - } - - ((SeqDoit)seq->plugin->doit)( - seq->plugin->data, facf0, facf1, x, y, - ibuf1, ibuf2, out, ibuf3); - - if (seq->plugin->version<=2) { - if (!use_temp_bufs) { - if(ibuf1) IMB_convert_rgba_to_abgr(ibuf1); - if(ibuf2) IMB_convert_rgba_to_abgr(ibuf2); - if(ibuf3) IMB_convert_rgba_to_abgr(ibuf3); - } - IMB_convert_rgba_to_abgr(out); - } - if (seq->plugin->version<=3 && float_rendering) { - IMB_float_from_rect(out); - } - - if (use_temp_bufs) { - if (ibuf1) IMB_freeImBuf(ibuf1); - if (ibuf2) IMB_freeImBuf(ibuf2); - if (ibuf3) IMB_freeImBuf(ibuf3); - } - } -} - -static int do_plugin_early_out(struct Sequence *seq, - float facf0, float facf1) -{ - return 0; -} - -static void free_plugin(struct Sequence * seq) -{ - free_plugin_seq(seq->plugin); - seq->plugin = 0; -} - -/* ********************************************************************** - ALPHA OVER - ********************************************************************** */ - -static void init_alpha_over_or_under(Sequence * seq) -{ - Sequence * seq1 = seq->seq1; - Sequence * seq2 = seq->seq2; - - seq->seq2= seq1; - seq->seq1= seq2; -} - -static void do_alphaover_effect_byte(float facf0, float facf1, int x, int y, - char * rect1, char *rect2, char *out) -{ - int fac2, mfac, fac, fac4; - int xo, tempc; - char *rt1, *rt2, *rt; - - xo= x; - rt1= (char *)rect1; - rt2= (char *)rect2; - rt= (char *)out; - - fac2= (int)(256.0*facf0); - fac4= (int)(256.0*facf1); - - while(y--) { - - x= xo; - while(x--) { - - /* rt = rt1 over rt2 (alpha from rt1) */ - - fac= fac2; - mfac= 256 - ( (fac2*rt1[3])>>8 ); - - if(fac==0) *( (unsigned int *)rt) = *( (unsigned int *)rt2); - else if(mfac==0) *( (unsigned int *)rt) = *( (unsigned int *)rt1); - else { - tempc= ( fac*rt1[0] + mfac*rt2[0])>>8; - if(tempc>255) rt[0]= 255; else rt[0]= tempc; - tempc= ( fac*rt1[1] + mfac*rt2[1])>>8; - if(tempc>255) rt[1]= 255; else rt[1]= tempc; - tempc= ( fac*rt1[2] + mfac*rt2[2])>>8; - if(tempc>255) rt[2]= 255; else rt[2]= tempc; - tempc= ( fac*rt1[3] + mfac*rt2[3])>>8; - if(tempc>255) rt[3]= 255; else rt[3]= tempc; - } - rt1+= 4; rt2+= 4; rt+= 4; - } - - if(y==0) break; - y--; - - x= xo; - while(x--) { - - fac= fac4; - mfac= 256 - ( (fac4*rt1[3])>>8 ); - - if(fac==0) *( (unsigned int *)rt) = *( (unsigned int *)rt2); - else if(mfac==0) *( (unsigned int *)rt) = *( (unsigned int *)rt1); - else { - tempc= ( fac*rt1[0] + mfac*rt2[0])>>8; - if(tempc>255) rt[0]= 255; else rt[0]= tempc; - tempc= ( fac*rt1[1] + mfac*rt2[1])>>8; - if(tempc>255) rt[1]= 255; else rt[1]= tempc; - tempc= ( fac*rt1[2] + mfac*rt2[2])>>8; - if(tempc>255) rt[2]= 255; else rt[2]= tempc; - tempc= ( fac*rt1[3] + mfac*rt2[3])>>8; - if(tempc>255) rt[3]= 255; else rt[3]= tempc; - } - rt1+= 4; rt2+= 4; rt+= 4; - } - } -} - -static void do_alphaover_effect_float(float facf0, float facf1, int x, int y, - float * rect1, float *rect2, float *out) -{ - float fac2, mfac, fac, fac4; - int xo; - float *rt1, *rt2, *rt; - - xo= x; - rt1= rect1; - rt2= rect2; - rt= out; - - fac2= facf0; - fac4= facf1; - - while(y--) { - - x= xo; - while(x--) { - - /* rt = rt1 over rt2 (alpha from rt1) */ - - fac= fac2; - mfac= 1.0 - (fac2*rt1[3]) ; - - if(fac <= 0.0) { - memcpy(rt, rt2, 4 * sizeof(float)); - } else if(mfac <=0) { - memcpy(rt, rt1, 4 * sizeof(float)); - } else { - rt[0] = fac*rt1[0] + mfac*rt2[0]; - rt[1] = fac*rt1[1] + mfac*rt2[1]; - rt[2] = fac*rt1[2] + mfac*rt2[2]; - rt[3] = fac*rt1[3] + mfac*rt2[3]; - } - rt1+= 4; rt2+= 4; rt+= 4; - } - - if(y==0) break; - y--; - - x= xo; - while(x--) { - - fac= fac4; - mfac= 1.0 - (fac4*rt1[3]); - - if(fac <= 0.0) { - memcpy(rt, rt2, 4 * sizeof(float)); - } else if(mfac <= 0.0) { - memcpy(rt, rt1, 4 * sizeof(float)); - } else { - rt[0] = fac*rt1[0] + mfac*rt2[0]; - rt[1] = fac*rt1[1] + mfac*rt2[1]; - rt[2] = fac*rt1[2] + mfac*rt2[2]; - rt[3] = fac*rt1[3] + mfac*rt2[3]; - } - rt1+= 4; rt2+= 4; rt+= 4; - } - } -} - -static void do_alphaover_effect(Sequence * seq,int cfra, - float facf0, float facf1, int x, int y, - struct ImBuf *ibuf1, struct ImBuf *ibuf2, - struct ImBuf *ibuf3, struct ImBuf *out) -{ - if (out->rect_float) { - do_alphaover_effect_float( - facf0, facf1, x, y, - ibuf1->rect_float, ibuf2->rect_float, - out->rect_float); - } else { - do_alphaover_effect_byte( - facf0, facf1, x, y, - (char*) ibuf1->rect, (char*) ibuf2->rect, - (char*) out->rect); - } -} - - -/* ********************************************************************** - ALPHA UNDER - ********************************************************************** */ - -void do_alphaunder_effect_byte( - float facf0, float facf1, int x, int y, char *rect1, - char *rect2, char *out) -{ - int fac2, mfac, fac, fac4; - int xo; - char *rt1, *rt2, *rt; - - xo= x; - rt1= rect1; - rt2= rect2; - rt= out; - - fac2= (int)(256.0*facf0); - fac4= (int)(256.0*facf1); - - while(y--) { - - x= xo; - while(x--) { - - /* rt = rt1 under rt2 (alpha from rt2) */ - - /* this complex optimalisation is because the - * 'skybuf' can be crossed in - */ - if(rt2[3]==0 && fac2==256) *( (unsigned int *)rt) = *( (unsigned int *)rt1); - else if(rt2[3]==255) *( (unsigned int *)rt) = *( (unsigned int *)rt2); - else { - mfac= rt2[3]; - fac= (fac2*(256-mfac))>>8; - - if(fac==0) *( (unsigned int *)rt) = *( (unsigned int *)rt2); - else { - rt[0]= ( fac*rt1[0] + mfac*rt2[0])>>8; - rt[1]= ( fac*rt1[1] + mfac*rt2[1])>>8; - rt[2]= ( fac*rt1[2] + mfac*rt2[2])>>8; - rt[3]= ( fac*rt1[3] + mfac*rt2[3])>>8; - } - } - rt1+= 4; rt2+= 4; rt+= 4; - } - - if(y==0) break; - y--; - - x= xo; - while(x--) { - - if(rt2[3]==0 && fac4==256) *( (unsigned int *)rt) = *( (unsigned int *)rt1); - else if(rt2[3]==255) *( (unsigned int *)rt) = *( (unsigned int *)rt2); - else { - mfac= rt2[3]; - fac= (fac4*(256-mfac))>>8; - - if(fac==0) *( (unsigned int *)rt) = *( (unsigned int *)rt2); - else { - rt[0]= ( fac*rt1[0] + mfac*rt2[0])>>8; - rt[1]= ( fac*rt1[1] + mfac*rt2[1])>>8; - rt[2]= ( fac*rt1[2] + mfac*rt2[2])>>8; - rt[3]= ( fac*rt1[3] + mfac*rt2[3])>>8; - } - } - rt1+= 4; rt2+= 4; rt+= 4; - } - } -} - - -static void do_alphaunder_effect_float(float facf0, float facf1, int x, int y, - float *rect1, float *rect2, - float *out) -{ - float fac2, mfac, fac, fac4; - int xo; - float *rt1, *rt2, *rt; - - xo= x; - rt1= rect1; - rt2= rect2; - rt= out; - - fac2= facf0; - fac4= facf1; - - while(y--) { - - x= xo; - while(x--) { - - /* rt = rt1 under rt2 (alpha from rt2) */ - - /* this complex optimalisation is because the - * 'skybuf' can be crossed in - */ - if( rt2[3]<=0 && fac2>=1.0) { - memcpy(rt, rt1, 4 * sizeof(float)); - } else if(rt2[3]>=1.0) { - memcpy(rt, rt2, 4 * sizeof(float)); - } else { - mfac = rt2[3]; - fac = fac2 * (1.0 - mfac); - - if(fac == 0) { - memcpy(rt, rt2, 4 * sizeof(float)); - } else { - rt[0]= fac*rt1[0] + mfac*rt2[0]; - rt[1]= fac*rt1[1] + mfac*rt2[1]; - rt[2]= fac*rt1[2] + mfac*rt2[2]; - rt[3]= fac*rt1[3] + mfac*rt2[3]; - } - } - rt1+= 4; rt2+= 4; rt+= 4; - } - - if(y==0) break; - y--; - - x= xo; - while(x--) { - - if(rt2[3]<=0 && fac4 >= 1.0) { - memcpy(rt, rt1, 4 * sizeof(float)); - - } else if(rt2[3]>=1.0) { - memcpy(rt, rt2, 4 * sizeof(float)); - } else { - mfac= rt2[3]; - fac= fac4*(1.0-mfac); - - if(fac == 0) { - memcpy(rt, rt2, 4 * sizeof(float)); - } else { - rt[0]= fac * rt1[0] + mfac * rt2[0]; - rt[1]= fac * rt1[1] + mfac * rt2[1]; - rt[2]= fac * rt1[2] + mfac * rt2[2]; - rt[3]= fac * rt1[3] + mfac * rt2[3]; - } - } - rt1+= 4; rt2+= 4; rt+= 4; - } - } -} - -static void do_alphaunder_effect(Sequence * seq,int cfra, - float facf0, float facf1, int x, int y, - struct ImBuf *ibuf1, struct ImBuf *ibuf2, - struct ImBuf *ibuf3, struct ImBuf *out) -{ - if (out->rect_float) { - do_alphaunder_effect_float( - facf0, facf1, x, y, - ibuf1->rect_float, ibuf2->rect_float, - out->rect_float); - } else { - do_alphaunder_effect_byte( - facf0, facf1, x, y, - (char*) ibuf1->rect, (char*) ibuf2->rect, - (char*) out->rect); - } -} - - -/* ********************************************************************** - CROSS - ********************************************************************** */ - -void do_cross_effect_byte(float facf0, float facf1, int x, int y, - char *rect1, char *rect2, - char *out) -{ - int fac1, fac2, fac3, fac4; - int xo; - char *rt1, *rt2, *rt; - - xo= x; - rt1= rect1; - rt2= rect2; - rt= out; - - fac2= (int)(256.0*facf0); - fac1= 256-fac2; - fac4= (int)(256.0*facf1); - fac3= 256-fac4; - - while(y--) { - - x= xo; - while(x--) { - - rt[0]= (fac1*rt1[0] + fac2*rt2[0])>>8; - rt[1]= (fac1*rt1[1] + fac2*rt2[1])>>8; - rt[2]= (fac1*rt1[2] + fac2*rt2[2])>>8; - rt[3]= (fac1*rt1[3] + fac2*rt2[3])>>8; - - rt1+= 4; rt2+= 4; rt+= 4; - } - - if(y==0) break; - y--; - - x= xo; - while(x--) { - - rt[0]= (fac3*rt1[0] + fac4*rt2[0])>>8; - rt[1]= (fac3*rt1[1] + fac4*rt2[1])>>8; - rt[2]= (fac3*rt1[2] + fac4*rt2[2])>>8; - rt[3]= (fac3*rt1[3] + fac4*rt2[3])>>8; - - rt1+= 4; rt2+= 4; rt+= 4; - } - - } -} - -void do_cross_effect_float(float facf0, float facf1, int x, int y, - float *rect1, float *rect2, float *out) -{ - float fac1, fac2, fac3, fac4; - int xo; - float *rt1, *rt2, *rt; - - xo= x; - rt1= rect1; - rt2= rect2; - rt= out; - - fac2= facf0; - fac1= 1.0 - fac2; - fac4= facf1; - fac3= 1.0 - fac4; - - while(y--) { - - x= xo; - while(x--) { - - rt[0]= fac1*rt1[0] + fac2*rt2[0]; - rt[1]= fac1*rt1[1] + fac2*rt2[1]; - rt[2]= fac1*rt1[2] + fac2*rt2[2]; - rt[3]= fac1*rt1[3] + fac2*rt2[3]; - - rt1+= 4; rt2+= 4; rt+= 4; - } - - if(y==0) break; - y--; - - x= xo; - while(x--) { - - rt[0]= fac3*rt1[0] + fac4*rt2[0]; - rt[1]= fac3*rt1[1] + fac4*rt2[1]; - rt[2]= fac3*rt1[2] + fac4*rt2[2]; - rt[3]= fac3*rt1[3] + fac4*rt2[3]; - - rt1+= 4; rt2+= 4; rt+= 4; - } - - } -} - -/* carefull: also used by speed effect! */ - -static void do_cross_effect(Sequence * seq,int cfra, - float facf0, float facf1, int x, int y, - struct ImBuf *ibuf1, struct ImBuf *ibuf2, - struct ImBuf *ibuf3, struct ImBuf *out) -{ - if (out->rect_float) { - do_cross_effect_float( - facf0, facf1, x, y, - ibuf1->rect_float, ibuf2->rect_float, - out->rect_float); - } else { - do_cross_effect_byte( - facf0, facf1, x, y, - (char*) ibuf1->rect, (char*) ibuf2->rect, - (char*) out->rect); - } -} - - -/* ********************************************************************** - GAMMA CROSS - ********************************************************************** */ - -/* copied code from initrender.c */ -static unsigned short *gamtab = 0; -static unsigned short *igamtab1 = 0; -static int gamma_tabs_refcount = 0; - -#define RE_GAMMA_TABLE_SIZE 400 - -static float gamma_range_table[RE_GAMMA_TABLE_SIZE + 1]; -static float gamfactor_table[RE_GAMMA_TABLE_SIZE]; -static float inv_gamma_range_table[RE_GAMMA_TABLE_SIZE + 1]; -static float inv_gamfactor_table[RE_GAMMA_TABLE_SIZE]; -static float colour_domain_table[RE_GAMMA_TABLE_SIZE + 1]; -static float colour_step; -static float inv_colour_step; -static float valid_gamma; -static float valid_inv_gamma; - -static void makeGammaTables(float gamma) -{ - /* we need two tables: one forward, one backward */ - int i; - - valid_gamma = gamma; - valid_inv_gamma = 1.0 / gamma; - colour_step = 1.0 / RE_GAMMA_TABLE_SIZE; - inv_colour_step = (float) RE_GAMMA_TABLE_SIZE; - - /* We could squeeze out the two range tables to gain some memory. */ - for (i = 0; i < RE_GAMMA_TABLE_SIZE; i++) { - colour_domain_table[i] = i * colour_step; - gamma_range_table[i] = pow(colour_domain_table[i], - valid_gamma); - inv_gamma_range_table[i] = pow(colour_domain_table[i], - valid_inv_gamma); - } - - /* The end of the table should match 1.0 carefully. In order to avoid */ - /* rounding errors, we just set this explicitly. The last segment may */ - /* have a different lenght than the other segments, but our */ - /* interpolation is insensitive to that. */ - colour_domain_table[RE_GAMMA_TABLE_SIZE] = 1.0; - gamma_range_table[RE_GAMMA_TABLE_SIZE] = 1.0; - inv_gamma_range_table[RE_GAMMA_TABLE_SIZE] = 1.0; - - /* To speed up calculations, we make these calc factor tables. They are */ - /* multiplication factors used in scaling the interpolation. */ - for (i = 0; i < RE_GAMMA_TABLE_SIZE; i++ ) { - gamfactor_table[i] = inv_colour_step - * (gamma_range_table[i + 1] - gamma_range_table[i]) ; - inv_gamfactor_table[i] = inv_colour_step - * (inv_gamma_range_table[i + 1] - inv_gamma_range_table[i]) ; - } - -} /* end of void makeGammaTables(float gamma) */ - - -static float gammaCorrect(float c) -{ - int i; - float res = 0.0; - - i = floor(c * inv_colour_step); - /* Clip to range [0,1]: outside, just do the complete calculation. */ - /* We may have some performance problems here. Stretching up the LUT */ - /* may help solve that, by exchanging LUT size for the interpolation. */ - /* Negative colours are explicitly handled. */ - if (i < 0) res = -pow(abs(c), valid_gamma); - else if (i >= RE_GAMMA_TABLE_SIZE ) res = pow(c, valid_gamma); - else res = gamma_range_table[i] + - ( (c - colour_domain_table[i]) * gamfactor_table[i]); - - return res; -} /* end of float gammaCorrect(float col) */ - -/* ------------------------------------------------------------------------- */ - -static float invGammaCorrect(float col) -{ - int i; - float res = 0.0; - - i = floor(col*inv_colour_step); - /* Negative colours are explicitly handled. */ - if (i < 0) res = -pow(abs(col), valid_inv_gamma); - else if (i >= RE_GAMMA_TABLE_SIZE) res = pow(col, valid_inv_gamma); - else res = inv_gamma_range_table[i] + - ( (col - colour_domain_table[i]) * inv_gamfactor_table[i]); - - return res; -} /* end of float invGammaCorrect(float col) */ - - -static void gamtabs(float gamma) -{ - float val, igamma= 1.0f/gamma; - int a; - - gamtab= MEM_mallocN(65536*sizeof(short), "initGaus2"); - igamtab1= MEM_mallocN(256*sizeof(short), "initGaus2"); - - /* gamtab: in short, out short */ - for(a=0; a<65536; a++) { - val= a; - val/= 65535.0; - - if(gamma==2.0) val= sqrt(val); - else if(gamma!=1.0) val= pow(val, igamma); - - gamtab[a]= (65535.99*val); - } - /* inverse gamtab1 : in byte, out short */ - for(a=1; a<=256; a++) { - if(gamma==2.0) igamtab1[a-1]= a*a-1; - else if(gamma==1.0) igamtab1[a-1]= 256*a-1; - else { - val= a/256.0; - igamtab1[a-1]= (65535.0*pow(val, gamma)) -1 ; - } - } - -} - -static void alloc_or_ref_gammatabs() -{ - if (gamma_tabs_refcount == 0) { - gamtabs(2.0f); - makeGammaTables(2.0f); - } - gamma_tabs_refcount++; -} - -static void init_gammacross(Sequence * seq) -{ - alloc_or_ref_gammatabs(); -} - -static void load_gammacross(Sequence * seq) -{ - alloc_or_ref_gammatabs(); -} - -static void free_gammacross(Sequence * seq) -{ - if (--gamma_tabs_refcount == 0) { - MEM_freeN(gamtab); - MEM_freeN(igamtab1); - gamtab = 0; - igamtab1 = 0; - } - if (gamma_tabs_refcount < 0) { - fprintf(stderr, "seqeffects: free_gammacross double free!\n"); - } -} - -static void do_gammacross_effect_byte(float facf0, float facf1, - int x, int y, - char *rect1, - char *rect2, - char *out) -{ - int fac1, fac2, col; - int xo; - char *rt1, *rt2, *rt; - - xo= x; - rt1= (char *)rect1; - rt2= (char *)rect2; - rt= (char *)out; - - fac2= (int)(256.0*facf0); - fac1= 256-fac2; - - while(y--) { - - x= xo; - while(x--) { - - col= (fac1*igamtab1[rt1[0]] + fac2*igamtab1[rt2[0]])>>8; - if(col>65535) rt[0]= 255; else rt[0]= ( (char *)(gamtab+col))[MOST_SIG_BYTE]; - col=(fac1*igamtab1[rt1[1]] + fac2*igamtab1[rt2[1]])>>8; - if(col>65535) rt[1]= 255; else rt[1]= ( (char *)(gamtab+col))[MOST_SIG_BYTE]; - col= (fac1*igamtab1[rt1[2]] + fac2*igamtab1[rt2[2]])>>8; - if(col>65535) rt[2]= 255; else rt[2]= ( (char *)(gamtab+col))[MOST_SIG_BYTE]; - col= (fac1*igamtab1[rt1[3]] + fac2*igamtab1[rt2[3]])>>8; - if(col>65535) rt[3]= 255; else rt[3]= ( (char *)(gamtab+col))[MOST_SIG_BYTE]; - - rt1+= 4; rt2+= 4; rt+= 4; - } - - if(y==0) break; - y--; - - x= xo; - while(x--) { - - col= (fac1*igamtab1[rt1[0]] + fac2*igamtab1[rt2[0]])>>8; - if(col>65535) rt[0]= 255; else rt[0]= ( (char *)(gamtab+col))[MOST_SIG_BYTE]; - col= (fac1*igamtab1[rt1[1]] + fac2*igamtab1[rt2[1]])>>8; - if(col>65535) rt[1]= 255; else rt[1]= ( (char *)(gamtab+col))[MOST_SIG_BYTE]; - col= (fac1*igamtab1[rt1[2]] + fac2*igamtab1[rt2[2]])>>8; - if(col>65535) rt[2]= 255; else rt[2]= ( (char *)(gamtab+col))[MOST_SIG_BYTE]; - col= (fac1*igamtab1[rt1[3]] + fac2*igamtab1[rt2[3]])>>8; - if(col>65535) rt[3]= 255; else rt[3]= ( (char *)(gamtab+col))[MOST_SIG_BYTE]; - - rt1+= 4; rt2+= 4; rt+= 4; - } - } - -} - -static void do_gammacross_effect_float(float facf0, float facf1, - int x, int y, - float *rect1, float *rect2, - float *out) -{ - float fac1, fac2, col; - int xo; - float *rt1, *rt2, *rt; - - xo= x; - rt1= rect1; - rt2= rect2; - rt= out; - - fac2= facf0; - fac1= 1.0 - fac2; - - while(y--) { - - x= xo * 4; - while(x--) { - - *rt= gammaCorrect( - fac1 * invGammaCorrect(*rt1) - + fac2 * invGammaCorrect(*rt2)); - rt1++; rt2++; rt++; - } - - if(y==0) break; - y--; - - x= xo * 4; - while(x--) { - - col= gammaCorrect( - fac1*invGammaCorrect(*rt1) - + fac2*invGammaCorrect(*rt2)); - - rt1++; rt2++; rt++; - } - } -} - -static void do_gammacross_effect(Sequence * seq,int cfra, - float facf0, float facf1, int x, int y, - struct ImBuf *ibuf1, struct ImBuf *ibuf2, - struct ImBuf *ibuf3, struct ImBuf *out) -{ - if (out->rect_float) { - do_gammacross_effect_float( - facf0, facf1, x, y, - ibuf1->rect_float, ibuf2->rect_float, - out->rect_float); - } else { - do_gammacross_effect_byte( - facf0, facf1, x, y, - (char*) ibuf1->rect, (char*) ibuf2->rect, - (char*) out->rect); - } -} - - -/* ********************************************************************** - ADD - ********************************************************************** */ - -static void do_add_effect_byte(float facf0, float facf1, int x, int y, - unsigned char *rect1, unsigned char *rect2, - unsigned char *out) -{ - int col, xo, fac1, fac3; - char *rt1, *rt2, *rt; - - xo= x; - rt1= (char *)rect1; - rt2= (char *)rect2; - rt= (char *)out; - - fac1= (int)(256.0*facf0); - fac3= (int)(256.0*facf1); - - while(y--) { - - x= xo; - while(x--) { - - col= rt1[0]+ ((fac1*rt2[0])>>8); - if(col>255) rt[0]= 255; else rt[0]= col; - col= rt1[1]+ ((fac1*rt2[1])>>8); - if(col>255) rt[1]= 255; else rt[1]= col; - col= rt1[2]+ ((fac1*rt2[2])>>8); - if(col>255) rt[2]= 255; else rt[2]= col; - col= rt1[3]+ ((fac1*rt2[3])>>8); - if(col>255) rt[3]= 255; else rt[3]= col; - - rt1+= 4; rt2+= 4; rt+= 4; - } - - if(y==0) break; - y--; - - x= xo; - while(x--) { - - col= rt1[0]+ ((fac3*rt2[0])>>8); - if(col>255) rt[0]= 255; else rt[0]= col; - col= rt1[1]+ ((fac3*rt2[1])>>8); - if(col>255) rt[1]= 255; else rt[1]= col; - col= rt1[2]+ ((fac3*rt2[2])>>8); - if(col>255) rt[2]= 255; else rt[2]= col; - col= rt1[3]+ ((fac3*rt2[3])>>8); - if(col>255) rt[3]= 255; else rt[3]= col; - - rt1+= 4; rt2+= 4; rt+= 4; - } - } -} - -static void do_add_effect_float(float facf0, float facf1, int x, int y, - float *rect1, float *rect2, - float *out) -{ - int xo; - float fac1, fac3; - float *rt1, *rt2, *rt; - - xo= x; - rt1= rect1; - rt2= rect2; - rt= out; - - fac1= facf0; - fac3= facf1; - - while(y--) { - - x= xo * 4; - while(x--) { - *rt = *rt1 + fac1 * (*rt2); - - rt1++; rt2++; rt++; - } - - if(y==0) break; - y--; - - x= xo * 4; - while(x--) { - *rt = *rt1 + fac3 * (*rt2); - - rt1++; rt2++; rt++; - } - } -} - -static void do_add_effect(Sequence * seq,int cfra, - float facf0, float facf1, int x, int y, - struct ImBuf *ibuf1, struct ImBuf *ibuf2, - struct ImBuf *ibuf3, struct ImBuf *out) -{ - if (out->rect_float) { - do_add_effect_float( - facf0, facf1, x, y, - ibuf1->rect_float, ibuf2->rect_float, - out->rect_float); - } else { - do_add_effect_byte( - facf0, facf1, x, y, - (char*) ibuf1->rect, (char*) ibuf2->rect, - (char*) out->rect); - } -} - - -/* ********************************************************************** - SUB - ********************************************************************** */ - -static void do_sub_effect_byte(float facf0, float facf1, - int x, int y, - char *rect1, char *rect2, char *out) -{ - int col, xo, fac1, fac3; - char *rt1, *rt2, *rt; - - xo= x; - rt1= (char *)rect1; - rt2= (char *)rect2; - rt= (char *)out; - - fac1= (int)(256.0*facf0); - fac3= (int)(256.0*facf1); - - while(y--) { - - x= xo; - while(x--) { - - col= rt1[0]- ((fac1*rt2[0])>>8); - if(col<0) rt[0]= 0; else rt[0]= col; - col= rt1[1]- ((fac1*rt2[1])>>8); - if(col<0) rt[1]= 0; else rt[1]= col; - col= rt1[2]- ((fac1*rt2[2])>>8); - if(col<0) rt[2]= 0; else rt[2]= col; - col= rt1[3]- ((fac1*rt2[3])>>8); - if(col<0) rt[3]= 0; else rt[3]= col; - - rt1+= 4; rt2+= 4; rt+= 4; - } - - if(y==0) break; - y--; - - x= xo; - while(x--) { - - col= rt1[0]- ((fac3*rt2[0])>>8); - if(col<0) rt[0]= 0; else rt[0]= col; - col= rt1[1]- ((fac3*rt2[1])>>8); - if(col<0) rt[1]= 0; else rt[1]= col; - col= rt1[2]- ((fac3*rt2[2])>>8); - if(col<0) rt[2]= 0; else rt[2]= col; - col= rt1[3]- ((fac3*rt2[3])>>8); - if(col<0) rt[3]= 0; else rt[3]= col; - - rt1+= 4; rt2+= 4; rt+= 4; - } - } -} - -static void do_sub_effect_float(float facf0, float facf1, int x, int y, - float *rect1, float *rect2, - float *out) -{ - int xo; - float fac1, fac3; - float *rt1, *rt2, *rt; - - xo= x; - rt1= rect1; - rt2= rect2; - rt= out; - - fac1= facf0; - fac3= facf1; - - while(y--) { - - x= xo * 4; - while(x--) { - *rt = *rt1 - fac1 * (*rt2); - - rt1++; rt2++; rt++; - } - - if(y==0) break; - y--; - - x= xo * 4; - while(x--) { - *rt = *rt1 - fac3 * (*rt2); - - rt1++; rt2++; rt++; - } - } -} - -static void do_sub_effect(Sequence * seq,int cfra, - float facf0, float facf1, int x, int y, - struct ImBuf *ibuf1, struct ImBuf *ibuf2, - struct ImBuf *ibuf3, struct ImBuf *out) -{ - if (out->rect_float) { - do_sub_effect_float( - facf0, facf1, x, y, - ibuf1->rect_float, ibuf2->rect_float, - out->rect_float); - } else { - do_sub_effect_byte( - facf0, facf1, x, y, - (char*) ibuf1->rect, (char*) ibuf2->rect, - (char*) out->rect); - } -} - -/* ********************************************************************** - DROP - ********************************************************************** */ - -/* Must be > 0 or add precopy, etc to the function */ -#define XOFF 8 -#define YOFF 8 - -static void do_drop_effect_byte(float facf0, float facf1, int x, int y, - unsigned char *rect2i, unsigned char *rect1i, - unsigned char *outi) -{ - int height, width, temp, fac, fac1, fac2; - char *rt1, *rt2, *out; - int field= 1; - - width= x; - height= y; - - fac1= (int)(70.0*facf0); - fac2= (int)(70.0*facf1); - - rt2= (char*) (rect2i + YOFF*width); - rt1= (char*) rect1i; - out= (char*) outi; - for (y=0; y>8); - - *(out++)= MAX2(0, *rt1 - temp); rt1++; - *(out++)= MAX2(0, *rt1 - temp); rt1++; - *(out++)= MAX2(0, *rt1 - temp); rt1++; - *(out++)= MAX2(0, *rt1 - temp); rt1++; - rt2+=4; - } - rt2+=XOFF*4; - } - memcpy(out, rt1, sizeof(int)*YOFF*width); -} - -static void do_drop_effect_float(float facf0, float facf1, int x, int y, - float *rect2i, float *rect1i, - float *outi) -{ - int height, width; - float temp, fac, fac1, fac2; - float *rt1, *rt2, *out; - int field= 1; - - width= x; - height= y; - - fac1= 70.0*facf0; - fac2= 70.0*facf1; - - rt2= (rect2i + YOFF*width); - rt1= rect1i; - out= outi; - for (y=0; yrect_float) { - do_drop_effect_float( - facf0, facf1, x, y, - ibuf1->rect_float, ibuf2->rect_float, - out->rect_float); - } else { - do_drop_effect_byte( - facf0, facf1, x, y, - (char*) ibuf1->rect, (char*) ibuf2->rect, - (char*) out->rect); - } -} - -/* ********************************************************************** - MUL - ********************************************************************** */ - -static void do_mul_effect_byte(float facf0, float facf1, int x, int y, - unsigned char *rect1, unsigned char *rect2, - unsigned char *out) -{ - int xo, fac1, fac3; - char *rt1, *rt2, *rt; - - xo= x; - rt1= (char *)rect1; - rt2= (char *)rect2; - rt= (char *)out; - - fac1= (int)(256.0*facf0); - fac3= (int)(256.0*facf1); - - /* formula: - * fac*(a*b) + (1-fac)*a => fac*a*(b-1)+axaux= c*px + py*s ;//+centx - yaux= -s*px + c*py;//+centy - */ - - while(y--) { - - x= xo; - while(x--) { - - rt[0]= rt1[0] + ((fac1*rt1[0]*(rt2[0]-256))>>16); - rt[1]= rt1[1] + ((fac1*rt1[1]*(rt2[1]-256))>>16); - rt[2]= rt1[2] + ((fac1*rt1[2]*(rt2[2]-256))>>16); - rt[3]= rt1[3] + ((fac1*rt1[3]*(rt2[3]-256))>>16); - - rt1+= 4; rt2+= 4; rt+= 4; - } - - if(y==0) break; - y--; - - x= xo; - while(x--) { - - rt[0]= rt1[0] + ((fac3*rt1[0]*(rt2[0]-256))>>16); - rt[1]= rt1[1] + ((fac3*rt1[1]*(rt2[1]-256))>>16); - rt[2]= rt1[2] + ((fac3*rt1[2]*(rt2[2]-256))>>16); - rt[3]= rt1[3] + ((fac3*rt1[3]*(rt2[3]-256))>>16); - - rt1+= 4; rt2+= 4; rt+= 4; - } - } -} - -static void do_mul_effect_float(float facf0, float facf1, int x, int y, - float *rect1, float *rect2, - float *out) -{ - int xo; - float fac1, fac3; - float *rt1, *rt2, *rt; - - xo= x; - rt1= rect1; - rt2= rect2; - rt= out; - - fac1= facf0; - fac3= facf1; - - /* formula: - * fac*(a*b) + (1-fac)*a => fac*a*(b-1)+a - */ - - while(y--) { - - x= xo; - while(x--) { - - rt[0]= rt1[0] + fac1*rt1[0]*(rt2[0]-1.0); - rt[1]= rt1[1] + fac1*rt1[1]*(rt2[1]-1.0); - rt[2]= rt1[2] + fac1*rt1[2]*(rt2[2]-1.0); - rt[3]= rt1[3] + fac1*rt1[3]*(rt2[3]-1.0); - - rt1+= 4; rt2+= 4; rt+= 4; - } - - if(y==0) break; - y--; - - x= xo; - while(x--) { - - rt[0]= rt1[0] + fac3*rt1[0]*(rt2[0]-1.0); - rt[1]= rt1[1] + fac3*rt1[1]*(rt2[1]-1.0); - rt[2]= rt1[2] + fac3*rt1[2]*(rt2[2]-1.0); - rt[3]= rt1[3] + fac3*rt1[3]*(rt2[3]-1.0); - - rt1+= 4; rt2+= 4; rt+= 4; - } - } -} - -static void do_mul_effect(Sequence * seq,int cfra, - float facf0, float facf1, int x, int y, - struct ImBuf *ibuf1, struct ImBuf *ibuf2, - struct ImBuf *ibuf3, struct ImBuf *out) -{ - if (out->rect_float) { - do_mul_effect_float( - facf0, facf1, x, y, - ibuf1->rect_float, ibuf2->rect_float, - out->rect_float); - } else { - do_mul_effect_byte( - facf0, facf1, x, y, - (char*) ibuf1->rect, (char*) ibuf2->rect, - (char*) out->rect); - } -} - -/* ********************************************************************** - PUSH - ********************************************************************** */ - -static void init_push_effect(Sequence *seq) -{ - if(seq->effectdata)MEM_freeN(seq->effectdata); - seq->effectdata = MEM_callocN(sizeof(struct PushVars), "pushvars"); -} - -static int num_inputs_push() -{ - return 1; -} - -static void free_push_effect(Sequence *seq) -{ - if(seq->effectdata)MEM_freeN(seq->effectdata); - seq->effectdata = 0; -} - -static void copy_push_effect(Sequence *dst, Sequence *src) -{ - dst->effectdata = MEM_dupallocN(src->effectdata); -} - - -static void do_push_effect_byte(Sequence *seq, float facf0, float facf1, - int x, int y, - unsigned char *rect1, - unsigned char *rect2, unsigned char *out) -{ - int xo, yo, position, position2, offset, offset2, line, nb, size; - char *rt1, *rt2, *rt3, *rt4, *rt; - rt = (char *)out; - xo = x; - yo = y; - - PushVars *push = (PushVars *)seq->effectdata; - nb = push->pushnb; - switch (push->pushtype) { - - case DO_LEFT_PUSH: - position = (int)(facf0 * xo); - offset = (xo - position) * 4; - for (y=0; yeffectdata; - nb = push->pushnb; - switch (push->pushtype) { - - case DO_LEFT_PUSH: - position = facf0 * xo; - offset = (xo - position) * 4; - for (y=0; yrect_float) { - do_push_effect_float(seq, - facf0, facf1, x, y, - ibuf1->rect_float, ibuf2->rect_float, - out->rect_float); - } else { - do_push_effect_byte(seq, - facf0, facf1, x, y, - (char*) ibuf1->rect, (char*) ibuf2->rect, - (char*) out->rect); - } -} - -/* ********************************************************************** - WIPE - ********************************************************************** */ - -// This function calculates the blur band for the wipe effects -static float in_band(float width,float dist, float perc,int side,int dir){ - - float t1,t2,alpha,percwidth; - if(width == 0) - return (float)side; - if(side == 1) - percwidth = width * perc; - else - percwidth = width * (1 - perc); - - if(width < dist) - return side; - - t1 = dist / width; //percentange of width that is - t2 = 1 / width; //amount of alpha per % point - - if(side == 1) - alpha = (t1*t2*100) + (1-perc); // add point's alpha contrib to current position in wipe - else - alpha = (1-perc) - (t1*t2*100); - - if(dir == 0) - alpha = 1-alpha; - return alpha; -} - -static float check_zone(int x, int y, int xo, int yo, - Sequence *seq, float facf0) -{ - float posx, posy,hyp,hyp2,angle,hwidth,b1,b2,b3,pointdist; - /*some future stuff - float hyp3,hyp4,b4,b5 - */ - float temp1,temp2,temp3,temp4; //some placeholder variables - float halfx = xo/2; - float halfy = yo/2; - float widthf,output=0; - WipeVars *wipe = (WipeVars *)seq->effectdata; - int width; - - angle = wipe->angle; - if(angle < 0){ - x = xo-x; - //y = yo-y - } - angle = pow(fabs(angle)/45,log(xo)/log(2)); - - posy = facf0 * yo; - if(wipe->forward){ - posx = facf0 * xo; - posy = facf0 * yo; - } else{ - posx = xo - facf0 * xo; - posy = yo - facf0 * yo; - } - switch (wipe->wipetype) { - case DO_SINGLE_WIPE: - width = (int)(wipe->edgeWidth*((xo+yo)/2.0)); - hwidth = (float)width/2.0; - - if (angle == 0.0)angle = 0.000001; - b1 = posy - (-angle)*posx; - b2 = y - (-angle)*x; - hyp = fabs(angle*x+y+(-posy-angle*posx))/sqrt(angle*angle+1); - if(angle < 0){ - temp1 = b1; - b1 = b2; - b2 = temp1; - } - if(wipe->forward){ - if(b1 < b2) - output = in_band(width,hyp,facf0,1,1); - else - output = in_band(width,hyp,facf0,0,1); - } - else{ - if(b1 < b2) - output = in_band(width,hyp,facf0,0,1); - else - output = in_band(width,hyp,facf0,1,1); - } - break; - - - case DO_DOUBLE_WIPE: - if(!wipe->forward)facf0 = 1-facf0; // Go the other direction - - width = (int)(wipe->edgeWidth*((xo+yo)/2.0)); // calculate the blur width - hwidth = (float)width/2.0; - if (angle == 0)angle = 0.000001; - b1 = posy/2 - (-angle)*posx/2; - b3 = (yo-posy/2) - (-angle)*(xo-posx/2); - b2 = y - (-angle)*x; - - hyp = abs(angle*x+y+(-posy/2-angle*posx/2))/sqrt(angle*angle+1); - hyp2 = abs(angle*x+y+(-(yo-posy/2)-angle*(xo-posx/2)))/sqrt(angle*angle+1); - - temp1 = xo*(1-facf0/2)-xo*facf0/2; - temp2 = yo*(1-facf0/2)-yo*facf0/2; - pointdist = sqrt(temp1*temp1 + temp2*temp2); - - if(b2 < b1 && b2 < b3 ){ - if(hwidth < pointdist) - output = in_band(hwidth,hyp,facf0,0,1); - } - else if(b2 > b1 && b2 > b3 ){ - if(hwidth < pointdist) - output = in_band(hwidth,hyp2,facf0,0,1); - } - else{ - if( hyp < hwidth && hyp2 > hwidth ) - output = in_band(hwidth,hyp,facf0,1,1); - else if( hyp > hwidth && hyp2 < hwidth ) - output = in_band(hwidth,hyp2,facf0,1,1); - else - output = in_band(hwidth,hyp2,facf0,1,1) * in_band(hwidth,hyp,facf0,1,1); - } - if(!wipe->forward)output = 1-output; - break; - case DO_CLOCK_WIPE: - /* - temp1: angle of effect center in rads - temp2: angle of line through (halfx,halfy) and (x,y) in rads - temp3: angle of low side of blur - temp4: angle of high side of blur - */ - output = 1-facf0; - widthf = wipe->edgeWidth*2*3.14159; - temp1 = 2 * 3.14159 * facf0; - - if(wipe->forward){ - temp1 = 2*3.14159-temp1; - } - - x = x - halfx; - y = y - halfy; - - temp2 = asin(abs(y)/sqrt(x*x + y*y)); - if(x <= 0 && y >= 0) - temp2 = 3.14159 - temp2; - else if(x<=0 && y <= 0) - temp2 += 3.14159; - else if(x >= 0 && y <= 0) - temp2 = 2*3.14159 - temp2; - - if(wipe->forward){ - temp3 = temp1-(widthf/2)*facf0; - temp4 = temp1+(widthf/2)*(1-facf0); - } - else{ - temp3 = temp1-(widthf/2)*(1-facf0); - temp4 = temp1+(widthf/2)*facf0; - } - if (temp3 < 0) temp3 = 0; - if (temp4 > 2*3.14159) temp4 = 2*3.14159; - - - if(temp2 < temp3) - output = 0; - else if (temp2 > temp4) - output = 1; - else - output = (temp2-temp3)/(temp4-temp3); - if(x == 0 && y == 0){ - output = 1; - } - if(output != output) - output = 1; - if(wipe->forward) - output = 1 - output; - break; - /* BOX WIPE IS NOT WORKING YET */ - /* case DO_CROSS_WIPE: */ - /* BOX WIPE IS NOT WORKING YET */ - /* case DO_BOX_WIPE: - if(invert)facf0 = 1-facf0; - - width = (int)(wipe->edgeWidth*((xo+yo)/2.0)); - hwidth = (float)width/2.0; - if (angle == 0)angle = 0.000001; - b1 = posy/2 - (-angle)*posx/2; - b3 = (yo-posy/2) - (-angle)*(xo-posx/2); - b2 = y - (-angle)*x; - - hyp = abs(angle*x+y+(-posy/2-angle*posx/2))/sqrt(angle*angle+1); - hyp2 = abs(angle*x+y+(-(yo-posy/2)-angle*(xo-posx/2)))/sqrt(angle*angle+1); - - temp1 = xo*(1-facf0/2)-xo*facf0/2; - temp2 = yo*(1-facf0/2)-yo*facf0/2; - pointdist = sqrt(temp1*temp1 + temp2*temp2); - - if(b2 < b1 && b2 < b3 ){ - if(hwidth < pointdist) - output = in_band(hwidth,hyp,facf0,0,1); - } - else if(b2 > b1 && b2 > b3 ){ - if(hwidth < pointdist) - output = in_band(hwidth,hyp2,facf0,0,1); - } - else{ - if( hyp < hwidth && hyp2 > hwidth ) - output = in_band(hwidth,hyp,facf0,1,1); - else if( hyp > hwidth && hyp2 < hwidth ) - output = in_band(hwidth,hyp2,facf0,1,1); - else - output = in_band(hwidth,hyp2,facf0,1,1) * in_band(hwidth,hyp,facf0,1,1); - } - if(invert)facf0 = 1-facf0; - angle = -1/angle; - b1 = posy/2 - (-angle)*posx/2; - b3 = (yo-posy/2) - (-angle)*(xo-posx/2); - b2 = y - (-angle)*x; - - hyp = abs(angle*x+y+(-posy/2-angle*posx/2))/sqrt(angle*angle+1); - hyp2 = abs(angle*x+y+(-(yo-posy/2)-angle*(xo-posx/2)))/sqrt(angle*angle+1); - - if(b2 < b1 && b2 < b3 ){ - if(hwidth < pointdist) - output *= in_band(hwidth,hyp,facf0,0,1); - } - else if(b2 > b1 && b2 > b3 ){ - if(hwidth < pointdist) - output *= in_band(hwidth,hyp2,facf0,0,1); - } - else{ - if( hyp < hwidth && hyp2 > hwidth ) - output *= in_band(hwidth,hyp,facf0,1,1); - else if( hyp > hwidth && hyp2 < hwidth ) - output *= in_band(hwidth,hyp2,facf0,1,1); - else - output *= in_band(hwidth,hyp2,facf0,1,1) * in_band(hwidth,hyp,facf0,1,1); - } - - break;*/ - case DO_IRIS_WIPE: - if(xo > yo) yo = xo; - else xo = yo; - - if(!wipe->forward) - facf0 = 1-facf0; - - width = (int)(wipe->edgeWidth*((xo+yo)/2.0)); - hwidth = (float)width/2.0; - - temp1 = (halfx-(halfx)*facf0); - pointdist = sqrt(temp1*temp1 + temp1*temp1); - - temp2 = sqrt((halfx-x)*(halfx-x) + (halfy-y)*(halfy-y)); - if(temp2 > pointdist) - output = in_band(hwidth,fabs(temp2-pointdist),facf0,0,1); - else - output = in_band(hwidth,fabs(temp2-pointdist),facf0,1,1); - - if(!wipe->forward) - output = 1-output; - - break; - } - if (output < 0) output = 0; - else if(output > 1) output = 1; - return output; -} - -static void init_wipe_effect(Sequence *seq) -{ - if(seq->effectdata)MEM_freeN(seq->effectdata); - seq->effectdata = MEM_callocN(sizeof(struct WipeVars), "wipevars"); -} - -static int num_inputs_wipe() -{ - return 1; -} - -static void free_wipe_effect(Sequence *seq) -{ - if(seq->effectdata)MEM_freeN(seq->effectdata); - seq->effectdata = 0; -} - -static void copy_wipe_effect(Sequence *dst, Sequence *src) -{ - dst->effectdata = MEM_dupallocN(src->effectdata); -} - -static void do_wipe_effect_byte(Sequence *seq, float facf0, float facf1, - int x, int y, - unsigned char *rect1, - unsigned char *rect2, unsigned char *out) -{ - int xo, yo; - char *rt1, *rt2, *rt; - rt1 = (char *)rect1; - rt2 = (char *)rect2; - rt = (char *)out; - - xo = x; - yo = y; - for(y=0;yrect_float) { - do_wipe_effect_float(seq, - facf0, facf1, x, y, - ibuf1->rect_float, ibuf2->rect_float, - out->rect_float); - } else { - do_wipe_effect_byte(seq, - facf0, facf1, x, y, - (char*) ibuf1->rect, (char*) ibuf2->rect, - (char*) out->rect); - } -} -/* ********************************************************************** - TRANSFORM - ********************************************************************** */ -static void init_transform_effect(Sequence *seq) -{ - TransformVars *scale; - - if(seq->effectdata)MEM_freeN(seq->effectdata); - seq->effectdata = MEM_callocN(sizeof(struct TransformVars), "transformvars"); - - scale = (TransformVars *)seq->effectdata; - scale->ScalexIni = 1; - scale->ScaleyIni = 1; - scale->ScalexFin = 1; - scale->ScaleyFin = 1; - - scale->xIni=0; - scale->xFin=0; - scale->yIni=0; - scale->yFin=0; - - scale->rotIni=0; - scale->rotFin=0; - -} - -static int num_inputs_transform() -{ - return 1; -} - -static void free_transform_effect(Sequence *seq) -{ - if(seq->effectdata)MEM_freeN(seq->effectdata); - seq->effectdata = 0; -} - -static void copy_transform_effect(Sequence *dst, Sequence *src) -{ - dst->effectdata = MEM_dupallocN(src->effectdata); -} - -/* function assumes out to be zero'ed, only does RGBA */ -static void bilinear_interpolation_transform_float(ImBuf *in, float *out, float u, float v) -{ - float *row1, *row2, *row3, *row4, a, b; - float a_b, ma_b, a_mb, ma_mb; - float empty[4]= {0.0f, 0.0f, 0.0f, 0.0f}; - int y1, y2, x1, x2; - - x1= (int)floor(u); - x2= (int)ceil(u); - y1= (int)floor(v); - y2= (int)ceil(v); - - /* sample area entirely outside image? */ - if(x2<0 || x1>in->x-1 || y2<0 || y1>in->y-1) - return; - - /* sample including outside of edges of image */ - if(x1<0 || y1<0) row1= empty; - else row1= in->rect_float + in->x * y1 * 4 + 4*x1; - - if(x1<0 || y2>in->y-1) row2= empty; - else row2= in->rect_float + in->x * y2 * 4 + 4*x1; - - if(x2>in->x-1 || y1<0) row3= empty; - else row3= in->rect_float + in->x * y1 * 4 + 4*x2; - - if(x2>in->x-1 || y2>in->y-1) row4= empty; - else row4= in->rect_float + in->x * y2 * 4 + 4*x2; - - a= u-floor(u); - b= v-floor(v); - a_b= a*b; ma_b= (1.0f-a)*b; a_mb= a*(1.0f-b); ma_mb= (1.0f-a)*(1.0f-b); - - out[0]= ma_mb*row1[0] + a_mb*row3[0] + ma_b*row2[0]+ a_b*row4[0]; - out[1]= ma_mb*row1[1] + a_mb*row3[1] + ma_b*row2[1]+ a_b*row4[1]; - out[2]= ma_mb*row1[2] + a_mb*row3[2] + ma_b*row2[2]+ a_b*row4[2]; - out[3]= ma_mb*row1[3] + a_mb*row3[3] + ma_b*row2[3]+ a_b*row4[3]; -} - - -static void do_transform_effect_float(Sequence * seq,float facf0, int x, int y, - struct ImBuf *ibuf1,float *out) -{ - int xo, yo, xi, yi; - float xs,ys,factxScale,factyScale,tx,ty,rad,s,c,xaux,yaux,factRot,px,py; - TransformVars *scale; - - scale = (TransformVars *)seq->effectdata; - xo = x; - yo = y; - - /*factor scale*/ - factxScale = scale->ScalexIni + (scale->ScalexFin - scale->ScalexIni) * facf0; - factyScale = scale->ScaleyIni + (scale->ScaleyFin - scale->ScaleyIni) * facf0; - - /*Factor translate*/ - tx = scale->xIni+(xo / 2.0f) + (scale->xFin-(xo / 2.0f) - scale->xIni+(xo / 2.0f)) * facf0; - ty = scale->yIni+(yo / 2.0f) + (scale->yFin-(yo / 2.0f) - scale->yIni+(yo / 2.0f)) * facf0; - - /*factor Rotate*/ - factRot = scale->rotIni + (scale->rotFin - scale->rotIni) * facf0; - rad = (M_PI * factRot) / 180.0f; - s= sin(rad); - c= cos(rad); - - for (yi = 0; yi < yo; yi++) { - for (xi = 0; xi < xo; xi++) { - /*tranlate point*/ - px = xi-tx; - py = yi-ty; - - /*rotate point with center ref*/ - xaux = c*px + py*s ; - yaux = -s*px + c*py; - - /*scale point with center ref*/ - xs = xaux / factxScale; - ys = yaux / factyScale; - - /*undo reference center point */ - xs += (xo / 2.0f); - ys += (yo / 2.0f); - - /*interpolate*/ - bilinear_interpolation_transform_float(ibuf1,out, xs,ys); - - out+=4; - } - } - -} - -/* function assumes out to be zero'ed, only does RGBA */ -static void bilinear_interpolation_transform_byte(unsigned char *in, unsigned char *out, float u, float v,int x,int y) -{ - float a, b; - float a_b, ma_b, a_mb, ma_mb; - int y1, y2, x1, x2; - - int row1R,row1G,row1B,row1A; - int row2R,row2G,row2B,row2A; - int row3R,row3G,row3B,row3A; - int row4R,row4G,row4B,row4A; - - x1= (int)floor(u); - x2= (int)ceil(u); - y1= (int)floor(v); - y2= (int)ceil(v); - - /* sample area entirely outside image? */ - if(x2<0 || x1>x-1 || y2<0 || y1>y-1) - return; - - /* sample including outside of edges of image */ - if(x1<0 || y1<0){ - row1R = 0; - row1G = 0; - row1B = 0; - row1A = 0; - } - else{ - row1R= in[x * y1 * 4 + 4 * x1]; - row1G= in[x * y1 * 4 + 4 * x1 + 1]; - row1B= in[x * y1 * 4 + 4 * x1 + 2]; - row1A= in[x * y1 * 4 + 4 * x1 + 3]; - } - - if(x1<0 || y2>y-1){ - row2R = 0; - row2G = 0; - row2B = 0; - row2A = 0; - } - else{ - row2R= in[x * y2 * 4 + 4 * x1]; - row2G= in[x * y2 * 4 + 4 * x1 + 1]; - row2B= in[x * y2 * 4 + 4 * x1 + 2]; - row2A= in[x * y2 * 4 + 4 * x1 + 3]; - } - - if(x2>x-1 || y1<0){ - row3R = 0; - row3G = 0; - row3B = 0; - row3A = 0; - } - else{ - row3R= in[x * y1 * 4 + 4 * x2]; - row3G= in[x * y1 * 4 + 4 * x2 + 1]; - row3B= in[x * y1 * 4 + 4 * x2 + 2]; - row3A= in[x * y1 * 4 + 4 * x2 + 3]; - } - - if(x2>x-1 || y2>y-1){ - row4R = 0; - row4G = 0; - row4B = 0; - row4A = 0; - } - else{ - row4R= in[x * y2 * 4 + 4 * x2]; - row4G= in[x * y2 * 4 + 4 * x2 + 1]; - row4B= in[x * y2 * 4 + 4 * x2 + 2]; - row4A= in[x * y2 * 4 + 4 * x2 + 3]; - } - - a= u-floor(u); - b= v-floor(v); - a_b= a*b; ma_b= (1-a)*b; a_mb= a*(1-b); ma_mb= (1-a)*(1-b); - - out[0]= (int)(ma_mb*row1R + a_mb*row3R + ma_b*row2R + a_b*row4R); - out[1]= (int)(ma_mb*row1G + a_mb*row3G + ma_b*row2G + a_b*row4G); - out[2]= (int)(ma_mb*row1B + a_mb*row3B + ma_b*row2B + a_b*row4B); - out[3]= (int)(ma_mb*row1A + a_mb*row3A + ma_b*row2A + a_b*row4A); -} - -static void do_transform_effect_byte(Sequence * seq,float facf0, int x, int y, - unsigned char *ibuf1,unsigned char *out) -{ - int xo, yo, xi, yi; - float xs,ys,factxScale,factyScale,tx,ty,rad,s,c,xaux,yaux,factRot,px,py; - TransformVars *scale; - - scale = (TransformVars *)seq->effectdata; - xo = x; - yo = y; - - /*factor scale*/ - factxScale = scale->ScalexIni + (scale->ScalexFin - scale->ScalexIni) * facf0; - factyScale = scale->ScaleyIni + (scale->ScaleyFin - scale->ScaleyIni) * facf0; - - /*Factor translate*/ - tx = scale->xIni+(xo / 2.0f) + (scale->xFin-(xo / 2.0f) - scale->xIni+(xo / 2.0f)) * facf0; - ty = scale->yIni+(yo / 2.0f) + (scale->yFin-(yo / 2.0f) - scale->yIni+(yo / 2.0f)) * facf0; - - /*factor Rotate*/ - factRot = scale->rotIni + (scale->rotFin - scale->rotIni) * facf0; - rad = (M_PI * factRot) / 180.0f; - s= sin(rad); - c= cos(rad); - - for (yi = 0; yi < yo; yi++) { - for (xi = 0; xi < xo; xi++) { - /*tranlate point*/ - px = xi-tx; - py = yi-ty; - - /*rotate point with center ref*/ - xaux = c*px + py*s ; - yaux = -s*px + c*py; - - /*scale point with center ref*/ - xs = xaux / factxScale; - ys = yaux / factyScale; - - /*undo reference center point */ - xs += (xo / 2.0f); - ys += (yo / 2.0f); - - /*interpolate*/ - bilinear_interpolation_transform_byte(ibuf1,out, xs,ys,x,y); - - out+=4; - } - } - -} -static void do_transform_effect(Sequence * seq,int cfra, - float facf0, float facf1, int x, int y, - struct ImBuf *ibuf1, struct ImBuf *ibuf2, - struct ImBuf *ibuf3, struct ImBuf *out) -{ - if (out->rect_float) { - do_transform_effect_float(seq, - facf0,x, y, - ibuf1, - out->rect_float); - } else { - do_transform_effect_byte(seq, - facf0,x, y, - (unsigned char*) ibuf1->rect, - (unsigned char*) out->rect); - } -} - - -/* ********************************************************************** - GLOW - ********************************************************************** */ - -static void RVBlurBitmap2_byte ( unsigned char* map, int width,int height, - float blur, - int quality) -/* MUUUCCH better than the previous blur. */ -/* We do the blurring in two passes which is a whole lot faster. */ -/* I changed the math arount to implement an actual Gaussian */ -/* distribution. */ -/* */ -/* Watch out though, it tends to misbehaven with large blur values on */ -/* a small bitmap. Avoid avoid avoid. */ -/*=============================== */ -{ - unsigned char* temp=NULL,*swap; - float *filter=NULL; - int x,y,i,fx,fy; - int index, ix, halfWidth; - float fval, k, curColor[3], curColor2[3], weight=0; - - /* If we're not really blurring, bail out */ - if (blur<=0) - return; - - /* Allocate memory for the tempmap and the blur filter matrix */ - temp= MEM_mallocN( (width*height*4), "blurbitmaptemp"); - if (!temp) - return; - - /* Allocate memory for the filter elements */ - halfWidth = ((quality+1)*blur); - filter = (float *)MEM_mallocN(sizeof(float)*halfWidth*2, "blurbitmapfilter"); - if (!filter){ - MEM_freeN (temp); - return; - } - - /* Apparently we're calculating a bell curve */ - /* based on the standard deviation (or radius) */ - /* This code is based on an example */ - /* posted to comp.graphics.algorithms by */ - /* Blancmange (bmange@airdmhor.gen.nz) */ - - k = -1.0/(2.0*3.14159*blur*blur); - fval=0; - for (ix = 0;ix< halfWidth;ix++){ - weight = (float)exp(k*(ix*ix)); - filter[halfWidth - ix] = weight; - filter[halfWidth + ix] = weight; - } - filter[0] = weight; - - /* Normalize the array */ - fval=0; - for (ix = 0;ix< halfWidth*2;ix++) - fval+=filter[ix]; - - for (ix = 0;ix< halfWidth*2;ix++) - filter[ix]/=fval; - - /* Blur the rows */ - for (y=0;y=0)&&(i=0)&&(i=0)&&(i=0)&&(i0){ - out[index+GlowR]=MIN2(255*clamp, (in[index+GlowR]*boost*intensity)/255); - out[index+GlowG]=MIN2(255*clamp, (in[index+GlowG]*boost*intensity)/255); - out[index+GlowB]=MIN2(255*clamp, (in[index+GlowB]*boost*intensity)/255); - out[index+GlowA]=MIN2(255*clamp, (in[index+GlowA]*boost*intensity)/255); - } - else{ - out[index+GlowR]=0; - out[index+GlowG]=0; - out[index+GlowB]=0; - out[index+GlowA]=0; - } - } - } -} - -static void RVIsolateHighlights_float (float* in, float* out, - int width, int height, float threshold, - float boost, float clamp) -{ - int x,y,index; - float intensity; - - - for(y=0;y< height;y++) { - for (x=0;x< width;x++) { - index= (x+y*width)*4; - - /* Isolate the intensity */ - intensity=(in[index+GlowR]+in[index+GlowG]+in[index+GlowB]-threshold); - if (intensity>0){ - out[index+GlowR]=MIN2(clamp, (in[index+GlowR]*boost*intensity)); - out[index+GlowG]=MIN2(clamp, (in[index+GlowG]*boost*intensity)); - out[index+GlowB]=MIN2(clamp, (in[index+GlowB]*boost*intensity)); - out[index+GlowA]=MIN2(clamp, (in[index+GlowA]*boost*intensity)); - } - else{ - out[index+GlowR]=0; - out[index+GlowG]=0; - out[index+GlowB]=0; - out[index+GlowA]=0; - } - } - } -} - -static void init_glow_effect(Sequence *seq) -{ - GlowVars *glow; - - if(seq->effectdata)MEM_freeN(seq->effectdata); - seq->effectdata = MEM_callocN(sizeof(struct GlowVars), "glowvars"); - - glow = (GlowVars *)seq->effectdata; - glow->fMini = 0.25; - glow->fClamp = 1.0; - glow->fBoost = 0.5; - glow->dDist = 3.0; - glow->dQuality = 3; - glow->bNoComp = 0; -} - -static int num_inputs_glow() -{ - return 1; -} - -static void free_glow_effect(Sequence *seq) -{ - if(seq->effectdata)MEM_freeN(seq->effectdata); - seq->effectdata = 0; -} - -static void copy_glow_effect(Sequence *dst, Sequence *src) -{ - dst->effectdata = MEM_dupallocN(src->effectdata); -} - -//void do_glow_effect(Cast *cast, float facf0, float facf1, int xo, int yo, ImBuf *ibuf1, ImBuf *ibuf2, ImBuf *outbuf, ImBuf *use) -static void do_glow_effect_byte(Sequence *seq, float facf0, float facf1, - int x, int y, char *rect1, - char *rect2, char *out) -{ - unsigned char *outbuf=(unsigned char *)out; - unsigned char *inbuf=(unsigned char *)rect1; - GlowVars *glow = (GlowVars *)seq->effectdata; - - RVIsolateHighlights_byte(inbuf, outbuf , x, y, glow->fMini*765, glow->fBoost, glow->fClamp); - RVBlurBitmap2_byte (outbuf, x, y, glow->dDist,glow->dQuality); - if (!glow->bNoComp) - RVAddBitmaps_byte (inbuf , outbuf, outbuf, x, y); -} - -static void do_glow_effect_float(Sequence *seq, float facf0, float facf1, - int x, int y, - float *rect1, float *rect2, float *out) -{ - float *outbuf = out; - float *inbuf = rect1; - GlowVars *glow = (GlowVars *)seq->effectdata; - - RVIsolateHighlights_float(inbuf, outbuf , x, y, glow->fMini*3.0f, glow->fBoost, glow->fClamp); - RVBlurBitmap2_float (outbuf, x, y, glow->dDist,glow->dQuality); - if (!glow->bNoComp) - RVAddBitmaps_float (inbuf , outbuf, outbuf, x, y); -} - -static void do_glow_effect(Sequence * seq,int cfra, - float facf0, float facf1, int x, int y, - struct ImBuf *ibuf1, struct ImBuf *ibuf2, - struct ImBuf *ibuf3, struct ImBuf *out) -{ - if (out->rect_float) { - do_glow_effect_float(seq, - facf0, facf1, x, y, - ibuf1->rect_float, ibuf2->rect_float, - out->rect_float); - } else { - do_glow_effect_byte(seq, - facf0, facf1, x, y, - (char*) ibuf1->rect, (char*) ibuf2->rect, - (char*) out->rect); - } -} - -/* ********************************************************************** - SOLID COLOR - ********************************************************************** */ - -static void init_solid_color(Sequence *seq) -{ - SolidColorVars *cv; - - if(seq->effectdata)MEM_freeN(seq->effectdata); - seq->effectdata = MEM_callocN(sizeof(struct SolidColorVars), "solidcolor"); - - cv = (SolidColorVars *)seq->effectdata; - cv->col[0] = cv->col[1] = cv->col[2] = 0.5; -} - -static int num_inputs_color() -{ - return 0; -} - -static void free_solid_color(Sequence *seq) -{ - if(seq->effectdata)MEM_freeN(seq->effectdata); - seq->effectdata = 0; -} - -static void copy_solid_color(Sequence *dst, Sequence *src) -{ - dst->effectdata = MEM_dupallocN(src->effectdata); -} - -static int early_out_color(struct Sequence *seq, - float facf0, float facf1) -{ - return -1; -} - -static void do_solid_color(Sequence * seq,int cfra, - float facf0, float facf1, int x, int y, - struct ImBuf *ibuf1, struct ImBuf *ibuf2, - struct ImBuf *ibuf3, struct ImBuf *out) -{ - SolidColorVars *cv = (SolidColorVars *)seq->effectdata; - - unsigned char *rect; - float *rect_float; - - if (out->rect) { - rect = (unsigned char *)out->rect; - - for(y=0; yy; y++) { - for(x=0; xx; x++, rect+=4) { - rect[0]= (char)(cv->col[0]*255); - rect[1]= (char)(cv->col[1]*255); - rect[2]= (char)(cv->col[2]*255); - rect[3]= 255; - } - } - } else if (out->rect_float) { - rect_float = out->rect_float; - - for(y=0; yy; y++) { - for(x=0; xx; x++, rect_float+=4) { - rect_float[0]= cv->col[0]; - rect_float[1]= cv->col[1]; - rect_float[2]= cv->col[2]; - rect_float[3]= 1.0; - } - } - } -} - -/* ********************************************************************** - SPEED - ********************************************************************** */ -static void init_speed_effect(Sequence *seq) -{ - SpeedControlVars * v; - - if(seq->effectdata) MEM_freeN(seq->effectdata); - seq->effectdata = MEM_callocN(sizeof(struct SpeedControlVars), - "speedcontrolvars"); - - v = (SpeedControlVars *)seq->effectdata; - v->globalSpeed = 1.0; - v->frameMap = 0; - v->flags = SEQ_SPEED_COMPRESS_IPO_Y; - v->length = 0; -} - -static void load_speed_effect(Sequence * seq) -{ - SpeedControlVars * v = (SpeedControlVars *)seq->effectdata; - - v->frameMap = 0; - v->length = 0; -} - -static int num_inputs_speed() -{ - return 1; -} - -static void free_speed_effect(Sequence *seq) -{ - SpeedControlVars * v = (SpeedControlVars *)seq->effectdata; - if(v->frameMap) MEM_freeN(v->frameMap); - if(seq->effectdata) MEM_freeN(seq->effectdata); - seq->effectdata = 0; -} - -static void copy_speed_effect(Sequence *dst, Sequence *src) -{ - dst->effectdata = MEM_dupallocN(src->effectdata); -} - -static int early_out_speed(struct Sequence *seq, - float facf0, float facf1) -{ - return 1; -} - -void sequence_effect_speed_rebuild_map(struct Sequence * seq, int force) -{ - float facf0 = seq->facf0; - float ctime, div; - int cfra; - float fallback_fac; - SpeedControlVars * v = (SpeedControlVars *)seq->effectdata; - - /* if not already done, load / initialize data */ - get_sequence_effect(seq); - - if (!(force || seq->len != v->length || !v->frameMap)) { - return; - } - - if (!v->frameMap || v->length != seq->len) { - if (v->frameMap) MEM_freeN(v->frameMap); - - v->length = seq->len; - - v->frameMap = MEM_callocN(sizeof(float) * v->length, - "speedcontrol frameMap"); - } - - fallback_fac = 1.0; - - /* if there is no IPO, try to make retiming easy by stretching the - strip */ - - if (!seq->ipo && seq->seq1 && seq->seq1->enddisp != seq->seq1->start - && seq->seq1->len != 0) { - fallback_fac = (float) seq->seq1->len / - (float) (seq->seq1->enddisp - seq->seq1->start); - /* FIXME: this strip stretching gets screwed by stripdata - handling one layer up. - - So it currently works by enlarging, never by shrinking! - - (IPOs still work, if used correctly) - */ - if (fallback_fac > 1.0) { - fallback_fac = 1.0; - } - } - - if ((v->flags & SEQ_SPEED_INTEGRATE) != 0) { - float cursor = 0; - - v->frameMap[0] = 0; - - for (cfra = 1; cfra < v->length; cfra++) { - if(seq->ipo) { - if((seq->flag & SEQ_IPO_FRAME_LOCKED) != 0) { - ctime = frame_to_float(seq->startdisp - + cfra); - div = 1.0; - } else { - ctime= frame_to_float(cfra); - div= v->length / 100.0f; - if(div==0.0) return; - } - - calc_ipo(seq->ipo, ctime/div); - execute_ipo((ID *)seq, seq->ipo); - } else { - seq->facf0 = fallback_fac; - } - seq->facf0 *= v->globalSpeed; - - cursor += seq->facf0; - - if (cursor >= v->length) { - v->frameMap[cfra] = v->length - 1; - } else { - v->frameMap[cfra] = cursor; - } - } - } else { - for (cfra = 0; cfra < v->length; cfra++) { - if(seq->ipo) { - if((seq->flag & SEQ_IPO_FRAME_LOCKED) != 0) { - ctime = frame_to_float(seq->startdisp - + cfra); - div = 1.0; - } else { - ctime= frame_to_float(cfra); - div= v->length / 100.0f; - if(div==0.0) return; - } - - calc_ipo(seq->ipo, ctime/div); - execute_ipo((ID *)seq, seq->ipo); - } - - if (v->flags & SEQ_SPEED_COMPRESS_IPO_Y) { - seq->facf0 *= v->length; - } - if (!seq->ipo) { - seq->facf0 = (float) cfra * fallback_fac; - } - seq->facf0 *= v->globalSpeed; - if (seq->facf0 >= v->length) { - seq->facf0 = v->length - 1; - } - v->frameMap[cfra] = seq->facf0; - } - } - seq->facf0 = facf0; -} - -/* - simply reuse do_cross_effect for blending... - -static void do_speed_effect(Sequence * seq,int cfra, - float facf0, float facf1, int x, int y, - struct ImBuf *ibuf1, struct ImBuf *ibuf2, - struct ImBuf *ibuf3, struct ImBuf *out) -{ - -} -*/ - - -/* ********************************************************************** - sequence effect factory - ********************************************************************** */ - - -static void init_noop(struct Sequence *seq) -{ - -} - -static void load_noop(struct Sequence *seq) -{ - -} - -static void init_plugin_noop(struct Sequence *seq, const char * fname) -{ - -} - -static void free_noop(struct Sequence *seq) -{ - -} - -static int num_inputs_default() -{ - return 2; -} - -static int early_out_noop(struct Sequence *seq, - float facf0, float facf1) -{ - return 0; -} - -static int early_out_fade(struct Sequence *seq, - float facf0, float facf1) -{ - if (facf0 == 0.0 && facf1 == 0.0) { - return 1; - } else if (facf0 == 1.0 && facf1 == 1.0) { - return 2; - } - return 0; -} - -static int early_out_mul_input2(struct Sequence *seq, - float facf0, float facf1) -{ - if (facf0 == 0.0 && facf1 == 0.0) { - return 1; - } - return 0; -} - -static void get_default_fac_noop(struct Sequence *seq, int cfra, - float * facf0, float * facf1) -{ - *facf0 = *facf1 = 1.0; -} - -static void get_default_fac_fade(struct Sequence *seq, int cfra, - float * facf0, float * facf1) -{ - *facf0 = (float)(cfra - seq->startdisp); - *facf1 = (float)(*facf0 + 0.5); - *facf0 /= seq->len; - *facf1 /= seq->len; -} - -static void do_overdrop_effect(struct Sequence * seq, int cfra, - float fac, float facf, - int x, int y, struct ImBuf * ibuf1, - struct ImBuf * ibuf2, - struct ImBuf * ibuf3, - struct ImBuf * out) -{ - do_drop_effect(seq, cfra, fac, facf, x, y, - ibuf1, ibuf2, ibuf3, out); - do_alphaover_effect(seq, cfra, fac, facf, x, y, - ibuf1, ibuf2, ibuf3, out); -} - -static struct SeqEffectHandle get_sequence_effect_impl(int seq_type) -{ - struct SeqEffectHandle rval; - int sequence_type = seq_type; - - rval.init = init_noop; - rval.init_plugin = init_plugin_noop; - rval.num_inputs = num_inputs_default; - rval.load = load_noop; - rval.free = free_noop; - rval.early_out = early_out_noop; - rval.get_default_fac = get_default_fac_noop; - rval.execute = NULL; - rval.copy = NULL; - - switch (sequence_type) { - case SEQ_CROSS: - rval.execute = do_cross_effect; - rval.early_out = early_out_fade; - rval.get_default_fac = get_default_fac_fade; - break; - case SEQ_GAMCROSS: - rval.init = init_gammacross; - rval.load = load_gammacross; - rval.free = free_gammacross; - rval.early_out = early_out_fade; - rval.get_default_fac = get_default_fac_fade; - rval.execute = do_gammacross_effect; - break; - case SEQ_ADD: - rval.execute = do_add_effect; - rval.early_out = early_out_mul_input2; - break; - case SEQ_SUB: - rval.execute = do_sub_effect; - rval.early_out = early_out_mul_input2; - break; - case SEQ_MUL: - rval.execute = do_mul_effect; - rval.early_out = early_out_mul_input2; - break; - case SEQ_ALPHAOVER: - rval.init = init_alpha_over_or_under; - rval.execute = do_alphaover_effect; - break; - case SEQ_OVERDROP: - rval.execute = do_overdrop_effect; - break; - case SEQ_ALPHAUNDER: - rval.init = init_alpha_over_or_under; - rval.execute = do_alphaunder_effect; - break; - case SEQ_WIPE: - rval.init = init_wipe_effect; - rval.num_inputs = num_inputs_wipe; - rval.free = free_wipe_effect; - rval.copy = copy_wipe_effect; - rval.early_out = early_out_fade; - rval.get_default_fac = get_default_fac_fade; - rval.execute = do_wipe_effect; - break; - case SEQ_GLOW: - rval.init = init_glow_effect; - rval.num_inputs = num_inputs_glow; - rval.free = free_glow_effect; - rval.copy = copy_glow_effect; - rval.execute = do_glow_effect; - break; - case SEQ_TRANSFORM: - rval.init = init_transform_effect; - rval.num_inputs = num_inputs_transform; - rval.free = free_transform_effect; - rval.copy = copy_transform_effect; - rval.execute = do_transform_effect; - break; - case SEQ_SPEED: - rval.init = init_speed_effect; - rval.num_inputs = num_inputs_speed; - rval.load = load_speed_effect; - rval.free = free_speed_effect; - rval.copy = copy_speed_effect; - rval.execute = do_cross_effect; - rval.early_out = early_out_speed; - break; - case SEQ_COLOR: - rval.init = init_solid_color; - rval.num_inputs = num_inputs_color; - rval.early_out = early_out_color; - rval.free = free_solid_color; - rval.copy = copy_solid_color; - rval.execute = do_solid_color; - break; - case SEQ_PLUGIN: - rval.init_plugin = init_plugin; - rval.num_inputs = num_inputs_plugin; - rval.load = load_plugin; - rval.free = free_plugin; - rval.copy = copy_plugin; - rval.execute = do_plugin_effect; - rval.early_out = do_plugin_early_out; - rval.get_default_fac = get_default_fac_fade; - break; - case SEQ_PUSH: - rval.init = init_push_effect; - rval.num_inputs = num_inputs_push; - rval.free = free_push_effect; - rval.copy = copy_push_effect; - rval.early_out = early_out_fade; - rval.get_default_fac = get_default_fac_fade; - rval.execute = do_push_effect; - break; - } - - return rval; -} - - -struct SeqEffectHandle get_sequence_effect(Sequence * seq) -{ - struct SeqEffectHandle rval = get_sequence_effect_impl(seq->type); - - if ((seq->flag & SEQ_EFFECT_NOT_LOADED) != 0) { - rval.load(seq); - seq->flag &= ~SEQ_EFFECT_NOT_LOADED; - } - - return rval; -} - -int get_sequence_effect_num_inputs(int seq_type) -{ - struct SeqEffectHandle rval = get_sequence_effect_impl(seq_type); - - return rval.num_inputs(); -} diff -Naur /home/olabomba/blender/source/blender/verify/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/verify/CVS/Entries --- /home/olabomba/blender/source/blender/verify/CVS/Entries 2006-12-04 19:26:21.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/verify/CVS/Entries 2006-12-06 21:37:20.000000000 +0100 @@ -2,4 +2,4 @@ /BLO_signer_info.h/1.6/Fri Dec 27 13:10:36 2002// /BLO_verify.h/1.5/Fri Dec 27 13:10:36 2002// /Makefile/1.2/Sun Oct 13 15:57:12 2002// -D/intern//// +D diff -Naur /home/olabomba/blender/source/blender/verify/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/blender/verify/CVS/Entries.Log --- /home/olabomba/blender/source/blender/verify/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/verify/CVS/Entries.Log 2006-12-06 21:37:20.000000000 +0100 @@ -0,0 +1 @@ +A D/intern//// diff -Naur /home/olabomba/blender/source/blender/writeblenfile/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/writeblenfile/CVS/Entries --- /home/olabomba/blender/source/blender/writeblenfile/CVS/Entries 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/writeblenfile/CVS/Entries 2006-12-06 21:37:20.000000000 +0100 @@ -0,0 +1 @@ +D diff -Naur /home/olabomba/blender/source/blender/writeblenfile/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/blender/writeblenfile/CVS/Entries.Log --- /home/olabomba/blender/source/blender/writeblenfile/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/writeblenfile/CVS/Entries.Log 2006-12-06 21:37:20.000000000 +0100 @@ -0,0 +1,2 @@ +A D/intern//// +A D/test//// diff -Naur /home/olabomba/blender/source/blender/writeblenfile/CVS/Repository /home/olabomba/blender-propre/blender/source/blender/writeblenfile/CVS/Repository --- /home/olabomba/blender/source/blender/writeblenfile/CVS/Repository 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/writeblenfile/CVS/Repository 2006-12-06 21:37:20.000000000 +0100 @@ -0,0 +1 @@ +blender/source/blender/writeblenfile diff -Naur /home/olabomba/blender/source/blender/writeblenfile/CVS/Root /home/olabomba/blender-propre/blender/source/blender/writeblenfile/CVS/Root --- /home/olabomba/blender/source/blender/writeblenfile/CVS/Root 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/writeblenfile/CVS/Root 2006-12-06 21:37:20.000000000 +0100 @@ -0,0 +1 @@ +:pserver:anonymous@cvs.blender.org:/cvsroot/bf-blender diff -Naur /home/olabomba/blender/source/blender/writeblenfile/intern/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/writeblenfile/intern/CVS/Entries --- /home/olabomba/blender/source/blender/writeblenfile/intern/CVS/Entries 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/writeblenfile/intern/CVS/Entries 2006-12-06 21:37:20.000000000 +0100 @@ -0,0 +1 @@ +D diff -Naur /home/olabomba/blender/source/blender/writeblenfile/intern/CVS/Repository /home/olabomba/blender-propre/blender/source/blender/writeblenfile/intern/CVS/Repository --- /home/olabomba/blender/source/blender/writeblenfile/intern/CVS/Repository 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/writeblenfile/intern/CVS/Repository 2006-12-06 21:37:20.000000000 +0100 @@ -0,0 +1 @@ +blender/source/blender/writeblenfile/intern diff -Naur /home/olabomba/blender/source/blender/writeblenfile/intern/CVS/Root /home/olabomba/blender-propre/blender/source/blender/writeblenfile/intern/CVS/Root --- /home/olabomba/blender/source/blender/writeblenfile/intern/CVS/Root 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/writeblenfile/intern/CVS/Root 2006-12-06 21:37:20.000000000 +0100 @@ -0,0 +1 @@ +:pserver:anonymous@cvs.blender.org:/cvsroot/bf-blender diff -Naur /home/olabomba/blender/source/blender/writeblenfile/test/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/writeblenfile/test/CVS/Entries --- /home/olabomba/blender/source/blender/writeblenfile/test/CVS/Entries 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/writeblenfile/test/CVS/Entries 2006-12-06 21:37:20.000000000 +0100 @@ -0,0 +1 @@ +D diff -Naur /home/olabomba/blender/source/blender/writeblenfile/test/CVS/Repository /home/olabomba/blender-propre/blender/source/blender/writeblenfile/test/CVS/Repository --- /home/olabomba/blender/source/blender/writeblenfile/test/CVS/Repository 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/writeblenfile/test/CVS/Repository 2006-12-06 21:37:20.000000000 +0100 @@ -0,0 +1 @@ +blender/source/blender/writeblenfile/test diff -Naur /home/olabomba/blender/source/blender/writeblenfile/test/CVS/Root /home/olabomba/blender-propre/blender/source/blender/writeblenfile/test/CVS/Root --- /home/olabomba/blender/source/blender/writeblenfile/test/CVS/Root 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/writeblenfile/test/CVS/Root 2006-12-06 21:37:20.000000000 +0100 @@ -0,0 +1 @@ +:pserver:anonymous@cvs.blender.org:/cvsroot/bf-blender diff -Naur /home/olabomba/blender/source/blender/writestreamglue/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/writestreamglue/CVS/Entries --- /home/olabomba/blender/source/blender/writestreamglue/CVS/Entries 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/writestreamglue/CVS/Entries 2006-12-06 21:37:20.000000000 +0100 @@ -0,0 +1 @@ +D diff -Naur /home/olabomba/blender/source/blender/writestreamglue/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/blender/writestreamglue/CVS/Entries.Log --- /home/olabomba/blender/source/blender/writestreamglue/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/writestreamglue/CVS/Entries.Log 2006-12-06 21:37:20.000000000 +0100 @@ -0,0 +1,3 @@ +A D/intern//// +A D/stub//// +A D/test//// diff -Naur /home/olabomba/blender/source/blender/writestreamglue/CVS/Repository /home/olabomba/blender-propre/blender/source/blender/writestreamglue/CVS/Repository --- /home/olabomba/blender/source/blender/writestreamglue/CVS/Repository 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/writestreamglue/CVS/Repository 2006-12-06 21:37:20.000000000 +0100 @@ -0,0 +1 @@ +blender/source/blender/writestreamglue diff -Naur /home/olabomba/blender/source/blender/writestreamglue/CVS/Root /home/olabomba/blender-propre/blender/source/blender/writestreamglue/CVS/Root --- /home/olabomba/blender/source/blender/writestreamglue/CVS/Root 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/writestreamglue/CVS/Root 2006-12-06 21:37:20.000000000 +0100 @@ -0,0 +1 @@ +:pserver:anonymous@cvs.blender.org:/cvsroot/bf-blender diff -Naur /home/olabomba/blender/source/blender/writestreamglue/intern/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/writestreamglue/intern/CVS/Entries --- /home/olabomba/blender/source/blender/writestreamglue/intern/CVS/Entries 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/writestreamglue/intern/CVS/Entries 2006-12-06 21:37:20.000000000 +0100 @@ -0,0 +1 @@ +D diff -Naur /home/olabomba/blender/source/blender/writestreamglue/intern/CVS/Repository /home/olabomba/blender-propre/blender/source/blender/writestreamglue/intern/CVS/Repository --- /home/olabomba/blender/source/blender/writestreamglue/intern/CVS/Repository 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/writestreamglue/intern/CVS/Repository 2006-12-06 21:37:20.000000000 +0100 @@ -0,0 +1 @@ +blender/source/blender/writestreamglue/intern diff -Naur /home/olabomba/blender/source/blender/writestreamglue/intern/CVS/Root /home/olabomba/blender-propre/blender/source/blender/writestreamglue/intern/CVS/Root --- /home/olabomba/blender/source/blender/writestreamglue/intern/CVS/Root 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/writestreamglue/intern/CVS/Root 2006-12-06 21:37:20.000000000 +0100 @@ -0,0 +1 @@ +:pserver:anonymous@cvs.blender.org:/cvsroot/bf-blender diff -Naur /home/olabomba/blender/source/blender/writestreamglue/stub/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/writestreamglue/stub/CVS/Entries --- /home/olabomba/blender/source/blender/writestreamglue/stub/CVS/Entries 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/writestreamglue/stub/CVS/Entries 2006-12-06 21:37:20.000000000 +0100 @@ -0,0 +1 @@ +D diff -Naur /home/olabomba/blender/source/blender/writestreamglue/stub/CVS/Repository /home/olabomba/blender-propre/blender/source/blender/writestreamglue/stub/CVS/Repository --- /home/olabomba/blender/source/blender/writestreamglue/stub/CVS/Repository 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/writestreamglue/stub/CVS/Repository 2006-12-06 21:37:20.000000000 +0100 @@ -0,0 +1 @@ +blender/source/blender/writestreamglue/stub diff -Naur /home/olabomba/blender/source/blender/writestreamglue/stub/CVS/Root /home/olabomba/blender-propre/blender/source/blender/writestreamglue/stub/CVS/Root --- /home/olabomba/blender/source/blender/writestreamglue/stub/CVS/Root 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/writestreamglue/stub/CVS/Root 2006-12-06 21:37:20.000000000 +0100 @@ -0,0 +1 @@ +:pserver:anonymous@cvs.blender.org:/cvsroot/bf-blender diff -Naur /home/olabomba/blender/source/blender/writestreamglue/test/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/writestreamglue/test/CVS/Entries --- /home/olabomba/blender/source/blender/writestreamglue/test/CVS/Entries 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/writestreamglue/test/CVS/Entries 2006-12-06 21:37:20.000000000 +0100 @@ -0,0 +1 @@ +D diff -Naur /home/olabomba/blender/source/blender/writestreamglue/test/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/blender/writestreamglue/test/CVS/Entries.Log --- /home/olabomba/blender/source/blender/writestreamglue/test/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/writestreamglue/test/CVS/Entries.Log 2006-12-06 21:37:20.000000000 +0100 @@ -0,0 +1,2 @@ +A D/readwritetest//// +A D/typetest//// diff -Naur /home/olabomba/blender/source/blender/writestreamglue/test/CVS/Repository /home/olabomba/blender-propre/blender/source/blender/writestreamglue/test/CVS/Repository --- /home/olabomba/blender/source/blender/writestreamglue/test/CVS/Repository 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/writestreamglue/test/CVS/Repository 2006-12-06 21:37:20.000000000 +0100 @@ -0,0 +1 @@ +blender/source/blender/writestreamglue/test diff -Naur /home/olabomba/blender/source/blender/writestreamglue/test/CVS/Root /home/olabomba/blender-propre/blender/source/blender/writestreamglue/test/CVS/Root --- /home/olabomba/blender/source/blender/writestreamglue/test/CVS/Root 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/writestreamglue/test/CVS/Root 2006-12-06 21:37:20.000000000 +0100 @@ -0,0 +1 @@ +:pserver:anonymous@cvs.blender.org:/cvsroot/bf-blender diff -Naur /home/olabomba/blender/source/blender/writestreamglue/test/readwritetest/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/writestreamglue/test/readwritetest/CVS/Entries --- /home/olabomba/blender/source/blender/writestreamglue/test/readwritetest/CVS/Entries 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/writestreamglue/test/readwritetest/CVS/Entries 2006-12-06 21:37:20.000000000 +0100 @@ -0,0 +1 @@ +D diff -Naur /home/olabomba/blender/source/blender/writestreamglue/test/readwritetest/CVS/Repository /home/olabomba/blender-propre/blender/source/blender/writestreamglue/test/readwritetest/CVS/Repository --- /home/olabomba/blender/source/blender/writestreamglue/test/readwritetest/CVS/Repository 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/writestreamglue/test/readwritetest/CVS/Repository 2006-12-06 21:37:20.000000000 +0100 @@ -0,0 +1 @@ +blender/source/blender/writestreamglue/test/readwritetest diff -Naur /home/olabomba/blender/source/blender/writestreamglue/test/readwritetest/CVS/Root /home/olabomba/blender-propre/blender/source/blender/writestreamglue/test/readwritetest/CVS/Root --- /home/olabomba/blender/source/blender/writestreamglue/test/readwritetest/CVS/Root 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/writestreamglue/test/readwritetest/CVS/Root 2006-12-06 21:37:20.000000000 +0100 @@ -0,0 +1 @@ +:pserver:anonymous@cvs.blender.org:/cvsroot/bf-blender diff -Naur /home/olabomba/blender/source/blender/writestreamglue/test/typetest/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/writestreamglue/test/typetest/CVS/Entries --- /home/olabomba/blender/source/blender/writestreamglue/test/typetest/CVS/Entries 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/writestreamglue/test/typetest/CVS/Entries 2006-12-06 21:37:20.000000000 +0100 @@ -0,0 +1 @@ +D diff -Naur /home/olabomba/blender/source/blender/writestreamglue/test/typetest/CVS/Repository /home/olabomba/blender-propre/blender/source/blender/writestreamglue/test/typetest/CVS/Repository --- /home/olabomba/blender/source/blender/writestreamglue/test/typetest/CVS/Repository 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/writestreamglue/test/typetest/CVS/Repository 2006-12-06 21:37:20.000000000 +0100 @@ -0,0 +1 @@ +blender/source/blender/writestreamglue/test/typetest diff -Naur /home/olabomba/blender/source/blender/writestreamglue/test/typetest/CVS/Root /home/olabomba/blender-propre/blender/source/blender/writestreamglue/test/typetest/CVS/Root --- /home/olabomba/blender/source/blender/writestreamglue/test/typetest/CVS/Root 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/writestreamglue/test/typetest/CVS/Root 2006-12-06 21:37:20.000000000 +0100 @@ -0,0 +1 @@ +:pserver:anonymous@cvs.blender.org:/cvsroot/bf-blender diff -Naur /home/olabomba/blender/source/blender/yafray/CVS/Entries /home/olabomba/blender-propre/blender/source/blender/yafray/CVS/Entries --- /home/olabomba/blender/source/blender/yafray/CVS/Entries 2006-12-04 19:26:21.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/yafray/CVS/Entries 2006-12-06 21:37:20.000000000 +0100 @@ -2,4 +2,4 @@ /Makefile/1.1/Mon Jan 5 17:42:06 2004// /SConscript/1.8/Tue Feb 7 21:24:35 2006// /YafRay_Api.h/1.4/Mon May 29 03:59:12 2006// -D/intern//// +D diff -Naur /home/olabomba/blender/source/blender/yafray/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/blender/yafray/CVS/Entries.Log --- /home/olabomba/blender/source/blender/yafray/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/blender/yafray/CVS/Entries.Log 2006-12-06 21:37:20.000000000 +0100 @@ -0,0 +1 @@ +A D/intern//// diff -Naur /home/olabomba/blender/source/creator/CVS/Entries /home/olabomba/blender-propre/blender/source/creator/CVS/Entries --- /home/olabomba/blender/source/creator/CVS/Entries 2006-12-06 21:32:52.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/creator/CVS/Entries 2006-12-06 21:37:21.000000000 +0100 @@ -1,6 +1,6 @@ +/CMakeLists.txt/1.5/Wed Dec 6 00:28:13 2006// /Makefile/1.10/Mon Jan 5 00:06:09 2004// /SConscript/1.6/Sat Feb 4 14:15:09 2006// /buildinfo.c/1.6/Fri Mar 5 15:20:52 2004// /creator.c/1.63/Wed Nov 29 19:31:44 2006// -/CMakeLists.txt/1.5/Wed Dec 6 20:32:52 2006// D diff -Naur /home/olabomba/blender/source/CVS/Entries /home/olabomba/blender-propre/blender/source/CVS/Entries --- /home/olabomba/blender/source/CVS/Entries 2006-12-04 19:26:20.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/CVS/Entries 2006-12-06 21:36:55.000000000 +0100 @@ -7,10 +7,4 @@ /nan_link.mk/1.37/Thu Nov 9 15:45:18 2006// /nan_subdirs.mk/1.5/Sat Apr 9 22:40:34 2005// /nan_warn.mk/1.5/Wed Mar 9 19:45:53 2005// -D/blender//// -D/creator//// -D/darwin//// -D/gameengine//// -D/icons//// -D/kernel//// -D/tools//// +D diff -Naur /home/olabomba/blender/source/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/CVS/Entries.Log --- /home/olabomba/blender/source/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/CVS/Entries.Log 2006-12-06 21:37:29.000000000 +0100 @@ -0,0 +1,7 @@ +A D/blender//// +A D/creator//// +A D/darwin//// +A D/gameengine//// +A D/icons//// +A D/kernel//// +A D/tools//// diff -Naur /home/olabomba/blender/source/darwin/blender.app/Contents/CVS/Entries /home/olabomba/blender-propre/blender/source/darwin/blender.app/Contents/CVS/Entries --- /home/olabomba/blender/source/darwin/blender.app/Contents/CVS/Entries 2006-12-04 19:26:21.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/darwin/blender.app/Contents/CVS/Entries 2006-12-06 21:37:21.000000000 +0100 @@ -1,4 +1,3 @@ /Info.plist/1.4/Tue Sep 28 20:59:14 2004/-kb/ /PkgInfo/1.1/Tue Dec 3 10:02:40 2002/-kb/ -D/MacOS//// -D/Resources//// +D diff -Naur /home/olabomba/blender/source/darwin/blender.app/Contents/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/darwin/blender.app/Contents/CVS/Entries.Log --- /home/olabomba/blender/source/darwin/blender.app/Contents/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/darwin/blender.app/Contents/CVS/Entries.Log 2006-12-06 21:37:21.000000000 +0100 @@ -0,0 +1,2 @@ +A D/MacOS//// +A D/Resources//// diff -Naur /home/olabomba/blender/source/darwin/blender.app/CVS/Entries /home/olabomba/blender-propre/blender/source/darwin/blender.app/CVS/Entries --- /home/olabomba/blender/source/darwin/blender.app/CVS/Entries 2006-12-04 19:26:21.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/darwin/blender.app/CVS/Entries 2006-12-06 21:37:21.000000000 +0100 @@ -1 +1 @@ -D/Contents//// +D diff -Naur /home/olabomba/blender/source/darwin/blender.app/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/darwin/blender.app/CVS/Entries.Log --- /home/olabomba/blender/source/darwin/blender.app/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/darwin/blender.app/CVS/Entries.Log 2006-12-06 21:37:21.000000000 +0100 @@ -0,0 +1 @@ +A D/Contents//// diff -Naur /home/olabomba/blender/source/darwin/blendercreator.app/Contents/CVS/Entries /home/olabomba/blender-propre/blender/source/darwin/blendercreator.app/Contents/CVS/Entries --- /home/olabomba/blender/source/darwin/blendercreator.app/Contents/CVS/Entries 2006-12-04 19:26:21.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/darwin/blendercreator.app/Contents/CVS/Entries 2006-12-06 21:37:21.000000000 +0100 @@ -1,4 +1,3 @@ /Info.plist/1.1.1.1/Sat Oct 12 11:37:43 2002/-kb/ /PkgInfo/1.1.1.1/Sat Oct 12 11:37:43 2002/-kb/ -D/MacOS//// -D/Resources//// +D diff -Naur /home/olabomba/blender/source/darwin/blendercreator.app/Contents/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/darwin/blendercreator.app/Contents/CVS/Entries.Log --- /home/olabomba/blender/source/darwin/blendercreator.app/Contents/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/darwin/blendercreator.app/Contents/CVS/Entries.Log 2006-12-06 21:37:21.000000000 +0100 @@ -0,0 +1,2 @@ +A D/MacOS//// +A D/Resources//// diff -Naur /home/olabomba/blender/source/darwin/blendercreator.app/CVS/Entries /home/olabomba/blender-propre/blender/source/darwin/blendercreator.app/CVS/Entries --- /home/olabomba/blender/source/darwin/blendercreator.app/CVS/Entries 2006-12-04 19:26:21.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/darwin/blendercreator.app/CVS/Entries 2006-12-06 21:37:21.000000000 +0100 @@ -1 +1 @@ -D/Contents//// +D diff -Naur /home/olabomba/blender/source/darwin/blendercreator.app/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/darwin/blendercreator.app/CVS/Entries.Log --- /home/olabomba/blender/source/darwin/blendercreator.app/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/darwin/blendercreator.app/CVS/Entries.Log 2006-12-06 21:37:21.000000000 +0100 @@ -0,0 +1 @@ +A D/Contents//// diff -Naur /home/olabomba/blender/source/darwin/blenderplayer.app/Contents/CVS/Entries /home/olabomba/blender-propre/blender/source/darwin/blenderplayer.app/Contents/CVS/Entries --- /home/olabomba/blender/source/darwin/blenderplayer.app/Contents/CVS/Entries 2006-12-04 19:26:21.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/darwin/blenderplayer.app/Contents/CVS/Entries 2006-12-06 21:37:21.000000000 +0100 @@ -1,4 +1,3 @@ /Info.plist/1.3/Tue Sep 28 20:59:14 2004/-kb/ /PkgInfo/1.1.1.1/Sat Oct 12 11:37:43 2002/-kb/ -D/MacOS//// -D/Resources//// +D diff -Naur /home/olabomba/blender/source/darwin/blenderplayer.app/Contents/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/darwin/blenderplayer.app/Contents/CVS/Entries.Log --- /home/olabomba/blender/source/darwin/blenderplayer.app/Contents/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/darwin/blenderplayer.app/Contents/CVS/Entries.Log 2006-12-06 21:37:21.000000000 +0100 @@ -0,0 +1,2 @@ +A D/MacOS//// +A D/Resources//// diff -Naur /home/olabomba/blender/source/darwin/blenderplayer.app/CVS/Entries /home/olabomba/blender-propre/blender/source/darwin/blenderplayer.app/CVS/Entries --- /home/olabomba/blender/source/darwin/blenderplayer.app/CVS/Entries 2006-12-04 19:26:21.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/darwin/blenderplayer.app/CVS/Entries 2006-12-06 21:37:21.000000000 +0100 @@ -1 +1 @@ -D/Contents//// +D diff -Naur /home/olabomba/blender/source/darwin/blenderplayer.app/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/darwin/blenderplayer.app/CVS/Entries.Log --- /home/olabomba/blender/source/darwin/blenderplayer.app/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/darwin/blenderplayer.app/CVS/Entries.Log 2006-12-06 21:37:21.000000000 +0100 @@ -0,0 +1 @@ +A D/Contents//// diff -Naur /home/olabomba/blender/source/darwin/blenderpublisher.app/Contents/CVS/Entries /home/olabomba/blender-propre/blender/source/darwin/blenderpublisher.app/Contents/CVS/Entries --- /home/olabomba/blender/source/darwin/blenderpublisher.app/Contents/CVS/Entries 2006-12-04 19:26:21.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/darwin/blenderpublisher.app/Contents/CVS/Entries 2006-12-06 21:37:21.000000000 +0100 @@ -1,4 +1,3 @@ /Info.plist/1.1.1.1/Sat Oct 12 11:37:43 2002/-kb/ /PkgInfo/1.1.1.1/Sat Oct 12 11:37:43 2002/-kb/ -D/MacOS//// -D/Resources//// +D diff -Naur /home/olabomba/blender/source/darwin/blenderpublisher.app/Contents/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/darwin/blenderpublisher.app/Contents/CVS/Entries.Log --- /home/olabomba/blender/source/darwin/blenderpublisher.app/Contents/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/darwin/blenderpublisher.app/Contents/CVS/Entries.Log 2006-12-06 21:37:21.000000000 +0100 @@ -0,0 +1,2 @@ +A D/MacOS//// +A D/Resources//// diff -Naur /home/olabomba/blender/source/darwin/blenderpublisher.app/CVS/Entries /home/olabomba/blender-propre/blender/source/darwin/blenderpublisher.app/CVS/Entries --- /home/olabomba/blender/source/darwin/blenderpublisher.app/CVS/Entries 2006-12-04 19:26:21.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/darwin/blenderpublisher.app/CVS/Entries 2006-12-06 21:37:21.000000000 +0100 @@ -1 +1 @@ -D/Contents//// +D diff -Naur /home/olabomba/blender/source/darwin/blenderpublisher.app/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/darwin/blenderpublisher.app/CVS/Entries.Log --- /home/olabomba/blender/source/darwin/blenderpublisher.app/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/darwin/blenderpublisher.app/CVS/Entries.Log 2006-12-06 21:37:21.000000000 +0100 @@ -0,0 +1 @@ +A D/Contents//// diff -Naur /home/olabomba/blender/source/darwin/CVS/Entries /home/olabomba/blender-propre/blender/source/darwin/CVS/Entries --- /home/olabomba/blender/source/darwin/CVS/Entries 2006-12-04 19:26:21.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/darwin/CVS/Entries 2006-12-06 21:37:21.000000000 +0100 @@ -1,5 +1,2 @@ /Makefile/1.12/Sat Jul 1 09:40:13 2006/-kb/ -D/blender.app//// -D/blendercreator.app//// -D/blenderplayer.app//// -D/blenderpublisher.app//// +D diff -Naur /home/olabomba/blender/source/darwin/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/darwin/CVS/Entries.Log --- /home/olabomba/blender/source/darwin/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/darwin/CVS/Entries.Log 2006-12-06 21:37:21.000000000 +0100 @@ -0,0 +1,4 @@ +A D/blender.app//// +A D/blendercreator.app//// +A D/blenderplayer.app//// +A D/blenderpublisher.app//// diff -Naur /home/olabomba/blender/source/gameengine/CVS/Entries /home/olabomba/blender-propre/blender/source/gameengine/CVS/Entries --- /home/olabomba/blender/source/gameengine/CVS/Entries 2006-12-04 19:26:21.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/gameengine/CVS/Entries 2006-12-06 21:37:21.000000000 +0100 @@ -1,14 +1,4 @@ /CMakeLists.txt/1.1/Fri Nov 17 02:27:10 2006// /Makefile/1.8/Mon Mar 22 22:02:04 2004// /SConscript/1.8/Sat Feb 4 14:15:09 2006// -D/BlenderRoutines//// -D/Converter//// -D/Expressions//// -D/GameLogic//// -D/GamePlayer//// -D/Ketsji//// -D/Network//// -D/Physics//// -D/PyDoc//// -D/Rasterizer//// -D/SceneGraph//// +D diff -Naur /home/olabomba/blender/source/gameengine/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/gameengine/CVS/Entries.Log --- /home/olabomba/blender/source/gameengine/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/gameengine/CVS/Entries.Log 2006-12-06 21:37:28.000000000 +0100 @@ -0,0 +1,11 @@ +A D/BlenderRoutines//// +A D/Converter//// +A D/Expressions//// +A D/GameLogic//// +A D/GamePlayer//// +A D/Ketsji//// +A D/Network//// +A D/Physics//// +A D/PyDoc//// +A D/Rasterizer//// +A D/SceneGraph//// diff -Naur /home/olabomba/blender/source/gameengine/Expressions/CVS/Entries /home/olabomba/blender-propre/blender/source/gameengine/Expressions/CVS/Entries --- /home/olabomba/blender/source/gameengine/Expressions/CVS/Entries 2006-12-04 19:26:26.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/gameengine/Expressions/CVS/Entries 2006-12-06 21:37:22.000000000 +0100 @@ -26,6 +26,7 @@ /KX_Python.h/1.5/Mon Mar 22 22:01:29 2004// /KX_Python_dynamic.h/1.5/Mon Mar 22 22:01:29 2004// /KX_Python_static.h/1.5/Mon Mar 22 22:01:29 2004// +/ListValue.cpp/1.7/Sun Dec 3 20:27:59 2006// /ListValue.h/1.6/Sun May 16 13:05:12 2004// /Makefile/1.9/Fri Mar 25 10:33:35 2005// /Operator1Expr.cpp/1.2/Mon Nov 25 15:29:41 2002// @@ -42,5 +43,4 @@ /VectorValue.cpp/1.2/Mon Nov 25 15:29:41 2002// /VectorValue.h/1.4/Mon Mar 22 22:01:29 2004// /VoidValue.h/1.7/Sat Apr 24 06:40:12 2004// -/ListValue.cpp/1.7/Mon Dec 4 18:26:26 2006// D diff -Naur /home/olabomba/blender/source/gameengine/GameLogic/CVS/Entries /home/olabomba/blender-propre/blender/source/gameengine/GameLogic/CVS/Entries --- /home/olabomba/blender/source/gameengine/GameLogic/CVS/Entries 2006-12-04 19:26:22.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/gameengine/GameLogic/CVS/Entries 2006-12-06 21:37:22.000000000 +0100 @@ -59,4 +59,4 @@ /SCA_TimeEventManager.cpp/1.5/Sat Oct 16 11:41:48 2004// /SCA_TimeEventManager.h/1.7/Sat Oct 16 11:41:48 2004// /SConscript/1.9/Tue Feb 7 21:24:35 2006// -D/Joystick//// +D diff -Naur /home/olabomba/blender/source/gameengine/GameLogic/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/gameengine/GameLogic/CVS/Entries.Log --- /home/olabomba/blender/source/gameengine/GameLogic/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/gameengine/GameLogic/CVS/Entries.Log 2006-12-06 21:37:22.000000000 +0100 @@ -0,0 +1 @@ +A D/Joystick//// diff -Naur /home/olabomba/blender/source/gameengine/GamePlayer/ActiveX/CVS/Entries /home/olabomba/blender-propre/blender/source/gameengine/GamePlayer/ActiveX/CVS/Entries --- /home/olabomba/blender/source/gameengine/GamePlayer/ActiveX/CVS/Entries 2006-12-04 19:26:22.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/gameengine/GamePlayer/ActiveX/CVS/Entries 2006-12-06 21:37:23.000000000 +0100 @@ -31,4 +31,4 @@ /StdAfx.h/1.7/Sun Feb 20 21:33:07 2005// /resource.h/1.7/Thu Jul 6 07:58:06 2006// /splash.bmp/1.2/Mon Mar 22 22:01:38 2004// -D/Hlp//// +D diff -Naur /home/olabomba/blender/source/gameengine/GamePlayer/ActiveX/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/gameengine/GamePlayer/ActiveX/CVS/Entries.Log --- /home/olabomba/blender/source/gameengine/GamePlayer/ActiveX/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/gameengine/GamePlayer/ActiveX/CVS/Entries.Log 2006-12-06 21:37:24.000000000 +0100 @@ -0,0 +1 @@ +A D/Hlp//// diff -Naur /home/olabomba/blender/source/gameengine/GamePlayer/common/CVS/Entries /home/olabomba/blender-propre/blender/source/gameengine/GamePlayer/common/CVS/Entries --- /home/olabomba/blender/source/gameengine/GamePlayer/common/CVS/Entries 2006-12-04 19:26:22.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/gameengine/GamePlayer/common/CVS/Entries 2006-12-06 21:37:26.000000000 +0100 @@ -26,5 +26,4 @@ /logo_blender.raw/1.1.1.1/Sat Oct 12 11:37:45 2002/-kb/ /logo_blender3d.raw/1.1.1.1/Sat Oct 12 11:37:45 2002/-kb/ /logo_nan.raw/1.1.1.1/Sat Oct 12 11:37:45 2002/-kb/ -D/unix//// -D/windows//// +D diff -Naur /home/olabomba/blender/source/gameengine/GamePlayer/common/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/gameengine/GamePlayer/common/CVS/Entries.Log --- /home/olabomba/blender/source/gameengine/GamePlayer/common/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/gameengine/GamePlayer/common/CVS/Entries.Log 2006-12-06 21:37:26.000000000 +0100 @@ -0,0 +1,2 @@ +A D/unix//// +A D/windows//// diff -Naur /home/olabomba/blender/source/gameengine/GamePlayer/CVS/Entries /home/olabomba/blender-propre/blender/source/gameengine/GamePlayer/CVS/Entries --- /home/olabomba/blender/source/gameengine/GamePlayer/CVS/Entries 2006-12-04 19:26:22.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/gameengine/GamePlayer/CVS/Entries 2006-12-06 21:37:23.000000000 +0100 @@ -1,7 +1,4 @@ /CMakeLists.txt/1.1/Fri Nov 17 02:27:11 2006// /Makefile/1.7/Sun Apr 11 02:49:59 2004// /SConscript/1.3/Sat Feb 4 14:15:09 2006// -D/ActiveX//// -D/common//// -D/ghost//// -D/netscape//// +D diff -Naur /home/olabomba/blender/source/gameengine/GamePlayer/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/gameengine/GamePlayer/CVS/Entries.Log --- /home/olabomba/blender/source/gameengine/GamePlayer/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/gameengine/GamePlayer/CVS/Entries.Log 2006-12-06 21:37:26.000000000 +0100 @@ -0,0 +1,4 @@ +A D/ActiveX//// +A D/common//// +A D/ghost//// +A D/netscape//// diff -Naur /home/olabomba/blender/source/gameengine/GamePlayer/netscape/CVS/Entries /home/olabomba/blender-propre/blender/source/gameengine/GamePlayer/netscape/CVS/Entries --- /home/olabomba/blender/source/gameengine/GamePlayer/netscape/CVS/Entries 2006-12-04 19:26:22.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/gameengine/GamePlayer/netscape/CVS/Entries 2006-12-06 21:37:26.000000000 +0100 @@ -1,5 +1,2 @@ /Makefile/1.4/Mon Mar 22 22:01:45 2004// -D/common//// -D/netscape_api//// -D/src//// -D/test//// +D diff -Naur /home/olabomba/blender/source/gameengine/GamePlayer/netscape/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/gameengine/GamePlayer/netscape/CVS/Entries.Log --- /home/olabomba/blender/source/gameengine/GamePlayer/netscape/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/gameengine/GamePlayer/netscape/CVS/Entries.Log 2006-12-06 21:37:26.000000000 +0100 @@ -0,0 +1,4 @@ +A D/common//// +A D/netscape_api//// +A D/src//// +A D/test//// diff -Naur /home/olabomba/blender/source/gameengine/GamePlayer/netscape/src/CVS/Entries /home/olabomba/blender-propre/blender/source/gameengine/GamePlayer/netscape/src/CVS/Entries --- /home/olabomba/blender/source/gameengine/GamePlayer/netscape/src/CVS/Entries 2006-12-04 19:26:22.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/gameengine/GamePlayer/netscape/src/CVS/Entries 2006-12-06 21:37:26.000000000 +0100 @@ -22,5 +22,4 @@ /resource.h/1.6/Mon Mar 22 22:01:46 2004// /stubs.c/1.4/Mon Mar 22 22:01:46 2004// /winstubs.cpp/1.4/Mon Mar 22 22:01:46 2004// -D/ketsji//// -D/xpcom//// +D diff -Naur /home/olabomba/blender/source/gameengine/GamePlayer/netscape/src/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/gameengine/GamePlayer/netscape/src/CVS/Entries.Log --- /home/olabomba/blender/source/gameengine/GamePlayer/netscape/src/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/gameengine/GamePlayer/netscape/src/CVS/Entries.Log 2006-12-06 21:37:26.000000000 +0100 @@ -0,0 +1,2 @@ +A D/ketsji//// +A D/xpcom//// diff -Naur /home/olabomba/blender/source/gameengine/GamePlayer/netscape/test/CVS/Entries /home/olabomba/blender-propre/blender/source/gameengine/GamePlayer/netscape/test/CVS/Entries --- /home/olabomba/blender/source/gameengine/GamePlayer/netscape/test/CVS/Entries 2006-12-04 19:26:22.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/gameengine/GamePlayer/netscape/test/CVS/Entries 2006-12-06 21:37:26.000000000 +0100 @@ -1,6 +1,2 @@ /Makefile/1.3/Mon Mar 22 22:01:49 2004// -D/colorcycle//// -D/gears//// -D/resource//// -D/stub//// -D/threaded_gears//// +D diff -Naur /home/olabomba/blender/source/gameengine/GamePlayer/netscape/test/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/gameengine/GamePlayer/netscape/test/CVS/Entries.Log --- /home/olabomba/blender/source/gameengine/GamePlayer/netscape/test/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/gameengine/GamePlayer/netscape/test/CVS/Entries.Log 2006-12-06 21:37:26.000000000 +0100 @@ -0,0 +1,5 @@ +A D/colorcycle//// +A D/gears//// +A D/resource//// +A D/stub//// +A D/threaded_gears//// diff -Naur /home/olabomba/blender/source/gameengine/Ketsji/CVS/Entries /home/olabomba/blender-propre/blender/source/gameengine/Ketsji/CVS/Entries --- /home/olabomba/blender/source/gameengine/Ketsji/CVS/Entries 2006-12-04 19:26:26.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/gameengine/Ketsji/CVS/Entries 2006-12-06 21:37:27.000000000 +0100 @@ -24,6 +24,7 @@ /KX_ConstraintWrapper.cpp/1.5/Sun May 16 13:05:15 2004// /KX_ConstraintWrapper.h/1.7/Sun May 16 13:05:15 2004// /KX_ConvertPhysicsObject.h/1.21/Fri Dec 1 01:04:27 2006// +/KX_ConvertPhysicsObjects.cpp/1.47/Mon Dec 4 04:31:34 2006// /KX_EmptyObject.cpp/1.5/Sat Dec 31 07:20:08 2005// /KX_EmptyObject.h/1.7/Sat Dec 31 07:20:08 2005// /KX_GameActuator.cpp/1.9/Wed Mar 9 19:45:59 2005// @@ -51,9 +52,11 @@ /KX_MaterialIpoController.h/1.1/Fri Jan 6 03:46:53 2006// /KX_MeshProxy.cpp/1.12/Sun Apr 2 21:04:20 2006// /KX_MeshProxy.h/1.9/Sun Apr 2 21:04:20 2006// +/KX_MotionState.cpp/1.7/Mon Dec 4 04:13:33 2006// /KX_MotionState.h/1.6/Mon Mar 22 22:01:52 2004// /KX_MouseFocusSensor.cpp/1.17/Wed Aug 17 19:52:56 2005// /KX_MouseFocusSensor.h/1.12/Wed Sep 14 21:50:37 2005// +/KX_NearSensor.cpp/1.14/Mon Dec 4 04:13:33 2006// /KX_NearSensor.h/1.9/Fri Mar 25 10:33:37 2005// /KX_ObColorIpoSGController.cpp/1.5/Mon Nov 28 06:51:53 2005// /KX_ObColorIpoSGController.h/1.6/Mon Mar 22 22:01:52 2004// @@ -77,6 +80,7 @@ /KX_PyMath.h/1.6/Wed Mar 9 19:45:59 2005// /KX_PythonInit.cpp/1.24/Thu Jul 6 07:58:07 2006// /KX_PythonInit.h/1.9/Sat May 13 23:31:36 2006// +/KX_RadarSensor.cpp/1.10/Mon Dec 4 04:13:33 2006// /KX_RadarSensor.h/1.9/Fri Mar 25 10:33:37 2005// /KX_RayCast.cpp/1.3/Fri Aug 5 17:00:31 2005// /KX_RayCast.h/1.1/Fri Mar 25 10:33:37 2005// @@ -112,6 +116,7 @@ /KX_TimeLogger.h/1.6/Mon Mar 22 22:01:53 2004// /KX_TouchEventManager.cpp/1.9/Sat Jun 4 16:22:50 2005// /KX_TouchEventManager.h/1.11/Fri Mar 25 10:33:37 2005// +/KX_TouchSensor.cpp/1.13/Mon Dec 4 04:13:33 2006// /KX_TouchSensor.h/1.9/Fri Mar 25 10:33:37 2005// /KX_TrackToActuator.cpp/1.10/Tue Aug 23 13:16:02 2005// /KX_TrackToActuator.h/1.8/Sat Oct 16 11:41:49 2004// @@ -127,9 +132,4 @@ /KX_WorldIpoController.h/1.5/Mon Mar 22 22:01:53 2004// /Makefile/1.17/Wed Nov 22 19:05:35 2006// /SConscript/1.20/Mon Jun 5 15:52:26 2006// -D/KXNetwork//// -/KX_ConvertPhysicsObjects.cpp/1.47/Mon Dec 4 18:26:26 2006// -/KX_MotionState.cpp/1.7/Mon Dec 4 18:26:26 2006// -/KX_NearSensor.cpp/1.14/Mon Dec 4 18:26:26 2006// -/KX_RadarSensor.cpp/1.10/Mon Dec 4 18:26:26 2006// -/KX_TouchSensor.cpp/1.13/Mon Dec 4 18:26:26 2006// +D diff -Naur /home/olabomba/blender/source/gameengine/Ketsji/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/gameengine/Ketsji/CVS/Entries.Log --- /home/olabomba/blender/source/gameengine/Ketsji/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/gameengine/Ketsji/CVS/Entries.Log 2006-12-06 21:37:27.000000000 +0100 @@ -0,0 +1 @@ +A D/KXNetwork//// diff -Naur /home/olabomba/blender/source/gameengine/Network/CVS/Entries /home/olabomba/blender-propre/blender/source/gameengine/Network/CVS/Entries --- /home/olabomba/blender/source/gameengine/Network/CVS/Entries 2006-12-04 19:26:22.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/gameengine/Network/CVS/Entries 2006-12-06 21:37:27.000000000 +0100 @@ -8,5 +8,4 @@ /NG_NetworkScene.cpp/1.6/Fri Mar 25 10:33:38 2005// /NG_NetworkScene.h/1.7/Sat Oct 16 11:41:49 2004// /SConscript/1.8/Tue Feb 7 21:24:35 2006// -D/LoopBackNetwork//// -D/TerraplayNetwork//// +D diff -Naur /home/olabomba/blender/source/gameengine/Network/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/gameengine/Network/CVS/Entries.Log --- /home/olabomba/blender/source/gameengine/Network/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/gameengine/Network/CVS/Entries.Log 2006-12-06 21:37:27.000000000 +0100 @@ -0,0 +1,2 @@ +A D/LoopBackNetwork//// +A D/TerraplayNetwork//// diff -Naur /home/olabomba/blender/source/gameengine/Physics/Bullet/CVS/Entries /home/olabomba/blender-propre/blender/source/gameengine/Physics/Bullet/CVS/Entries --- /home/olabomba/blender/source/gameengine/Physics/Bullet/CVS/Entries 2006-12-04 19:26:26.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/gameengine/Physics/Bullet/CVS/Entries 2006-12-06 21:37:27.000000000 +0100 @@ -1,8 +1,8 @@ /CMakeLists.txt/1.2/Tue Nov 21 06:37:01 2006// +/CcdPhysicsController.cpp/1.31/Mon Dec 4 04:13:42 2006// /CcdPhysicsController.h/1.19/Tue Nov 21 00:53:37 2006// +/CcdPhysicsEnvironment.cpp/1.57/Mon Dec 4 04:13:42 2006// /CcdPhysicsEnvironment.h/1.21/Sat Dec 2 03:48:35 2006// /Makefile/1.2/Wed Nov 22 19:05:35 2006// /SConscript/1.3/Tue Feb 7 21:24:35 2006// -/CcdPhysicsController.cpp/1.31/Mon Dec 4 18:26:26 2006// -/CcdPhysicsEnvironment.cpp/1.57/Mon Dec 4 18:26:26 2006// D diff -Naur /home/olabomba/blender/source/gameengine/Physics/CVS/Entries /home/olabomba/blender-propre/blender/source/gameengine/Physics/CVS/Entries --- /home/olabomba/blender/source/gameengine/Physics/CVS/Entries 2006-12-04 21:56:55.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/gameengine/Physics/CVS/Entries 2006-12-06 21:37:27.000000000 +0100 @@ -1,6 +1,2 @@ /Makefile/1.13/Sun Oct 23 17:55:19 2005// -D/BlOde//// -D/Bullet//// -D/Dummy//// -D/Sumo//// -D/common//// +D diff -Naur /home/olabomba/blender/source/gameengine/Physics/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/gameengine/Physics/CVS/Entries.Log --- /home/olabomba/blender/source/gameengine/Physics/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/gameengine/Physics/CVS/Entries.Log 2006-12-06 21:37:27.000000000 +0100 @@ -0,0 +1,6 @@ +A D/BlOde//// +A D/Bullet//// +A D/Dummy//// +A D/PythonBinding//// +A D/Sumo//// +A D/common//// diff -Naur /home/olabomba/blender/source/gameengine/Physics/PythonBinding/CVS/Entries /home/olabomba/blender-propre/blender/source/gameengine/Physics/PythonBinding/CVS/Entries --- /home/olabomba/blender/source/gameengine/Physics/PythonBinding/CVS/Entries 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/gameengine/Physics/PythonBinding/CVS/Entries 2006-12-06 21:37:27.000000000 +0100 @@ -0,0 +1 @@ +D diff -Naur /home/olabomba/blender/source/gameengine/Physics/PythonBinding/CVS/Repository /home/olabomba/blender-propre/blender/source/gameengine/Physics/PythonBinding/CVS/Repository --- /home/olabomba/blender/source/gameengine/Physics/PythonBinding/CVS/Repository 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/gameengine/Physics/PythonBinding/CVS/Repository 2006-12-06 21:37:27.000000000 +0100 @@ -0,0 +1 @@ +blender/source/gameengine/Physics/PythonBinding diff -Naur /home/olabomba/blender/source/gameengine/Physics/PythonBinding/CVS/Root /home/olabomba/blender-propre/blender/source/gameengine/Physics/PythonBinding/CVS/Root --- /home/olabomba/blender/source/gameengine/Physics/PythonBinding/CVS/Root 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/gameengine/Physics/PythonBinding/CVS/Root 2006-12-06 21:37:27.000000000 +0100 @@ -0,0 +1 @@ +:pserver:anonymous@cvs.blender.org:/cvsroot/bf-blender diff -Naur /home/olabomba/blender/source/gameengine/Physics/Sumo/CVS/Entries /home/olabomba/blender-propre/blender/source/gameengine/Physics/Sumo/CVS/Entries --- /home/olabomba/blender/source/gameengine/Physics/Sumo/CVS/Entries 2006-12-04 19:26:22.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/gameengine/Physics/Sumo/CVS/Entries 2006-12-06 21:37:27.000000000 +0100 @@ -8,5 +8,4 @@ /SumoPhysicsEnvironment.cpp/1.15/Sun Jan 15 11:34:55 2006// /SumoPhysicsEnvironment.h/1.16/Sat Dec 2 03:48:36 2006// /convert.txt/1.1.1.1/Sat Oct 12 11:37:46 2002// -D/Fuzzics//// -D/include//// +D diff -Naur /home/olabomba/blender/source/gameengine/Physics/Sumo/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/gameengine/Physics/Sumo/CVS/Entries.Log --- /home/olabomba/blender/source/gameengine/Physics/Sumo/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/gameengine/Physics/Sumo/CVS/Entries.Log 2006-12-06 21:37:27.000000000 +0100 @@ -0,0 +1,2 @@ +A D/Fuzzics//// +A D/include//// diff -Naur /home/olabomba/blender/source/gameengine/Physics/Sumo/Fuzzics/CVS/Entries /home/olabomba/blender-propre/blender/source/gameengine/Physics/Sumo/Fuzzics/CVS/Entries --- /home/olabomba/blender/source/gameengine/Physics/Sumo/Fuzzics/CVS/Entries 2006-12-04 19:26:22.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/gameengine/Physics/Sumo/Fuzzics/CVS/Entries 2006-12-06 21:37:27.000000000 +0100 @@ -1,4 +1,2 @@ /Makefile/1.3/Sat Apr 9 22:40:34 2005// -D/include//// -D/sample//// -D/src//// +D diff -Naur /home/olabomba/blender/source/gameengine/Physics/Sumo/Fuzzics/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/gameengine/Physics/Sumo/Fuzzics/CVS/Entries.Log --- /home/olabomba/blender/source/gameengine/Physics/Sumo/Fuzzics/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/gameengine/Physics/Sumo/Fuzzics/CVS/Entries.Log 2006-12-06 21:37:27.000000000 +0100 @@ -0,0 +1,3 @@ +A D/include//// +A D/sample//// +A D/src//// diff -Naur /home/olabomba/blender/source/gameengine/Rasterizer/CVS/Entries /home/olabomba/blender-propre/blender/source/gameengine/Rasterizer/CVS/Entries --- /home/olabomba/blender/source/gameengine/Rasterizer/CVS/Entries 2006-12-04 19:26:22.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/gameengine/Rasterizer/CVS/Entries 2006-12-06 21:37:28.000000000 +0100 @@ -26,4 +26,4 @@ /RAS_TexVert.h/1.12/Mon Feb 13 05:45:31 2006// /RAS_texmatrix.cpp/1.4/Mon Mar 22 22:02:13 2004// /SConscript/1.8/Tue Feb 7 21:24:36 2006// -D/RAS_OpenGLRasterizer//// +D diff -Naur /home/olabomba/blender/source/gameengine/Rasterizer/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/gameengine/Rasterizer/CVS/Entries.Log --- /home/olabomba/blender/source/gameengine/Rasterizer/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/gameengine/Rasterizer/CVS/Entries.Log 2006-12-06 21:37:28.000000000 +0100 @@ -0,0 +1 @@ +A D/RAS_OpenGLRasterizer//// diff -Naur /home/olabomba/blender/source/kernel/CVS/Entries /home/olabomba/blender-propre/blender/source/kernel/CVS/Entries --- /home/olabomba/blender/source/kernel/CVS/Entries 2006-12-04 19:26:22.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/kernel/CVS/Entries 2006-12-06 21:37:29.000000000 +0100 @@ -1,5 +1,4 @@ /CMakeLists.txt/1.1/Fri Nov 17 02:27:12 2006// /Makefile/1.4/Mon Jan 5 00:06:11 2004// /SConscript/1.6/Tue Feb 7 21:24:36 2006// -D/gen_messaging//// -D/gen_system//// +D diff -Naur /home/olabomba/blender/source/kernel/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/kernel/CVS/Entries.Log --- /home/olabomba/blender/source/kernel/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/kernel/CVS/Entries.Log 2006-12-06 21:37:29.000000000 +0100 @@ -0,0 +1,2 @@ +A D/gen_messaging//// +A D/gen_system//// diff -Naur /home/olabomba/blender/source/kernel/gen_messaging/CVS/Entries /home/olabomba/blender-propre/blender/source/kernel/gen_messaging/CVS/Entries --- /home/olabomba/blender/source/kernel/gen_messaging/CVS/Entries 2006-12-04 19:26:22.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/kernel/gen_messaging/CVS/Entries 2006-12-06 21:37:29.000000000 +0100 @@ -1,3 +1,3 @@ /GEN_messaging.h/1.5/Fri Dec 27 13:11:00 2002// /Makefile/1.2/Sun Oct 13 15:57:17 2002// -D/intern//// +D diff -Naur /home/olabomba/blender/source/kernel/gen_messaging/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/kernel/gen_messaging/CVS/Entries.Log --- /home/olabomba/blender/source/kernel/gen_messaging/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/kernel/gen_messaging/CVS/Entries.Log 2006-12-06 21:37:29.000000000 +0100 @@ -0,0 +1 @@ +A D/intern//// diff -Naur /home/olabomba/blender/source/tools/CVS/Entries /home/olabomba/blender-propre/blender/source/tools/CVS/Entries --- /home/olabomba/blender/source/tools/CVS/Entries 2006-12-04 21:56:55.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/tools/CVS/Entries 2006-12-06 21:37:29.000000000 +0100 @@ -2,7 +2,4 @@ /to_dos/1.1.1.1/Sat Oct 12 11:37:48 2002// /to_unix/1.1.1.1/Sat Oct 12 11:37:48 2002// /wrap.pl/1.2/Tue Jan 14 21:41:03 2003// -D/cygwin//// -D/darwin//// -D/guess//// -D/hmake//// +D diff -Naur /home/olabomba/blender/source/tools/CVS/Entries.Log /home/olabomba/blender-propre/blender/source/tools/CVS/Entries.Log --- /home/olabomba/blender/source/tools/CVS/Entries.Log 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/tools/CVS/Entries.Log 2006-12-06 21:37:29.000000000 +0100 @@ -0,0 +1,6 @@ +A D/cvs-tools//// +A D/cygwin//// +A D/darwin//// +A D/guess//// +A D/hmake//// +A D/tinderbox//// diff -Naur /home/olabomba/blender/source/tools/cvs-tools/CVS/Entries /home/olabomba/blender-propre/blender/source/tools/cvs-tools/CVS/Entries --- /home/olabomba/blender/source/tools/cvs-tools/CVS/Entries 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/tools/cvs-tools/CVS/Entries 2006-12-06 21:37:29.000000000 +0100 @@ -0,0 +1 @@ +D diff -Naur /home/olabomba/blender/source/tools/cvs-tools/CVS/Repository /home/olabomba/blender-propre/blender/source/tools/cvs-tools/CVS/Repository --- /home/olabomba/blender/source/tools/cvs-tools/CVS/Repository 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/tools/cvs-tools/CVS/Repository 2006-12-06 21:37:29.000000000 +0100 @@ -0,0 +1 @@ +blender/source/tools/cvs-tools diff -Naur /home/olabomba/blender/source/tools/cvs-tools/CVS/Root /home/olabomba/blender-propre/blender/source/tools/cvs-tools/CVS/Root --- /home/olabomba/blender/source/tools/cvs-tools/CVS/Root 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/tools/cvs-tools/CVS/Root 2006-12-06 21:37:29.000000000 +0100 @@ -0,0 +1 @@ +:pserver:anonymous@cvs.blender.org:/cvsroot/bf-blender diff -Naur /home/olabomba/blender/source/tools/tinderbox/CVS/Entries /home/olabomba/blender-propre/blender/source/tools/tinderbox/CVS/Entries --- /home/olabomba/blender/source/tools/tinderbox/CVS/Entries 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/tools/tinderbox/CVS/Entries 2006-12-06 21:37:29.000000000 +0100 @@ -0,0 +1 @@ +D diff -Naur /home/olabomba/blender/source/tools/tinderbox/CVS/Repository /home/olabomba/blender-propre/blender/source/tools/tinderbox/CVS/Repository --- /home/olabomba/blender/source/tools/tinderbox/CVS/Repository 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/tools/tinderbox/CVS/Repository 2006-12-06 21:37:29.000000000 +0100 @@ -0,0 +1 @@ +blender/source/tools/tinderbox diff -Naur /home/olabomba/blender/source/tools/tinderbox/CVS/Root /home/olabomba/blender-propre/blender/source/tools/tinderbox/CVS/Root --- /home/olabomba/blender/source/tools/tinderbox/CVS/Root 1970-01-01 01:00:00.000000000 +0100 +++ /home/olabomba/blender-propre/blender/source/tools/tinderbox/CVS/Root 2006-12-06 21:37:29.000000000 +0100 @@ -0,0 +1 @@ +:pserver:anonymous@cvs.blender.org:/cvsroot/bf-blender