Commit Graph

176 Commits

Author SHA1 Message Date
Tom Payne 879d9758c0 Cache array length in WebGL renderer 2013-04-20 11:34:48 +02:00
Tom Payne 7979726327 Avoid creating an ol.Size object 2013-04-19 20:52:40 +02:00
Tom Payne d964bbc605 Use for loop instead of forEach in WebGL tile layer renderer 2013-04-19 20:41:54 +02:00
Tom Payne f5611d6cd6 Use for loop instead of forEach in WebGL map renderer 2013-04-19 20:29:24 +02:00
Tom Payne 305089d84f Port ol.renderer.webgl to new extents 2013-04-19 10:03:35 +02:00
Tom Payne 75bc61c0e0 Use index instead of time as frame marker 2013-04-18 14:47:27 +02:00
Tom Payne 2f5797bc16 Always create layer renderer, even when layer is invisible or not ready
This is necessary because it is the layer renderer that is responsible
for triggering a render when a layer loads or becomes visible.
2013-04-18 12:52:45 +02:00
Tom Payne 07fe17924b Remove layer renderers in post render function 2013-04-16 18:16:08 +02:00
Tom Payne 4e69b2bb8b Create and remove layer renderers in renderFrame
Previously, the map renderer would listen for layers being added and
removed from the layers collection, and would create and remove layer
renderers in response to these events.

With this change, layer renderers are only created or removed when
renderFrame is called, which leads to somewhat simpler code.

We still need to listen to changes to the layers collection, but now
these only trigger a new render.

This new approach also has an advantage when layers change order.
Swapping the order of two layers involves removing one and re-inserting
it elsewhere.  With the old approach, this would cause the deletion and
re-creation of the layer renderer.  With this new approach, the layer
renderer is preserved.
2013-04-12 17:50:38 +02:00
Tom Payne be629a7ed8 Sort jsdoc comments alphabetically 2013-04-12 00:48:55 +02:00
Tom Payne 0371b891a6 Tighten up permission on layer renderers 2013-04-12 00:48:35 +02:00
Tom Payne d855a35446 Make renderer layer management private 2013-04-12 00:33:37 +02:00
Tom Payne ee817ba4a2 Clean up ol.renderer.webgl.Map.createLayerRenderer 2013-04-12 00:33:37 +02:00
Tom Payne fe03ebe99c Re-use ol.Extent objects 2013-04-09 19:19:45 +02:00
Tom Payne e556c87a7c Re-use ol.TileRange objects 2013-04-09 19:19:20 +02:00
Tom Payne 4d6e060052 Use high resolution tiles in WebGL renderer 2013-04-09 13:15:16 +02:00
Tom Payne 52893f1ba2 Remove stray comment 2013-04-09 13:07:02 +02:00
Tom Payne eee24870b5 Merge pull request #506 from twpayne/refactor-webgl-shaders
Refactor WebGL shaders
2013-04-08 11:11:47 -07:00
Tom Payne e132943eef Use goog.asserts.fail 2013-04-08 19:14:16 +02:00
Tom Payne 667f3de6d9 Remove unused constants 2013-04-08 16:40:53 +02:00
Tom Payne ee54aaaea4 Use simpler, faster shader when brightness, contrast, hue and saturation are unchanged 2013-04-08 16:40:53 +02:00
Tom Payne f7f799be27 Use automatically generated locations in WebGL tile layer renderer 2013-04-08 16:40:53 +02:00
Tom Payne aa5ce41cb5 Automatically generate uniform and attribute locations 2013-04-08 16:40:49 +02:00
Tom Payne c6cd3e0227 Refactor glsl-unit templates
This abuses the template system to allow both a single anonymous shader
and multiple named shaders to be defined in a namespace.
2013-04-08 15:57:26 +02:00
Tom Payne 4d1ec1ff90 Remove (mostly unused) logger 2013-04-06 17:32:41 +02:00
Tom Payne 4be8c991f7 Add missing Closure Library requires 2013-04-06 14:28:12 +02:00
Tom Payne da1e5aadd3 Factor out css.js and fix requires 2013-04-05 20:59:16 +02:00
Tom Payne 5680b89c48 Update logos in renderers 2013-04-05 18:27:51 +02:00
Tom Payne 02196c94b5 Redefine ol.Coordinate to be Array.<number> 2013-04-05 12:30:37 +02:00
Tom Payne b32a2e101c Abort rendering when WebGL context is lost 2013-04-05 00:14:10 +02:00
Éric Lemoine e128bab625 Do not pass tile grid to getTile and tileUrlFunc
getTile and the tileUrlFunc are functions of the source, so they do need to be passed the tile grid. The tile source knows its tile grid, and can get the projection's tile grid if it doesn't have a tile grid.
2013-04-02 11:12:43 +02:00
Tom Payne 494d61250e Make tile pre-loading a per-layer option 2013-03-27 14:34:29 +01:00
Tom Payne 1d22d2fdde Tune tile priority functions 2013-03-27 14:34:29 +01:00
Tom Payne 5e8b0de66d Use tile texture queue 2013-03-27 14:34:29 +01:00
Tom Payne 6221680b0b Add tile texture queue 2013-03-27 14:34:29 +01:00
Tom Payne 6cfe918501 Merge pull request #428 from twpayne/gc-optimizations
GC optimizations
2013-03-25 03:54:15 -07:00
Tom Payne 65e6ed3485 Rename getTileZXY to getTile 2013-03-25 10:10:03 +01:00
Tom Payne 69d06a6e18 Add comment about automatically generated files 2013-03-25 10:04:32 +01:00
Tom Payne 3a4ef83e79 Tidy up ol.webgl namespace 2013-03-24 15:51:09 +01:00
Tom Payne dfb631a08f Replace getTile with getTileZXY
This massively reduces the number of temporary ol.TileCoord objects.

Previously an ol.TileCoord object was generated for every potentially
visible tile at the current zoom level and lower, every frame.  This
commit eliminates all of those.  Now new ol.TileCoord objects are only
allocated when a new tile is created.
2013-03-24 15:24:49 +01:00
Tom Payne 731fcd3d17 Move shader support code into ol.webgl 2013-03-23 18:29:26 +01:00
Tom Payne 711e4be19e Use glsl-unit in WebGL tile layer renderer 2013-03-23 17:47:02 +01:00
Tom Payne 7300051b69 Use glsl-unit in WebGL map renderer 2013-03-23 17:46:38 +01:00
Tom Payne c48df12a33 Add infrastructure for glsl-unit 2013-03-23 17:45:44 +01:00
Tom Payne 3fbf7b8c20 Merge pull request #357 from twpayne/load-low-resolution-tiles
Load low resolution tiles
2013-03-23 06:00:45 -07:00
Tom Payne 80df629319 Premptively load low resolution tiles 2013-03-22 21:02:09 +01:00
Tom Payne e3abe376f1 Remove ol.source.TileSource.useLowResolutionTiles 2013-03-22 21:02:06 +01:00
Tom Payne 876fea2fb7 Rename shader variables to match CSS specification 2013-03-22 18:02:31 +01:00
Tom Payne b7184641b0 Use shorter module name and clean up requires 2013-03-22 17:58:15 +01:00
Tom Payne 69370ce629 Use ol.structs.Buffer.getUsage 2013-03-22 17:33:19 +01:00