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
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
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
Olivier Guyot
f177a2bcd5
Simple handling of layer opacity in webgl points layer
...
Now the layer opacity is simply handled by a CSS property on the layer DOM element. As such it does not have to be
taken into account in shaders.
2018-12-07 09:02:02 +01:00
Olivier Guyot
a6989af00a
Webgl points layer / added callbacks for attributes
...
Now opacity, rotateWithView and tex coords can be set with callbacks per feature.
2018-12-07 08:57:12 +01:00
jahow
8bb7d77f68
Update PointsLayer documentation
2018-12-01 00:11:27 +01:00
jahow
78028893e2
Added missing attributes in PointsLayer
...
Attributes were used in the shader but not bound to a buffer, which made the
rendering failed in some implementations.
2018-12-01 00:01:55 +01:00
Olivier Guyot
0b23e94a2a
Fixed internal var name on WebGLPoints renderer.
2018-11-19 13:11:23 +01:00
jahow
6b82cf0b84
Simplified the API of WebGLHelper
...
Now the shader and program caches are simply arrays of native WebGL created objects.
The WebGLHelper simply takes the sources of the frag and vert shader and produces a program.
This removes 2 classes & reduces the general verbosity of the API.
Also a `getShaderCompilationErrors` was added on `WebGLHelper` to help debug GLSL errors.
2018-11-19 13:11:23 +01:00
Olivier Guyot
1ae1b60308
Rename webgl-new to webgl
2018-11-16 14:05:06 +01:00
Olivier Guyot
7fa2189fe9
Remove the bulk of the WebGL legacy code.
...
Things left to do:
* redo an icon layer example
* redo a clipping layer example
* update docs where WebGL renderers are mentioned
2018-11-16 14:02:08 +01:00
Tim Schaub
f6b838c635
Make webgl layer renderers dependencies of webgl layers
2018-11-12 14:54:11 +01:00
Frederic Junod
3cf4dbfcc6
Simplify import path in ol/renderer/
2018-11-05 16:26:45 +01:00
ahocevar
1cdd040c96
Throw when calling abstract methods; fix abstract return types
2018-10-30 18:55:49 +01:00
Frederic Junod
7e142080a1
Remove hasFeatureAtCoordinate from ol/renderer/webgl/ImageLayer
2018-10-17 17:08:53 +02:00
Frederic Junod
648ee4f4a4
Remove forEachFeatureAtCoordinate from ol/renderer/webgl/ImageLayer
2018-10-17 15:44:45 +02:00
Frédéric Junod
3d72490241
Merge pull request #8827 from schmidtk/remove-source-foreachfeatureatcoordinate
...
Removed unused forEachFeatureAtCoordinate from ol/source/Source
2018-10-17 15:09:37 +02:00
Kevin Schmidt
df4ef724b6
Removed unused forEachFeatureAtCoordinate from ol/source/Source
...
Fixes #8826 .
2018-10-17 06:10:10 -06:00
Frederic Junod
041836c645
Change getUid return type from number to string
2018-10-17 10:22:53 +02:00
Tim Schaub
4cb5dc695b
Merge pull request #8774 from schmidtk/ts-renderer-webgl
...
Fix type check errors in ol/renderer/webgl
2018-10-03 03:48:07 -06:00
Kevin Schmidt
e30293d07f
Fix type check errors in ol/renderer/webgl
2018-10-02 15:36:02 -06:00
Frederic Junod
ae87cad7ef
Use FeatureLike typedef
...
Use `import("./Feature.js").FeatureLike` typedef instead of `import("./Feature.js").default|import("./render/Feature.js").default`
2018-10-02 12:58:56 +02:00
Frederic Junod
f58cd03f3b
Remove extra parameters
2018-09-28 09:13:43 +02:00
William Wall
016436ae18
Check that tile is ImageTile before using it
2018-09-19 15:04:14 -06:00
William Wall
7525c57688
Check the type of the source before using it
...
This satisfies tsc in addition to making the class more defensive
against source types that it does not support.
2018-09-19 14:39:10 -06:00