19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include "SkLayerRasterizer.h"
29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include <jni.h>
39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectclass SkLayerRasterizerGlue {
59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic:
69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static SkRasterizer* create(JNIEnv* env, jobject) {
79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return new SkLayerRasterizer();
89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static void addLayer(JNIEnv* env, jobject, SkLayerRasterizer* layer, const SkPaint* paint, float dx, float dy) {
119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        SkASSERT(layer);
129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        SkASSERT(paint);
139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        layer->addLayer(*paint, SkFloatToScalar(dx), SkFloatToScalar(dy));
144cb1753ec6e90d7e747880c599dc1c164a568cf3Elliott Hughes    }
159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project};
169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/////////////////////////////////////////////////////////////////////////////////////////
189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include <android_runtime/AndroidRuntime.h>
209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic JNINativeMethod gLayerRasterizerMethods[] = {
229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    { "nativeConstructor",  "()I",      (void*)SkLayerRasterizerGlue::create    },
239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    { "nativeAddLayer",     "(IIFF)V",  (void*)SkLayerRasterizerGlue::addLayer  }
249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project};
259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectint register_android_graphics_LayerRasterizer(JNIEnv* env)
279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{
289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    return android::AndroidRuntime::registerNativeMethods(env,
299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                                       "android/graphics/LayerRasterizer",
309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                                       gLayerRasterizerMethods,
319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                                       SK_ARRAY_COUNT(gLayerRasterizerMethods));
329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
33