I got the flickering worked out; however the only thing now that is lacking is the wave itself. I know it is drawn in the DrawWave method and then this method calls the redraw method which in turns calls draw again. This is the thing I do not understand, once the canvas is paint with the paint event the only method which is called is drawwave and it is called by the timer. Now why am I not seeing the vertical lolipops representing the values of the samples that are drawn from the middle red line.
A side note is that the display shrinks almost half of the width. This maybe because of a drawpicture parameter in error. But I do not detect this either. any hints on how to troubleshoot this problem of not seeing the wave? Definitely after this is solved, I can post it to the list. thanks to all, luis On 2/17/07, E. Tejkowski <[EMAIL PROTECTED]> wrote: > > On Feb 17, 2007, at 8:58 AM, Luis Cordova wrote: > > > great. I changed the blockmovedata to memmove and set CoreServices > > to point to C:\WINDOWS\system32\crtdll.dll which is the dll that holds > > the memmove function and it works now; I just tried a wav file and it > > looks like it flickers a lot but at least I see the canvas, the wave > > is also being erased as it advances and again lots of flickering, I > > bet this is not the case in a Mac so I would probably have to adjust > > some more parameters. Has anyone seen the same flickering? > > Yes, what everyone else has said… double buffering. Basically you > draw everything to a Picture first and then at the last second you > draw that picture to the canvas. This will stop flicker compared to > drawing each individual thing to the canvas itself. Mac OS X doesn't > have to worry about this because the OS itself has double-buffering > built-in. Mac OS 9, Win32, and Linux(?) require this for no flicker > drawing. Joe Strout once explained this on the list years ago and I > made a flicker free class from his post that I've used ever since. > You can download a copy here. > > http://sonicamigos.com/etejkowski/code/flickerFreeCanvas.zip > > I believe that I started the waveform canvas off with the intention > of it being double buffered for other operating systems, because all > of the elements of the above canvas are included in the waveform > code. Somewhere along the way I must have stopped paying attention to > it, since I was programming on OS X. The problem appears to be in the > Draw function. All of the g.SomeFunction calls are probably what's > causing the problem. They need to be drawing to an "offscreen" > picture object, not to g. Then, you draw that offscreen picture > object to g. If I had a Windows machine handy, I'd help. But I don't, > so it's tough for me to debug. I'm confident it could be fixed with > about 2 minutes of work. Maybe you could post your semi-working > example and some Win32 folks on the list who understand double- > buffering can help tweak it. Sorry that I can't help more. If you get > this fixed, let me know and I'll include the changes in my download > for other's benefit. > > Erick_______________________________________________ > Unsubscribe or switch delivery mode: > <http://www.realsoftware.com/support/listmanager/> > > Search the archives: > <http://support.realsoftware.com/listarchives/lists.html> > -- ------------------------------------------------------- _______________________________________________ Unsubscribe or switch delivery mode: <http://www.realsoftware.com/support/listmanager/> Search the archives: <http://support.realsoftware.com/listarchives/lists.html>
