From b8109c304790524e07d97ebeffdf17293e6584ce Mon Sep 17 00:00:00 2001 From: Aliaksandr Kalenik Date: Thu, 5 Dec 2024 16:08:30 +0100 Subject: [PATCH] LibWeb/WebGL: Implement bindAttribLocation() --- Libraries/LibWeb/WebGL/WebGLRenderingContextBase.idl | 2 +- .../CodeGenerators/LibWeb/GenerateWebGLRenderingContext.cpp | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Libraries/LibWeb/WebGL/WebGLRenderingContextBase.idl b/Libraries/LibWeb/WebGL/WebGLRenderingContextBase.idl index 7e159e979c0..d46141dcf15 100644 --- a/Libraries/LibWeb/WebGL/WebGLRenderingContextBase.idl +++ b/Libraries/LibWeb/WebGL/WebGLRenderingContextBase.idl @@ -46,7 +46,7 @@ interface mixin WebGLRenderingContextBase { undefined activeTexture(GLenum texture); undefined attachShader(WebGLProgram program, WebGLShader shader); - [FIXME] undefined bindAttribLocation(WebGLProgram program, GLuint index, DOMString name); + undefined bindAttribLocation(WebGLProgram program, GLuint index, DOMString name); undefined bindBuffer(GLenum target, WebGLBuffer? buffer); [FIXME] undefined bindFramebuffer(GLenum target, WebGLFramebuffer? framebuffer); [FIXME] undefined bindRenderbuffer(GLenum target, WebGLRenderbuffer? renderbuffer); diff --git a/Meta/Lagom/Tools/CodeGenerators/LibWeb/GenerateWebGLRenderingContext.cpp b/Meta/Lagom/Tools/CodeGenerators/LibWeb/GenerateWebGLRenderingContext.cpp index 2c015afbd3c..560a51a4628 100644 --- a/Meta/Lagom/Tools/CodeGenerators/LibWeb/GenerateWebGLRenderingContext.cpp +++ b/Meta/Lagom/Tools/CodeGenerators/LibWeb/GenerateWebGLRenderingContext.cpp @@ -590,7 +590,11 @@ public: continue; } if (parameter.type->is_string()) { - gl_call_arguments.append(ByteString::formatted("{}", parameter.name)); + function_impl_generator.set("parameter_name", parameter.name); + function_impl_generator.append(R"~~~( + auto @parameter_name@_null_terminated = null_terminated_string(@parameter_name@); +)~~~"); + gl_call_arguments.append(ByteString::formatted("{}_null_terminated.data()", parameter.name)); continue; } if (is_webgl_object_type(parameter.type->name())) {