From 7ea914fbab616d4f3c4bd8ab947090e115fed0a6 Mon Sep 17 00:00:00 2001 From: f-trycua Date: Sun, 27 Apr 2025 14:30:32 -0700 Subject: [PATCH] Add log decoder --- core/decoders/raw.js | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/core/decoders/raw.js b/core/decoders/raw.js index 057510b7..9f0859e2 100644 --- a/core/decoders/raw.js +++ b/core/decoders/raw.js @@ -7,12 +7,20 @@ * */ +import * as Log from '../util/logging.js'; + export default class RawDecoder { constructor() { this._lines = 0; } decodeRect(x, y, width, height, sock, display, depth, bgrMode = false) { + // Log BGR mode status for the first few rects to debug + if (this._lines === 0) { + Log.Debug("RawDecoder: Processing rectangle with " + + (bgrMode ? "BGR" : "RGB") + " mode, depth: " + depth); + } + if ((width === 0) || (height === 0)) { return true; } @@ -33,6 +41,21 @@ export default class RawDecoder { let data = sock.rQshiftBytes(bytesPerLine, false); + // For debugging - show a sample of the data for the first rect + if (this._lines === height && curY === y) { + let sample = ""; + for (let i = 0; i < Math.min(16, width); i++) { + if (pixelSize === 4) { + sample += "[" + data[i*4] + "," + data[i*4+1] + "," + + data[i*4+2] + "," + data[i*4+3] + "] "; + } else { + sample += data[i] + " "; + } + } + Log.Debug("RawDecoder: First " + Math.min(16, width) + + " pixels (before processing): " + sample); + } + // Convert data if needed if (depth == 8) { const newdata = new Uint8Array(width * 4); @@ -46,6 +69,7 @@ export default class RawDecoder { } else if (bgrMode) { // In bgrMode we need to switch the red and blue bytes // so that the data is in RGB order + Log.Debug("RawDecoder: Applying BGR swap for line " + curY); for (let i = 0; i < width; i++) { let j = i * 4; let red = data[j]; @@ -59,6 +83,17 @@ export default class RawDecoder { } } + // For debugging - show processed data for the first rect + if (this._lines === height && curY === y) { + let sample = ""; + for (let i = 0; i < Math.min(16, width); i++) { + sample += "[" + data[i*4] + "," + data[i*4+1] + "," + + data[i*4+2] + "," + data[i*4+3] + "] "; + } + Log.Debug("RawDecoder: First " + Math.min(16, width) + + " pixels (after processing): " + sample); + } + display.blitImage(x, curY, width, 1, data, 0); this._lines--; }