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