From 9a89b81c1e5a55cc44d1f80db6398ee5ef7fd54b Mon Sep 17 00:00:00 2001 From: rsi-anish Date: Tue, 12 Mar 2024 17:31:23 +0530 Subject: [PATCH] WON-3206: apply unofficial patch fix for float issue on ios https://github.com/Kitware/vtk-js/issues/3027#issuecomment-1977625325 --- Sources/Rendering/OpenGL/Texture/index.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Sources/Rendering/OpenGL/Texture/index.js b/Sources/Rendering/OpenGL/Texture/index.js index cf1b0db2e5d..2ec5c0319cd 100644 --- a/Sources/Rendering/OpenGL/Texture/index.js +++ b/Sources/Rendering/OpenGL/Texture/index.js @@ -1291,8 +1291,8 @@ function vtkOpenGLTexture(publicAPI, model) { function processDataArray(dataArray, preferSizeOverAccuracy) { const numComps = dataArray.getNumberOfComponents(); - const dataType = dataArray.getDataType(); - const data = dataArray.getData(); + let dataType = dataArray.getDataType(); + let data = dataArray.getData(); // Compute min max from array // Using the vtkDataArray.getRange() enables caching @@ -1321,6 +1321,11 @@ function vtkOpenGLTexture(publicAPI, model) { publicAPI.getOpenGLDataType(dataType, true); } + if (dataType === VtkDataTypes.FLOAT && !!model.oglNorm16Ext && !model.context.getExtension('OES_texture_float_linear') && !minArray.some(x => x < -32767) && !maxArray.some(x => x > 32767)) { + data = new Int16Array(data); + dataType = VtkDataTypes.SHORT; + } + return { numComps, dataType,