#pragma once #include "Common\StepTimer.h" #include "Common\DeviceResources.h" #include "Content\Sample3DSceneRenderer.h" #include "Content\SampleFpsTextRenderer.h" // 在屏幕上呈现 Direct2D 和 3D 内容。 namespace $safeprojectname$ { class $safeprojectname$Main : public DX::IDeviceNotify { public: $safeprojectname$Main(const std::shared_ptr& deviceResources); ~$safeprojectname$Main(); void CreateWindowSizeDependentResources(); void StartTracking() { m_sceneRenderer->StartTracking(); } void TrackingUpdate(float positionX) { m_pointerLocationX = positionX; } void StopTracking() { m_sceneRenderer->StopTracking(); } bool IsTracking() { return m_sceneRenderer->IsTracking(); } void StartRenderLoop(); void StopRenderLoop(); Concurrency::critical_section& GetCriticalSection() { return m_criticalSection; } // IDeviceNotify virtual void OnDeviceLost(); virtual void OnDeviceRestored(); private: void ProcessInput(); void Update(); bool Render(); // 缓存的设备资源指针。 std::shared_ptr m_deviceResources; // TODO: 替换为你自己的内容呈现器。 std::unique_ptr m_sceneRenderer; std::unique_ptr m_fpsTextRenderer; Windows::Foundation::IAsyncAction^ m_renderLoopWorker; Concurrency::critical_section m_criticalSection; // 渲染循环计时器。 DX::StepTimer m_timer; //跟踪当前输入指针位置 float m_pointerLocationX; }; }