[PD-cvs] pd/src desire.c,1.1.2.146,1.1.2.147

Mathieu Bouchard matju at users.sourceforge.net
Mon Sep 4 04:01:15 CEST 2006


Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15890

Modified Files:
      Tag: devel_0_39
	desire.c 
Log Message:
added canvas_savecoordsto


Index: desire.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/desire.c,v
retrieving revision 1.1.2.146
retrieving revision 1.1.2.147
diff -C2 -d -r1.1.2.146 -r1.1.2.147
*** desire.c	3 Sep 2006 06:01:00 -0000	1.1.2.146
--- desire.c	4 Sep 2006 02:01:12 -0000	1.1.2.147
***************
*** 3602,3605 ****
--- 3602,3621 ----
  }
  
+ static void canvas_savecoordsto(t_canvas *x, t_binbuf *b) {
+     /* unless everything is the default (as in ordinary subpatches)
+        print out a "coords" message to set up the coordinate systems */
+     /*if (!x->gl_isgraph && x->gl_x1==0 && x->gl_y1==0 &&
+         x->gl_x2==1 && x->gl_y2==1 && x->gl_pixwidth==0 && x->gl_pixheight==0) return;*/
+ 
+     /* if we have a graph-on-parent rectangle, we're new style. The format is arranged so
+        that old versions of Pd can at least do something with it.
+        otherwise write in 0.38-compatible form. */
+     binbuf_addv(b, "ssfffffff", gensym("#X"), gensym("coords"),
+ 	x->gl_x1, x->gl_y1, x->gl_x2, x->gl_y2, (float)x->gl_pixwidth, (float)x->gl_pixheight,
+ 	x->gl_isgraph);
+     if (x->gl_goprect) binbuf_addv(b, "ff", (float)x->gl_xmargin, (float)x->gl_ymargin);
+     binbuf_addv(b,";");
+ }
+ 
  static void canvas_saveto(t_canvas *x, t_binbuf *b) {
      t_gobj *y;
***************
*** 3608,3641 ****
      canvas_savecontainerto(x,b);
      glist_each(y,x) gobj_save(y, b);
- 
      linetraverser_start(&t, x);
      while ((oc = linetraverser_next(&t))) {
!         int srcno = canvas_getindex(x, &t.tr_ob->ob_g);
!         int sinkno = canvas_getindex(x, &t.tr_ob2->ob_g);
!         binbuf_addv(b, "ssiiii;", gensym("#X"), gensym("connect"),
!             srcno, t.tr_outno, sinkno, t.tr_inno);
  	appendix_save((t_gobj *)oc,b);
      }
!         /* unless everything is the default (as in ordinary subpatches)
!         print out a "coords" message to set up the coordinate systems */
!     if (x->gl_isgraph || x->gl_x1 || x->gl_y1 ||
!         x->gl_x2 != 1 ||  x->gl_y2 != 1 || x->gl_pixwidth || x->gl_pixheight)
!     {
!         if (x->gl_isgraph && x->gl_goprect)
!                 /* if we have a graph-on-parent rectangle, we're new style.
!                 The format is arranged so
!                 that old versions of Pd can at least do something with it. */
!             binbuf_addv(b, "ssfffffffff;", gensym("#X"), gensym("coords"),
!                 x->gl_x1, x->gl_y1,
!                 x->gl_x2, x->gl_y2,
!                 (float)x->gl_pixwidth, (float)x->gl_pixheight,
!                 1., (float)x->gl_xmargin, (float)x->gl_ymargin); 
!                     /* otherwise write in 0.38-compatible form */
!         else binbuf_addv(b, "ssfffffff;", gensym("#X"), gensym("coords"),
!                 x->gl_x1, x->gl_y1,
!                 x->gl_x2, x->gl_y2,
!                 (float)x->gl_pixwidth, (float)x->gl_pixheight,
!                 (float)x->gl_isgraph);
!     }
  }
  
--- 3624,3635 ----
      canvas_savecontainerto(x,b);
      glist_each(y,x) gobj_save(y, b);
      linetraverser_start(&t, x);
      while ((oc = linetraverser_next(&t))) {
!         int from = canvas_getindex(x, &t.tr_ob->ob_g);
!         int to   = canvas_getindex(x, &t.tr_ob2->ob_g);
!         binbuf_addv(b, "ssiiii;", gensym("#X"), gensym("connect"), from, t.tr_outno, to, t.tr_inno);
  	appendix_save((t_gobj *)oc,b);
      }
!     canvas_savecoordsto(x,b);
  }
  
***************
*** 7719,7722 ****
--- 7713,7717 ----
  		/* just the "#N canvas" line, not the contents */
  		canvas_savecontainerto((t_canvas *)self,b);
+ 		canvas_savecoordsto((t_canvas *)self,b); /* this may be too early */
  		binbuf_addv(b, "ssii", gensym("#X"), gensym("restore"),
  	    	    	(t_int)x->te_xpix, (t_int)x->te_ypix);





More information about the Pd-cvs mailing list