Add handling for ArTrackingState changes in playback mode
This commit is contained in:
@@ -75,6 +75,16 @@ namespace OpenVulkano::AR
|
||||
return m_state != rhs;
|
||||
}
|
||||
|
||||
[[nodiscard]] constexpr bool operator ==(const ArTrackingState& rhs)
|
||||
{
|
||||
return m_state == rhs.m_state;
|
||||
}
|
||||
|
||||
[[nodiscard]] constexpr bool operator !=(const ArTrackingState& rhs)
|
||||
{
|
||||
return m_state != rhs.m_state;
|
||||
}
|
||||
|
||||
static ArTrackingState GetFromName(std::string_view name)
|
||||
{
|
||||
auto result = magic_enum::enum_cast<State>(name);
|
||||
|
||||
@@ -74,6 +74,11 @@ namespace OpenVulkano::AR::Playback
|
||||
// Trigger events
|
||||
OnNewFrameAvailable();
|
||||
OnNewFrame(frame);
|
||||
if (frame->GetTrackingState() != m_lastTrackingState)
|
||||
{
|
||||
m_lastTrackingState = frame->GetTrackingState();
|
||||
OnTrackingStateChanged(m_lastTrackingState);
|
||||
}
|
||||
OnNewCameraTransformation(frame->GetCameraTransformation());
|
||||
if (OnNewCameraViewMatrix.HasHandlers())
|
||||
{
|
||||
|
||||
@@ -46,6 +46,7 @@ class ArSessionPlayback final : public ArSession, public std::enable_shared_from
|
||||
const std::string recordingPath;
|
||||
const bool autoAdvance;
|
||||
ArPlaybackReader playbackReader;
|
||||
ArTrackingState m_lastTrackingState = ArTrackingState::UNKNOWN;
|
||||
|
||||
std::atomic_bool m_frameConsumed = true;
|
||||
std::shared_ptr<ArFrame> m_nextFrame;
|
||||
|
||||
@@ -11,8 +11,9 @@
|
||||
|
||||
namespace OpenVulkano::Vulkan
|
||||
{
|
||||
struct MemoryAllocation
|
||||
class MemoryAllocation
|
||||
{
|
||||
public:
|
||||
vk::DeviceMemory memory;
|
||||
size_t used;
|
||||
const size_t size;
|
||||
|
||||
Reference in New Issue
Block a user