Commit Graph

446 Commits

Author SHA1 Message Date
Michael Bayne 5bdf72f615 Differentiate between blocks that are visible and those that probably
aren't (we can't truly know if a block is visible until we resolve it
because objects of arbitrary height can overlap the view bounds even if
the block's footprint does not); resolve the definitely visible ones first
and go ahead and start drawing once the known visible blocks are ready.
This cuts the time spent on the "blue screen" by about 75%.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2595 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-05-20 23:57:48 +00:00
Ray Greenwell 7071f2e0da Don't save empty sections when saving scenes.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2586 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-05-16 17:26:07 +00:00
Michael Bayne 54b02327c1 Track the number of nodes considered when computing a path; minor
rearrangement.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2582 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-05-16 00:49:44 +00:00
Michael Bayne ded2a44c28 No longer check for on-screen paths here, we'll leave that to Yohoho!, but
we do allow derived classes to dictate whether or not unresolved tiles are
passable. Additionally, we sanity check the number of nodes searched when
computing paths.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2581 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-05-16 00:49:16 +00:00
Michael Bayne 21db8d27bc Further cleanups, eliminated TilePathNode which is no longer needed.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2580 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-05-16 00:26:18 +00:00
Michael Bayne e190c1625f Removed vestigal code, generally cleaned up.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2579 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-05-16 00:22:22 +00:00
Michael Bayne 16aaad3daf Report the block bounds and the view bounds when a block is reported as
having become visible during resolution.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2578 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-05-15 23:03:29 +00:00
Michael Bayne 80aa40ac72 Keep the vbounds centered in the resolution view.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2577 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-05-15 22:49:38 +00:00
Michael Bayne 863af05b72 Allow derived classes to dictate whether or not we allow traversal of
tiles that are offscreen.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2576 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-05-15 18:24:01 +00:00
Ray Greenwell e44f7c243a Close streams immediately after using them.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2575 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-05-14 21:34:01 +00:00
Michael Bayne 45033c8623 Use a much smaller scene block size which smooths out block resolution and
generally makes everything happier.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2569 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-05-12 02:04:16 +00:00
Michael Bayne 8ca388fb7e Implemented a debugging view that shows when scene blocks are being
resolved; adjusted influential bounds based on new strategy for scrolling
around and resolving blocks.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2567 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-05-12 02:03:31 +00:00
Michael Bayne 48a102de5a Allow scene block resolution to be suspended.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2566 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-05-12 01:53:19 +00:00
Michael Bayne 286cd5019e Oh god, unresolved blocks are again unpassable.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2558 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-05-09 01:12:06 +00:00
Michael Bayne daa9c8ee0e We can use the raw images here because we eventually splat all fringe
tiles into a composited image which has been prepared for display.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2533 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-05-02 23:33:30 +00:00
Ray Greenwell af764f57c7 Added a constructor that takes MisoSceneMetrics.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2527 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-05-02 21:50:22 +00:00
Michael Bayne bd18c4cbb1 If a block finishes resolution after it's already become visible, repaint
its bounds immediately rather than waiting for the remaining queued blocks
to be resolved.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2525 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-05-02 18:12:34 +00:00
Michael Bayne 57ee4d56c8 Let's have some debug logging so that we can investigate potential block
resolution wackiness.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2524 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-05-02 18:09:56 +00:00
Michael Bayne 02bd2ade00 We just flip flop back and forth on this one: now non-resolved tiles *are*
traversable so that if a sprite claims to have relocated somewhere outside
your resolved scene bounds, we'll just bee line them to their new
location. Since the user can never click outside their resolved view
bounds, we won't ever compute an invalid path for them. Joy.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2522 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-05-02 15:13:20 +00:00
Michael Bayne 99fa7fd6ff renderMedia() -> paint().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2509 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-30 20:48:51 +00:00
Michael Bayne 82d3a89e97 Further tweaks though this time they are functionally equivalent.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2499 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-28 23:33:43 +00:00
Michael Bayne c045a84703 We want to compare the origin of b not its left and right tiles.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2498 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-28 22:21:20 +00:00
Michael Bayne 2a909b772e When we're resized, delay our rethink until the next tick so that the view
bounds are properly updated for the rethink.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2497 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-28 21:46:33 +00:00
Michael Bayne 4d7993b59f Only delay repaint on setBounds() if we end up queueing up blocks as a
result.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2496 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-28 21:10:19 +00:00
Michael Bayne 98d6d2f086 Broke out influential bounds computation into a method that can be
overridden.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2495 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-28 21:02:54 +00:00
Michael Bayne abec16cbc1 Assign an ordering based on y position in the absence of any other
ordering.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2494 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-28 20:53:58 +00:00
Michael Bayne 0165cca20a Make a note of a potentially non-intuitive return value.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2492 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-28 20:41:13 +00:00
Michael Bayne da3ec5f6e4 Report unexpected visibility more sensibly.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2491 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-28 20:28:45 +00:00
Michael Bayne 508e389678 Make the bounds of just our objects available as well.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2489 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-28 20:27:35 +00:00
Michael Bayne 7c5d0f275e Document that little feller.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2487 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-28 18:12:09 +00:00
Michael Bayne 831539b09d How simple! If our bounds change, delay a repaint until we have all of our
blocks resolved. In the future, we could attempt to resolve the blocks
that are needed to repaint the visible view first and allow repaint as
soon as those blocks are resolved.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2486 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-28 18:08:57 +00:00
Michael Bayne a54e01a0fd Provide estimated travel time.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2473 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-27 03:53:41 +00:00
Michael Bayne b907bc02b0 Ensure that we always eventually claim to be resolved.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2467 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-26 02:16:18 +00:00
Michael Bayne db1a0f59c9 Don't constrain tooltips to the view bounds because they won't repaint
properly and in happy virtual land it's not so necessary any longer.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2466 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-26 00:48:47 +00:00
Michael Bayne dac610797e Added a means by which the default base tileset can be set.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2465 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-25 22:26:25 +00:00
Michael Bayne d86ddce45d More delayed block loading improvements: resolve fewer blocks, use the
same mechanism for including and excluding blocks.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2464 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-25 22:13:14 +00:00
Michael Bayne cca2a9cd16 Beginnings of support for asynchronous scene image data resolution.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2462 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-25 18:22:52 +00:00
Michael Bayne a03ad10f8d Beginnings of support for asynchronous resolution of scene image data.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2461 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-25 18:22:26 +00:00
Michael Bayne 082af9eedd Add support for putting scene object into warning mode.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2454 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-25 01:15:00 +00:00
Michael Bayne 5d5a0e8173 Allow base tiles to be cleared out; clear out the fringe when a base tile
is updated because the caller will need to recompute it.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2453 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-24 21:27:23 +00:00
Michael Bayne fc9a5dc7e2 Minor restructuring.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2452 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-24 21:12:10 +00:00
Michael Bayne f894a18bcb Fixed bug with object removal. Added sanity checking code in addObject()
to prevent duplicate objects from being added.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2451 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-24 21:11:23 +00:00
Michael Bayne ea3adbb530 Use the compose() method which properly handles negative y values.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2448 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-23 00:45:24 +00:00
Michael Bayne 0eea772f57 Oh the delicacy of the negative numbers. Wasn't properly computing
neighbor and block keys and was thus booching object footprint coverage
computation.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2447 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-23 00:37:46 +00:00
Michael Bayne 995f33af84 Provide our view bounds to the radial menu services.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2445 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-22 22:00:51 +00:00
Michael Bayne 76cb19646c Use the default base tileset when computing fringe if an actual base tile
is not specified.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2444 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-22 20:36:11 +00:00
Michael Bayne 1274fbb7c0 Let's inform the derived classes of the delta rather than the new _vbounds
upper left which is something they're already much more likely to be
making use of directly.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2443 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-22 18:12:40 +00:00
Michael Bayne a555443c04 Log a stack trace to help us find out where this sort of thing happens if
it happens.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2442 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-22 01:57:44 +00:00
Michael Bayne 1da61b99c7 Disallow adding the same object in the same place twice.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2441 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-22 01:57:20 +00:00
Michael Bayne 6b0e816643 Dooh! We need to recompute our visible object set regardless of whether or
not new scene blocks were resolved.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2440 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-21 17:56:55 +00:00