1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 17:07:34 +00:00

LibWeb: Make CanvasGradient GC-allocated

This commit is contained in:
Andreas Kling 2022-09-02 23:17:45 +02:00
parent 369dd42d67
commit 0d2fee351a
5 changed files with 32 additions and 27 deletions

View file

@ -6,15 +6,14 @@
#pragma once
#include <AK/RefCounted.h>
#include <LibGfx/Color.h>
#include <LibWeb/Bindings/Wrappable.h>
#include <LibWeb/Bindings/PlatformObject.h>
namespace Web::HTML {
class CanvasGradient final
: public RefCounted<CanvasGradient>
, public Bindings::Wrappable {
class CanvasGradient final : public Bindings::PlatformObject {
WEB_PLATFORM_OBJECT(CanvasGradient, Bindings::PlatformObject);
public:
enum class Type {
Linear,
@ -22,18 +21,16 @@ public:
Conic,
};
using WrapperType = Bindings::CanvasGradientWrapper;
static NonnullRefPtr<CanvasGradient> create_radial(double x0, double y0, double r0, double x1, double y1, double r1);
static NonnullRefPtr<CanvasGradient> create_linear(double x0, double y0, double x1, double y1);
static NonnullRefPtr<CanvasGradient> create_conic(double start_angle, double x, double y);
static JS::NonnullGCPtr<CanvasGradient> create_radial(HTML::Window&, double x0, double y0, double r0, double x1, double y1, double r1);
static JS::NonnullGCPtr<CanvasGradient> create_linear(HTML::Window&, double x0, double y0, double x1, double y1);
static JS::NonnullGCPtr<CanvasGradient> create_conic(HTML::Window&, double start_angle, double x, double y);
DOM::ExceptionOr<void> add_color_stop(double offset, String const& color);
~CanvasGradient();
private:
explicit CanvasGradient(Type);
CanvasGradient(HTML::Window&, Type);
Type m_type {};
@ -46,3 +43,5 @@ private:
};
}
WRAPPER_HACK(CanvasGradient, Web::HTML)