blob: 79dc2750713829ca5f962126393592bd287c6261 [file] [log] [blame]
#include "SkLayerRasterizer.h"
#include <jni.h>
class SkLayerRasterizerGlue {
public:
static jlong create(JNIEnv* env, jobject) {
return reinterpret_cast<jlong>(new SkLayerRasterizer());
}
static void addLayer(JNIEnv* env, jobject, jlong layerHandle, jlong paintHandle, jfloat dx, jfloat dy) {
SkLayerRasterizer* layer = reinterpret_cast<SkLayerRasterizer *>(layerHandle);
const SkPaint* paint = reinterpret_cast<SkPaint *>(paintHandle);
SkASSERT(layer);
SkASSERT(paint);
layer->addLayer(*paint, dx, dy);
}
};
/////////////////////////////////////////////////////////////////////////////////////////
#include <android_runtime/AndroidRuntime.h>
static JNINativeMethod gLayerRasterizerMethods[] = {
{ "nativeConstructor", "()J", (void*)SkLayerRasterizerGlue::create },
{ "nativeAddLayer", "(JJFF)V", (void*)SkLayerRasterizerGlue::addLayer }
};
int register_android_graphics_LayerRasterizer(JNIEnv* env)
{
return android::AndroidRuntime::registerNativeMethods(env,
"android/graphics/LayerRasterizer",
gLayerRasterizerMethods,
SK_ARRAY_COUNT(gLayerRasterizerMethods));
}