Commit Graph

1903 Commits

Author SHA1 Message Date
Olivier Guyot
b89c1255f7 Canvas vector / Avoid modifying the coordinates array in place 2019-09-26 15:34:31 +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
Simon Seyock
54cbe14f88 Check hits for wrapped around geometries 2019-09-26 11:46:10 +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
Simon Seyock
bb0b94fedf fixed typescript issues 2019-09-25 14:10:05 +02:00
Olivier Guyot
23c2999cab Webgl points renderer / fix hit detection
Due to the fact that the points renderer does not know for sure
which attributes will be used for rendering, it is now mandatory
to provide both vertex/fragment shaders for rendering AND hit
detection.

The hit detection shaders should expect having an `a_hitColor`
that they should return to allow matching the feature uid.

This will be all one eventually by shader builders under the hood.
2019-09-25 12:11:09 +02:00
Olivier Guyot
2b36445ecc Webgl / Adapt the points renderer to use custom attributes
Now most attributes will be custom ones defined by the user of the renderer.
The hit detection is broken for now and still has to be fixed.
Also it is not possible anymore to give a texture to the renderer,
this will have to be fixed as well.
2019-09-25 10:11:27 +02:00
Tim Schaub
fed6aef057 Merge pull request #9980 from tschaub/use-geographic-geom
Get simplified transformed geometry
2019-09-24 18:07:06 +02:00
Olivier Guyot
30f19f8317 Webgl points renderer / terminates worker & dispose helper 2019-09-24 17:59:21 +02:00
Tim Schaub
30cbbfea9d Get simplified transformed geometry and load features in user projection 2019-09-24 17:45:04 +02:00
Andreas Hocevar
3ed1a433fb Don't attempt to render when there is no source 2019-09-24 17:37:22 +02:00
Olivier Guyot
4d7562fca2 Add a new WebGLPointsLayer type using the shader builder utilities
This required adding a `a_index` attribute in the points layer renderer
to be able to make the precomputed shaders to work.
2019-09-24 17:24:56 +02:00
Tim Schaub
3c38a38570 Merge pull request #9961 from KlausBenndorf/remove-select-interaction
SelectInteraction removal
2019-09-24 10:27:20 +02:00
Simon Seyock
acac7a9403 remove skipFeature logic 2019-09-24 10:12:30 +02:00
Andreas Hocevar
db529a0d49 Merge pull request #9957 from ahocevar/vectortile-labels
Get hasOverlay from child element count
2019-09-23 23:20:17 +02:00
Tim Schaub
54d3af40dd Transform the layer extent when a user projection is set 2019-09-23 17:23:20 +02:00
Andreas Hocevar
6a53ed3a68 Get hasOverlay from child element count 2019-09-23 08:40:00 +02:00
mike-000
50be36fc43 Correct clipping error seen in #9585
Clipping does not need to consider view rotation
2019-09-13 12:06:03 +01:00
ahocevar
ebfb20440a Simplify events and store listeners only in one place 2019-09-04 16:48:43 +02:00
Olivier Guyot
732b383b53 Webgl points / re-render when buffers have been built offthread 2019-08-31 08:41:04 +02:00
Olivier Guyot
5c1191dd5c Webgl points / skip hit detection render when out of sync
This happens when the indices buffer has been generated by the
worker but not the hit detection vertices buffer.
2019-08-30 10:38:41 +02:00
Olivier Guyot
c48350b666 Webgl buffer / add utility getSize function
Saves checking whether the buffer was initialized with
an array already
2019-08-30 10:38:02 +02:00
Olivier Guyot
e57e660819 Webgl points / use default vertex shader for hit detection
Otherwise we were getting errors if the custom
vertex shader was missing varyings expected by
HIT_FRAGMENT_SHADER.
2019-08-30 10:16:55 +02:00
Tim Schaub
99462d3b53 Only get squared tolerance once per render 2019-08-17 07:10:10 -06:00
Maximilian Krög
200392785d Squared tolerance does not change for each style. 2019-08-17 11:15:06 +02:00
Tim Schaub
e94c7b6c39 Only set frameState.animate true if in transition and alpha < 1 2019-08-15 12:55:27 -06:00
Andreas Hocevar
ec10cda088 Merge pull request #9812 from ahocevar/zdirection
Make zDirection configurable on tile source
2019-08-07 08:56:23 +02:00
Tim Schaub
65ad4932f4 Support zoom limits for layers 2019-08-06 21:19:09 -04:00
ahocevar
e07ff9c04e Make zDirection configurable on tile source 2019-07-30 16:50:01 +02:00
ahocevar
387f797f23 Avoid false positives for line and polygon hit detection 2019-07-23 19:24:27 +02:00
Andreas Hocevar
ff063caa4e Merge pull request #9755 from ahocevar/font-loading
Font loading improvements
2019-07-15 12:21:28 +02:00
Frédéric Junod
5cff84522a Merge pull request #9745 from fredj/misc_webgl
Simplify heatmap's shaders
2019-07-05 08:27:08 +02:00
ahocevar
5616c535b0 Clean up properly when clearing label cache 2019-07-04 16:10:28 +02:00
Frederic Junod
89295b0359 Remove hit detection transforms from ol/renderer/webgl/PointsLayer 2019-07-03 10:38:13 +02:00
Frederic Junod
bb35a03704 Don't rotate the points of the heatmap layer 2019-07-01 11:29:27 +02:00
Frederic Junod
24e4f41452 Use size property from the frameState instead of creating new array 2019-07-01 09:44:37 +02:00
Frederic Junod
933a6297bb Remove unused hasFeatureAtCoordinate from ol/renderer/Layer 2019-06-28 11:10:33 +02:00
jahow
3bca9b5297 Webgl / use feature index for hit detection in points layer
For each feature its opacity value index is encoded on 4 bytes
in the color values, and the uid is stored in the opacity
value, allowing for a much higher range of uids to be read.
2019-06-28 09:12:20 +02:00
Olivier Guyot
28b99767f8 Webgl points / read only one pixel for feature hit detection
Also implements `hasFeatureAtCoordinate`.

`hitTolerance` is not supported for now.
2019-06-28 09:12:20 +02:00
Olivier Guyot
5ffca0633c Webgl Points / Add support for feature hit detection
For now only `forEachFeatureAtCoordinate` is implemented.

Each time the viewport is rendered, another similar render pass is
done using the specific hit detection instructions. Feature uid's are
encoded in the r,g,b,a channels and can then be decoded on the fly.

Note: the `readPixels` operation is taking a lot of time,
around 10-20ms each frame.
2019-06-28 09:12:20 +02:00
Olivier Guyot
1257ade199 Webgl renderer / rename function to avoid confusion
`getBlankTexture` was too close to `WebGLHelper#createTexture`
2019-06-28 09:12:20 +02:00
Olivier Guyot
2b5e5459ab Webgl points / add hit detection buffers generation
Hit detection is done by rendering features with their id encoded in the
color attribute. A parallel set of render instructions and a second
vertex buffer is used specifically for that.
2019-06-28 09:06:16 +02:00
Olivier Guyot
8145b358c0 Webgl renderer / add id encode/decode utils 2019-06-28 09:06:16 +02:00
Frederic Junod
54c670de77 Remove unused variable in ol/renderer/webgl/PointsLayer 2019-06-25 15:24:00 +02:00
ahocevar
9cd35d67a9 Fix clipping and clearing 2019-06-23 14:23:32 +02:00