mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-06-24 11:11:51 +00:00
LibGC+Everywhere: Factor out a LibGC from LibJS
Resulting in a massive rename across almost everywhere! Alongside the namespace change, we now have the following names: * JS::NonnullGCPtr -> GC::Ref * JS::GCPtr -> GC::Ptr * JS::HeapFunction -> GC::Function * JS::CellImpl -> GC::Cell * JS::Handle -> GC::Root
This commit is contained in:
parent
ce23efc5f6
commit
f87041bf3a
Notes:
github-actions[bot]
2024-11-15 13:50:17 +00:00
Author: https://github.com/shannonbooth
Commit: f87041bf3a
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/2345
1722 changed files with 9939 additions and 9906 deletions
|
@ -13,7 +13,7 @@ namespace Web::HTML {
|
|||
static void default_source_size(CanvasImageSource const& image, float& source_width, float& source_height)
|
||||
{
|
||||
image.visit(
|
||||
[&source_width, &source_height](JS::Handle<HTMLImageElement> const& source) {
|
||||
[&source_width, &source_height](GC::Root<HTMLImageElement> const& source) {
|
||||
if (source->immutable_bitmap()) {
|
||||
source_width = source->immutable_bitmap()->width();
|
||||
source_height = source->immutable_bitmap()->height();
|
||||
|
@ -23,7 +23,7 @@ static void default_source_size(CanvasImageSource const& image, float& source_wi
|
|||
source_height = source->height();
|
||||
}
|
||||
},
|
||||
[&source_width, &source_height](JS::Handle<SVG::SVGImageElement> const& source) {
|
||||
[&source_width, &source_height](GC::Root<SVG::SVGImageElement> const& source) {
|
||||
if (source->current_image_bitmap()) {
|
||||
source_width = source->current_image_bitmap()->width();
|
||||
source_height = source->current_image_bitmap()->height();
|
||||
|
@ -33,7 +33,7 @@ static void default_source_size(CanvasImageSource const& image, float& source_wi
|
|||
source_height = source->height()->anim_val()->value();
|
||||
}
|
||||
},
|
||||
[&source_width, &source_height](JS::Handle<HTML::HTMLVideoElement> const& source) {
|
||||
[&source_width, &source_height](GC::Root<HTML::HTMLVideoElement> const& source) {
|
||||
if (auto const bitmap = source->bitmap(); bitmap) {
|
||||
source_width = bitmap->width();
|
||||
source_height = bitmap->height();
|
||||
|
@ -42,7 +42,7 @@ static void default_source_size(CanvasImageSource const& image, float& source_wi
|
|||
source_height = source->video_height();
|
||||
}
|
||||
},
|
||||
[&source_width, &source_height](JS::Handle<HTMLCanvasElement> const& source) {
|
||||
[&source_width, &source_height](GC::Root<HTMLCanvasElement> const& source) {
|
||||
if (source->surface()) {
|
||||
source_width = source->surface()->size().width();
|
||||
source_height = source->surface()->size().height();
|
||||
|
|
|
@ -16,7 +16,7 @@ namespace Web::HTML {
|
|||
|
||||
// https://html.spec.whatwg.org/multipage/canvas.html#canvasimagesource
|
||||
// NOTE: This is the Variant created by the IDL wrapper generator, and needs to be updated accordingly.
|
||||
using CanvasImageSource = Variant<JS::Handle<HTMLImageElement>, JS::Handle<SVG::SVGImageElement>, JS::Handle<HTMLCanvasElement>, JS::Handle<ImageBitmap>, JS::Handle<HTMLVideoElement>>;
|
||||
using CanvasImageSource = Variant<GC::Root<HTMLImageElement>, GC::Root<SVG::SVGImageElement>, GC::Root<HTMLCanvasElement>, GC::Root<ImageBitmap>, GC::Root<HTMLVideoElement>>;
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/canvas.html#canvasdrawimage
|
||||
class CanvasDrawImage {
|
||||
|
|
|
@ -22,7 +22,7 @@ template<typename IncludingClass>
|
|||
class CanvasFillStrokeStyles {
|
||||
public:
|
||||
~CanvasFillStrokeStyles() = default;
|
||||
using FillOrStrokeStyleVariant = Variant<String, JS::Handle<CanvasGradient>, JS::Handle<CanvasPattern>>;
|
||||
using FillOrStrokeStyleVariant = Variant<String, GC::Root<CanvasGradient>, GC::Root<CanvasPattern>>;
|
||||
|
||||
void set_fill_style(FillOrStrokeStyleVariant style)
|
||||
{
|
||||
|
@ -107,25 +107,25 @@ public:
|
|||
return my_drawing_state().stroke_style.to_js_fill_or_stroke_style();
|
||||
}
|
||||
|
||||
WebIDL::ExceptionOr<JS::NonnullGCPtr<CanvasGradient>> create_radial_gradient(double x0, double y0, double r0, double x1, double y1, double r1)
|
||||
WebIDL::ExceptionOr<GC::Ref<CanvasGradient>> create_radial_gradient(double x0, double y0, double r0, double x1, double y1, double r1)
|
||||
{
|
||||
auto& realm = static_cast<IncludingClass&>(*this).realm();
|
||||
return CanvasGradient::create_radial(realm, x0, y0, r0, x1, y1, r1);
|
||||
}
|
||||
|
||||
JS::NonnullGCPtr<CanvasGradient> create_linear_gradient(double x0, double y0, double x1, double y1)
|
||||
GC::Ref<CanvasGradient> create_linear_gradient(double x0, double y0, double x1, double y1)
|
||||
{
|
||||
auto& realm = static_cast<IncludingClass&>(*this).realm();
|
||||
return CanvasGradient::create_linear(realm, x0, y0, x1, y1).release_value_but_fixme_should_propagate_errors();
|
||||
}
|
||||
|
||||
JS::NonnullGCPtr<CanvasGradient> create_conic_gradient(double start_angle, double x, double y)
|
||||
GC::Ref<CanvasGradient> create_conic_gradient(double start_angle, double x, double y)
|
||||
{
|
||||
auto& realm = static_cast<IncludingClass&>(*this).realm();
|
||||
return CanvasGradient::create_conic(realm, start_angle, x, y).release_value_but_fixme_should_propagate_errors();
|
||||
}
|
||||
|
||||
WebIDL::ExceptionOr<JS::GCPtr<CanvasPattern>> create_pattern(CanvasImageSource const& image, StringView repetition)
|
||||
WebIDL::ExceptionOr<GC::Ptr<CanvasPattern>> create_pattern(CanvasImageSource const& image, StringView repetition)
|
||||
{
|
||||
auto& realm = static_cast<IncludingClass&>(*this).realm();
|
||||
return CanvasPattern::create(realm, image, repetition);
|
||||
|
|
|
@ -15,9 +15,9 @@ class CanvasImageData {
|
|||
public:
|
||||
virtual ~CanvasImageData() = default;
|
||||
|
||||
virtual WebIDL::ExceptionOr<JS::NonnullGCPtr<ImageData>> create_image_data(int width, int height, Optional<ImageDataSettings> const& settings = {}) const = 0;
|
||||
virtual WebIDL::ExceptionOr<JS::NonnullGCPtr<ImageData>> create_image_data(ImageData const&) const = 0;
|
||||
virtual WebIDL::ExceptionOr<JS::GCPtr<ImageData>> get_image_data(int x, int y, int width, int height, Optional<ImageDataSettings> const& settings = {}) const = 0;
|
||||
virtual WebIDL::ExceptionOr<GC::Ref<ImageData>> create_image_data(int width, int height, Optional<ImageDataSettings> const& settings = {}) const = 0;
|
||||
virtual WebIDL::ExceptionOr<GC::Ref<ImageData>> create_image_data(ImageData const&) const = 0;
|
||||
virtual WebIDL::ExceptionOr<GC::Ptr<ImageData>> get_image_data(int x, int y, int width, int height, Optional<ImageDataSettings> const& settings = {}) const = 0;
|
||||
virtual void put_image_data(ImageData const&, float x, float y) = 0;
|
||||
|
||||
protected:
|
||||
|
|
|
@ -50,7 +50,7 @@ private:
|
|||
|
||||
void ensure_subpath(float x, float y);
|
||||
|
||||
JS::NonnullGCPtr<Bindings::PlatformObject> m_self;
|
||||
GC::Ref<Bindings::PlatformObject> m_self;
|
||||
Optional<CanvasState const&> m_canvas_state;
|
||||
Gfx::Path m_path;
|
||||
};
|
||||
|
|
|
@ -34,7 +34,7 @@ public:
|
|||
void reset();
|
||||
bool is_context_lost();
|
||||
|
||||
using FillOrStrokeVariant = Variant<Gfx::Color, JS::Handle<CanvasGradient>, JS::Handle<CanvasPattern>>;
|
||||
using FillOrStrokeVariant = Variant<Gfx::Color, GC::Root<CanvasGradient>, GC::Root<CanvasPattern>>;
|
||||
|
||||
struct FillOrStrokeStyle {
|
||||
FillOrStrokeStyle(Gfx::Color color)
|
||||
|
@ -42,12 +42,12 @@ public:
|
|||
{
|
||||
}
|
||||
|
||||
FillOrStrokeStyle(JS::Handle<CanvasGradient> gradient)
|
||||
FillOrStrokeStyle(GC::Root<CanvasGradient> gradient)
|
||||
: m_fill_or_stroke_style(gradient)
|
||||
{
|
||||
}
|
||||
|
||||
FillOrStrokeStyle(JS::Handle<CanvasPattern> pattern)
|
||||
FillOrStrokeStyle(GC::Root<CanvasPattern> pattern)
|
||||
: m_fill_or_stroke_style(pattern)
|
||||
{
|
||||
}
|
||||
|
@ -57,7 +57,7 @@ public:
|
|||
Optional<Gfx::Color> as_color() const;
|
||||
Gfx::Color to_color_but_fixme_should_accept_any_paint_style() const;
|
||||
|
||||
using JsFillOrStrokeStyle = Variant<String, JS::Handle<CanvasGradient>, JS::Handle<CanvasPattern>>;
|
||||
using JsFillOrStrokeStyle = Variant<String, GC::Root<CanvasGradient>, GC::Root<CanvasPattern>>;
|
||||
|
||||
JsFillOrStrokeStyle to_js_fill_or_stroke_style() const
|
||||
{
|
||||
|
|
|
@ -19,7 +19,7 @@ public:
|
|||
|
||||
virtual void fill_text(StringView, float x, float y, Optional<double> max_width) = 0;
|
||||
virtual void stroke_text(StringView, float x, float y, Optional<double> max_width) = 0;
|
||||
virtual JS::NonnullGCPtr<TextMetrics> measure_text(StringView text) = 0;
|
||||
virtual GC::Ref<TextMetrics> measure_text(StringView text) = 0;
|
||||
|
||||
protected:
|
||||
CanvasText() = default;
|
||||
|
|
|
@ -75,7 +75,7 @@ public:
|
|||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-gettransform
|
||||
WebIDL::ExceptionOr<JS::NonnullGCPtr<Geometry::DOMMatrix>> get_transform()
|
||||
WebIDL::ExceptionOr<GC::Ref<Geometry::DOMMatrix>> get_transform()
|
||||
{
|
||||
auto& realm = static_cast<IncludingClass&>(*this).realm();
|
||||
auto transform = my_drawing_state().transform;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue