#pragma once #include "Direct3DBase.h" struct ModelViewProjectionConstantBuffer { DirectX::XMFLOAT4X4 model; DirectX::XMFLOAT4X4 view; DirectX::XMFLOAT4X4 projection; }; struct VertexPositionColor { DirectX::XMFLOAT3 pos; DirectX::XMFLOAT3 color; }; // This class renders a simple spinning cube. ref class CubeRenderer sealed : public Direct3DBase { public: CubeRenderer(); // Direct3DBase methods. virtual void CreateDeviceResources() override; virtual void CreateWindowSizeDependentResources() override; virtual void Render() override; // Method for updating time-dependent objects. void Update(float timeTotal, float timeDelta); private: bool m_loadingComplete; 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; uint32 m_indexCount; ModelViewProjectionConstantBuffer m_constantBufferData; };