Commit Graph

599 Commits

Author SHA1 Message Date
Peter Robins 176ddd3403 Rename non-api sub-namespace typedefs 2016-05-13 10:24:57 +00:00
Peter Robins 535e8f5e35 Move top-level typedefs to typedefs.js
With one exception, those directly in the `ol` namespace can be moved without problem.
Some left-over goog.requires are also removed.
2016-05-11 17:18:05 +00:00
Peter Robins 2a44669e18 Add some goog.requires to keep compiler happy 2016-05-09 16:00:07 +00:00
Andreas Hocevar c17e23f2ae Skip unnecessary render functions 2016-04-28 10:22:20 +02:00
Andreas Hocevar c72a39ff53 Coding style fixes 2016-04-27 17:33:55 +02:00
Andreas Hocevar ec832243a2 Add comment making clear that 'vector' mode does not generate images 2016-04-27 17:31:20 +02:00
Andreas Hocevar c5f81a5706 Unconditionally call drawImage - image is always available 2016-04-27 17:31:20 +02:00
Andreas Hocevar f7147960a9 Add render options for vector tile layers 2016-04-19 13:04:38 +02:00
Frederic Junod a2c3dfd5de Add a temporary ol.TileCoord in ol.renderer.canvas.TileLayer
Avoid garbage creation
2016-04-13 17:21:10 +02:00
Frederic Junod 593132c902 Remove unused private variables in ol.renderer.canvas.Map 2016-04-13 10:54:11 +02:00
Frederic Junod 80e984a9c3 Use Array.isArray instead of goog.isArray 2016-04-04 09:06:29 +02:00
Björn Harrtell 44e04be67f Get rid of goog.functions 2016-04-01 10:32:15 +02:00
Tim Schaub f0814628b7 Synchronous rendering only 2016-03-18 17:26:10 -06:00
Andreas Hocevar 577e45cd97 Do not rotate map canvas after composition
This requires to draw tile layers to an intermediate canvas again, but
only when the view is rotated.
2016-03-18 21:53:19 +01:00
Andreas Hocevar 600c139a61 Resize the map canvas less aggressively 2016-03-12 14:13:28 +01:00
Andreas Hocevar 750a01aa80 Merge pull request #4960 from ahocevar/clip-rendered
Simplify clipping of lower resolution regions
2016-03-03 15:44:47 +01:00
Tim Schaub ae4d8195c0 Remove use of goog.dispose() 2016-03-02 15:44:06 -07:00
Andreas Hocevar 8ba04ac77a Simplify clipping of lower resolution regions 2016-03-02 15:54:06 +01:00
Andreas Hocevar 16f63a7e0c Calculate low resolution tile clipping like current tile position 2016-02-29 21:30:57 +01:00
Andreas Hocevar 23172a3695 Use tile position coordinates for clip geometry outer ring 2016-02-29 21:28:20 +01:00
Andreas Hocevar 8553da6679 Refactor tile position calculation for readability 2016-02-29 21:23:19 +01:00
Andreas Hocevar 8256ff60b6 Consider layer opacity for lower resolution tile clipping 2016-02-29 21:13:31 +01:00
Andreas Hocevar f2d5d572ab Only composeFrame when prepareFrame prepared something to render 2016-02-23 13:56:39 -07:00
Andreas Hocevar 6c7d6817bd Merge pull request #4854 from ahocevar/fix-select-and-everything-that-relies-on-unmanaged-layers-and-skipped-features-this-time-for-real---hopefully
Always report skipped feature hits for the original layer
2016-02-22 09:23:28 +01:00
Petr Sloup 59574da74c Fix reprojection of raster sources with gutter 2016-02-19 12:17:03 +01:00
Andreas Hocevar 9f0fefd42d Hit-detect skipped features, but not on unmanaged layer 2016-02-17 00:54:31 +01:00
Andreas Hocevar 952b99742e Add tests, remove unused code, encapsulate repeated code in functions 2016-02-15 17:00:06 +01:00
Andreas Hocevar a109062b1f Rotate map canvas after composition 2016-02-15 17:00:06 +01:00
Andreas Hocevar 98b823c5fc Render tiles directly to the map canvas
This change removes the overhead of rendering tiles to an intermediate canvas.
2016-02-12 12:54:19 +01:00
Andreas Hocevar 3f2d79b7fe Replace goog.events.Event/EventTarget system with our own
This also removes goog.events.listen, goog.events.unlisten,
goog.events.unlistenByKey and goog.events.BrowserEvent.
2016-02-03 11:19:38 +01:00
Nicholas L d820b54443 Remove goog.array.equals and goog.array.stableSort 2016-02-03 11:41:39 +13:00
Andreas Hocevar dad92e723c Merge pull request #4733 from ahocevar/fix-scale
Avoid rendering too big and too small images for vector tiles
2016-01-30 17:51:35 +01:00
Andreas Hocevar 44764ec1d1 Use rendered tile size limit to avoid big images
When using tile sets with a high tilePixelRatio, the maximum pixel size can
trouble the browser. Instead, we now use replay rendering by tile size limits
instead of resolution ratio limits.
2016-01-27 13:38:56 +01:00
Andreas Hocevar 483376deb2 Untangle vector tile feature reprojection 2016-01-27 00:42:51 +01:00
Tim Schaub c9e2b384e7 Merge pull request #4602 from tschaub/eslint
Use ESLint.
2016-01-12 00:09:15 -08:00
Petr Sloup 2c3ed38714 Fix for reprojecting opaque tile sources 2016-01-12 08:58:16 +01:00
Tim Schaub 13a981c94b Fewer blank lines 2016-01-11 22:03:23 -08:00
Tim Schaub 3cf8618fc7 Prefer single line assignment to 80 character limit 2016-01-11 18:56:08 -08:00
Tim Schaub 59a66c7aaa Remaining valid-jsdoc corrections 2016-01-11 18:56:08 -08:00
Andreas Hocevar 9f43716723 Merge pull request #4596 from ahocevar/tile-key
Use consistent tile coordinate keys
2016-01-04 19:27:47 +01:00
Petr Sloup 767ac44e99 Make ol.source.Tile#getTilePixelRatio work for all sources
Even for sources which serve dynamic tile sizes based on devicePixelRatio
2015-12-28 13:19:03 +01:00
Andreas Hocevar 300b5cad44 Use consistent tile coordinate keys
Tile coordinate keys from ol.tilecoord.toString() are different than the ones
from Array.prototype.toString(). Both were used, potentially causing problems.
This change makes them consistent and removes the now unnecessary
ol.tileCoord.toString() function.
2015-12-27 17:59:51 +01:00
Andreas Hocevar 38bb1569af Remove no longer needed buffer for direct rendering 2015-12-18 00:27:42 +01:00
Andreas Hocevar 9affb99899 More sensible split between direct and canvas rendering 2015-12-17 10:58:35 +01:00
Andreas Hocevar 80f10ce824 Avoid unnecessary calculation in loops 2015-12-17 00:17:28 +01:00
Andreas Hocevar 4f2df30f1d Avoid clipping by rendering tiles with rotated labels
This only works when the device pixel ratio is 1. Labels are incorrectly
positioned and not at all rotated for other pixel ratios. I cannot find the
cause for this problem.
2015-12-17 00:17:27 +01:00
Andreas Hocevar c1b16217f2 Conditionally render tiles to a separate tile canvas
Because clip geometries are anti-aliased in most browsers, there will be tiny
gaps between tiles. If tiles are rendered to a tile canvas which is then drawn
to the map canvas upon composition, these gaps can be avoided. For rotated
views, it is stil necessary to clip the tile, but in this case a 1-pixel
buffer is used.

This change also brings a huge performance improvement for panning, because
the fully rendered tiles can be reused.

Because of the added cost of using drawImage in addition to replaying the tile
replay group, we fall back to directly drawing to the map canvas when the tile
canvas would be too large, or during interaction/animation when resolution or
rotation change.
2015-12-17 00:17:27 +01:00
Bart van den Eijnden 25e0053a13 Rename defaultSort to numberSafeCompareFunction on ol.array 2015-12-16 13:40:05 +01:00
Bart van den Eijnden e0be143ed5 Always pass on a compare function to sort 2015-12-16 10:54:46 +01:00
Frederic Junod a4fb2501d8 Remove use of goog.array.sort
Fixes #4160
2015-11-19 16:53:11 +01:00