1 /* -*- Mode: C++; indent-tabs-mode: t; tab-width: 4 -*-
2 // ---------------------------------------------------------------------------
4 // Copyright (C) Stephanie Gawroriski <xer@multiphasicapps.net>
5 // ---------------------------------------------------------------------------
6 // SquirrelJME is under the Mozilla Public License Version 2.0.
7 // See license.mkd for licensing and copyright information.
8 // ------------------------------------------------------------------------ */
10 #include "squirreljme.h"
12 // The class to forward to
13 #define SWINGPENCIL_CLASSNAME "cc/squirreljme/emulator/uiform/SwingPencilShelf"
16 #define SWINGPENCIL_CAPABILITIES_DESC "(I)I"
17 #define SWINGPENCIL_NATIVEIMAGELOADTYPES_DESC "()I"
18 #define SWINGPENCIL_NATIVEIMAGELOADRGBA_DESC "(I[BIILcc/squirreljme/jvm/mle/callbacks/NativeImageLoadCallback;)Ljava/lang/Object;"
20 JNIEXPORT jint JNICALL
Impl_mle_PencilShelf_capabilities(JNIEnv
* env
,
21 jclass classy
, jint pixelFormat
)
23 return forwardCallStaticInteger(env
, SWINGPENCIL_CLASSNAME
,
24 "capabilities", SWINGPENCIL_CAPABILITIES_DESC
,
28 JNIEXPORT jobject JNICALL
Impl_mle_PencilShelf_nativeImageLoadRGBA(JNIEnv
* env
,
29 jclass classy
, jint type
, jbyteArray buf
, jint off
, jint len
,
32 return forwardCallStaticObject(env
, SWINGPENCIL_CLASSNAME
,
33 "nativeImageLoadRGBA", SWINGPENCIL_NATIVEIMAGELOADRGBA_DESC
,
34 type
, buf
, off
, len
, callback
);
37 JNIEXPORT jint JNICALL
Impl_mle_PencilShelf_nativeImageLoadTypes(JNIEnv
* env
,
40 return forwardCallStaticInteger(env
, SWINGPENCIL_CLASSNAME
,
41 "nativeImageLoadTypes", SWINGPENCIL_NATIVEIMAGELOADTYPES_DESC
);
44 static const JNINativeMethod mlePencilMethods
[] =
46 {"capabilities", SWINGPENCIL_CAPABILITIES_DESC
,
47 (void*)Impl_mle_PencilShelf_capabilities
},
48 {"nativeImageLoadRGBA", SWINGPENCIL_NATIVEIMAGELOADRGBA_DESC
,
49 (void*)Impl_mle_PencilShelf_nativeImageLoadRGBA
},
50 {"nativeImageLoadTypes", SWINGPENCIL_NATIVEIMAGELOADTYPES_DESC
,
51 (void*)Impl_mle_PencilShelf_nativeImageLoadTypes
},
54 jint JNICALL
mlePencilInit(JNIEnv
* env
, jclass classy
)
56 return (*env
)->RegisterNatives(env
,
57 (*env
)->FindClass(env
, "cc/squirreljme/jvm/mle/PencilShelf"),
58 mlePencilMethods
, sizeof(mlePencilMethods
) / sizeof(JNINativeMethod
));