On Wednesday, July 23, 2003, at 03:04 PM, Joseph J. Strout wrote:
At 1:52 PM -0400 7/23/03, Frank C wrote:
Well, no, we've discussed how you can choose when to yield to
background tasks. You're just not satisfied with the result,
because when you do yield, it (not surprisingly) causes a glitch in
the framerate.
That's my point! You're yielding on RB's terms.
I'm not sure what that means. You're choosing when to yield. What
more do you want?
I can write a loop in C that yields just fine, without that hiccup.
That'd be because your C program isn't doing all the stuff that RB is
doing (checking to see if timers need firing, servicing other threads,
checking whether command-period has been pressed, etc.).
I can't claim to know what RB is doing in it's loop, but the fact that
these stutters only appear in Carbon and that you've said RB uses a
wait of 1 in Carbon leads me to the conclusion that the wait time is
the problem. Try running my Mouse Events example in Carbon without the
"busyThread" hack - RB's Carbon update cycle is pathetically slow - it
should dispatch an event when it gets one, or move along quickly on
null events (I haven't got a clue what's it's doing right now, other
than blocking the app for no good reason).
Bottom line: I can do _plenty_ in a C event loop and still have a
responsive system, fully responsive GUI, AND fast, smooth animation. I
can't do that in RB. We keep analyzing, benchmarking, profiling and
graphing the problem, but I think you're overlooking the obvious
culprit; a sleepy WNE loop. I'll be quite happy to be proven wrong on
this, as long as the real problem is addressed.
To tell you the truth, we've argued this point to death and I'm at the
point were I could care less where the problem lies. If you guys can
fix the issue, great, if you can't fix it, or won't to acknowledge that
it _is_ an issue, just say so and I'll move on.
Frank.
---
A searchable archive of this list is available at:
<http://support.realsoftware.com/listarchives/search.php>
Unsubscribe or switch delivery mode:
<http://support.realsoftware.com/listmanager/>
.
|