[PD] how to capture window-related mouse-events when toxy isdiscontinued?

Hans-Christoph Steiner hans at at.or.at
Mon Nov 7 17:21:00 CET 2011


That is true, it is an easier change from the point of view of updating GUI externals.

I think we should really be looking at the whole GUI object API as a whole and redoing it so that Tcl handles a lot more of the stuff it does really easily.  Things like handling cursor changes, mouse motion and clicks, tagging and moving, etc.  This would inevitably mean a new API for writing GUI objects.  My work towards this goal is in tkwidgets and the filterview object, its far from complete, but a solid start, here's the code:

https://github.com/pd-projects/filterview
https://github.com/pd-projects/tkwidgets  (specifically the 'newentry' branch).

.hc

On Nov 5, 2011, at 11:53 AM, Ivica Ico Bukvic wrote:

> The problem with the approach you suggested is that tcl would have to be aware of all unique redrawing properties of individual objects and externals that may require custom drawing commands. While not impossible, it would require at the very least requiring of all gui-based externals. OTOH, my approach only requires a recompile and I'd rather pick that over the alternative.
> 
> Ivica Ico Bukvic, D.M.A
> Composition, Music Technology
> Director, DISIS Interactive Sound & Intermedia Studio
> Director, L2Ork Linux Laptop Orchestra
> Assistant Director, CCTAD
> Virginia Tech
> Department of Music
> Blacksburg, VA 24061-0240
> (540) 231-6139
> (540) 231-5034 (fax)
> disis.music.vt.edu
> l2ork.music.vt.edu
> ico.bukvic.net
> 
> Hans-Christoph Steiner <hans at at.or.at> wrote:
> 
> The problem with changing t_widgetbehavior is that it breaks binary compatibililty, I think.  That makes it a pain to manage the transition.  Personally, I think it'd be worthwhile to use the struct as it.  Or really, I'd like to see bigger changes to offload more stuff to the GUI, like mouse motion and click handling, resizing, etc.  For a resize of an object, 'pd' only needs to know about it once its done, not while its happening.
> 
> .hc
> 
> On Nov 4, 2011, at 11:36 PM, Ivica Ico Bukvic wrote:
> 
> > Because after studying the code it looked like a difficult thing to pull off. This is because the regular displacefn is used for initial posting of objects which is absolute in nature while displacewithtag is relative, so the two don’t play very nice.
> >  
> > HTH
> >  
> > Ico
> >  
> > From: Hans-Christoph Steiner
> [mailto:hans at at.or.at] 
> > Sent: Friday, November 04, 2011 6:26 PM
> > To: Ivica Ico Bukvic
> > Cc: pd-list at iem.at
> > Subject: Re: [PD] how to capture window-related mouse-events when toxy isdiscontinued?
> >  
> >  
> > Hey Ico,
> >  
> > What not just use the displacefn to do the move with tags?  Then we wouldn't need to change that core struct.
> >  
> > .hc
> >  
> > Ivica Ico Bukvic <ico at vt.edu> wrote:
> > The said changes are in pre-git tarballs. I think they are also listed in the changelog under a specific date which should make things a bit easier to isolate. That said, implementation alters widgetbehavior struct by adding one more entry and as such it breaks compatibility with gridflow unless recompiled from scratch using the new .h file. Even then there might be other incompatibilities. That said, I've encountered none, other than gridflow. Of course, other externals need t!
>  o be
> recompiled as well (but no changes to their source are required).
> > 
> > HTH
> > 
> > Best wishes,
> > 
> > Ico
> > 
> > Ivica Ico Bukvic, D.M.A
> > Composition, Music Technology
> > Director, DISIS Interactive Sound & Intermedia Studio
> > Director, L2Ork Linux Laptop Orchestra
> > Assistant Director, CCTAD
> > Virginia Tech
> > Department of Music
> > Blacksburg, VA 24061-0240
> > (540) 231-6139
> > (540) 231-5034 (fax)
> > disis.music.vt.edu
> > l2ork.music.vt.edu
> > ico.bukvic.net
> > 
> > Hans-Christoph Steiner <hans at at.or.at> wrote:
> >  
> > Hey Ico,
> >  
> > That's great, we need to do a lot more of that.  Can you point me to where these changes are so I can check them out?
> >  > .hc
> >  
> > On Nov 3, 2011, at 2:44 PM, Ivica Ico Bukvic wrote:
> > 
> > 
> > Indeed, pd-l2ork moves entire selection by tag, so instead of redrawing everything, out issues single tcl/tk command. The only thing that still redrawed every time when displaced is gop-enabled patcher.
> > 
> > Ivica Ico Bukvic, D.M.A
> > Composition, Music Technology
> > Director, DISIS Interactive Sound & Intermedia Studio
> > Director, L2Ork Linux Laptop Orchestra
> > Assistant Director, CCTAD
> > Virginia Tech
> > Department of Music
> > Blacksburg, VA 24061-0240
> > (540) 231-6139
> > (540) 231-5034 (fax)
> > disis.music.vt.edu
> > l2ork.music.vt.edu
> > ico.bukvic.net
> > 
> > Jonathan Wilkes <jancsika at yahoo.com> wrote:
> > I bel!
>  ieve
> Ivica made such a modification in Pd-l2ork-- whatever the case, moving many iemguis in 
> > 
> > Pd-l2ork is much snappier than in Vanilla or Pd-extended.  But I haven't measured the cpu load.
> > 
> > 
> > 
> > -Jonathan
> > 
> > 
> > 
> > 
> > 
> > ----- Original Message -----
> > 
> > > From: Hans-Christoph Steiner <hans at at.or.at>
> > 
> > > To: João Pais <jmmmpais at googlemail.com>
> > 
> > > Cc: katja <katjavetter at gmail.com>; "pd-list at iem.at" <pd-list at iem.at>; Jonathan Wilkes <jancsika at yahoo.com>
> > 
> > > Sent: Thursday, November 3, 2011 11:07 AM
> > 
> > > Subject: Re: [PD] how to capture window-related mouse-events when toxy is discontinued?
> > 
> > > 
> > 
> > > 
> > 
> > > I
> > doubt that Tcl/Tk's drawing code is being overloaded.  Instead!
>  , try
> 
> > 
> > > running "path/to/pd -stderr -d 3" and you'll see that 'pd' 
> > 
> > > is sending 'pd-gui' massive amounts of Tcl code to pa!
> >  rse,
> > compile, and 
> > 
> > > execute.  In the case of a move, this could be accomplished with one line of Tcl 
> > 
> > > to tag everything you want to move, then one move command to let Tcl/Tk do the 
> > 
> > > moving.
> > 
> > > 
> > 
> > > .hc
> > 
> > > 
> > 
> > > On Nov 3, 2011, at 10:31 AM, João Pais wrote:
> > 
> > > 
> > 
> > >>  those spikes is what I was predicting with the graphic overloading of 
> > 
> > > tcl/tk (through data structures, in this case).
> > 
> > >> 
> > 
> > >>  you could also try the following: make the "selectable area" 
> > 
> > > around one corner (or m!
>  iddle)
> of the button: with a tiny bit more resolution, 
> > 
> > > but less points in the template. if you want to keep the squares, it's even 
> > 
> > > better, because it helps you selecting the structs.
> > 
> > >> 
> > 
> > >>  Or one other thing: maybe can the tcl/tk code be changed, so that it 
> > 
> > > doesn't overload that fast? Reduce the redraw rate, or something else? (I 
> > 
> > > h!
> >  ave no
> > idea about tcl/tk)
> > 
> > >> 
> > 
> > >>  Or change the output rate of the struct object? (this might not help much)
> > 
> > >> 
> > 
> > >> 
> > 
> > >>  About the background grid for instant jumps, an implementation of it in run 
> > 
> > > mode is easy. I could try to give an example, but don't have any time for 
> > 
> > > now.
> > > >> 
> > 
> > >> 
> > 
> > >>>  ----- Original Message -----
> > 
> > >>>>  From: katja <katjavetter at gmail.com>
> > 
> > >>>>  To: pd-list at iem.at
> > 
> > >>>>  Cc:
> > 
> > >>>>  Sent: Thursday, November 3, 2011 6:10 AM
> > 
> > >>>>  Subject: Re: [PD] how to capture window-related mouse-events when 
> > 
> > > toxy is discontinued?
> > 
> > >>>> 
> > 
> > >>>>  On Thu, Nov 3, 2011 at 1:30 AM, Jonathan Wilkes 
> > 
> > > <jancsika at yahoo.com>
> > 
> > >>>> 
> > wrote:
> > 
> > >>>> 
> > 
> > >>>>>  How does the cpu usage in my demo!
> >   compare
> > to your patch where 
> > 
> > > you use
> > 
> >
> >>>>>  a radiobutton?
> > 
> > >>>> 
> > 
> > >>>>  Here's a cpu load comparison of objects dragged continuously 
> > 
> > > (on intel
> > 
> > >>>>  mac 2GHz):
> > 
> > >>>> 
> > 
> > >>>>  polygon in movable_box2.pd: 23 %
> > 
> > >>>>  polygon in 07.sequencer.pd (help browser): 16%
> > 
> > >>>>  radiobutton in moving_objects.pd: 12 %
> > 
> > >>>>  regular Pd slider: 13 %
> > 
> > >>>>  2D geo in a gem window: 2.5%
> > 
> > >>> 
> > 
> > >>>  I just got intermittent rises up to 50% on a dual core 64-bit amd with
> > 
> > >>>  all of the above.
> > 
> > >>> 
> > 
> > >>>  I imagine that the cpu load for movable_box2.pd is due t!
>  o the
> number of
> > 
> > >>>  points in the polygon.  I think you could get a 20x20 draggable square 
> > 
> > > with 8 coordinates-- that
> > 
> > >>>  would be equal to the number of p!
> >  oints in
> > a radiobutton so maybe that 
> > 
> > > would get down
> > 
> > >>>  to a corresponding cpu load.
> > 
> > >>> 
> > 
> > >>>  I'll try some tweaks later to see if that works.
> > 
> > >>> 
> > 
> > >>>  -Jonathan
> > 
> > >>> 
> > 
> > >>>> 
> > 
> > >>>>  Your polygon method is plain vanilla Pd and that makes it 
> > 
> > > attractive
> > 
> > >>>>  for a widely shared Pd patch. No risk of broken dependencies. But I 
> > 
> > > am
> > 
> > >>>>  af!
>  raid it
> is too cpu-intensive, particularly on Windows. Thanks for
> > 
> > >>>>  sharing the idea though, it is inspiring.
> > 
> > >>>> 
> > 
> > >>>>  Katja
> > 
> > >>>> 
> > 
> > >>>>
> > 
> > 
> > 
> > 
> > 
> > 
> > >>>>  Pd-list at iem.at mailing list
> > 
> > >>>>  UNSUBSCRIBE and account-management ->
> > 
> > >>>>  http://lists.puredata.info/listinfo/pd-list
> > 
> > >>>>
> > 
> > 
> > >>> 
> > 
> > >>>
> > 
> > 
> > 
> > 
> > 
> > 
> > >>>  Pd-list at iem.at mailing list
> > 
> > >>>  UNSUBSCRIBE and account-management -> 
> > 
> > > http://lists.puredata.info/listinfo/pd-list
> > 
> > >> 
> > 
> > >> 
> > 
> > >>  -- 
> > 
> > >>  Friedenstr. 58
> > 
> > >>  10249 Berlin (Deutschland)
> > 
> > >>  Tel +49 30 42020091 | Mob +49 162 6843570
> > 
> > >>  Studio +49 30 69509190
> > 
> > >>  jmmmpais at googlemail.com | skype: jmmmpjmmmp
> > 
> > >> 
> > 
> > >>
> > 
> > 
> > 
> > 
> > 
> > 
> > >>  Pd-list at iem.at mailing list
> > 
> > >>  UNSUBSCRIBE and account-management -> 
> > 
> > > http://lists.puredata.info/listinfo/pd-list
> > 
> > > 
> > 
> > > 
> > 
> > > 
> > 
> > > 
> >
> 
> > > 
> > 
> > >
> > 
> > 
> > 
> > 
> > 
> > 
> > > 
> > 
> > > 'You people have such restrictive dress for women,’ she
> > said, hobbling away 
> > 
> > > in !
> >  three
> > inch heels and panty hose to finish out another pink-collar temp pool 
> > 
> > > day.  - “Hijab Scene #2", by Mohja Kahf
> > 
> > >
> > 
> > 
> > 
> > 
> > 
> > 
> > Pd-list at iem.at mailing list
> > 
> > UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
> >  
> >  
> >  
> >  
> > 


----------------------------------------------------------------------------

“We must become the change we want to see. - Mahatma Gandhi

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20111107/69eb0d36/attachment-0001.htm>


More information about the Pd-list mailing list