DrawFilter.cpp revision 9066cfe9886ac131c34d59ed0e2d287b0e3c0087
1/* libs/android_runtime/android/graphics/ColorFilter.cpp
2**
3** Copyright 2006, The Android Open Source Project
4**
5** Licensed under the Apache License, Version 2.0 (the "License");
6** you may not use this file except in compliance with the License.
7** You may obtain a copy of the License at
8**
9**     http://www.apache.org/licenses/LICENSE-2.0
10**
11** Unless required by applicable law or agreed to in writing, software
12** distributed under the License is distributed on an "AS IS" BASIS,
13** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14** See the License for the specific language governing permissions and
15** limitations under the License.
16*/
17
18// This file was generated from the C++ include file: SkColorFilter.h
19// Any changes made to this file will be discarded by the build.
20// To change this file, either edit the include, or device/tools/gluemaker/main.cpp,
21// or one of the auxilary file specifications in device/tools/gluemaker.
22
23#include "jni.h"
24#include "GraphicsJNI.h"
25#include <android_runtime/AndroidRuntime.h>
26
27#include "SkDrawFilter.h"
28#include "SkPaintFlagsDrawFilter.h"
29#include "SkPaint.h"
30
31namespace android {
32
33class SkDrawFilterGlue {
34public:
35
36    static void finalizer(JNIEnv* env, jobject clazz, SkDrawFilter* obj) {
37        obj->safeUnref();
38    }
39
40    static SkDrawFilter* CreatePaintFlagsDF(JNIEnv* env, jobject clazz,
41                                           int clearFlags, int setFlags) {
42        // trim off any out-of-range bits
43        clearFlags &= SkPaint::kAllFlags;
44        setFlags &= SkPaint::kAllFlags;
45
46        if (clearFlags | setFlags) {
47            return new SkPaintFlagsDrawFilter(clearFlags, setFlags);
48        } else {
49            return NULL;
50        }
51    }
52};
53
54static JNINativeMethod drawfilter_methods[] = {
55    {"nativeDestructor", "(I)V", (void*) SkDrawFilterGlue::finalizer}
56};
57
58static JNINativeMethod paintflags_methods[] = {
59    {"nativeConstructor","(II)I", (void*) SkDrawFilterGlue::CreatePaintFlagsDF}
60};
61
62#define REG(env, name, array)                                                                       \
63    result = android::AndroidRuntime::registerNativeMethods(env, name, array, SK_ARRAY_COUNT(array));  \
64    if (result < 0) return result
65
66
67int register_android_graphics_DrawFilter(JNIEnv* env) {
68    int result;
69
70    REG(env, "android/graphics/DrawFilter", drawfilter_methods);
71    REG(env, "android/graphics/PaintFlagsDrawFilter", paintflags_methods);
72
73    return 0;
74}
75
76}
77