From 0bbd6385d7bbf55012187f9f8c7ef4d0d006a716 Mon Sep 17 00:00:00 2001 From: Vincent van Ecchi Date: Sat, 4 Jan 2025 10:15:54 +0100 Subject: [PATCH] [Renderers/Web] treat RenderCommand.commandType as uint8_t instead of uint32_t --- renderers/web/canvas2d/clay-canvas2d-renderer.html | 4 +++- renderers/web/html/clay-html-renderer.html | 5 +++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/renderers/web/canvas2d/clay-canvas2d-renderer.html b/renderers/web/canvas2d/clay-canvas2d-renderer.html index 7907121..76b12d5 100644 --- a/renderers/web/canvas2d/clay-canvas2d-renderer.html +++ b/renderers/web/canvas2d/clay-canvas2d-renderer.html @@ -317,7 +317,9 @@ for (let i = 0; i < length; i++, arrayOffset += renderCommandSize) { let renderCommand = readStructAtAddress(arrayOffset, renderCommandDefinition); let boundingBox = renderCommand.boundingBox; - switch(renderCommand.commandType.value) { + + // note: commandType is packed to uint8_t and has 3 garbage bytes of padding + switch(renderCommand.commandType.value & 0xff) { case (CLAY_RENDER_COMMAND_TYPE_NONE): { break; } diff --git a/renderers/web/html/clay-html-renderer.html b/renderers/web/html/clay-html-renderer.html index e853772..73b547c 100644 --- a/renderers/web/html/clay-html-renderer.html +++ b/renderers/web/html/clay-html-renderer.html @@ -336,7 +336,7 @@ let element = null; if (!elementCache[renderCommand.id.value]) { let elementType = 'div'; - switch (renderCommand.commandType.value) { + switch (renderCommand.commandType.value & 0xff) { case CLAY_RENDER_COMMAND_TYPE_RECTANGLE: { if (readStructAtAddress(renderCommand.config.value, rectangleConfigDefinition).link.length.value > 0) { elementType = 'a'; @@ -384,7 +384,8 @@ element.style.height = Math.round(renderCommand.boundingBox.height.value) + 'px'; } - switch(renderCommand.commandType.value) { + // note: commandType is packed to uint8_t and has 3 garbage bytes of padding + switch(renderCommand.commandType.value & 0xff) { case (CLAY_RENDER_COMMAND_TYPE_NONE): { break; }