Commit Graph

139 Commits

Author SHA1 Message Date
Mike Thomas a2324b526e Add a clarifying comment, and remove unnecessary assignment. I don't honestly recall if this was even intentionally included or a copy-paste error, but it does seem like knowing your image is busted at compile time is much better than not knowing til runtime.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@594 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-08-01 17:18:37 +00:00
Michael Bayne 659f5bc5e2 Code hygiene. Not as pedantic as I'd like, but I couldn't resist the huge time
saver that is Eclipse's "Infer generic types" which leaves HashMap and
ArrayList as the declared type where I would normally prefer to change those to
Map and List and use Maps and Lists to instantiate them.


git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@593 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-08-01 15:56:37 +00:00
Michael Bayne 60622c3590 Some code hygiene.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@592 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-08-01 14:39:57 +00:00
Michael Bayne 786dd4f7ff Type our result listener.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@591 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-08-01 13:27:14 +00:00
Charlie Groves 1255109f57 Pump up the size of our line buffer to get longer sounds to play less
skiptacularly and try going back to using line.drain since our sleep until we
figure the sound will be done method wasn't working so well with the larger
buffer.  Hopefully drain has been fixed in the 4 years since it was commented
out.



git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@590 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-08-01 01:23:04 +00:00
Michael Bayne 3fad5fb569 Nixed unused variable references.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@579 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-07-26 22:04:15 +00:00
Dave Hoover 5f1eed7b94 Add in @Overrides across the board, clean up the comments around them some, and remove
unneeded imports.
I've got partially completed patches for narya & vilya, too, but nenya was the 
only one that wound up in a decent state after a friday evening puttering at it,
killing time waiting on other things to finish.


git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@572 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-07-14 18:19:23 +00:00
Mike Thomas 3ab8bde582 Add the ability to add "Obscurers" or components that will be drawing on top of a MediaPanel - these then force additional redrawing of the Media Panel, so should be used with extreme caution. I suspect there may be cleaner ways to do this, so there may be further changes to this in the near future, but this seems good enough for my current needs.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@568 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-07-08 22:48:36 +00:00
Michael Bayne 45edaccf6d The plot, she is thick. The Nenya framework supports a MediaOverlay that can
render sprites and animations over the top of everything in the frame:
JComponents, MediaPanels anything we like. To support this, we have the
MediaOverlay tell the ActiveRepaintManager when it has dirtied an area of the
screen and it will mark that component as needing repainting. Peachy.

However, if a component decides on its own that it needs repainting, we need to
propagate that now dirty region up to the MediaOverlay so that it can repaint
anything that's above the just-repainted component on the same frame tick.
This also fixes a potential problem if a changed sprite dirties a component
which then repaints itself but the bounds of that component overlapped some
other sprite which was not going to be repainted on this tick.

There were also potential problems if components were put in the JLayeredPane
layers (which are "above" the normal components and MediaPanels but "below" the
MediaOverlay). They too should now properly dirty regions in the overlay.

It occurs to me though that if a MediaOverlay sprite is on top of a MediaPanel,
the MediaPanel will probably not properly propagate its dirty region to the
overlay because the MediaPanel is a frame participant, not a JComponent and its
repainting is handled by the FrameManager not the ActiveRepaintManager. I may
just use the sledgehammer approach and dirty in the media overlay the entire
bounds of a frame participant if it paints anything on a frame rather than try
to translated and propagate its underlying dirty regions up to the overlay.

Oh the twisty maze of passages we've created in trying to create an active
rendering system that works magically with Swing.


git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@566 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-07-07 19:24:26 +00:00
Michael Bayne 83a7c58017 Move this getter up with his friends.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@565 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-07-07 19:00:31 +00:00
Michael Bayne f69a3d550e More generics.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@564 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-07-07 18:57:51 +00:00
Michael Bayne d5b1c1faf5 Generics.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@563 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-07-07 18:53:18 +00:00
Michael Bayne 1b7832dd8a Fixed the comment.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@562 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-07-07 18:44:16 +00:00
Charlie Groves 550c360df6 Allow image preparation to be turned off on a run by run basis
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@552 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-06-24 23:44:50 +00:00
Charlie Groves cd30b42cd8 Allow the size of the sound cache to be set in the sound manager's constructor.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@549 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-06-23 22:00:22 +00:00
Charlie Groves 49777fab3f Everybody's favorite new game show, Name That Thread
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@538 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-06-11 00:46:48 +00:00
Charlie Groves ef4e27cdd0 Need to synchronize around adjustSize as it can lead to a flush
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@536 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-06-10 23:33:58 +00:00
Charlie Groves d67c0bd7b7 Only use the set cache value for the current set of managers, don't store it in the RuntimeAdjust
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@535 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-06-10 21:37:57 +00:00
Mike Thomas 06e3217d6b Well that's just peachy. When we drawImage from a BufferedImage, the performance is relative to the size of the source image, not to the size of the resulting tile subimage. Therefore, for largish tileset sources, this was taking a Very Long Time. So, we take a subimage first and use that for our drawing. (I believe it's still accurate that we cannot just use the subimage directly due to various factors - though if we somehow could, it would save us some cache space).
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@534 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-06-10 20:29:20 +00:00
Charlie Groves 70ef6a644a Widened and genericized
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@528 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-06-06 21:16:45 +00:00
Charlie Groves 7d613a999a Allow cache sizes to be set programatically
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@527 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-06-06 21:15:05 +00:00
Michael Bayne e00b4ddd6b Switch to new logging API.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@510 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-05-27 22:55:10 +00:00
Charlie Groves b521b4bfbf Instead of caching the last 10 sound clips, cache up to 4 megs of clips
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@509 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-05-27 22:09:03 +00:00
Michael Bayne 209504479d Fix this user of samskivert's log object.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@507 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-05-27 18:53:20 +00:00
Mike Thomas ef15781c28 Add the ability for network resource bundles to have an index file which tells them which files they should expect to find. This turns out to be pretty useful since resources try to grab a locale-specific version first, which often fails, and then they have to grab their generic version. This allows us to bypass some of this latency when we're able to know ahead of time which resources we will have.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@500 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-05-22 18:34:37 +00:00
Michael Bayne 7835b083b8 Nixed some if true then true (ITTT?) stylings. Ray happiness++.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@499 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-05-21 11:19:51 +00:00
Charlie Groves a012977741 Need to use floating point numbers if you want floating point math
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@498 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-05-20 22:04:13 +00:00
Charlie Groves 14dd85bb45 Switch to fixed-delay scheduling from fixed-rate so our interval being blocked
won't cause multiple calls to calibrate.  Since a fixed-delay Interval can't be
used with a RunQueue, move the calibrate interval onto the Timer's thread and
switch to floats for the drift ratio so synchronization isn't needed around
updating it as a double.



git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@497 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-05-20 21:05:46 +00:00
Charlie Groves c0b0b9c94a Start with no alpha so getting a paint before we're ticked doesn't blow up
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@495 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-05-14 21:18:54 +00:00
Charlie Groves 6029530e73 Wait till willStart to create the gleaming functions so subclasses can fill in their desired alpha ranges and so on and the huge constructors aren't needed
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@476 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-04-24 01:05:10 +00:00
Charlie Groves 9b20077820 Allow the min alpha to be specified in addition to the max
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@471 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-04-21 19:03:47 +00:00
Charlie Groves 0a5fff92d3 Don't require a SpriteManager for gleamed sprites that aren't used as sprites otherwise
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@470 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-04-19 23:05:47 +00:00
Charlie Groves ab5729654c Keep the drift ratio between .01 and 10 for timer siestas and fiestas
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@468 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-04-18 19:01:44 +00:00
Charlie Groves 5a654ebd99 Don't compound the problem of the timer going into the past by sticking the drift at 0 for 5 seconds
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@445 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-03-13 01:27:04 +00:00
Charlie Groves f3c2097498 Cancel the calibration interval and start a new one in reset to prevent calibrate calls coming immediately after the reset from producing a crazy drift
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@442 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-03-12 00:06:00 +00:00
Dave Hoover d349c1f91a Pull out our drift range to constants, and tighten it up a little bit.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@441 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-03-11 18:16:16 +00:00
Dave Hoover 3d4241540f Let us clear our CalibratedTimer's memory about drifts we've seen.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@440 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-03-11 18:12:21 +00:00
Dave Hoover 381bfd239b Have CalibratingTimer remember the largest drift it's seen, and let us get at that
via our FrameManager.


git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@439 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-03-10 16:58:45 +00:00
Charlie Groves 3466303b91 Log what's actually going on in the calibration in one final attempt to figure out what's going wrong here before ripping it out and going back to business as usual
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@438 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-03-08 00:35:55 +00:00
Michael Bayne 55ac76bd0b Let's have a header on that file.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@437 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-03-06 22:17:40 +00:00
Charlie Groves 017a81072f Rollback yesterday's commit to use a calibration interval since we're actually pretty good about only having the ticker call getElapsed. It actually appears that the problems arise from the time between calibrations being influenced by timer time. Since we're explicitly trying to work around someone jacking their timer to several times normal speed, relying on it to decide when to calibrate is a bad idea as it can lead to tiny, quick calibrations with varying numbers of underlying millis. Instead, schedule calibrations with an Interval on the AWT thread since that will be run based on System.currentTimeMillis and hope the third time's the charm.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@435 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-03-06 21:51:04 +00:00
Mike Thomas 8a10f090da Apparently only yohoho ever uses the runtimeadjust stuff, so we don't care about backwards compatibility and this naming scheme is better. We now have ClientImageManager and ImageManager.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@434 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-03-06 18:56:26 +00:00
Mike Thomas f00ff51a7b Split the runtime-adjustment functionality of ImageManager out. In order to preserve backwards compatibility, the complete functionality including runtime-adjustment can be found in ImageManager which now extends BaseImageManager. The bulk of functionality is now in BaseImageManager and anyone who wants an image manager without the RuntimeAdjustment bits (it uses ClientPrefs and thus isn't friendly in server-land) should use that directly.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@433 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-03-06 18:31:04 +00:00
Charlie Groves 9c3a7e2904 Calibrate every 5 seconds instead of every 1000 calls. When many things are being animated, the timer will get a ton of calls and the variation in the number of millis elapsed per timer time may be leading to unwanted variations in the drift value.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@432 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-03-06 01:24:21 +00:00
Charlie Groves 5a569a2fa3 Adjust _startStamp by the amount of drift since the previous call to elapsed rather than adjusting the entire elapsed time.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@429 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-02-27 19:15:08 +00:00
Charlie Groves c72fea4411 Perf isn't yielding nanos, so it needs to be divided by the _milliDivider to get millis
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@425 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-02-20 22:56:00 +00:00
Charlie Groves 4c002c5682 Looks like much of the speedmodding in Puzzle Pirates comes from futzing with
the speed of the system timer, but that leaves System.currentTimeMillis alone.
If the precise timer is moving way faster or way slower than currentTimeMillis,
tack our timing to currentTimeMillis.  This will make timing precision blow,
but that's what you get for cheating. 



git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@424 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-02-20 02:28:57 +00:00
Charlie Groves 6451cfffae Don't update the bundle until we're done iterating over it. Fuck if I know how this worked up until now
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@405 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-01-31 22:02:01 +00:00
Dave Hoover f91b7714a5 Remove unneeded casts.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@397 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-01-17 01:26:05 +00:00
Dave Hoover 56df6f1913 Truth in commenting: the DirectoryTileSetBundler isn't rewriting things in our own image format
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@392 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-01-10 19:55:45 +00:00