Commit Graph

305 Commits

Author SHA1 Message Date
Michael Bayne 5214d15ac6 Tileset => TileSet; made getTileSetImage() public so that the trimming
code can get to the underlying tileset image.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1485 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-06-19 08:27:06 +00:00
Michael Bayne 2c9be83574 Moved subimage creation into overridable method.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1484 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-06-19 08:26:22 +00:00
Michael Bayne f8c31a6432 More utility methods: one for creating a new image with the same
configuration as another and one for computing a rectangle that bounds all
non-transparent pixels in an image.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1483 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-06-19 08:24:22 +00:00
Michael Bayne 8ca5fc3857 We need to ensure that dirty regions are constrained to the bounds of the
component in MediaPanel as well as VirtualMediaPanel.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1482 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-06-19 07:41:37 +00:00
Michael Bayne 1ef85b78d8 Worked around the Windows copyArea() bug; yay!
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1481 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-06-19 02:34:39 +00:00
Michael Bayne 3976cc2c42 Cache our graphics objects.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1480 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-06-19 00:52:34 +00:00
Michael Bayne e91b6420b1 Go ahead and return our cached subimage since we have it.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1479 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-06-19 00:20:49 +00:00
Michael Bayne 30071e79c2 Lose the magic circle.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1478 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-06-18 23:34:34 +00:00
Michael Bayne 7253a68c7c Death, taxes and refactoring: seriously revamped the low-level media code
to handle scrolling in a much cleaner and happier way. There's now a
VirtualMediaPanel which operates in virtual coordinates and can be made to
"view" any location in those virtual coordinates. By changing the view,
the view can be scrolled and the view can be made to center on a pathable
(generally a sprite) which will cause it to scroll around as the pathable
moves around in the virtual coordinate space.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1475 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-06-18 22:25:33 +00:00
Michael Bayne 4b29f806df We've discovered that setting the clipping rectangle generates a crapload
of rectangle objects. Thus rendering hundreds of tiles each frame has an
"undesirable" impact on garbage collection. I think Walter and I were
seeing something like 400k per second of garbage. So we're back to
extracting a subimage, which we're pretty sure doesn't copy the image
data, but simply draws the cropped image data directly from the original
rasters without creating shitloads of garbage.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1474 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-06-18 22:19:56 +00:00
Ray Greenwell 541eb01446 Added a constructor that takes two Points and a direction.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1455 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-06-12 23:33:03 +00:00
Michael Bayne ad5b77899f We want to truncate rather than round; it's faster and more consistent
with the other math done in the rendering code.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1443 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-06-12 01:11:55 +00:00
Michael Bayne cfb8c77d2f If we're using a path to drive the view, we need to let it know when we
scroll.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1442 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-06-12 00:51:24 +00:00
Michael Bayne d7a41e61d8 We need the ability to instruct the path *not* to scroll with the view
(useful when the path is actually operating in virtual coordinates which
are mapped to scrolled view coordinates by the pathable).


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1441 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-06-12 00:49:15 +00:00
Michael Bayne 1a3ad13d6e Various and sundry revampage to make life easier when scrolling the media
panel to follow a path.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1440 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-06-11 21:40:52 +00:00
Michael Bayne d05d0c8558 Added getPath() to provide access to the path being followed by the
sprite.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1439 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-06-11 05:56:44 +00:00
Michael Bayne 544d2382ad Extracted position computation into static method.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1438 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-06-11 02:39:14 +00:00
Michael Bayne c1ccaac10d Javadoc fixes.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1437 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-06-11 00:52:37 +00:00
Michael Bayne 916513f306 Modified code that makes view follow path to not require an origin point
which was a wacky hack in the first place.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1436 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-06-11 00:05:31 +00:00
Michael Bayne cccd28ea9d Now that paths drive the scrolling of our view, we can go back to the
simple line path calculations that don't suffer from the accumulated
rounding errors that our previous method did.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1434 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-06-11 00:03:30 +00:00
Walter Korman 7a9946e0ad Catch and report any exceptions thrown by Component.paint() to allow
peacable continued frame painting in cases where a component gets in a bad
way and fails to paint itself happily.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1432 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-06-10 21:31:56 +00:00
Ray Greenwell b9ba9b3d66 bugfix: ImageSprites constructed with their frames were hosed and never
got drawn.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1425 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-06-05 23:38:18 +00:00
Michael Bayne 1b3b5bb794 Wrote tools to ease the process of renaming tilesets.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1421 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-06-04 02:50:02 +00:00
Michael Bayne 7d9dc465a0 Updated debugging output.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1417 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-31 22:14:44 +00:00
Michael Bayne 2740e670cb Modified LinePath so that separate time stamps are kept for the x and y
directions, otherwise movement in one direction will unnecessarily reset
the "move stamp" for the other direction in which we didn't actually move.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1415 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-31 20:47:32 +00:00
Michael Bayne af28864778 New interface related to repackaged path stuff.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1414 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-31 07:34:45 +00:00
Michael Bayne 823de4a1a0 Added means by which a view can be scrolled to follow a path.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1411 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-31 07:33:52 +00:00
Michael Bayne ccbc47a7de Separated path code from sprite code so that we can have other things
follow a path (specifically, I want to allow the media panel to be
"scrolled" along a path).


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1409 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-31 03:38:03 +00:00
Michael Bayne 7c4f86e63a pathBeginning() and pathCompleted() need to be public so that we can
create paths outside the media.sprite package.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1407 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-29 23:27:14 +00:00
Michael Bayne e00610ecdb Ensure that we're loading our images through a BufferedInputStream.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1406 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-29 18:45:00 +00:00
Walter Korman 3bc46992bf Set a flag to note whether we're paused and check the flag to avoid
ticking when paused rather than un-registering and re-registering
ourselves as a frame participant to effect same.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1383 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-22 01:56:25 +00:00
Walter Korman cd9131c551 Use an ObserverList to store and work with the frame participants.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1382 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-22 01:48:08 +00:00
Walter Korman 4acd5fcfdd Added convenience class for observing animations and being notified when
each individual animation completes and when all added animations have
completed.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1381 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-21 17:59:11 +00:00
Michael Bayne 325433a763 Created a path that follows a single straight line and does so using the
same math that the scrolling code does to scroll in a straight line.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1377 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-17 21:14:06 +00:00
Michael Bayne 814bd71637 Moved getDirection() into DirectionUtil.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1376 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-17 21:13:26 +00:00
Michael Bayne a8caf98434 Added a version of distance() that takes Point objects.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1375 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-17 21:13:03 +00:00
Michael Bayne db31cedbd8 Removed setVelocity() from the interface. Paths may or may not want to use
the notion of velocity and they can expose that interface to whomever
creates them. We don't need to set the velocity in the abstract.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1374 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-17 21:12:48 +00:00
Michael Bayne ee9ff7d46b Enhanced debug logging.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1372 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-17 21:11:34 +00:00
Michael Bayne 95daba5bee Offset not Offsets.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1366 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-16 03:00:29 +00:00
Michael Bayne 612166a572 Created an Icon implementation that can be used to render sprites anywhere
that icons can be rendered.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1365 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-16 02:58:59 +00:00
Ray Greenwell 9a55ae3989 oops: removed leftover debugging
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1363 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-16 01:53:36 +00:00
Ray Greenwell 0dc1f378e5 use the standard hitTest utility method.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1362 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-16 01:49:38 +00:00
Michael Bayne b15d38b54d Relegated a shitload of logging to DEBUG status.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1361 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-15 23:54:35 +00:00
Michael Bayne 70c8067048 Don't consider modes with higher than 75Hz refresh.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1358 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-09 18:43:56 +00:00
Michael Bayne 78ec4ab84b Temporary ship recolorizations.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1357 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-09 18:43:32 +00:00
Michael Bayne 34f9f3d8c6 Leave the images in 8-bit format when we return them from the tileset
bundle so that we can recolor them if we later desire.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1356 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-09 16:51:26 +00:00
Michael Bayne 2739abf915 Support compositing images that haven't already been expanded into
separate rasters.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1355 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-09 16:49:16 +00:00
Walter Korman bd6146292f Restore the original clip only after we've un-translated the graphics
context.  Minor reformatting and enhanced toString().


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1352 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-09 04:42:10 +00:00
Michael Bayne 7a7309f347 Make the tiler cope if it's given a null source image.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1348 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-07 03:23:46 +00:00
Michael Bayne 04a1b4a38a Created a helper class that can be used to render a tiled background image
that is generated by cutting up a small image into nine sections and using
each appropriately to create the expanded background.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1347 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-05-07 03:11:17 +00:00