From 460f5fe511bb049cb37d419c874f4a4e6d184dc9 Mon Sep 17 00:00:00 2001 From: Luke Wilde Date: Thu, 5 Dec 2024 16:42:19 +0000 Subject: [PATCH] LibWeb/WebGL: Support ArrayBuffer and DataView for BufferSource --- .../LibWeb/GenerateWebGLRenderingContext.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Meta/Lagom/Tools/CodeGenerators/LibWeb/GenerateWebGLRenderingContext.cpp b/Meta/Lagom/Tools/CodeGenerators/LibWeb/GenerateWebGLRenderingContext.cpp index 35a6a53434..72918fbcb1 100644 --- a/Meta/Lagom/Tools/CodeGenerators/LibWeb/GenerateWebGLRenderingContext.cpp +++ b/Meta/Lagom/Tools/CodeGenerators/LibWeb/GenerateWebGLRenderingContext.cpp @@ -314,6 +314,7 @@ ErrorOr serenity_main(Main::Arguments arguments) implementation_file_generator.append(R"~~~( #include +#include #include #include #include @@ -796,7 +797,13 @@ public: ptr = typed_array_base.viewed_array_buffer()->buffer().data(); byte_size = typed_array_base.viewed_array_buffer()->byte_length(); } else if (@buffer_source_name@->is_data_view()) { - VERIFY_NOT_REACHED(); + auto& data_view = static_cast(*@buffer_source_name@->raw_object()); + ptr = data_view.viewed_array_buffer()->buffer().data(); + byte_size = data_view.viewed_array_buffer()->byte_length(); + } else if (@buffer_source_name@->is_array_buffer()) { + auto& array_buffer = static_cast(*@buffer_source_name@->raw_object()); + ptr = array_buffer.buffer().data(); + byte_size = array_buffer.byte_length(); } else { VERIFY_NOT_REACHED(); }