VectorDrawableUtils.h revision 804618d0863a5d8ad1b08a846bd5319be864a1cb
1804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu/*
2804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu * Copyright (C) 2015 The Android Open Source Project
3804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu *
4804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu * Licensed under the Apache License, Version 2.0 (the "License");
5804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu * you may not use this file except in compliance with the License.
6804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu * You may obtain a copy of the License at
7804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu *
8804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu *      http://www.apache.org/licenses/LICENSE-2.0
9804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu *
10804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu * Unless required by applicable law or agreed to in writing, software
11804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu * distributed under the License is distributed on an "AS IS" BASIS,
12804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu * See the License for the specific language governing permissions and
14804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu * limitations under the License.
15804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu */
16804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu
17804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu#ifndef ANDROID_HWUI_VECTORDRAWABLE_UTILS_H
18804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu#define ANDROID_HWUI_VECTORDRAWABLE_UTILS_H
19804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu
20804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu#include "VectorDrawablePath.h"
21804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu
22804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu#include <cutils/compiler.h>
23804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu#include "SkPath.h"
24804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu#include <vector>
25804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu
26804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liunamespace android {
27804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liunamespace uirenderer {
28804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu
29804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liuclass VectorDrawableUtils {
30804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liupublic:
31804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu    ANDROID_API static bool canMorph(const PathData& morphFrom, const PathData& morphTo);
32804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu    ANDROID_API static bool interpolatePathData(PathData* outData, const PathData& morphFrom,
33804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu            const PathData& morphTo, float fraction);
34804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu    ANDROID_API static void verbsToPath(SkPath* outPath, const PathData& data);
35804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu    static void interpolatePaths(PathData* outPathData, const PathData& from, const PathData& to,
36804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu            float fraction);
37804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu};
38804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu} // namespace uirenderer
39804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu} // namespace android
40804618d0863a5d8ad1b08a846bd5319be864a1cbDoris Liu#endif /* ANDROID_HWUI_VECTORDRAWABLE_UTILS_H*/
41