mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 02:57:36 +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_function("fillRect", fill_rect, 4);
|
||||
put_native_function("scale", scale, 2);
|
||||
put_native_function("translate", translate, 2);
|
||||
}
|
||||
|
||||
CanvasRenderingContext2DWrapper::~CanvasRenderingContext2DWrapper()
|
||||
|
@ -71,6 +73,28 @@ JS::Value CanvasRenderingContext2DWrapper::fill_rect(JS::Interpreter& interprete
|
|||
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)
|
||||
{
|
||||
auto* impl = impl_from(interpreter);
|
||||
|
|
|
@ -43,6 +43,8 @@ private:
|
|||
virtual const char* class_name() const override { return "CanvasRenderingContext2DWrapper"; }
|
||||
|
||||
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 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);
|
||||
}
|
||||
|
||||
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&)
|
||||
{
|
||||
// FIXME: Make use of the rect to reduce the invalidated area when possible.
|
||||
|
|
|
@ -24,6 +24,8 @@ public:
|
|||
String fill_style() const;
|
||||
|
||||
void fill_rect(int x, int y, int width, int height);
|
||||
void scale(double sx, double sy);
|
||||
void translate(double x, double y);
|
||||
|
||||
private:
|
||||
explicit CanvasRenderingContext2D(HTMLCanvasElement&);
|
||||
|
@ -34,6 +36,10 @@ private:
|
|||
|
||||
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;
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue