Skip to main content

Breaking Changes in SciChart.js v5.x from v4.x

Default native font has been change from Arial to Arimo

If you are using default native font, you will notice some small changes.

If there are places where you are using Arial font explicitly you may want to set SciChartDefaults.autoFontName = 'Arial' in order to pick up the new default font. Another options would be loading Arial font from file or disabling native text.

Read more on font resolution here.

Fallback to WebGL 1 has been removed, SciChart.js v5 is now WebGL 2 only

In SciChart.js v4 we noticed that the WebGL 1 fallback was either broken or not fully implemented. This, and for performance reasons, plus the ability to support future graphics APIs, we have decided to remove the WebGL 1 fallback making SciChart.js v5+ supports WebGL 2 only. Some FAQs are included below:

Q: Will this affect my apps?

Probably not. Since the WebGL 1 fallback was broken in SciChart.js v4, and we had zero bug reports, we don’t believe anyone was actually using it! Also, browser support for WebGL 2 has improved a lot in recent years and even the most basic integrated graphics chips support WebGL 2.

WebGL 2 is supported on:

  • Any Chrome version later than 56 (2017)
  • Edge later than version 79 (2020)
  • Safari (macOS and iOS) later than version 15 (2021)
  • Firefox later than version 51 (2017)
  • Opera later than version 43 (2017)

Q: What about combability on browsers / systems without a GPU?

If you don’t have a GPU at all, SciChart.js can still run. Google Chrome and Chromium based browsers feature SwiftShader, a fast, software renderer for WebGL.

SIMD support introduced in v5 requires copying nosimd wasm files for fallback support

Webpack config needs to be updated to include scichart2d-nosimd.wasm and scichart3d-nosimd.wasm files.

Webpack config example

const config: Configuration = {
entry: "./src/index.tsx",
mode: "production",
...
plugins: [
...
new CopyPlugin({
patterns: [
{ from: "src/static/", to: "" },
{ from: "../src/_wasm/scichart2d.wasm", to: "" },
{ from: "../src/_wasm/scichart2d-nosimd.wasm", to: "" },
{ from: "../src/_wasm/scichart3d.wasm", to: "" },
{ from: "../src/_wasm/scichart3d-nosimd.wasm", to: "" }
]
})
]
};

SIMD settings

SciChartDefaults.useWasmSimd defines how WebAssembly SIMD should be used by SciChart. The default behavior is Auto. The list of options:

  • Always Always use SIMD-enabled binaries (you must serve scichart2d.wasm, scichart3d.wasm)
  • Never Never use SIMD, always use fallback binaries (you must serve scichart2d-nosimd.wasm, scichart3d-nosimd.wasm)
  • Auto Automatically detect SIMD support and choose appropriate binary (you must serve both variants)

DataLabelState.xValues yValues yFinalValues and PolarColumnDataLabelState.x1Values

The type for DataLabelState.xValues, DataLabelState.yValues, DataLabelState.xValues and PolarColumnDataLabelState.x1Values has been changed from SCRTDoubleVector to Float64Array, therefore this code needs to be updated

Before

dataLabelState.xValues.get(i)

After

dataLabelState.xValues[i]

Acceptance of Float64Array on UniformGridDataSeries3D, UniformHeatmapDataSeries, XyzDataSeries3D may cause compile errors in Typescript

Svg-only render and tooltip changes may cause some annotation synchronisation code needs to move from preRender to layoutMeasured.

If you have code that subscribes to preRender in which you use the position of an annotation managed by Rollover, Cursor or VerticalSlice modifier, subscribe to layoutMeasured instead.