Commit Graph

566 Commits

Author SHA1 Message Date
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 616049971b Touch of modernization
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@561 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-07-03 00:58:23 +00:00
Charlie Groves e7bf315b1b Share scene block resolvers across a context instead of statically across all scene panels. Exiting an applet sometimes kills the resolver thread making it worthless to scene panels coming along in a new applet
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@560 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-07-03 00:56:42 +00:00
Tom Conkling 6776b83ce6 Account for kerning by always measuring the width of the truncated text field with the truncation string
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@559 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-07-02 00:50:51 +00:00
Tom Conkling 5d6ef34d2b TextFieldUtil.setMaximumTextWidth()
So that Robert stops breaking the UI with his ridiculously long names...


git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@558 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-07-01 23:14:08 +00:00
Charlie Groves ae04712b2b Toggle visibility when delaying repainting to keep child components from painting while we aren't
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@557 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-07-01 04:39:27 +00:00
Michael Bayne 375f7fe977 Don't unpack resource bundles when running tests.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@556 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-06-29 13:47:13 +00:00
Micah adb7f3adce Style changes.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@555 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-06-27 00:29:53 +00:00
Micah 4b77902162 Replaced a Java 1.5 method call with a 1.4 method call.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@554 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-06-27 00:19:54 +00:00
Ray Greenwell ec93c75cc2 Added setMediaBytes().
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@553 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-06-25 22:55: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
Ray Greenwell 25d74475d9 I saved this checkin until I was feeling destructive, and that time is now.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@551 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-06-24 01:27:52 +00:00
Charlie Groves 7b7131bf7c Need to weak reference the values too if they're going to be collectable. Use Arrays.hashCode to calculate the hash code of a long[] thanks to Ray.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@550 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-06-23 23:50:57 +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 7ace9ac320 * Add a fringe tile cache
Fringe tiles are added to a WeakHashMap used across the scene panel as they're
created and then held with hard references by the scene blocks they're in.
Whenever the last scene block referencing a fringe tile goes out of the
influential radius, the fringe can be collected from the cache.  In fringe
heavy scenes this reduces the memory for fringe by a third.

* Remove the mask cache

The fringe cache reduced the number of times a mask needs to be generated, so
eliminate the mask cache in the hopes of reclaiming a little more memory.



git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@548 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-06-23 21:59:16 +00:00
Tom Conkling d426b70e58 This is probably not such a good idea after all
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@547 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-06-19 20:18:24 +00:00
Tom Conkling 8168128b0f small optimization for the DisplayUtil.sortDisplayChildren common case
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@546 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-06-19 20:10:06 +00:00
Andrzej Kapolka f6b35f8217 Added a method to get the resource path of a file within the
resource directory.


git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@545 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-06-19 01:45:11 +00:00
Nathan Curtis 2952d288fd Allow CommandMenu subclasses to provide their own item renderer.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@544 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-06-18 18:12:59 +00:00
Ray Greenwell 4148e90209 Added createLabel().
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@543 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-06-14 01:50:56 +00:00
Ray Greenwell d26f854290 Converted HermiteFunc into a standard easing function. Untested.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@542 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-06-13 01:54:12 +00:00
Par Winzell 1a54fa9000 Be less promiscuous about swc's here too.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@541 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-06-13 00:52:30 +00:00
Ray Greenwell 284a4070ea Added updateText().
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@540 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-06-12 20:10:41 +00:00
Ray Greenwell cafdd35170 Deprecate everything in this package. Use tweener. It's better.
Unfortunately, the flex compiler is a bit thick and issues a deprecation
warning when compiling a class that is itself deprecated, so this
adds warning spew to nenya compilations.

I'll probably blow all this away soon (except maybe HermiteFunc, which
could be adapted into a standard easing function for use with Tweener
and flex easing effects- the other functions are already well represented.).


git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@539 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-06-11 22:15:58 +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
Ray Greenwell 67cc68c1b6 Various Flex utils.
...like having a decent factory for Spacer.


git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@537 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-06-10 23:55:03 +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
Par Winzell 7ae34a5683 This has been misnamed for quite a while and nobody ever noticed... which presumably means this is a rather unimportant fix.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@533 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-06-10 15:47:55 +00:00
Charlie Groves 79bdb30108 Stop spamming the logs with every resource fetched over the network
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@532 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-06-10 00:42:23 +00:00
Charlie Groves 6375505e53 Narya exports guice now
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@531 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-06-09 18:03:37 +00:00
Mike Thomas 68bbc19f8d Tell eclipse about guicey jars.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@530 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-06-09 17:33:46 +00:00
Michael Bayne 935cf0e7c2 Basic Guice compliance.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@529 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-06-07 17:45:10 +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
Nathan Curtis 97c5206983 Added some notes about the facilities and ancestry of this class. Also modified it so that it
will scroll automagically if, even after doing its damnedest to make it fit, it still doesn't.  This
will only happen if the menu (or submenu) is so tall that the it stretches from the bottom of the 
bounds it's using, and extends past the top of the bounds.


git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@526 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-06-05 21:31:32 +00:00
Nathan Curtis 89fef8992b Bring back the scrollable menu. However, we leave the default as not scrolling, and only do
scrolling of any kind of the verticalScrollPolicy is set to ScrollPolicy.AUTO or ScrollPolicy.ON, 
and the maxHeight has been set.


git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@525 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-06-05 19:00:24 +00:00
Charlie Groves 9d5f63d758 Expose the locale prefix and resource list to the whole world
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@524 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-06-05 00:14:28 +00:00
Charlie Groves 228762fc0d Pass the set of all valid paths through to getFramePath so it can fall back to the default action if the specified action doesn't exist
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@523 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-06-04 23:42:36 +00:00
Charlie Groves 6a0da5531e Genercize
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@522 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-06-04 18:18:56 +00:00
Charlie Groves 795bfe0429 Log every time we get a resource from the network
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@521 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-06-04 18:18:10 +00:00
Nathan Curtis 4b0f9e0c64 By properly using the nifty PopUpUtil, we can simplify and correct this code all at once.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@520 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-06-04 00:47:56 +00:00
Nathan Curtis 65e0f8015e Allow the creator to specify their own bounds if they don't want submenus to be constrained by the
stage.


git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@519 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-06-04 00:05:00 +00:00
Nathan Curtis 6b40089e52 Fixed some layout problems with _upping submenus. Also, the _fitting member variable was checked
in submenu layout, but it could never get set to anything but null.  So, now it just assumes that
it should be fitting to the stage and does that (it would previously just put the menu wherever
its broken math put it, and not checking against the bounds of anything).  I have a slight 
inclination to bring back a method for supplying a fitting Rectangle so that it can be fitting these
menus between the header bar and control bar.  Maybe I'll just do that next.


git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@518 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-06-03 23:35:34 +00:00
Mike Thomas c2561037f0 Create a way to find out what the resource path is for the component & action in question.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@517 ed5b42cb-e716-0410-a449-f6a68f950b19
2008-05-30 03:17:24 +00:00