mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-07-28 11:49:44 +00:00
LibWeb/WebGL: Bind default frame/render buffer when binding is null
This fixes the depth issues on github.com, as the depth commands are now sent to the right frame/render buffer.
This commit is contained in:
parent
e5d59a2d42
commit
71746c47c2
Notes:
github-actions[bot]
2025-01-08 14:56:38 +00:00
Author: https://github.com/Lubrsi
Commit: 71746c47c2
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/2943
Reviewed-by: https://github.com/kalenikaliaksandr
3 changed files with 23 additions and 2 deletions
|
@ -203,6 +203,24 @@ RefPtr<Gfx::PaintingSurface> OpenGLContext::surface()
|
|||
return m_painting_surface;
|
||||
}
|
||||
|
||||
u32 OpenGLContext::default_renderbuffer() const
|
||||
{
|
||||
#ifdef AK_OS_MACOS
|
||||
return m_impl->depth_buffer;
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
u32 OpenGLContext::default_framebuffer() const
|
||||
{
|
||||
#ifdef AK_OS_MACOS
|
||||
return m_impl->framebuffer;
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
Vector<StringView> s_available_webgl_extensions {
|
||||
// Khronos ratified WebGL Extensions
|
||||
"ANGLE_instanced_arrays"sv,
|
||||
|
|
|
@ -30,6 +30,9 @@ public:
|
|||
|
||||
RefPtr<Gfx::PaintingSurface> surface();
|
||||
|
||||
u32 default_framebuffer() const;
|
||||
u32 default_renderbuffer() const;
|
||||
|
||||
Vector<String> get_supported_extensions();
|
||||
|
||||
private:
|
||||
|
|
|
@ -1401,7 +1401,7 @@ public:
|
|||
if (function.name == "bindFramebuffer"sv) {
|
||||
generate_webgl_object_handle_unwrap(function_impl_generator, "framebuffer"sv, ""sv);
|
||||
function_impl_generator.append(R"~~~(
|
||||
glBindFramebuffer(target, framebuffer_handle);
|
||||
glBindFramebuffer(target, framebuffer ? framebuffer_handle : m_context->default_framebuffer());
|
||||
m_framebuffer_binding = framebuffer;
|
||||
)~~~");
|
||||
continue;
|
||||
|
@ -1410,7 +1410,7 @@ public:
|
|||
if (function.name == "bindRenderbuffer"sv) {
|
||||
generate_webgl_object_handle_unwrap(function_impl_generator, "renderbuffer"sv, ""sv);
|
||||
function_impl_generator.append(R"~~~(
|
||||
glBindRenderbuffer(target, renderbuffer_handle);
|
||||
glBindRenderbuffer(target, renderbuffer ? renderbuffer_handle : m_context->default_renderbuffer());
|
||||
m_renderbuffer_binding = renderbuffer;
|
||||
)~~~");
|
||||
continue;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue