WebGLRenderingContext.h 1.0 KB

1234567891011121314151617181920212223242526272829303132
  1. /*
  2. * Copyright (c) 2022, Luke Wilde <lukew@serenityos.org>
  3. * Copyright (c) 2024, Aliaksandr Kalenik <kalenik.aliaksandr@gmail.com>
  4. *
  5. * SPDX-License-Identifier: BSD-2-Clause
  6. */
  7. #pragma once
  8. #include <AK/OwnPtr.h>
  9. #include <LibJS/Heap/GCPtr.h>
  10. #include <LibWeb/Bindings/PlatformObject.h>
  11. #include <LibWeb/WebGL/WebGLRenderingContextBase.h>
  12. namespace Web::WebGL {
  13. class WebGLRenderingContext final : public WebGLRenderingContextBase {
  14. WEB_PLATFORM_OBJECT(WebGLRenderingContext, WebGLRenderingContextBase);
  15. JS_DECLARE_ALLOCATOR(WebGLRenderingContext);
  16. public:
  17. static JS::ThrowCompletionOr<JS::GCPtr<WebGLRenderingContext>> create(JS::Realm&, HTML::HTMLCanvasElement& canvas_element, JS::Value options);
  18. virtual ~WebGLRenderingContext() override;
  19. private:
  20. virtual void initialize(JS::Realm&) override;
  21. WebGLRenderingContext(JS::Realm&, HTML::HTMLCanvasElement&, NonnullOwnPtr<OpenGLContext> context, WebGLContextAttributes context_creation_parameters, WebGLContextAttributes actual_context_parameters);
  22. };
  23. }