mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-12-07 21:59:54 +00:00
LibWeb: Fix WebGL getError
getError was just calling out to glGetError and never checking our error value that we were maintaining ourselves.
This commit is contained in:
parent
e7aeb71d29
commit
044ac2dd28
Notes:
github-actions[bot]
2025-11-06 18:04:36 +00:00
Author: https://github.com/cqundefine
Commit: 044ac2dd28
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/6711
Reviewed-by: https://github.com/awesomekling
3 changed files with 17 additions and 1 deletions
|
|
@ -195,8 +195,23 @@ Optional<WebGLRenderingContextBase::ConvertedTexture> WebGLRenderingContextBase:
|
|||
};
|
||||
}
|
||||
|
||||
// TODO: The glGetError spec allows for queueing errors which is something we should probably do, for now
|
||||
// this just keeps track of one error which is also fine by the spec
|
||||
GLenum WebGLRenderingContextBase::get_error_value()
|
||||
{
|
||||
if (m_error == GL_NO_ERROR)
|
||||
return glGetError();
|
||||
|
||||
auto error = m_error;
|
||||
m_error = GL_NO_ERROR;
|
||||
return error;
|
||||
}
|
||||
|
||||
void WebGLRenderingContextBase::set_error(GLenum error)
|
||||
{
|
||||
if (m_error != GL_NO_ERROR)
|
||||
return;
|
||||
|
||||
auto context_error = glGetError();
|
||||
if (context_error != GL_NO_ERROR)
|
||||
m_error = context_error;
|
||||
|
|
|
|||
|
|
@ -138,6 +138,7 @@ protected:
|
|||
return result;
|
||||
}
|
||||
|
||||
GLenum get_error_value();
|
||||
void set_error(GLenum error);
|
||||
|
||||
// UNPACK_FLIP_Y_WEBGL of type boolean
|
||||
|
|
|
|||
|
|
@ -1535,7 +1535,7 @@ JS::Value WebGLRenderingContextImpl::get_parameter(WebIDL::UnsignedLong pname)
|
|||
WebIDL::UnsignedLong WebGLRenderingContextImpl::get_error()
|
||||
{
|
||||
m_context->make_current();
|
||||
return glGetError();
|
||||
return get_error_value();
|
||||
}
|
||||
|
||||
JS::Value WebGLRenderingContextImpl::get_program_parameter(GC::Root<WebGLProgram> program, WebIDL::UnsignedLong pname)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue