1f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams/*
2f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams * Copyright (C) 2008 The Android Open Source Project
3f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams *
4f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams * Licensed under the Apache License, Version 2.0 (the "License");
5f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams * you may not use this file except in compliance with the License.
6f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams * You may obtain a copy of the License at
7f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams *
8f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams *      http://www.apache.org/licenses/LICENSE-2.0
9f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams *
10f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams * Unless required by applicable law or agreed to in writing, software
11f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams * distributed under the License is distributed on an "AS IS" BASIS,
12f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams * See the License for the specific language governing permissions and
14f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams * limitations under the License.
15f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams */
16f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams
17f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Samspackage android.renderscript;
18f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams
19f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Samsimport java.util.Vector;
20f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Samsimport android.util.Log;
21f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams
229c9ad3f8c218954e46aab81f9af7834cea5675caStephen Hines/**
23f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams * @hide
24f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams *
25f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams */
26f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Samspublic class Path extends BaseObj {
27f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams
28f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams    public enum Primitive {
29f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams        QUADRATIC_BEZIER(0),
30f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams        CUBIC_BEZIER(1);
31f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams
32f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams        int mID;
33f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams        Primitive(int id) {
34f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams            mID = id;
35f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams        }
36f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams    }
37f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams
38f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams    Allocation mVertexBuffer;
39f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams    Allocation mLoopBuffer;
40f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams    Primitive mPrimitive;
41f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams    float mQuality;
42f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams    boolean mCoverageToAlpha;
43f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams
44f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams    Path(int id, RenderScript rs, Primitive p, Allocation vtx, Allocation loop, float q) {
45f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams        super(id, rs);
46f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams        mVertexBuffer = vtx;
47f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams        mLoopBuffer = loop;
48f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams        mPrimitive = p;
49f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams        mQuality = q;
50f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams    }
51f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams
52f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams    public Allocation getVertexAllocation() {
53f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams        return mVertexBuffer;
54f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams    }
55f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams
56f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams    public Allocation getLoopAllocation() {
57f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams        return mLoopBuffer;
58f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams    }
59f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams
60f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams    public Primitive getPrimitive() {
61f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams        return mPrimitive;
62f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams    }
63f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams
64f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams    @Override
65f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams    void updateFromNative() {
66f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams    }
67f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams
68f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams
69f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams    public static Path createStaticPath(RenderScript rs, Primitive p, float quality, Allocation vtx) {
70e07694b24f7d12d72b084b6651356681ebd0efd6Jason Sams        int id = rs.nPathCreate(p.mID, false, vtx.getID(rs), 0, quality);
71f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams        Path newPath = new Path(id, rs, p, null, null, quality);
72f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams        return newPath;
73f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams    }
74f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams
75f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams    public static Path createStaticPath(RenderScript rs, Primitive p, float quality, Allocation vtx, Allocation loops) {
76f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams        return null;
77f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams    }
78f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams
79f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams    public static Path createDynamicPath(RenderScript rs, Primitive p, float quality, Allocation vtx) {
80f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams        return null;
81f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams    }
82f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams
83f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams    public static Path createDynamicPath(RenderScript rs, Primitive p, float quality, Allocation vtx, Allocation loops) {
84f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams        return null;
85f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams    }
86f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams
87f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams
88f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams}
89f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams
90f15ed0124ea7f7f87e4188a1dd15cc4917a62ee9Jason Sams
91