Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- C++ func which calls a Java method (JNI)
- char* loadAsset(const char* path)
- {
- jstring _path = (*GET_JAVA_ENV())->NewStringUTF(GET_JAVA_ENV(), path);
- jbyteArray result = (jbyteArray) (*GET_JAVA_ENV())->CallStaticObjectMethod(GET_JAVA_ENV(), GET_ACTIVITY_CLASS(), GET_STATIC_METHOD_ID("getAssetContents","(Ljava/lang/String;)[B"), _path);
- jsize size = (*GET_JAVA_ENV())->GetArrayLength(GET_JAVA_ENV(), result);
- char* data = (char*)calloc((size_t)size, sizeof(char));
- (*GET_JAVA_ENV())->GetByteArrayRegion(GET_JAVA_ENV(), result, (jsize)0, size, (jbyte*)data);
- return data; //data is returned as shader source
- }
- Java Function which loads shader from android assets
- public byte[] getAssetContents(String path) throws IOException
- {
- InputStream is = assetManager.open(path, AssetManager.ACCESS_BUFFER);
- byte buffer[] = new byte[is.available()];
- is.read(buffer);
- return buffer;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement