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