JNIEXPORT jlong JNICALL
Java_com_alipay_android_phone_alice_AliceManager_nativeInitSurface(JNIEnv *env, jclass type,
jobject surface,
jstring externalPath_,
jlong nativeAssetManager) {
const char *externalPath = env->GetStringUTFChars(externalPath_, 0);
surface_context *surfaceContext = new surface_context();
/** env 线程相关, 为了避免初始化线程和播放线程弄混,
** 不允许使用初始化线程播放, 一会需要重新赋值才行*/
surfaceContext->env = env;
surfaceContext->assetManager = (void *) nativeAssetManager;
surfaceContext->window = ANativeWindow_fromSurface(env, surface);
surfaceContext->externalPath = std::string(externalPath);
env->ReleaseStringUTFChars(externalPath_, externalPath);
__state2 = surfaceContext;
std::string assetsPath(externalPath);
if (externalPath[strlen(externalPath) - 1] != '/')
assetsPath += "/";
gameplay::FileSystem::setResourcePath(assetsPath.c_str());
GP_INFO("FileSystem::setResourcePath %s", assetsPath.c_str());
__assetManager = (AAssetManager *) nativeAssetManager;
GP_INFO("AAssetManager set");
return (jlong) surfaceContext;
}Add a code snippet to your website: www.paste.org