Beispiel #1
0
JNIEXPORT jboolean JNICALL JNIFUNCTION_NATIVE(nativeCreate(JNIEnv* env, jobject object, jobject instanceOfAndroidContext))
{
    int err_i;
#ifdef DEBUG
    LOGI("nativeCreate\n");
#endif

    // Change working directory for the native process, so relative paths can be used for file access.
    arUtilChangeToResourcesDirectory(AR_UTIL_RESOURCES_DIRECTORY_BEHAVIOR_BEST, NULL, instanceOfAndroidContext);

    // Load marker(s).
    arPattHandle = arPattCreateHandle();
	if (arPattHandle == NULL) {
		LOGE("Error creating pattern handle");
		return false;
	}
    newMarkers(markerConfigDataFilename, arPattHandle, &markersSquare, &markersSquareCount, &arPattDetectionMode);
    if (!markersSquareCount) {
        LOGE("Error loading markers from config. file '%s'.", markerConfigDataFilename);
        arPattDeleteHandle(arPattHandle);
        arPattHandle = NULL;
        return false;
    }
#ifdef DEBUG
    LOGE("Marker count = %d\n", markersSquareCount);
#endif
    
	return (true);
}
JNIEXPORT jboolean JNICALL JNIFUNCTION_NATIVE(nativeCreate(JNIEnv* env, jobject object, jobject instanceOfAndroidContext))
{
    int err_i;
#ifdef DEBUG
    LOGI("nativeCreate\n");
#endif

    // Change working directory for the native process, so relative paths can be used for file access.
    arUtilChangeToResourcesDirectory(AR_UTIL_RESOURCES_DIRECTORY_BEHAVIOR_BEST, NULL, instanceOfAndroidContext);

    // Load marker(s).
    newMarkers(markerConfigDataFilename, &markersNFT, &markersNFTCount);

    LOGE("AAAA = %s\n", markersNFT[0].datasetPathname);
    LOGE("AAAA = %i\n", markersNFT[0].pageNo);

    if (!markersNFTCount) {
        LOGE("Error loading markers from config. file '%s'.", markerConfigDataFilename);
        return false;
    }
#ifdef DEBUG
    LOGE("Marker count = %d\n", markersNFTCount);
#endif
    
	return (true);
}
EXPORT_API bool arwChangeToResourcesDir(const char *resourcesDirectoryPath)
{
    bool ok;
#if TARGET_PLATFORM_ANDROID
    if (resourcesDirectoryPath) ok = (arUtilChangeToResourcesDirectory(AR_UTIL_RESOURCES_DIRECTORY_BEHAVIOR_USE_SUPPLIED_PATH, resourcesDirectoryPath, NULL) == 0);
	else ok = (arUtilChangeToResourcesDirectory(AR_UTIL_RESOURCES_DIRECTORY_BEHAVIOR_BEST, NULL, NULL) == 0);
#elif TARGET_PLATFORM_WINRT
	ok = false; // No current working directory in WinRT.
#else
    if (resourcesDirectoryPath) ok = (arUtilChangeToResourcesDirectory(AR_UTIL_RESOURCES_DIRECTORY_BEHAVIOR_USE_SUPPLIED_PATH, resourcesDirectoryPath) == 0);
	else ok = (arUtilChangeToResourcesDirectory(AR_UTIL_RESOURCES_DIRECTORY_BEHAVIOR_BEST, NULL) == 0);
#endif
#ifdef DEBUG
    char buf[MAXPATHLEN];
    gARTK->logv("CWD is '%s'.", getcwd(buf, sizeof(buf)));
#endif
    return (ok);
}