#pragma once #include "..\Common\DeviceResources.h" #include "ShaderStructures.h" #include "..\Common\StepTimer.h" namespace $ext_safeprojectname$ { // 此示例呈现器实例化一个基本渲染管道。 class Sample3DSceneRenderer { public: Sample3DSceneRenderer(const std::shared_ptr& deviceResources); void CreateDeviceDependentResources(); void CreateWindowSizeDependentResources(); void ReleaseDeviceDependentResources(); void Update(DX::StepTimer const& timer); void Render(); void StartTracking(); void TrackingUpdate(float positionX); void StopTracking(); bool IsTracking() { return m_tracking; } private: void Rotate(float radians); private: // 缓存的设备资源指针。 std::shared_ptr m_deviceResources; // 立体几何的 Direct3D 资源。 Microsoft::WRL::ComPtr m_inputLayout; Microsoft::WRL::ComPtr m_vertexBuffer; Microsoft::WRL::ComPtr m_indexBuffer; Microsoft::WRL::ComPtr m_vertexShader; Microsoft::WRL::ComPtr m_pixelShader; Microsoft::WRL::ComPtr m_constantBuffer; // 立体几何的系统资源。 ModelViewProjectionConstantBuffer m_constantBufferData; uint32 m_indexCount; // 用于渲染循环的变量。 bool m_loadingComplete; float m_degreesPerSecond; bool m_tracking; }; }