diff --git a/Libraries/LibWeb/WebGL/WebGL2RenderingContextBase.idl b/Libraries/LibWeb/WebGL/WebGL2RenderingContextBase.idl index 037f5d92fce..379ec7212a5 100644 --- a/Libraries/LibWeb/WebGL/WebGL2RenderingContextBase.idl +++ b/Libraries/LibWeb/WebGL/WebGL2RenderingContextBase.idl @@ -399,7 +399,7 @@ interface mixin WebGL2RenderingContextBase { WebGLSync? fenceSync(GLenum condition, GLbitfield flags); [FIXME] GLboolean isSync(WebGLSync? sync); // [WebGLHandlesContextLoss] [FIXME] undefined deleteSync(WebGLSync? sync); - [FIXME] GLenum clientWaitSync(WebGLSync sync, GLbitfield flags, GLuint64 timeout); + GLenum clientWaitSync(WebGLSync sync, GLbitfield flags, GLuint64 timeout); [FIXME] undefined waitSync(WebGLSync sync, GLbitfield flags, GLint64 timeout); [FIXME] any getSyncParameter(WebGLSync sync, GLenum pname); diff --git a/Meta/Lagom/Tools/CodeGenerators/LibWeb/GenerateWebGLRenderingContext.cpp b/Meta/Lagom/Tools/CodeGenerators/LibWeb/GenerateWebGLRenderingContext.cpp index c60babea153..8188c93f4e0 100644 --- a/Meta/Lagom/Tools/CodeGenerators/LibWeb/GenerateWebGLRenderingContext.cpp +++ b/Meta/Lagom/Tools/CodeGenerators/LibWeb/GenerateWebGLRenderingContext.cpp @@ -948,6 +948,11 @@ public: gl_call_arguments.append(ByteString::formatted("{} ? {}->handle() : 0", parameter_name, parameter_name)); continue; } + if (parameter.type->name() == "WebGLSync"sv) { + // FIXME: Remove the GLsync cast once sync_handle actually returns the proper GLsync type. + gl_call_arguments.append(ByteString::formatted("(GLsync)({} ? {}->sync_handle() : nullptr)", parameter_name, parameter_name)); + continue; + } if (parameter.type->name() == "BufferSource"sv) { function_impl_generator.set("buffer_source_name", parameter_name); function_impl_generator.append(R"~~~(