Commit Graph

108 Commits

Author SHA1 Message Date
Michael Bayne 7056f6dfac Log a warning and return null.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2862 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-11-22 19:57:16 +00:00
Michael Bayne fbd52c2be3 Tone down cache performance reporting; upped image cache size by a meg.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2730 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-07-28 04:06:14 +00:00
Michael Bayne 25ebfba64f For some strange reason, reusing Colorization instances causes character
creation to break.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2675 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-06-23 18:06:57 +00:00
Michael Bayne 28a9441143 Allow the ImageManager to function if we're running in headless mode. It
will create all images as 32-bit ARGB.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2674 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-06-23 17:59:04 +00:00
Michael Bayne 52e5206ff4 Keep a single colorization record around for each ColorRecord rather than
creating the same Colorization instance over and over each time we're
asked for one.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2641 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-06-05 17:31:21 +00:00
Ray Greenwell 35f7f0806b Make sure that the transparent color is first in the colormap so that
Java's png encoder doesn't get confused and merge black pixels into
the transparency.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2636 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-06-04 05:56:58 +00:00
Michael Bayne 73a4a02aa1 A few substantial changes:
- Tiles are initialized after being constructed which makes life simpler
  for custom tiles which no longer have to have their own constructor that
  passes Tile's stuff down to it.

- Tiles are no longer LRU cached (because we blow through that cache
  instantly on all but the smallest of scenes), and are now tracked by
  weak references so that we guarantee that only one instance of a tile is
  ever in memory.

- Added code to track and report memory usage of weak cached tiles as well
  as "stray" tiles which are created through other means than asking a
  TileSet for a tile (fringe tiles being the most prolific example).


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2628 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-05-31 00:56:38 +00:00
Ray Greenwell 3f0d839400 Noted that I had changed the QUICK constant to false.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2625 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-05-29 03:08:37 +00:00
Ray Greenwell c941c96141 Color reduction algorithm. From web, with modifications to support
transparency.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2624 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-05-29 03:02:38 +00:00
Michael Bayne 684102f32e Use mirages in tileImage*.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2550 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-05-07 19:14:38 +00:00
Ray Greenwell e174e71b8a Subsumed tileImageAcross and tileImageDown into the new tileImage.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2548 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-05-07 01:48:27 +00:00
Michael Bayne 6669e39a8e Added other forms of getPreparedImage();
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2529 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-05-02 23:09:28 +00:00
Michael Bayne c7765a9862 Added getPreparedImage().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2528 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-05-02 22:59:20 +00:00
Michael Bayne 72768a3a9e More synchronization is needed! The dangers of multithreaded programming.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2485 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-28 17:38:06 +00:00
Michael Bayne 5c03adbb72 Added support for temporarily disabling image and tile cache flushing.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2483 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-27 07:33:15 +00:00
Michael Bayne 8973ca0d8c Make ImageDataProvider responsible for loading the actual image instead of
returning an ImageInputStream.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2475 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-27 06:33:11 +00:00
Michael Bayne a4e09831c5 The amazing fast image loading extravaganza. Images load in 1/4th the time
and generate almost zero garbage during the loading process (unlike the
ImageIO loaders which practically generate an entire image worth of
garbage during the load).


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2474 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-27 06:32:15 +00:00
Michael Bayne 8bab0bd281 Added useful debug logging.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2463 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-25 22:12:14 +00:00
Michael Bayne 90391aa69d Synchronize access to the image cache so that we can load images on other
threads.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2459 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-25 18:21:28 +00:00
Michael Bayne 2f80c9b057 Removed obsolete image loaders.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2456 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-25 15:51:49 +00:00
Michael Bayne ae0376d4ec Removed a bunch of obsolete stuff.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2455 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-25 15:51:34 +00:00
Michael Bayne fca168018e Don't freak out if we can't load our source image.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2400 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-11 18:48:05 +00:00
Michael Bayne 9c113eb8dc Not to choke if we get passed a null image.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2394 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-09 22:02:20 +00:00
Michael Bayne 6ea4264eb4 If we fail to load an image, create a blank one in its stead.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2393 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-09 22:02:05 +00:00
Michael Bayne 9c54590c92 We're not generating that colorization for our health. We need to return
it to the caller!


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2345 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-03-29 02:30:14 +00:00
Michael Bayne d7e60e2749 Not to freak out if we can't recolor an image, just log a warning and
return the unrecolored version.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2288 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-02-22 01:48:21 +00:00
Michael Bayne e6796b2d55 The amazing revamp four hundred billion. Let's see:
- Reworked colorization repository such that we now have arbitrary named
  "colorization classes" which can be used by various and sundry entities
  to colorize themselves.

- Added support for individual object colorizations as well as "spots"
  that go along with objects (will be used to automatically create portals
  into buildings and automatically position users properly when at a
  "station").

- Repackaged things in miso to more closely mimic what we do everywhere
  else (no more miso.scene, now we have miso.data and miso.client).

- Fixed up miso scene XML representation so that objects can more easily
  be expanded to have yet more stuff if we think of more stuff that they
  might aught to have in the future. Structured the miso scene model so
  that "uninteresting" objects (those that simply sit somewhere and don't
  do anything) take up a lot less memory than "interesting" objects (those
  that have action strings, "spots", colorizations and the works). I may
  want to roll colorizations into the "uninteresting" realm, but that
  remains to be seen.

- Made it possible for object tilesets to specify default render
  priorities for objects in that tileset. This will hopefully allow us to
  get by without any "custom" render priorities that are specified on
  scene objects, instead relying on the default priorities to resolve
  common conflicts.

There are surely other cleanups in there, but I think that was the major
thrust of it.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2228 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-01-31 23:10:46 +00:00
Michael Bayne 412c7701c3 Modified image tracing not to depend on band format but to have the image
convert whatever its internal format is into ARGB for our inspection. It's
arguably a smidge slower (though we eliminated the multiple method calls
per pixel to determine whether it is non-transparent), but will work with
any source and destination image format.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2220 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-01-24 22:54:08 +00:00
Michael Bayne 0a6dfcd703 Added createErrorImage(); modified createTracedImage() and
createImageMask() not to freak out if the source image is not RGBA, Java
automatically unpacks pixels appropriately for 8-bit colormapped images,
so there's no need to be so picky. In createTracedImage() we were
converting the image to a screen optimized image anyway and thus the
source image format had absolutely no bearing on what we did with the
image later.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2218 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-01-24 21:48:14 +00:00
Michael Bayne 4ff68a037e Log the number of bands when tracing fails.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2207 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-01-21 22:11:04 +00:00
Michael Bayne 6a8bee2821 Activate tracking on the image LRU cache; lower the cache size to 1 meg.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2196 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-01-20 19:38:37 +00:00
Michael Bayne 6f7ad6a09f Added support for obtaining the estimated memory usage of a Mirage.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2174 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-01-17 02:30:21 +00:00
Michael Bayne 34144c86de Configured our LRU image cache to flush images when we reach a certain
number of bytes used rather than a certain image count.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2173 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-01-17 02:29:32 +00:00
Michael Bayne 2640baf727 Made getEstimatedMemoryUsage() do more of the right thing.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2171 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-01-17 02:27:02 +00:00
Ray Greenwell 91c173b6e5 added commented out method that caused me trouble, but we may want it
or a varient someday.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2169 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-01-17 00:41:49 +00:00
Ray Greenwell 0e26fdcf18 BufferedImage has versions of getWidth() and getHeight() that don't
need an ImageObserver.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2166 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-01-16 21:38:11 +00:00
Michael Bayne c98f45e3a0 Let's get those nots in the right places.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2154 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-01-15 02:50:36 +00:00
Michael Bayne 0558830cff Had the beans above the frank.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2153 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-01-15 02:48:45 +00:00
Michael Bayne bd943707f3 Add debug toggles for running blank and disabling image preparation.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2152 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-01-15 02:45:37 +00:00
Michael Bayne 01a3630493 Use the adjustment directly rather than going through the prefs.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2150 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-01-15 02:36:18 +00:00
Michael Bayne 43bc29afd8 Static variables go above static constants.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2149 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-01-15 02:31:50 +00:00
Michael Bayne 60a60d49ec Use runtime adjustments for our image and tile cache size.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2145 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-01-15 00:47:09 +00:00
Michael Bayne 6c7b0b3836 Create our image through the image manager.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2141 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-01-14 04:18:25 +00:00
Michael Bayne f26cfb322d Temporary hack to make all images translucent since that works around
strange slow rendering problems we see when we allow mixed BITMASK and
TRANSLUCENT images to be rendered.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2140 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-01-14 04:05:56 +00:00
Michael Bayne 1512fdfa1f Begone ImageUtil.createImage(), all images are created through the image
manager.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2136 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-01-14 02:50:34 +00:00
Michael Bayne 3c58a1ac26 Use the appropriate transparency when creating our prepared image.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2135 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-01-14 00:59:55 +00:00
Michael Bayne ed847b964d Provide the appropriate transparency when requested.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2129 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-01-13 23:56:01 +00:00
Michael Bayne 98c2dd45db Deal with fucking stupid ass close() behavior from ImageInputStreamImpl.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2128 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-01-13 23:55:05 +00:00
Michael Bayne 100aa3ace3 Major media subsystem revamp:
- All images are loaded through the image manager
- Architected to allow the use of prepared or unprepared images (and
  volatile images when the day comes that they support alpha)
- Tunable caches for images and tiles
- Resource manager caches unpacked resources on the filesystem
- Various and sundry other cleanups


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2116 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-01-13 22:49:47 +00:00
Ray Greenwell 125a0c4fef updated to reflect new home of ImageIOLoader
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2102 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-01-08 05:17:35 +00:00