jboolean Java_android_filterfw_core_GLFrame_nativeAllocateExternal(JNIEnv* env, jobject thiz, jobject gl_env) { GLEnv* gl_env_ptr = ConvertFromJava<GLEnv>(env, gl_env); if (!gl_env_ptr) return JNI_FALSE; GLFrame* frame = new GLFrame(gl_env_ptr); if (frame->InitWithExternalTexture()) { return ToJBool(WrapObjectInJava(frame, env, thiz, true)); } else { delete frame; return JNI_FALSE; } }