Thanks for the explanaiton Bing. Any chance we will be able to integrate your code back into the OpenJUMP core? I know a little about the rendering system in JUMP and would be happy to review the code and discuss with others before we commit.
The Sunburned Surveyor On Thu, Apr 9, 2009 at 7:32 PM, Bing Ran <bing_...@hotmail.com> wrote: > You're right. The double buffering provided by swing is too low level. The > back buffer I'm using is bigger than the size of the LayerViewPanel, so that > while moving around with mouse, I immediately see the pre-buffered region > surrounding the current viewport, instead of seeing blank space, very much > similar to panning on Google Map. > > > > -------------------------------------------------- > From: "Sunburned Surveyor" <sunburned.surve...@gmail.com> > Sent: Thursday, April 09, 2009 10:51 PM > To: "OpenJump develop and use" <jump-pilot-devel@lists.sourceforge.net> > Subject: Re: [JPP-Devel] modelToViewTransform > >> Bing and others: >> >> I thought that Swing was already double-buffered, which would make >> this modificaiton unnecessary. Are we double double-buffering? Or does >> the improvement come because Swing is only double-buffering the actual >> LVP envelope, while Bing is developing beyond this envelope? >> >> The Sunburned Surveyor >> >> On Thu, Apr 9, 2009 at 6:09 AM, Larry Becker <becker.la...@gmail.com> >> wrote: >>> Hi Bing, >>> >>> I haven't studied this code for a while, but it seems like the line is >>> moving the origin (top for window coordinate system, bottom for world). >>> >>> regards, >>> Larry >>> >>> 2009/4/9 Bing Ran <bing_...@hotmail.com> >>>> >>>> Hi list, >>>> >>>> Recently I started introducing an image back buffer in the >>>> LayerViewPanel >>>> in my project for the purpose creating a (another) flicker free panning >>>> tool. It was the first thing I was planning to do when I started with >>>> OJ. So >>>> far I have made nice progress. >>>> >>>> Basically I have a back buffer in the LVP that is bigger than the >>>> viewport >>>> and the RenderingManager and all the style renderer only render to the >>>> back >>>> buffer and then the proper portion of the back buffer is copied to the >>>> LVP >>>> graphics. Additionally the back buffer is used as a cache of the >>>> previous >>>> rendering result and the final viewport display uses part of the back >>>> buffer >>>> instead of rendering afresh to reduce flickering. >>>> >>>> The preliminary effect of change is much appreciated by the CSRs in our >>>> call center. >>>> >>>> >>>> I'm still having issues converting geometries correctly and precisely in >>>> the process though. >>>> >>>> >>>> Now that I'm looking at the code of LVP.modelToViewTransform(...) I'm >>>> wondering why this line is there: >>>> >>>> modelToViewTransform.translate(0, panelHeight); >>>> >>>> It seems to me these three lines are sufficient to convert a model point >>>> to a view point. >>>> >>>> modelToViewTransform.scale(1, -1); >>>> modelToViewTransform.scale(scale, scale); >>>> modelToViewTransform.translate(-originInModel.getX(), >>>> -originInModel.getY()); >>>> >>>> or even: >>>> >>>> modelToViewTransform.scale(scale, -scale); >>>> modelToViewTransform.translate(-originInModel.getX(), >>>> -originInModel.getY()); >>>> >>>> >>>> Can someone share insight with this? >>>> >>>> >>>> Thanks >>>> >>>> Bing >>>> >>>> >>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> This SF.net email is sponsored by: >>>> High Quality Requirements in a Collaborative Environment. >>>> Download a free trial of Rational Requirements Composer Now! >>>> http://p.sf.net/sfu/www-ibm-com >>>> _______________________________________________ >>>> Jump-pilot-devel mailing list >>>> Jump-pilot-devel@lists.sourceforge.net >>>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel >>>> >>> >>> >>> >>> -- >>> http://amusingprogrammer.blogspot.com/ >>> >>> ------------------------------------------------------------------------------ >>> This SF.net email is sponsored by: >>> High Quality Requirements in a Collaborative Environment. >>> Download a free trial of Rational Requirements Composer Now! >>> http://p.sf.net/sfu/www-ibm-com >>> _______________________________________________ >>> Jump-pilot-devel mailing list >>> Jump-pilot-devel@lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel >>> >>> >> >> ------------------------------------------------------------------------------ >> This SF.net email is sponsored by: >> High Quality Requirements in a Collaborative Environment. >> Download a free trial of Rational Requirements Composer Now! >> http://p.sf.net/sfu/www-ibm-com >> _______________________________________________ >> Jump-pilot-devel mailing list >> Jump-pilot-devel@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel >> > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by: > High Quality Requirements in a Collaborative Environment. > Download a free trial of Rational Requirements Composer Now! > http://p.sf.net/sfu/www-ibm-com > _______________________________________________ > Jump-pilot-devel mailing list > Jump-pilot-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel > ------------------------------------------------------------------------------ This SF.net email is sponsored by: High Quality Requirements in a Collaborative Environment. Download a free trial of Rational Requirements Composer Now! http://p.sf.net/sfu/www-ibm-com _______________________________________________ Jump-pilot-devel mailing list Jump-pilot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel