// cleanup(); JNIEXPORT jboolean JNICALL JNIFUNCTION_NATIVE(nativeStop(JNIEnv* env, jobject object)) { #ifdef DEBUG LOGI("nativeStop\n"); #endif int i, j; // Can't call arglCleanup() here, because nativeStop is not called on rendering thread. // NFT cleanup. if (trackingThreadHandle) { #ifdef DEBUG LOGI("Stopping NFT2 tracking thread."); #endif trackingInitQuit(&trackingThreadHandle); detectedPage = -2; } j = 0; for (i = 0; i < surfaceSetCount; i++) { if (surfaceSet[i]) { #ifdef DEBUG if (j == 0) LOGI("Unloading NFT tracking surfaces."); #endif ar2FreeSurfaceSet(&surfaceSet[i]); // Sets surfaceSet[i] to NULL. j++; } } #ifdef DEBUG if (j > 0) LOGI("Unloaded %d NFT tracking surfaces.", j); #endif surfaceSetCount = 0; nftDataLoaded = false; #ifdef DEBUG LOGI("Cleaning up ARToolKit NFT handles."); #endif ar2DeleteHandle(&ar2Handle); kpmDeleteHandle(&kpmHandle); arParamLTFree(&gCparamLT); // OpenGL cleanup -- not done here. // Video cleanup. if (gVideoFrame) { free(gVideoFrame); gVideoFrame = NULL; gVideoFrameSize = 0; pthread_mutex_destroy(&gVideoFrameLock); } ar2VideoClose(gVid); gVid = NULL; videoInited = false; return (true); }
void ofxArtool5::cleanup(){ if(artMode==ART_PATTERN){ arPattDetach(gARHandle); arPattDeleteHandle(gARPattHandle); ar3DDeleteHandle(&gAR3DHandle); arDeleteHandle(gARHandle); arParamLTFree(&gCparamLT); }else if(artMode==ART_NFT){ if(markersNFT)deleteMarkers(&markersNFT, &markersNFTCount); unloadNFTData(); ar2DeleteHandle(&ar2Handle); kpmDeleteHandle(&kpmHandle); arParamLTFree(&gCparamLT); } }
static void cleanup(void) { VirtualEnvironmentFinal(); if (markersNFT) deleteMarkers(&markersNFT, &markersNFTCount); // NFT cleanup. unloadNFTData(); ARLOGd("Cleaning up ARToolKit NFT handles.\n"); ar2DeleteHandle(&ar2Handle); kpmDeleteHandle(&kpmHandle); arParamLTFree(&gCparamLT); // OpenGL cleanup. arglCleanup(gArglSettings); gArglSettings = NULL; // Camera cleanup. arVideoCapStop(); arVideoClose(); }
static void cleanup(void) { if (markersNFT) deleteMarkers(&markersNFT, &markersNFTCount); // NFT cleanup. unloadNFTData(); ARLOGd("Cleaning up ARToolKit NFT handles.\n"); ar2DeleteHandle(&ar2Handle); kpmDeleteHandle(&kpmHandle); arParamLTFree(&gCparamLT); // OpenGL cleanup. arglCleanup(gArglSettings); gArglSettings = NULL; // Camera cleanup. arVideoCapStop(); arVideoClose(); #ifdef _WIN32 CoUninitialize(); #endif }