LibWeb: Add WebGLShader

This commit is contained in:
Jelle Raaijmakers 2024-11-13 10:06:07 +01:00 committed by Andreas Kling
parent d53cb9833b
commit 2b09afb971
Notes: github-actions[bot] 2024-11-13 10:43:11 +00:00
7 changed files with 55 additions and 0 deletions

View file

@ -786,6 +786,7 @@ set(SOURCES
WebGL/WebGLRenderbuffer.cpp WebGL/WebGLRenderbuffer.cpp
WebGL/WebGLRenderingContext.cpp WebGL/WebGLRenderingContext.cpp
WebGL/WebGLRenderingContextBase.cpp WebGL/WebGLRenderingContextBase.cpp
WebGL/WebGLShader.cpp
WebIDL/AbstractOperations.cpp WebIDL/AbstractOperations.cpp
WebIDL/Buffers.cpp WebIDL/Buffers.cpp
WebIDL/CallbackType.cpp WebIDL/CallbackType.cpp

View file

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

View file

@ -0,0 +1,24 @@
/*
* Copyright (c) 2024, Jelle Raaijmakers <jelle@ladybird.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <LibWeb/WebGL/WebGLObject.h>
namespace Web::WebGL {
class WebGLShader final : public WebGLObject {
WEB_PLATFORM_OBJECT(WebGLShader, WebGLObject);
JS_DECLARE_ALLOCATOR(WebGLShader);
public:
virtual ~WebGLShader();
protected:
explicit WebGLShader(JS::Realm&);
};
}

View file

@ -0,0 +1,6 @@
#import <WebGL/WebGLObject.idl>
// https://registry.khronos.org/webgl/specs/latest/1.0/#5.8
[Exposed=(Window,Worker)]
interface WebGLShader : WebGLObject {
};

View file

@ -366,6 +366,7 @@ libweb_js_bindings(WebGL/WebGLObject)
libweb_js_bindings(WebGL/WebGLProgram) libweb_js_bindings(WebGL/WebGLProgram)
libweb_js_bindings(WebGL/WebGLRenderbuffer) libweb_js_bindings(WebGL/WebGLRenderbuffer)
libweb_js_bindings(WebGL/WebGLRenderingContext) libweb_js_bindings(WebGL/WebGLRenderingContext)
libweb_js_bindings(WebGL/WebGLShader)
libweb_js_bindings(WebIDL/DOMException) libweb_js_bindings(WebIDL/DOMException)
libweb_js_bindings(WebSockets/WebSocket) libweb_js_bindings(WebSockets/WebSocket)
libweb_js_bindings(WebVTT/VTTCue) libweb_js_bindings(WebVTT/VTTCue)

View file

@ -378,6 +378,7 @@ standard_idl_files = [
"//Userland/Libraries/LibWeb/WebGL/WebGLProgram.idl", "//Userland/Libraries/LibWeb/WebGL/WebGLProgram.idl",
"//Userland/Libraries/LibWeb/WebGL/WebGLRenderbuffer.idl", "//Userland/Libraries/LibWeb/WebGL/WebGLRenderbuffer.idl",
"//Userland/Libraries/LibWeb/WebGL/WebGLRenderingContext.idl", "//Userland/Libraries/LibWeb/WebGL/WebGLRenderingContext.idl",
"//Userland/Libraries/LibWeb/WebGL/WebGLShader.idl",
"//Userland/Libraries/LibWeb/WebIDL/DOMException.idl", "//Userland/Libraries/LibWeb/WebIDL/DOMException.idl",
"//Userland/Libraries/LibWeb/WebSockets/WebSocket.idl", "//Userland/Libraries/LibWeb/WebSockets/WebSocket.idl",
"//Userland/Libraries/LibWeb/WebVTT/VTTCue.idl", "//Userland/Libraries/LibWeb/WebVTT/VTTCue.idl",

View file

@ -397,6 +397,7 @@ WebGLObject
WebGLProgram WebGLProgram
WebGLRenderbuffer WebGLRenderbuffer
WebGLRenderingContext WebGLRenderingContext
WebGLShader
WebKitCSSMatrix WebKitCSSMatrix
WebSocket WebSocket
WheelEvent WheelEvent