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
ahocevar
4d2fa476a3
Simpler z sort
2019-06-23 14:22:56 +02:00
Andreas Hocevar
8a49e06ebd
Merge pull request #9704 from ahocevar/vectortile-reuse-issue
...
Handle container reuse properly when layers are added/removed
2019-06-22 19:33:59 +02:00
ahocevar
6783f6adb9
Handle container reuse properly when layers are added/removed
2019-06-22 19:12:39 +02:00
Kai Volland
f507efe77d
Fixes typing issue in Composite.js
2019-06-21 13:31:27 +02:00
Frederic Junod
1f00da8d83
Remove glContext from RenderEvent
2019-06-17 13:52:56 +02:00
Frederic Junod
ec5e8bfa50
Set pixelTransform and inversePixelTransform as protected
...
The variables are used in child classes
2019-06-14 14:52:28 +02:00
Olivier Guyot
9ae7256048
Merge pull request #9562 from jahow/webgl-worker
...
Optimize the WebGL points renderer using a worker
2019-06-06 08:48:29 +02:00
Olivier Guyot
2412fe0211
Webgl / remove handling of element_index_uint extension
...
From now on we will assume this extension is always enabled.
An error message have been added in the unlikely scenario of a lack
of support.
2019-06-05 14:46:15 +02:00
ahocevar
8f77a300de
Handle case of no used tiles
2019-06-04 14:07:23 +02:00
ahocevar
8c21c9196d
Move label cache listener management to the renderer
2019-06-03 15:13:30 +02:00
ahocevar
6123be726a
Handle layer removal on shared containers
2019-06-02 13:59:06 +02:00
ahocevar
05d8517686
Clear overlay canvas when reusing containers
2019-06-02 11:07:30 +02:00
Frederic Junod
06be00bbd5
Webgl Helper / add an API for OESElementIndexUint extension
2019-06-01 15:35:27 +02:00
Frederic Junod
7fb113c3dc
Mark 'helper' variable protected
2019-06-01 15:33:36 +02:00
Olivier Guyot
698816030e
Webgl points / fix unit tests
2019-06-01 15:33:36 +02:00
Olivier Guyot
03e70bd10e
Webgl points / handle using short instead of int for indices
...
This is controlled by the availability of the OES_element_index_uint
webgl extension.
2019-06-01 15:33:36 +02:00
Olivier Guyot
e0983cb1c6
Webgl worker / add tests, some typing and documentation
...
The worker currently works by receiving GENERATE_BUFFERS messages and
will send back the same kind of message, with the generated buffers
attached. All properties of the original message are kept, so that
when a GENERATE_BUFFERS message comes back to the main thread it
is possible to know what and how the buffers where generated.
This is typically used for the `projectionTransform` matrix, and
will also be necessary when working with tiles.
2019-06-01 15:33:36 +02:00
Olivier Guyot
a366803cdd
Webgl / use the new buffer API in helper & the points renderer
2019-06-01 15:33:36 +02:00
Olivier Guyot
8566cfc227
Webgl points / get back the instructions array from the worker
...
This means we won't have to recreate a binary buffer (through a typed array)
on every `rebuildBuffer` call.
2019-06-01 15:25:24 +02:00
Olivier Guyot
65be907095
Webgl points / shifts the buffer write logic in a worker
...
The worker receives a transferable array of instructions
and sends back two transferable arrays (vertex and index buffer).
The projection transform is also sent so that when the main thread
receives the buffers from the worker it also knows which projection to
apply when rendering the geometries.
2019-06-01 15:25:11 +02:00
Olivier Guyot
532b8194b1
Webgl points / use the new typed-array based utils for buffers
...
`rebuildBuffer` is still a very CPU intensive task and is blocking the
main thread.
2019-06-01 15:20:04 +02:00
Olivier Guyot
eb912d95ca
Webgl / refactor utilities to work only on typed arrays
...
The base webgl renderer module now has two types of utilities:
* `writeXFeatureInstructions` will write a series of values in a given
typed array, which represent how a given feature will be rendered; for points,
this means position, size, color, etc.
* `writeXFeatureToBuffers` will fill up the given index & vertex buffers
with values based on the provided render instructions
As such, the logic for rendering features is:
user-input style > instructions array >(*) index/vertex buffers > draw
(*) this transformation is intended to be done on a worker.
2019-06-01 15:19:37 +02:00
Tim Schaub
deb00f20fe
Include full filename in import specifier
2019-05-29 08:51:10 -06:00
Frédéric Junod
c4e465dcf9
Merge pull request #9592 from fredj/f9587_layerIndex
...
Remove `layerState` param from `prepareFrame` and `renderFrame` function
2019-05-29 09:27:38 +02:00