LibWeb: Add WebGLObject interface

This commit is contained in:
Jelle Raaijmakers 2024-11-13 09:31:46 +01:00 committed by Andreas Kling
parent e8d91f2234
commit e6ee7f3e64
Notes: github-actions[bot] 2024-11-13 10:43:42 +00:00
7 changed files with 59 additions and 0 deletions

View file

@ -779,6 +779,7 @@ set(SOURCES
WebGL/OpenGLContext.cpp
WebGL/WebGLContextAttributes.cpp
WebGL/WebGLContextEvent.cpp
WebGL/WebGLObject.cpp
WebGL/WebGLRenderingContext.cpp
WebGL/WebGLRenderingContextBase.cpp
WebIDL/AbstractOperations.cpp

View file

@ -0,0 +1,18 @@
/*
* Copyright (c) 2024, Jelle Raaijmakers <jelle@ladybird.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#include <LibWeb/WebGL/WebGLObject.h>
namespace Web::WebGL {
WebGLObject::WebGLObject(JS::Realm& realm)
: Bindings::PlatformObject(realm)
{
}
WebGLObject::~WebGLObject() = default;
}

View file

@ -0,0 +1,32 @@
/*
* Copyright (c) 2024, Jelle Raaijmakers <jelle@ladybird.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <LibWeb/Bindings/PlatformObject.h>
namespace Web::WebGL {
class WebGLObject : public Bindings::PlatformObject {
WEB_PLATFORM_OBJECT(WebGLRenderingContextBase, Bindings::PlatformObject);
public:
virtual ~WebGLObject();
String label() const { return m_label; }
void set_label(String const& label) { m_label = label; }
protected:
explicit WebGLObject(JS::Realm&);
bool invalidated() const { return m_invalidated; }
private:
bool m_invalidated { false };
String m_label;
};
}

View file

@ -0,0 +1,5 @@
// https://registry.khronos.org/webgl/specs/latest/1.0/#5.3
[Exposed=(Window,Worker)]
interface WebGLObject {
attribute USVString label;
};

View file

@ -360,6 +360,7 @@ libweb_js_bindings(WebAudio/OfflineAudioContext)
libweb_js_bindings(WebAudio/OscillatorNode)
libweb_js_bindings(WebAudio/PeriodicWave)
libweb_js_bindings(WebGL/WebGLContextEvent)
libweb_js_bindings(WebGL/WebGLObject)
libweb_js_bindings(WebGL/WebGLRenderingContext)
libweb_js_bindings(WebIDL/DOMException)
libweb_js_bindings(WebSockets/WebSocket)

View file

@ -372,6 +372,7 @@ standard_idl_files = [
"//Userland/Libraries/LibWeb/WebAudio/OscillatorNode.idl",
"//Userland/Libraries/LibWeb/WebAudio/PeriodicWave.idl",
"//Userland/Libraries/LibWeb/WebGL/WebGLContextEvent.idl",
"//Userland/Libraries/LibWeb/WebGL/WebGLObject.idl",
"//Userland/Libraries/LibWeb/WebGL/WebGLRenderingContext.idl",
"//Userland/Libraries/LibWeb/WebIDL/DOMException.idl",
"//Userland/Libraries/LibWeb/WebSockets/WebSocket.idl",

View file

@ -391,6 +391,7 @@ WeakMap
WeakRef
WeakSet
WebGLContextEvent
WebGLObject
WebGLRenderingContext
WebKitCSSMatrix
WebSocket