Commit Graph

85 Commits

Author SHA1 Message Date
ahocevar
434178ef49 Making backbuffer order configurable
In OpenLayers 2.12, the backbuffer for each layer was placed right below
the layer itself. With animated zooming, that was changed so backbuffers
are all placed below the base layer. As it turned out, this is only good
for certain kinds of layers (e.g. street labels), so the default now is
to place the backbuffer right below its layer again. But the
transitionEffect option can now have a new value, 'map-resize', which will
cause the backbuffer to be placed below the base layer.
2013-03-27 17:46:36 +01:00
ahocevar
fe172ccf6e Backbuffer needs z-index
Since we don't rely on the DOM order for layers, we also cannot rely on it
for backbuffers. This change simply adds a sensible z-index to the
backbuffer container.
2013-03-27 16:19:58 +01:00
ahocevar
7f18a7b3df Backbuffer and transitionend only when there are tiles
When an application zooms the map programmatically right after
initialization, there will be an empty backbuffer. This should be avoided,
because it adds an unnecessary DOM element.

The tile.onLoadEnd handler registers a transitionend listener on the image
of the last loaded tile. But if loading was aborted, there will be no
image. The new logic registers the transitionend event on the last child
of the layer div, which is not necessarily the tile we're handling loadend
for. When the backbuffer is empty (i.e. no tile was loaded at the time the
backbuffer was created), it will be removed immediately.
2013-03-26 11:53:27 +01:00
Tim Schaub
a2896beafd As the comments mention, this assumes null transitionEffect 2013-02-14 15:26:05 -07:00
ahocevar
4b163e0482 Merge pull request #800 from ahocevar/transform
Use GPU where available; animated zooming. r=@elemoine
2013-02-14 01:15:18 -08:00
ahocevar
d0249643b3 Incorporating @elemoine's review comments 2013-02-14 10:11:48 +01:00
Bart van den Eijnden
d7f013ddbd when cloning a layer that is loading, make sure numLoadingTiles is reset to 0 on the clone 2013-01-16 16:26:51 +01:00
ahocevar
2cd14dfbfd No .olTileReplacing class for singleTile layers
This fixes a regression for singleTile layers with transitionEffect set to
'resize', where the .olTileReplacing class was not removed from the tile.
2013-01-15 13:08:48 +01:00
ahocevar
9b7e35d1dd Merge branch 'master' of github.com:openlayers/openlayers into transform
Conflicts:
	theme/default/style.css
2013-01-09 14:31:52 +01:00
ahocevar
f0db21f9c9 Fixing tests 2013-01-07 18:16:23 +01:00
ahocevar
c8564838bc When the resolution does not change, remove backbuffer tile by tile
This change introduces a new 'replace' mode for tile transitions: when the
resolution does not change, which happens when mergeNewParams is called,
the tile will be marked with the .olTileReplace class. If this class sets
the tile's imgDiv display to 'none', the backbuffer for the tile will
immediately be removed when the tile is loaded.
2013-01-07 15:42:34 +01:00
ahocevar
18d548f979 Merge pull request #702 from ahocevar/smart-queue
New tile image cache and tile queue improvements. r=@bartvde,@elemoine
2013-01-07 06:38:07 -08:00
Bart van den Eijnden
1e1ce54e5b add tests and finish off the functionality for switching between singleTile true and false 2013-01-04 15:10:48 +01:00
ahocevar
21448d2fd5 Adding animated zooming 2012-12-23 18:47:03 +01:00
ahocevar
afe53aba7d Put backbuffer below all layers, except when panning 2012-12-23 18:34:55 +01:00
ahocevar
3d79001a92 Updating and adding tests 2012-12-23 18:34:53 +01:00
ahocevar
80fa251649 New TileManager
This removes all tile queueing/loading specific code from Layer.Grid
and creates a new class that manages tile loading and caching.
2012-12-23 17:00:45 +01:00
ahocevar
2ee362a79b New tile image cache and tile queue improvements
We now reuse tile images by maintaining a cache of image elements with a
simplified LRU expiry policy (by order, not by timestamp). The tile queue
is bypassed for images that are available in the cache, so they can be
rendered immediately. And the tile queue itself loads more than just one
image at a time now (2 per layer url).
2012-12-23 16:57:24 +01:00
ahocevar
4f5bcdbe76 Fixing mock 2012-11-07 16:25:34 +01:00
ahocevar
5a3bcc716b Not using requestAnimationFrame
Using the Timeline tab of the Chrome Developer Tools, no significant
difference of Paint events can be observed when requestAnimationFrame is
used. So I agree with @elemoine that there is no need to introduce
asynchronous behavior here.
2012-11-05 17:28:10 +01:00
ahocevar
796a349c61 Synchronous image loading for opacity and backbuffer tests 2012-11-05 10:40:50 +01:00
ahocevar
475cd7cd60 Fixing test (backBufferLonLat should not be OpenLayers.Bounds).
Thanks @rdewit for the IE7 test report - this fixes one of the reported issues.
2012-08-21 13:57:11 +02:00
ahocevar
f0ad48597f No more percentage based positioning.
Client zoom now supports both over- and undersampling.
2012-08-21 13:57:11 +02:00
ahocevar
26d4fe3ce8 Making row and column size consistent, as suggested by @bartvde. 2012-08-21 13:37:48 +02:00
ahocevar
0f58868830 When using a buffer, the grid lacks rows/columns at the top/left.
This is because the threshold used for deciding when a column or row is shifted is too far to the bottom right. A tiny fix, but effective. A new test makes sure that we don't shift columns more than necessary when the layer is dragged.
2012-08-20 18:52:17 +02:00
ahocevar
96359fbc99 Fixing test that broke in FF with ff1f99a03f. 2012-06-11 13:38:42 +02:00
Éric Lemoine
d289aa327e Grid.removeExcessTiles removes more tiles than it should, refs #481 2012-05-24 22:55:43 +02:00
ahocevar
9585341d9c Changing/fixing the meaning of getServerZoom.
If a layer is configured with serverResolutions, then getServerZoom should return the zoom level as index of the current resolution in the serverResolutions array.
2012-05-11 00:26:08 -06:00
Éric Lemoine
f870417a30 class name olLayerGridTile renamed olLayerGrid 2012-04-03 06:28:06 +02:00
Éric Lemoine
d252a6156a add tests for className and removeBackBufferDelay default values 2012-03-31 21:24:45 +02:00
ahocevar
3eedfce46e Fixing test after 5e9104a2a2. 2012-03-27 13:10:28 -07:00
ahocevar
5e9104a2a2 Revert "Merge pull request #304 from mpriour/singleTile"
This reverts commit 84fb15e1d2, reversing
changes made to d0d116efdf.
2012-03-21 10:05:22 +01:00
ahocevar
d31a8da839 Clone needs a fresh backBuffer and tileQueue. 2012-03-19 21:09:43 +01:00
Bart van den Eijnden
c1944eb6da backBuffer style left and top need to be rounded 2012-03-19 10:15:13 +01:00
ahocevar
e52c97f741 Don't check based on layer.maxExtent.
layer.maxExtent is always set as soon as the layer is added to a map. Instead, making behavior consistent with tiled layers: don't display outside maxExtent except when displayOutsideMaxExtent is set to true or the layer's extent equals the world bounds for maps with a baseLayer that has wrapDateLine set to true.
2012-03-09 23:50:09 +01:00
Matt Priour
0ff2f9a457 Simplify maxExtent restriction logic and prevent unneeded calls to `getLayerPxFromLonLat` 2012-03-09 14:26:48 -06:00
Matt Priour
f6c8b81f3a Merge branch 'master' into singleTile 2012-03-09 14:04:21 -06:00
Tim Schaub
1a444589e0 Merge pull request #274 from tschaub/utfgrid
UTFGrid Tile, Layer, and Control.  This adds support for responsive handling of interactions with large numbers of features represented by UTFGrids.
2012-03-09 08:49:30 -08:00
Tim Schaub
021ad521a8 Tests for the getTileData method.
Tests pass on Chrome 17, Firefox 10, IE 8, and IE 6.
2012-03-08 19:18:32 -06:00
Matt Priour
9fbd3072b7 Merge branch 'master' into singleTile 2012-03-08 16:36:41 -06:00
Matt Priour
9d0dd67843 Add tests for initSingleTile function, which is where all the important singleTile logic is 2012-03-08 16:26:46 -06:00
Éric Lemoine
89cf93d994 fix the Grid tests that fail in slow browsers, suggested by @ahocevar (refs #299) 2012-03-08 17:53:09 +01:00
ahocevar
a05eab29db Adding tileloadstart event to layer.
For this to be useful (i.e. so listeners can see/modify the tile url), a change in Tile.Image is required so we do not fire the loadstart event before we have the url to load.
2012-03-06 14:40:08 +01:00
ahocevar
fe63d0aa63 New events: loaderror for Tile, tileerror for Layer.Grid. 2012-03-05 14:20:01 +01:00
Éric Lemoine
dc9dd219fc fix the "too much recursion" exceptions in the Grid.html tests 2012-03-04 21:15:04 +01:00
ahocevar
94e8fff9e6 Fixing test (see #249) 2012-02-28 12:05:13 +01:00
ahocevar
93e4d0b94c Making loaded tile available to tileloaded listeners. 2012-02-16 16:29:06 +01:00
ahocevar
720c49c040 Re-introducing tileLoadingDelay.
Only use it if no native requestAnimationFrame function is available. This should improve performance on mobile devices.
2012-01-29 18:50:03 +01:00
ahocevar
e64ed565e2 Adding tests fo verify tile queue management. 2012-01-28 16:24:56 +01:00
ahocevar
dde45696f7 Simplified tile queue; using the tile's beforedraw listener.
Since draw is the only tile operation that we defer, the tile queue can be an array of tiles and queue handling can be simplified. We now use the beforedraw event to defer drawing, and remove all occurrences of a tile from the tile queue when we draw it.

Instead of layers that want to defer tile drawing having to override the tile's draw method, layers can now abort drawing by returning false from a beforedraw listener, and later call draw(true) to draw the tile directly, without clearing it first.
2012-01-28 16:12:29 +01:00