Commit Graph

284 Commits

Author SHA1 Message Date
Tim Schaub
c2fc800fc1 Allow WebGL tile layer style to be updated 2021-12-02 16:32:00 -07:00
Tim Schaub
611d455708 Tests for and adjustments to unpack alignment handling 2021-11-19 21:11:32 -07:00
mike-000
dc7303967c Use appropriate unpackAlignment for data textures 2021-11-19 21:11:32 -07:00
Tim Schaub
f336cf30b0 Additional types for WebGL renderer, sources, and tiles 2021-11-16 11:24:41 -07:00
Tim Schaub
71020bb5e4 Merge pull request #12976 from mike-000/WebGL-ReprojTile
Handle ReprojTile in ol/layer/WebGLTile
2021-11-16 09:40:00 -07:00
Tim Schaub
a2f3c02ac5 Allow canvas reuse for WebGL layers 2021-11-14 12:34:14 -07:00
mike-000
f4134b873b Handle ReprojTile 2021-11-08 12:39:17 +00:00
Tim Schaub
a332842540 More cleanup in the WebGL tile layer's dispose method 2021-09-23 12:00:00 +00:00
Tim Schaub
da256e6c00 Enable WebGL extensions when required 2021-09-17 14:14:12 -06:00
Duck
05615df1a3 Allow TileTexture to select float or int based textures. 2021-09-15 15:10:55 -07:00
Duck
17394cc8be Ensure the texture is loaded into the correct index.
The previous code would try to load subsequent textures into the 0th slot.
2021-09-15 15:10:08 -07:00
Duck
5afd25150f Add additional extension requirements for floating point textures. 2021-09-15 09:35:23 -07:00
mike-000
cb6995d71a Various fixes for browser compatibility issues (#12740)
* Replace Math.log2 with ol/math.log2
* TypedArray.from() browser compatibility fallback
* listen for input and change events for range
2021-09-15 08:45:12 -06:00
Andreas Hocevar
4526f2ef34 Properly handle alt tiles of transparent images 2021-08-18 11:24:34 +02:00
Tim Schaub
7f3f4e6cdd Set tile after creating helper
Co-authored-by: MoonE <maxi_kroeg@web.de>
2021-08-18 11:24:30 +02:00
Andreas Hocevar
311247265b Add interim tiles handling 2021-08-18 11:24:26 +02:00
Tim Schaub
af80477c1d Rendering raster tiles with WebGL 2021-08-18 11:24:23 +02:00
Andreas Hocevar
79f5f46d27 Remove lint 2021-06-28 18:10:51 +02:00
Tim Schaub
f08f31101c Lowercase module names for modules without a default export 2021-05-03 07:32:12 -06:00
Tim Schaub
a7684d8fbf Avoid colliding user variables with internal names 2021-02-11 07:38:46 -07:00
Tim Schaub
f121db1ad8 Fix buffer deletion 2021-02-10 18:39:45 -07:00
Simon Seyock
2ad5789797 Add descriptions for properties. 2021-02-04 18:19:33 +01:00
Simon Seyock
8facb252f1 Replace google closure syntax = with brackets around name 2021-02-03 14:06:02 +01:00
Tim Schaub
19bb3f8c88 Consistent use of Array and Object types 2021-02-02 13:53:10 -07:00
Simon Seyock
f590cb3473 Harmonize jsdoc 2021-02-02 12:14:56 +01:00
Tim Schaub
afd0b8f757 Throw an error if shaders fail to compile or program fails to link 2021-01-05 17:24:58 -07:00
Tim Schaub
054af09032 Make code prettier
This updates ESLint and our shared eslint-config-openlayers to use Prettier.  Most formatting changes were automatically applied with this:

    npm run lint -- --fix

A few manual changes were required:

 * In `examples/offscreen-canvas.js`, the `//eslint-disable-line` comment needed to be moved to the appropriate line to disable the error about the `'worker-loader!./offscreen-canvas.worker.js'` import.
 * In `examples/webpack/exapmle-builder.js`, spaces could not be added after a couple `function`s for some reason.  While editing this, I reworked `ExampleBuilder` to be a class.
 * In `src/ol/format/WMSGetFeatureInfo.js`, the `// @ts-ignore` comment needed to be moved down one line so it applied to the `parsersNS` argument.
2020-04-06 12:54:09 -06:00
Frederic Junod
d15ec1c12c Remove all inheritDoc tags from disposeInternal functions 2020-04-03 08:10:41 +02:00
Olivier Guyot
40d44db85e Shader Builder / use vertex context to parse the symbol rotation expression
Previously the expression was parsed in the fragment shader context, which
meant in case the expression used an attributes the resulting GLSL code
would be wrong.

Fragment shader context:
`float angle = v_heading; // we're using the varying: not OK`

Vertex shader context:
`float angle = a_heading; // we're using the attribute: OK`
2020-03-03 10:09:39 +01:00
John Leonard
8fe71bbbff perf: only do expensive reload when texture changes 2020-02-14 11:39:54 +00:00
Olivier Guyot
6c46eb1dd0 Webgl / add support for a rotation parameter in LiteralStyle
The ShaderBuilder can now take a rotation expression.
2019-12-20 17:39:40 +01:00
Olivier Guyot
cae32edb02 WebGL Postprocess / fix viewport computation with pixelratio != 1 2019-12-13 10:34:31 +01:00
Frederic Junod
5c023adc08 Remove unused variable from vertex shader 2019-11-07 09:02:50 +01:00
Olivier Guyot
7da86ae71f Webgl points renderer / slight improvements following review
Also fixes a lint error.
2019-11-04 09:55:54 +01:00
Olivier Guyot
600e1a4647 Webgl points renderer / use a smaller canvas for hit detection render
The hit detection render is now done against a canvas with half the
width/height of the main render. This still provides sufficient precision
while requiring a much smaller memory allocation (especially for
retina devices).
2019-11-04 09:31:38 +01:00
Olivier Guyot
43010c8934 Webgl / return 0 if doing renderTarget.read outside of data width/height
This would happen when WebGLPointsLayerRenderer.forEachFeatureAtCoordinate
is called on "warped" worlds at -360/+360 degrees, and may produce false
positives.
2019-11-04 09:31:38 +01:00
jahow
f7b0f6750b Resolve memory leak when deleting a webgl layer
Various references were kept, preventing the layer and underlying
renderer and webgl context to be garbage collected.

Also, the Helper was simplified because it turns out deleting manually
all Webgl objects is useless: these objects will be released when
the context is garbage collected anyway.

Note: this touches the Layer and BaseLayer classes, as the following were
preventing the layer from being garbage collected:
* layer reference in the `state_` object in BaseLayer
* dangling listener for source change in Layer
2019-11-04 09:31:38 +01:00
Olivier Guyot
e5e03d46a0 Webgl points renderer / more optimizations
Simplify calls in the attributes callback, also less stress
on garbage collection.
2019-11-04 09:31:38 +01:00
Andreas Hocevar
ac50cc3460 New eslint config with no-multi-assign 2019-11-02 15:20:21 +01:00
Olivier Guyot
2a2783c086 ShaderBuilder / better handling of strings variables/attributes
Now values which are not mentioned in the style are still added to
the string literals mapping.

Also an error will be thrown if a style references a missing variable.
2019-10-28 15:21:44 +01:00
Olivier Guyot
acf973751b Webgl / added time and resolution as default uniforms
Also added the `zoom` and `resolution` style operators
2019-10-25 14:55:44 +02:00
Olivier Guyot
d643951a74 Shader Builder / add option to generate hit detection shaders 2019-10-25 14:55:44 +02:00
Olivier Guyot
a39f751981 Shader Builder / adapt logic & test to the new expression types
Also fixes a sneaky bug where the two last texture coordinates were inverted.
2019-10-25 14:55:44 +02:00
Olivier Guyot
31dae929f5 ShaderBuilder / adapt logic & tests to new expressions module 2019-10-25 14:55:44 +02:00
Olivier Guyot
fc555241ea ShaderBuilder / simplify check/parse code a bit 2019-10-23 09:22:12 +02:00
Olivier Guyot
d837166a1b Literal Style / add new math operators 2019-10-22 23:17:00 +02:00
Olivier Guyot
c659c05de8 ShaderBuilder / fix stretch operator GLSL expression 2019-10-22 23:17:00 +02:00
Olivier Guyot
485ade42b5 Literal Style / add support for color interpolation 2019-10-22 23:17:00 +02:00
Olivier Guyot
85c3aae454 ShaderBuilder / add support for color interpolation in parse 2019-10-22 23:17:00 +02:00
Olivier Guyot
a29fc016f5 ShaderBuilder / formatColor/Array utilities now output vecX(...) 2019-10-22 23:17:00 +02:00