on 3/3/06 4:45 PM, Joe Huber at [EMAIL PROTECTED] wrote:

> This sounds like it might be related to a bug Apple addressed in a
> recent OSX update.
I am now using 10.4.5.
 
> Have you tried using QuartzDebug to see how the graphic updates are
> actually occurring?
I'm not sure this can help. I see some yellow framing, but they seem to be
occurring at the appropriate times.
 
> Regards,
> Joe Huber

It appears that there are two issues, one that DrawPicture takes too long to
draw and the other is drawing within a method in a canvas ignores all
drawing commands but the last one.

I have filed both of these issues with REALBasic feedback, the former is
http://www.realsoftware.com/feedback/viewreport.php?reportid=oxhzxkmx

And the latter one is
http://www.realsoftware.com/feedback/viewreport.php?reportid=wjumkzek
 
>> To answer the questions:
>> 
>>>  I don't know.  There really does not seem to be enough information,
>>>  like what platform are you building the project for?  From your email
>>>  it looks like OS X, but I don't understand why you would get any
>>>  flicker running under OS X.
>> It is indeed OS X.
>> 
>>>  Do you have the Window.Composite property True or False?
>> False.
>> 
>>>  I guess your paint event code does something that triggers another paint
>> There is no "paint" event code. The drawing takes place in a canvas method
>> called only by the timer's action method.
>> 
>>>  event.  My solution was to define a variable "Painting"
>>> 
>>>  In the paint event say "If not painting then -- call code to paint window
>>> 
>>>  In the actual painting code the first line would be  Painting = True
>>>  Last line is  Painting = false
>> I added that to the drawing code and it had no effect.
>> 
>> 
>> I decided to take a digital camera and make a movie of the flicker. This led
>> to an interesting insight. The new picture is drawn (via DrawPicture)
>> directly over the old one starting from the top of the canvas and
>> progressing to the bottom. First, the top third of the screen is overdrawn,
>> then the second third and finally the last third. All the while, the
>> previous "frame" is still there. So the flicker I'm seeing is actually the
>> intersection of the leading edge of the new DrawPicture and the tail end of
>> what's left from the previous DrawPicture. This intersection that occurs
>> twice first between the first and second third and then again between second
>> and last thirds every time the picture is drawn is what I have been calling
>> the "flicker".
>> 
>> 
>> I made a simple project that demonstrates additional weirdness. Simple
>> window, canvas and timer. Timer fires with a period of 50 and calls the
>> canvas' method to draw itself. This code says, where me is the canvas,
>> 
>> me.graphics.ForeColor = RGB( 20, 80, 160 ) // BLUE
>> me.graphics.FillRect(0,0,me.graphics.width,me.graphics.height)
>> //me.graphics.ClearRect(0,0,me.graphics.width,me.graphics.height)
>> me.graphics.ForeColor = RGB( 160, 80, 20 ) // ORANGE
>> me.graphics.FillRect(0,0,me.graphics.width,me.graphics.height)
>> 
>> I expect to see a repeating loop displaying a blue swatch followed
>> immediately by an orange swatch. I see only orange. Blue never gets drawn. I
>> tried adding a ClearRect call between the two, but it is also ignored.
>> 
>> Is this expected behavior?


_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>

Search the archives of this list here:
<http://support.realsoftware.com/listarchives/lists.html>

Reply via email to