Simon Seyock
6b5c2f47bb
reduced typecasts in layerrenderer
2019-09-25 15:24:37 +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
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
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
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
Frederic Junod
54c670de77
Remove unused variable in ol/renderer/webgl/PointsLayer
2019-06-25 15:24:00 +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
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
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
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
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
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
Olivier Guyot
f69c37566e
Improve documentation on webgl and View
2019-05-04 17:26:05 +02:00
Tim Schaub
3b1a415d6b
Call the color callback once per feature
2019-04-28 14:09:31 -06:00
Tim Schaub
a16234faaa
Allow color callback without third arg
2019-04-19 13:57:40 -07:00
Tim Schaub
154265a2d9
Fewer calls to the color callback
2019-04-19 13:49:53 -07:00
Olivier Guyot
c6a859d1ed
Webgl / clarify premultiplied alpha handling
...
By default, alpha premultiplying should be done by the initial rendering
(eg quads) and not the final post processing pass.
The default post processing pass expects premultiplied color values and
will not do this operation itself.
2019-04-02 22:12:47 +02:00
Olivier Guyot
b955579a9c
Webgl / clarified the buffer binding/flushing logic
...
The Webgl points layer renderer has also been optimized accordingly,
giving out much better performance.
2019-04-02 21:05:31 +02:00
Kai-W
275a22b685
Added clear of the render Buffers on Source Change
2019-03-28 17:21:43 +01:00
Frederic Junod
0b53a3229b
Remove unneeded type cast
2019-02-04 09:58:49 +01:00
Frederic Junod
8dbe8bc34e
Parse the opacity from style as float
2019-01-22 12:48:14 +01:00
Olivier Guyot
62c7a49943
Webgl points / added a texture option & improved doc
2018-12-28 15:53:07 +01:00
Olivier Guyot
0acfd7ab59
WebGL points / Added a color attribute
2018-12-28 15:53:07 +01:00
Olivier Guyot
27b0cf18e7
Update default shaders in documentation of webgl classes
2018-12-07 09:32:52 +01:00