summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibWeb
diff options
context:
space:
mode:
authorLuke Wilde <lukew@serenityos.org>2022-06-04 04:33:00 +0100
committerLinus Groh <mail@linusgroh.de>2022-06-13 21:45:27 +0100
commitaa77c26b60b54cbc5099dc94491288c9c6804d63 (patch)
treecc0588b0ab03eec66d1cc367463501669d21ec8a /Userland/Libraries/LibWeb
parent076c9772a4ce2a1fe2a6ce39a0d787f3d4bea488 (diff)
downloadserenity-aa77c26b60b54cbc5099dc94491288c9c6804d63.zip
LibWeb/WebGL: Add extensions APIs to WebGLRenderingContextBase
These currently return nothing, as we don't currently support any WebGL extensions.
Diffstat (limited to 'Userland/Libraries/LibWeb')
-rw-r--r--Userland/Libraries/LibWeb/WebGL/WebGLRenderingContextBase.cpp22
-rw-r--r--Userland/Libraries/LibWeb/WebGL/WebGLRenderingContextBase.h3
-rw-r--r--Userland/Libraries/LibWeb/WebGL/WebGLRenderingContextBase.idl3
3 files changed, 28 insertions, 0 deletions
diff --git a/Userland/Libraries/LibWeb/WebGL/WebGLRenderingContextBase.cpp b/Userland/Libraries/LibWeb/WebGL/WebGLRenderingContextBase.cpp
index e03faa92ef..28c2d0d1d0 100644
--- a/Userland/Libraries/LibWeb/WebGL/WebGLRenderingContextBase.cpp
+++ b/Userland/Libraries/LibWeb/WebGL/WebGLRenderingContextBase.cpp
@@ -71,6 +71,28 @@ void WebGLRenderingContextBase::needs_to_present()
m_canvas_element->layout_node()->set_needs_display();
}
+Optional<Vector<String>> WebGLRenderingContextBase::get_supported_extensions() const
+{
+ if (m_context_lost)
+ return Optional<Vector<String>> {};
+
+ dbgln_if(WEBGL_CONTEXT_DEBUG, "WebGLRenderingContextBase::get_supported_extensions()");
+
+ // FIXME: We don't currently support any extensions.
+ return Vector<String> {};
+}
+
+JS::Object* WebGLRenderingContextBase::get_extension(String const& name) const
+{
+ if (m_context_lost)
+ return nullptr;
+
+ dbgln_if(WEBGL_CONTEXT_DEBUG, "WebGLRenderingContextBase::get_extension(name='{}')", name);
+
+ // FIXME: We don't currently support any extensions.
+ return nullptr;
+}
+
void WebGLRenderingContextBase::clear(GLbitfield mask)
{
if (m_context_lost)
diff --git a/Userland/Libraries/LibWeb/WebGL/WebGLRenderingContextBase.h b/Userland/Libraries/LibWeb/WebGL/WebGLRenderingContextBase.h
index 3e03e61d3b..2942133cb5 100644
--- a/Userland/Libraries/LibWeb/WebGL/WebGLRenderingContextBase.h
+++ b/Userland/Libraries/LibWeb/WebGL/WebGLRenderingContextBase.h
@@ -23,6 +23,9 @@ public:
void present();
+ Optional<Vector<String>> get_supported_extensions() const;
+ JS::Object* get_extension(String const& name) const;
+
void clear(GLbitfield mask);
void clear_color(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
diff --git a/Userland/Libraries/LibWeb/WebGL/WebGLRenderingContextBase.idl b/Userland/Libraries/LibWeb/WebGL/WebGLRenderingContextBase.idl
index a2bb454da1..caf0647372 100644
--- a/Userland/Libraries/LibWeb/WebGL/WebGLRenderingContextBase.idl
+++ b/Userland/Libraries/LibWeb/WebGL/WebGLRenderingContextBase.idl
@@ -18,6 +18,9 @@ interface mixin WebGLRenderingContextBase {
// IDL code generator. This also allows us to handle the return type ourselves instead of adding the complexity of the
// code generator working out the return type and returning the appropriate value to return on context loss.
+ sequence<DOMString>? getSupportedExtensions();
+ object? getExtension(DOMString name);
+
undefined clear(GLbitfield mask);
undefined clearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);