Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.

Paste

Pasted as C++ by registered user yulf88 ( 9 years ago )
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;

}

 

Revise this Paste

Your Name: Code Language: