diff --git a/Source/StudyFrameworkPlugin/Private/GazeTracking/SFGazeTracker.cpp b/Source/StudyFrameworkPlugin/Private/GazeTracking/SFGazeTracker.cpp index 3001ae07ed838fa7a63e844ec0a9eb61fb4eff48..aaffdf5e6eec47e0c95998846457aa2498d8eaf0 100644 --- a/Source/StudyFrameworkPlugin/Private/GazeTracking/SFGazeTracker.cpp +++ b/Source/StudyFrameworkPlugin/Private/GazeTracking/SFGazeTracker.cpp @@ -27,13 +27,15 @@ bool USFGazeTracker::Tick(float DeltaTime) #ifdef WITH_SRANIPAL bIsAsyncEyeTrackingTaskRunning = true; ViveSR::anipal::Eye::EyeData_v2 TempEyeData; - AsyncTask(ENamedThreads::AnyThread, [TempEyeDataAddr = MoveTemp(&TempEyeData), OnEyeTrackingDataReceived]() + AsyncTask(ENamedThreads::AnyThread, [TempEyeDataAddr = &TempEyeData, SranipalEyeData = MoveTemp(SranipalEyeData), bIsAsyncEyeTrackingTaskRunning = MoveTemp(bIsAsyncEyeTrackingTaskRunning), bDataLogged = MoveTemp(bDataLogged)]() { ViveSR::anipal::Eye::GetEyeData_v2(TempEyeDataAddr); - AsyncTask(ENamedThreads::GameThread, [TempEyeDataAddr = MoveTemp(TempEyeDataAddr), OnEyeTrackingDataReceived]() mutable + AsyncTask(ENamedThreads::GameThread, [TempEyeDataAddr =TempEyeDataAddr, SranipalEyeData, bIsAsyncEyeTrackingTaskRunning, bDataLogged]() mutable { - OnEyeTrackingDataReceived.ExecuteIfBound(*TempEyeDataAddr); + SranipalEyeData = *TempEyeDataAddr; + bDataLogged = false; + bIsAsyncEyeTrackingTaskRunning = false; }); }); diff --git a/Source/StudyFrameworkPlugin/Public/GazeTracking/SFGazeTracker.h b/Source/StudyFrameworkPlugin/Public/GazeTracking/SFGazeTracker.h index 25782c8e8604887d40a8f76d15a05b3a705b2bcd..9f7e393d55e8318ac6d6c44719cd9cb94136267e 100644 --- a/Source/StudyFrameworkPlugin/Public/GazeTracking/SFGazeTracker.h +++ b/Source/StudyFrameworkPlugin/Public/GazeTracking/SFGazeTracker.h @@ -11,7 +11,7 @@ #ifdef WITH_SRANIPAL //Use this to broadcast the data from async thread to game thread for logging -DECLARE_DYNAMIC_DELEGATE_OneParam(FOnEyeTrackingDataReceived, const ViveSR::anipal::Eye::EyeData_v2, EyeData); +//DECLARE_DYNAMIC_DELEGATE_OneParam(FOnEyeTrackingDataReceived, const ViveSR::anipal::Eye::EyeData_v2, EyeData); #endif UENUM() @@ -82,7 +82,7 @@ public: #ifdef WITH_SRANIPAL - FOnEyeTrackingDataReceived& OnEyeTrackingDataReceived; + //FOnEyeTrackingDataReceived& OnEyeTrackingDataReceived; void OnEyeTrackingDataReceived(ViveSR::anipal::Eye::EyeData_v2 EyeData); #endif private: