Commit Graph

646 Commits

Author SHA1 Message Date
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
Frederic Junod
ea616e7751 Don't import ourselves 2018-09-06 09:05:32 +02:00
Tim Schaub
ccfacc5ee6 Transformed types
Using the [ts.js codemod](https://gist.github.com/tschaub/1ea498c9d1e5268cf36d212b3949be4e):

    jscodeshift --transform ts.js src
2018-09-05 08:05:29 -06:00
Frédéric Junod
d84c64b3e7 Merge pull request #8524 from NeoRaider/xhtml-fixes
Fix compatiblity with XHTML content type
2018-08-22 13:13:22 +02:00
ahocevar
1baa8be269 Add 'rendercomplete' event 2018-08-22 09:53:24 +02:00
Matthias Schiffer
321166849b Consistently use lowercase HTML tag names
Unlike HTML, XHTML is case-sensitive.
2018-08-18 12:48:14 +02:00
ahocevar
2f92e48e93 Use super.method instead of prototype.method.call 2018-08-06 15:30:17 +02:00
Guillaume Beraudo
fe86d2e7f7 Expose original getGutter
TileWMS objects take a gutter option but do not have a public getter
for it. This makes it convoluted for user code to recreate the object
(ex: in the case of serialization/deserialization).

- the getGutterInternal() method is renamed to getGutter;
- the getGutter(projection) method is renamed to getGutterForProjection,
  which is also more explicit.

The getGutter method was not API and is only used by the renderer.
2018-08-02 17:12:41 +02:00
Tim Schaub
6cfa2b22a7 Explicit void 2018-07-26 10:46:39 -06:00
Tim Schaub
2eb07aa081 Use Template<Foo> instead of Template.<Foo> 2018-07-25 18:37:08 -07:00
Tim Schaub
affbf59b77 Use Object<Foo, Bar> instead of Object.<Foo, Bar> 2018-07-25 18:33:49 -07:00