Explorar el Código

LibWeb/WebGL: Implement bindAttribLocation()

Aliaksandr Kalenik hace 8 meses
padre
commit
b8109c3047

+ 1 - 1
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);

+ 5 - 1
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())) {