mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 02:47:34 +00:00
LibWeb: Add CanvasRenderingContext2D scale() and translate() stubs
These don't do anything for now.
This commit is contained in:
parent
2db8716a6f
commit
9d099835f9
4 changed files with 48 additions and 0 deletions
|
@ -45,6 +45,8 @@ CanvasRenderingContext2DWrapper::CanvasRenderingContext2DWrapper(CanvasRendering
|
||||||
{
|
{
|
||||||
put_native_property("fillStyle", fill_style_getter, fill_style_setter);
|
put_native_property("fillStyle", fill_style_getter, fill_style_setter);
|
||||||
put_native_function("fillRect", fill_rect, 4);
|
put_native_function("fillRect", fill_rect, 4);
|
||||||
|
put_native_function("scale", scale, 2);
|
||||||
|
put_native_function("translate", translate, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
CanvasRenderingContext2DWrapper::~CanvasRenderingContext2DWrapper()
|
CanvasRenderingContext2DWrapper::~CanvasRenderingContext2DWrapper()
|
||||||
|
@ -71,6 +73,28 @@ JS::Value CanvasRenderingContext2DWrapper::fill_rect(JS::Interpreter& interprete
|
||||||
return JS::js_undefined();
|
return JS::js_undefined();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
JS::Value CanvasRenderingContext2DWrapper::scale(JS::Interpreter& interpreter)
|
||||||
|
{
|
||||||
|
auto* impl = impl_from(interpreter);
|
||||||
|
if (!impl)
|
||||||
|
return {};
|
||||||
|
auto& arguments = interpreter.call_frame().arguments;
|
||||||
|
if (arguments.size() >= 2)
|
||||||
|
impl->scale(arguments[0].to_number().as_double(), arguments[1].to_number().as_double());
|
||||||
|
return JS::js_undefined();
|
||||||
|
}
|
||||||
|
|
||||||
|
JS::Value CanvasRenderingContext2DWrapper::translate(JS::Interpreter& interpreter)
|
||||||
|
{
|
||||||
|
auto* impl = impl_from(interpreter);
|
||||||
|
if (!impl)
|
||||||
|
return {};
|
||||||
|
auto& arguments = interpreter.call_frame().arguments;
|
||||||
|
if (arguments.size() >= 2)
|
||||||
|
impl->translate(arguments[0].to_number().as_double(), arguments[1].to_number().as_double());
|
||||||
|
return JS::js_undefined();
|
||||||
|
}
|
||||||
|
|
||||||
JS::Value CanvasRenderingContext2DWrapper::fill_style_getter(JS::Interpreter& interpreter)
|
JS::Value CanvasRenderingContext2DWrapper::fill_style_getter(JS::Interpreter& interpreter)
|
||||||
{
|
{
|
||||||
auto* impl = impl_from(interpreter);
|
auto* impl = impl_from(interpreter);
|
||||||
|
|
|
@ -43,6 +43,8 @@ private:
|
||||||
virtual const char* class_name() const override { return "CanvasRenderingContext2DWrapper"; }
|
virtual const char* class_name() const override { return "CanvasRenderingContext2DWrapper"; }
|
||||||
|
|
||||||
static JS::Value fill_rect(JS::Interpreter&);
|
static JS::Value fill_rect(JS::Interpreter&);
|
||||||
|
static JS::Value scale(JS::Interpreter&);
|
||||||
|
static JS::Value translate(JS::Interpreter&);
|
||||||
static JS::Value fill_style_getter(JS::Interpreter&);
|
static JS::Value fill_style_getter(JS::Interpreter&);
|
||||||
static void fill_style_setter(JS::Interpreter&, JS::Value);
|
static void fill_style_setter(JS::Interpreter&, JS::Value);
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,22 @@ void CanvasRenderingContext2D::fill_rect(int x, int y, int width, int height)
|
||||||
did_draw(rect);
|
did_draw(rect);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CanvasRenderingContext2D::scale(double sx, double sy)
|
||||||
|
{
|
||||||
|
// FIXME: Actually do something with the scale factor!
|
||||||
|
dbg() << "CanvasRenderingContext2D::scale(): " << String::format("%f", sx) << ", " << String::format("%f", sy);
|
||||||
|
m_scale_x = sx;
|
||||||
|
m_scale_y = sy;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CanvasRenderingContext2D::translate(double x, double y)
|
||||||
|
{
|
||||||
|
// FIXME: Actually do something with the translation!
|
||||||
|
dbg() << "CanvasRenderingContext2D::translate(): " << String::format("%f", x) << ", " << String::format("%f", y);
|
||||||
|
m_translate_x = x;
|
||||||
|
m_translate_y = y;
|
||||||
|
}
|
||||||
|
|
||||||
void CanvasRenderingContext2D::did_draw(const Gfx::Rect&)
|
void CanvasRenderingContext2D::did_draw(const Gfx::Rect&)
|
||||||
{
|
{
|
||||||
// FIXME: Make use of the rect to reduce the invalidated area when possible.
|
// FIXME: Make use of the rect to reduce the invalidated area when possible.
|
||||||
|
|
|
@ -24,6 +24,8 @@ public:
|
||||||
String fill_style() const;
|
String fill_style() const;
|
||||||
|
|
||||||
void fill_rect(int x, int y, int width, int height);
|
void fill_rect(int x, int y, int width, int height);
|
||||||
|
void scale(double sx, double sy);
|
||||||
|
void translate(double x, double y);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
explicit CanvasRenderingContext2D(HTMLCanvasElement&);
|
explicit CanvasRenderingContext2D(HTMLCanvasElement&);
|
||||||
|
@ -34,6 +36,10 @@ private:
|
||||||
|
|
||||||
WeakPtr<HTMLCanvasElement> m_element;
|
WeakPtr<HTMLCanvasElement> m_element;
|
||||||
|
|
||||||
|
double m_scale_x { 1 };
|
||||||
|
double m_scale_y { 1 };
|
||||||
|
double m_translate_x { 0 };
|
||||||
|
double m_translate_y { 0 };
|
||||||
Gfx::Color m_fill_style;
|
Gfx::Color m_fill_style;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue