[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19423] branches/blender2.5/blender/source /blender: * sequencer transform needs t-> data not to be freed by postTrans so special_aftertrans_update can use it.
Campbell Barton
ideasman42 at gmail.com
Fri Mar 27 07:06:11 CET 2009
Revision: 19423
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19423
Author: campbellbarton
Date: 2009-03-27 07:06:11 +0100 (Fri, 27 Mar 2009)
Log Message:
-----------
* sequencer transform needs t->data not to be freed by postTrans so special_aftertrans_update can use it.
* text header needs a static char* so text is not rendered as gibberish. (until labels own their own strings)
* epy_doc_gen.py - write out a graphviz representation of the data api.
Modified Paths:
--------------
branches/blender2.5/blender/source/blender/editors/space_text/text_header.c
branches/blender2.5/blender/source/blender/editors/transform/transform_conversions.c
branches/blender2.5/blender/source/blender/editors/transform/transform_generics.c
branches/blender2.5/blender/source/blender/python/epy_doc_gen.py
Modified: branches/blender2.5/blender/source/blender/editors/space_text/text_header.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_text/text_header.c 2009-03-27 06:05:49 UTC (rev 19422)
+++ branches/blender2.5/blender/source/blender/editors/space_text/text_header.c 2009-03-27 06:06:11 UTC (rev 19423)
@@ -388,7 +388,8 @@
/* file info */
if(text) {
- char fname[HEADER_PATH_MAX], headtxt[HEADER_PATH_MAX+17];
+ char fname[HEADER_PATH_MAX];
+ static char headtxt[HEADER_PATH_MAX+17];
int len;
if(text->name) {
Modified: branches/blender2.5/blender/source/blender/editors/transform/transform_conversions.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/transform/transform_conversions.c 2009-03-27 06:05:49 UTC (rev 19422)
+++ branches/blender2.5/blender/source/blender/editors/transform/transform_conversions.c 2009-03-27 06:06:11 UTC (rev 19423)
@@ -4386,7 +4386,6 @@
ListBase *seqbasep= ed->seqbasep;
int a;
TransData *td= t->data;
- TransData2D *td2d= t->data2d;
TransDataSeq *tdsq= NULL;
Sequence *seq;
@@ -4398,7 +4397,7 @@
Sequence *seq_prev= NULL;
/* flush to 2d vector from internally used 3d vector */
- for(a=0; a<t->total; a++, td++, td2d++) {
+ for(a=0; a<t->total; a++, td++) {
tdsq= (TransDataSeq *)td->extra;
seq= tdsq->seq;
@@ -4429,7 +4428,8 @@
if (t->customData)
MEM_freeN(t->customData);
-
+ if (t->data)
+ MEM_freeN(t->data); // XXX postTrans useually does this
}
else if (t->spacetype == SPACE_ACTION) {
SpaceAction *saction= (SpaceAction *)t->sa->spacedata.first;
Modified: branches/blender2.5/blender/source/blender/editors/transform/transform_generics.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/transform/transform_generics.c 2009-03-27 06:05:49 UTC (rev 19422)
+++ branches/blender2.5/blender/source/blender/editors/transform/transform_generics.c 2009-03-27 06:06:11 UTC (rev 19423)
@@ -841,7 +841,7 @@
}
/* postTrans can be called when nothing is selected, so data is NULL already */
- if (t->data) {
+ if (t->data && (t->spacetype != SPACE_SEQ)) { // XXX SEQ Exception is needed because of special_aftertrans_update using t->data
int a;
/* since ipokeys are optional on objects, we mallocced them per trans-data */
Modified: branches/blender2.5/blender/source/blender/python/epy_doc_gen.py
===================================================================
--- branches/blender2.5/blender/source/blender/python/epy_doc_gen.py 2009-03-27 06:05:49 UTC (rev 19422)
+++ branches/blender2.5/blender/source/blender/python/epy_doc_gen.py 2009-03-27 06:06:11 UTC (rev 19423)
@@ -246,10 +246,7 @@
for rna_refs in rna_references_dict.values():
rna_refs.sort()
- structs = [data[2] for data in structs]
-
- for rna_struct in structs:
- # print(type(rna_struct))
+ for (rna_base, identifier, rna_struct) in structs:
if rna_struct.nested:
continue
@@ -261,6 +258,70 @@
# # We could also just run....
# os.system('epydoc source/blender/python/doc/rna.py -o ./source/blender/python/doc/html -v')
+
+
+ # Write graphviz
+ out= open(target_path.replace('.py', '.dot'), 'w')
+ out.write('digraph "rna data api" {\n')
+ out.write('\tnode [style=filled, shape = "box"];\n')
+ out.write('\toverlap=false;\n')
+ out.write('\trankdir = LR;\n')
+ out.write('\tsplines=true;\n')
+ out.write('\tratio=auto;\n')
+
+
+
+ out.write('\tsize="10,10"\n')
+ #out.write('\tpage="8.5,11"\n')
+ #out.write('\tcenter=""\n')
+
+ def isop(rna_struct):
+ return '_OT_' in rna_struct.identifier
+
+
+ for (rna_base, identifier, rna_struct) in structs:
+ if isop(rna_struct):
+ continue
+
+ base = rna_struct.base
+
+
+ out.write('\t"%s";\n' % identifier)
+
+ for (rna_base, identifier, rna_struct) in structs:
+
+ if isop(rna_struct):
+ continue
+
+ base = rna_struct.base
+
+ if base and not isop(base):
+ out.write('\t"%s" -> "%s" [label="(base)" weight=1.0];\n' % (base.identifier, identifier))
+
+ nested = rna_struct.nested
+ if nested and not isop(nested):
+ out.write('\t"%s" -> "%s" [label="(nested)" weight=1.0];\n' % (nested.identifier, identifier))
+
+
+
+ rna_refs= rna_references_dict[identifier]
+
+ for rna_ref_string in rna_refs:
+
+ if '_OT_' in rna_ref_string:
+ continue
+
+ ref = rna_ref_string.split('.')[-2]
+ out.write('\t"%s" -> "%s" [label="%s" weight=0.01];\n' % (ref, identifier, rna_ref_string))
+
+
+
+ out.write('}\n')
+ out.close()
+
+ # # We could also just run....
+ # os.system('dot source/blender/python/doc/rna.dot -Tsvg -o ./source/blender/python/doc/rna.svg')
+
def op2epy(target_path):
out = open(target_path, 'w')
More information about the Bf-blender-cvs
mailing list