aboutsummaryrefslogtreecommitdiffhomepage
path: root/experimental/SkV8Example/Path.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'experimental/SkV8Example/Path.cpp')
-rw-r--r--experimental/SkV8Example/Path.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/experimental/SkV8Example/Path.cpp b/experimental/SkV8Example/Path.cpp
index 90574f40f0..b2af1f7d44 100644
--- a/experimental/SkV8Example/Path.cpp
+++ b/experimental/SkV8Example/Path.cpp
@@ -51,6 +51,7 @@ void Path::AddToGlobal(Global* global) {
ADD_METHOD("arc", Arc);
ADD_METHOD("rect", Rect);
ADD_METHOD("oval", Oval);
+ ADD_METHOD("conicTo", ConicTo);
context->Global()->Set(String::NewFromUtf8(
gGlobal->getIsolate(), "Path"), constructor->GetFunction());
@@ -218,3 +219,26 @@ void Path::Oval(const v8::FunctionCallbackInfo<Value>& args) {
path->fSkPath.addOval(rect, dir);
}
+
+void Path::ConicTo(const v8::FunctionCallbackInfo<Value>& args) {
+ if (args.Length() != 5) {
+ args.GetIsolate()->ThrowException(
+ v8::String::NewFromUtf8(
+ args.GetIsolate(), "Error: 5 args required."));
+ return;
+ }
+ double x1 = args[0]->NumberValue();
+ double y1 = args[1]->NumberValue();
+ double x2 = args[2]->NumberValue();
+ double y2 = args[3]->NumberValue();
+ double w = args[4]->NumberValue();
+ Path* path = Unwrap(args);
+
+ path->fSkPath.conicTo(
+ SkDoubleToScalar(x1),
+ SkDoubleToScalar(y1),
+ SkDoubleToScalar(x2),
+ SkDoubleToScalar(y2),
+ SkDoubleToScalar(w)
+ );
+}