@d3fc/d3fc-series
Advanced tools
Comparing version 4.7.0 to 4.7.1
@@ -6,2 +6,10 @@ # Change Log | ||
## [4.7.1](https://github.com/d3fc/d3fc/compare/@d3fc/d3fc-series@4.7.0...@d3fc/d3fc-series@4.7.1) (2020-03-26) | ||
**Note:** Version bump only for package @d3fc/d3fc-series | ||
# [4.7.0](https://github.com/d3fc/d3fc/compare/@d3fc/d3fc-series@4.6.0...@d3fc/d3fc-series@4.7.0) (2020-03-25) | ||
@@ -8,0 +16,0 @@ |
{ | ||
"name": "@d3fc/d3fc-series", | ||
"version": "4.7.0", | ||
"version": "4.7.1", | ||
"description": "A collection of components for rendering data series to SVG and canvas, including line, bar, OHLC, candlestick and more", | ||
@@ -35,3 +35,3 @@ "license": "MIT", | ||
"@d3fc/d3fc-shape": "^5.1.0", | ||
"@d3fc/d3fc-webgl": "^1.9.0", | ||
"@d3fc/d3fc-webgl": "^1.9.1", | ||
"d3-array": "^1.0.0", | ||
@@ -45,3 +45,3 @@ "d3-scale": "^1.0.1", | ||
}, | ||
"gitHead": "1db6363b20b45502121befdb4bbb61213857359a" | ||
"gitHead": "5d0c7f2ff3d29a7791aa5d60876222c270cd6d18" | ||
} |
@@ -126,2 +126,4 @@ # d3fc-series | ||
*If this is your first time using WebGL, this collection of higher-level series components is the best place to start. Only investigate the low-level components in [d3fc-webgl](https://github.com/d3fc/d3fc/tree/master/packages/d3fc-webgl#d3fc-webgl) if you need bespoke functionality.* | ||
***WebGL rendering does not yet have full feature parity with the other rendering methods. Please check the API documentation against the methods to see what is currently supported.*** | ||
@@ -150,5 +152,15 @@ | ||
As with the canvas, the components are invoked directly with the supplied data. | ||
As with the canvas, the components are invoked directly with the supplied data. However, as with the transition from SVG to canvas, WebGL has its own subtle differences. | ||
WebGL is based upon a pipeline of processing the data into the an appropriate format for the GPU, loading this data into the GPU and then allowing the GPU to process the data in a highly parallel fashion. When using these components, the bottlenecks in this pipeline are most commonly the pre-processing of data and the loading of data into the GPU, both of which are performed or controlled by JavaScript. | ||
Some of this performance optimisation is addressed by the design of the components (e.g. how we pre-process the data and in to what form) and some of it necessitates the optimal use of the components by consumers (e.g. when we need to pre-process/load the data). In all cases consumers should be aiming to reduce the amount of pre-processing and loading of data to achieve the best performance. | ||
The components offer two WebGL-specific methods to allow finer control over these processses - | ||
* `equals` - This property is an equality function to control whether any pre-processing of the data is required i.e. is the data being rendered equal to the rendered on the previous call. If the data is considered equal, then the value accessors will not be invoked and the data previously loaded into the GPU will be re-used. The only exception to this is if one of the scales has a JavaScript pre-processing requirement, see the next bullet. | ||
* `scaleMapper` - This property is a mapping function which controls whether the scales require JavaScript pre-processing or are pure GPU implementations. If a scale has a pure GPU implemention, then the data previously loaded into the GPU will be re-used and no JavaScript processing will be required. If not, the value accessor for the scaled value as well as the scaling function itself will be invoked for each data point, the resulting data will then be transferred to the GPU before rendering. | ||
Where datasets are static, the above properties will be sufficient to achieve the best performance. Where datasets are dynamic, splitting the datasets into separate dynamic/static datasets and rendering each as a separate series (following the above advice) will achieve the best performance. If this is not possible then dropping down to lower-level [d3fc-webgl](https://github.com/d3fc/d3fc/tree/master/packages/d3fc-webgl#d3fc-webgl) components may be required to achieve the best performance. However, this requires a considered approach and should only be attempted if the above advice can't be followed. | ||
#### Decorate Pattern | ||
@@ -155,0 +167,0 @@ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
476896
1165
Updated@d3fc/d3fc-webgl@^1.9.1