/* * Copyright (c) 2025, Luke Wilde * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include namespace Web::WebGL::Extensions { class OESVertexArrayObject : public Bindings::PlatformObject { WEB_PLATFORM_OBJECT(OESVertexArrayObject, Bindings::PlatformObject); GC_DECLARE_ALLOCATOR(OESVertexArrayObject); public: static JS::ThrowCompletionOr> create(JS::Realm&, GC::Ref); GC::Ref create_vertex_array_oes(); void delete_vertex_array_oes(GC::Root array_object); bool is_vertex_array_oes(GC::Root array_object); void bind_vertex_array_oes(GC::Root array_object); protected: void initialize(JS::Realm&) override; void visit_edges(Visitor&) override; private: OESVertexArrayObject(JS::Realm&, GC::Ref); GC::Ref m_context; }; }