Просмотр исходного кода

Fix wrong buffer after reading pixels

Popov72 4 лет назад
Родитель
Сommit
545d6dd5ff

+ 1 - 1
inspector/src/components/actionTabs/tabs/propertyGrids/materials/textures/textureCanvasManager.ts

@@ -360,7 +360,7 @@ export class TextureCanvasManager {
             this._target._texture?.updateSize(this._size.width, this._size.height);
             if (this._editing3D) {
                 const bufferView = await this._3DEngine.readPixels(0, 0, this._size.width, this._size.height);
-                this._imageData = new Uint8Array(bufferView.buffer);
+                this._imageData = new Uint8Array(bufferView.buffer, 0, bufferView.byteLength);
             } else {
                 this._imageData = this._2DCanvas.getContext('2d')!.getImageData(0, 0, this._size.width, this._size.height).data;
             }

+ 1 - 1
inspector/src/textureHelper.ts

@@ -77,7 +77,7 @@ export class TextureHelper {
 
             //Reading datas from WebGL
             const bufferView = await engine.readPixels(0, 0, width, height);
-            const data = new Uint8Array(bufferView.buffer);
+            const data = new Uint8Array(bufferView.buffer, 0, bufferView.byteLength);
 
             if (!channels.R || !channels.G || !channels.B || !channels.A) {
                 for (var i = 0; i < width * height * 4; i += 4) {

+ 1 - 1
nodeEditor/src/sharedComponents/textureLineComponent.tsx

@@ -112,7 +112,7 @@ export class TextureLineComponent extends React.Component<ITextureLineComponentP
 
             //Reading datas from WebGL
             const bufferView = await engine.readPixels(0, 0, width, height);
-            const data = new Uint8Array(bufferView.buffer);
+            const data = new Uint8Array(bufferView.buffer, 0, bufferView.byteLength);
 
             if (!texture.isCube) {
                 if (!options.displayRed || !options.displayGreen || !options.displayBlue) {