Commit Graph

736 Commits

Author SHA1 Message Date
Tim Schaub
c2fc800fc1 Allow WebGL tile layer style to be updated 2021-12-02 16:32:00 -07:00
Tim Schaub
3bf1aef8e2 Avoid loading tiles outside the grid extent 2021-11-30 16:30:51 -07:00
Tim Schaub
f336cf30b0 Additional types for WebGL renderer, sources, and tiles 2021-11-16 11:24:41 -07:00
Tim Schaub
71020bb5e4 Merge pull request #12976 from mike-000/WebGL-ReprojTile
Handle ReprojTile in ol/layer/WebGLTile
2021-11-16 09:40:00 -07:00
Tim Schaub
a2f3c02ac5 Allow canvas reuse for WebGL layers 2021-11-14 12:34:14 -07:00
Tim Schaub
0dfbedb099 Lazily create the WebGL helper 2021-11-13 11:37:09 -07:00
mike-000
4a80ebe1fc expire cache for tileGrid projection 2021-11-08 12:39:18 +00:00
Tim Schaub
2adf74ece4 Include WebGL context in render events for WebGL layers 2021-10-29 08:39:47 -06:00
Tim Schaub
4dc66ef8e3 Enqueue tiles at the next resolution in the animation 2021-09-23 17:28:39 +00:00
Tim Schaub
a332842540 More cleanup in the WebGL tile layer's dispose method 2021-09-23 12:00:00 +00:00
Duck
17394cc8be Ensure the texture is loaded into the correct index.
The previous code would try to load subsequent textures into the 0th slot.
2021-09-15 15:10:08 -07:00
Tim Schaub
d37e3e3134 Configure cache on the layer instead of the source 2021-08-27 18:04:00 -06:00
Andreas Hocevar
7acd5338c9 Allow sampling data from neighboring pixels 2021-08-18 11:24:37 +02:00
Andreas Hocevar
4526f2ef34 Properly handle alt tiles of transparent images 2021-08-18 11:24:34 +02:00
Andreas Hocevar
394873013c Do not render layer when outside extent 2021-08-18 11:24:32 +02:00
Andreas Hocevar
311247265b Add interim tiles handling 2021-08-18 11:24:26 +02:00
Tim Schaub
af80477c1d Rendering raster tiles with WebGL 2021-08-18 11:24:23 +02:00
Andreas Hocevar
79f5f46d27 Remove lint 2021-06-28 18:10:51 +02:00
Simon Seyock
8facb252f1 Replace google closure syntax = with brackets around name 2021-02-03 14:06:02 +01:00
Tim Schaub
19bb3f8c88 Consistent use of Array and Object types 2021-02-02 13:53:10 -07:00
Tim Schaub
afd0b8f757 Throw an error if shaders fail to compile or program fails to link 2021-01-05 17:24:58 -07:00
Maximilian Krög
23dc768c2e Order callback calls by distance to click position
All callback calls for hits with a tolerance > 0 are queued and
called ordered by distance after all hits are detected.
2020-12-01 23:21:59 +01:00
Andreas Hocevar
28aaa2e0d3 Pass geometry to forEachFeatureAtPixel callback 2020-11-27 13:43:28 +01:00
Andreas Hocevar
7a5e0db59f Remove decluttering for a fresh start 2020-09-18 23:31:20 +02:00
Frederic Junod
142fbc0811 Use the className param in ol.layer.Heatmap 2020-09-11 08:23:15 +02:00
Langbein, Michael
a70ce2ca06 Implement preRender and postRender methods for WebGLLayerRenderer
This is required so that Renderers like WebGLPointsLayerRenderer can fire prerender and postrender events.
Problem described in [issue 11463](https://github.com/openlayers/openlayers/issues/11463).
2020-08-30 13:20:18 +02:00
Andreas Hocevar
fda93cee23 Updates for TypeScript v4 2020-08-25 13:03:58 +02:00
Tim Schaub
054af09032 Make code prettier
This updates ESLint and our shared eslint-config-openlayers to use Prettier.  Most formatting changes were automatically applied with this:

    npm run lint -- --fix

A few manual changes were required:

 * In `examples/offscreen-canvas.js`, the `//eslint-disable-line` comment needed to be moved to the appropriate line to disable the error about the `'worker-loader!./offscreen-canvas.worker.js'` import.
 * In `examples/webpack/exapmle-builder.js`, spaces could not be added after a couple `function`s for some reason.  While editing this, I reworked `ExampleBuilder` to be a class.
 * In `src/ol/format/WMSGetFeatureInfo.js`, the `// @ts-ignore` comment needed to be moved down one line so it applied to the `parsersNS` argument.
2020-04-06 12:54:09 -06:00
Frederic Junod
dda7342ea7 Remove all inheritDoc tags from src/ol/renderer 2020-04-03 09:08:09 +02:00
Frederic Junod
d15ec1c12c Remove all inheritDoc tags from disposeInternal functions 2020-04-03 08:10:41 +02:00
John Leonard
e6a2d4b235 fix: handle layer clear event in case clear(true) called
and individual delete feature events aren't generated
2020-03-09 18:36:12 +00:00
Olivier Guyot
ae66471e78 Webgl renderer / hide shader compile errors
Turns out there are sometimes errors that will not prevent the
shader from functioning normally. As such, it is not possible
to simply throw when there are errors/warnings.

Since we are not logging to the console, these errors will have to stay hidden
unless the user requests them explicitly.
2019-11-06 21:40:39 +01:00
Olivier Guyot
7da86ae71f Webgl points renderer / slight improvements following review
Also fixes a lint error.
2019-11-04 09:55:54 +01:00
Olivier Guyot
600e1a4647 Webgl points renderer / use a smaller canvas for hit detection render
The hit detection render is now done against a canvas with half the
width/height of the main render. This still provides sufficient precision
while requiring a much smaller memory allocation (especially for
retina devices).
2019-11-04 09:31:38 +01:00
jahow
f7b0f6750b Resolve memory leak when deleting a webgl layer
Various references were kept, preventing the layer and underlying
renderer and webgl context to be garbage collected.

Also, the Helper was simplified because it turns out deleting manually
all Webgl objects is useless: these objects will be released when
the context is garbage collected anyway.

Note: this touches the Layer and BaseLayer classes, as the following were
preventing the layer from being garbage collected:
* layer reference in the `state_` object in BaseLayer
* dangling listener for source change in Layer
2019-11-04 09:31:38 +01:00
Olivier Guyot
e78c14c061 Webgl points renderer / add a cache for features in the source
This allows quicker access to features as well as their geometries
and properties, reducing the time taken by a rebuildBuffers call.
2019-11-04 09:31:38 +01:00
Andreas Hocevar
ac50cc3460 New eslint config with no-multi-assign 2019-11-02 15:20:21 +01:00
Olivier Guyot
f84fae8f70 Merge pull request #10198 from jahow/fix-webgl-renderer-loading-extent
WebGL renderer / use the specified loading strategy for the vector data
2019-10-28 16:19:52 +01:00
Olivier Guyot
cd3b222467 Specify an actual extent when loading features in the Webgl points renderer
This means any specified loading strategy will be taken into account.

Also added some tests to make sure the interaction with the source is
correct.
2019-10-28 10:26:31 +01:00
Olivier Guyot
d643951a74 Shader Builder / add option to generate hit detection shaders 2019-10-25 14:55:44 +02:00
Olivier Guyot
a1c00744d1 Webgl points renderer / throw if shader compilation fails
This should only happen if providing handcrafted shaders to the renderer.
2019-10-22 23:17:00 +02:00
Simon Seyock
5b1106ac23 some type corrections 2019-10-10 09:07:35 +02:00
Frederic Junod
ea88e6cbd4 Remove invalid undefined type in params 2019-09-27 11:01:50 +02:00
Olivier Guyot
7e4383f554 Webgl renderer / now accepts any kind of layer (not just vector) 2019-09-26 15:33:54 +02:00
Olivier Guyot
607f2f0746 Merge pull request #9994 from jahow/add-webgl-layer-type
Add a new layer type: WebGLPointsLayer
2019-09-26 14:55:09 +02:00
Olivier Guyot
9e9aa66f5f Webgl points renderer / restore check for hit detection readiness 2019-09-25 17:22:36 +02:00
Olivier Guyot
b8564d503a Webgl icon example / restore texture for icons 2019-09-25 17:22:36 +02:00
Olivier Guyot
9e55a8b2f0 Webgl / linting & test fixes 2019-09-25 17:22:36 +02:00
Olivier Guyot
610a846149 Webgl points renderer / make the hit detection optional 2019-09-25 17:22:36 +02:00
Simon Seyock
6b5c2f47bb reduced typecasts in layerrenderer 2019-09-25 15:24:37 +02:00