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
Stéphane Brunner
889b6a9f43
Removes unnecessary type cast
2019-05-27 11:34:33 +02:00
Frederic Junod
40c49a9ce5
Remove layerState param from prepareFrame and renderFrame function
2019-05-25 07:19:10 +02:00
Andreas Hocevar
96331c5d95
Merge pull request #9584 from ahocevar/reuse-render-target
...
Reuse render target
2019-05-24 10:33:36 +02:00
ahocevar
d8f41a9d73
Only reuse target when className is the same
2019-05-24 10:16:20 +02:00
ahocevar
bdb87f06f9
Rework tile image render queue
2019-05-23 15:55:29 +02:00
ahocevar
ace5c65ee5
Smarter opacity handling
2019-05-22 16:47:23 +02:00
ahocevar
ae47d3df58
Use opacity from layer state
2019-05-22 16:47:22 +02:00
ahocevar
4c8effe6fa
No tile transition when layer opacity is set
2019-05-22 16:47:22 +02:00
ahocevar
c56ad4363d
Canvas opacity instead of css
2019-05-22 16:47:22 +02:00
ahocevar
7895b16043
Reuse container for raster and vector image layers
2019-05-22 16:47:20 +02:00
ahocevar
a45e704be2
Smarter reuse detection
2019-05-22 16:46:46 +02:00
ahocevar
d1f1b468b1
Reuse target for image layers
2019-05-22 16:46:46 +02:00
ahocevar
a55505b36a
Reuse containers for tile, vector and vector tile layers
2019-05-22 16:46:40 +02:00
ahocevar
930318ab7a
Clip high res tiles out of low res tiles only once
2019-05-22 15:57:15 +02:00
ahocevar
5fe9e06535
Use clipping to not render high res tiles on top of low res
2019-05-22 15:57:15 +02:00
ahocevar
606443bc6d
Pass render target of previous layer to next layer
2019-05-22 15:56:51 +02:00
Tim Schaub
908ecb39e3
Description below @abstract trips up JSDoc
2019-05-16 16:10:30 -06:00
ahocevar
b0fae46aa6
Do not use css z-index
2019-05-16 22:29:32 +02:00
ahocevar
335648d613
Remove memory leak caused by label cache listeners
2019-05-16 21:04:55 +02:00
Frederic Junod
f33ad5e025
Remove unused getReplayTransform_ function in VectorTileLayer
2019-05-15 15:10:54 +02:00
Olivier Guyot
e11e3c5f6e
Webgl / minor function renaming
2019-05-15 11:30:24 +02:00
Olivier Guyot
c705775d75
Linting
2019-05-15 10:20:31 +02:00
Olivier Guyot
9ca75e9d43
Webgl points / rebuild buffers when source change
2019-05-15 10:18:53 +02:00
Olivier Guyot
5d2b7fe4bb
Webgl points / use the helper ton compute the projection transform
...
The `WebGLHelper` class now provides a `makeProjectionTransform` method
that updates a transform to match the projection for a given frame state.
This also means that the WebGLHelper does not set the projection matrix
uniform anymore, this is the responsibility of the renderer as
the rendered coordinates will not be in world space from now on.
2019-05-15 10:18:47 +02:00
Olivier Guyot
fb455891ce
Webgl points / make coordinates in view space to avoid precision glitches
...
Fixes #9479
2019-05-15 10:18:47 +02:00
Olivier Guyot
75eb62363a
WebGL points / rebuild buffers only when extent changed
2019-05-15 10:18:47 +02:00
Olivier Guyot
523097903a
WebGL points / rebuild buffers on every non animation frame
2019-05-15 10:18:22 +02:00
Olivier Guyot
c6d214b585
Webgl / implement support for custom attributes in webgl buffers
...
Only numerical attributes can be pushed in webgl buffers.
2019-05-15 10:15:55 +02:00
Olivier Guyot
27e520add4
WebGL points / use pushFeatureInBuffer util
...
Feature objects are converted to geoJSON with the properties
set for rendering.
2019-05-15 09:47:00 +02:00
Olivier Guyot
3a429d3f6c
Webgl / add utils for pushing geojson geometries in webgl buffers
...
For now only point geometries are handled.
2019-05-15 09:44:41 +02:00
Olivier Guyot
5e36468245
Webgl / add a simple Layer renderer for common logic
...
This will eventually provides utilities for manipulating & rendering data
2019-05-15 09:43:29 +02:00
Frédéric Junod
2de282ae49
Merge pull request #9533 from fredj/canvas_optim
...
Canvas optimizations
2019-05-15 08:24:57 +02:00
Tim Schaub
b1ea0fec50
Name the module like the module
2019-05-14 13:58:04 -06:00
Frederic Junod
98ee52c61c
Move the transform matrix computation out of the for loop
2019-05-14 15:39:06 +02:00
Frederic Junod
f76b9bdd07
Only apply canvas transform if the tiles are scales
2019-05-14 15:33:44 +02:00
Olivier Guyot
c9d1725f5c
Composite renderer / trigger a render even when the source is undefined
2019-05-13 16:16:53 +02:00
ahocevar
eeec56fa94
Fix hit detection for multiple layers when decluttering is off
2019-05-12 23:32:44 +02:00
ahocevar
84db84bc23
Avoid blurry vector tiles
2019-05-08 10:31:29 +02:00
Andreas Hocevar
6e3d3d4877
Merge pull request #9466 from ahocevar/declutter-global
...
Declutter in correct order and for all layers
2019-05-07 14:33:24 +02:00