LibWeb/WebGL2: Implement clientWaitSync

This commit is contained in:
Luke Wilde 2024-12-13 17:58:50 +00:00 committed by Alexander Kalenik
commit ff8a9549f1
Notes: github-actions[bot] 2024-12-14 08:10:09 +00:00
2 changed files with 6 additions and 1 deletions

View file

@ -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);

View file

@ -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"~~~(