#pragma once #include "Direct3DBase.h" #include struct ModelViewProjectionConstantBuffer { DirectX::XMFLOAT4X4 model; DirectX::XMFLOAT4X4 view; DirectX::XMFLOAT4X4 projection; }; struct Vertex //Overloaded Vertex Structure { Vertex(){} Vertex(float x, float y, float z, float u, float v) : pos(x,y,z), texCoord(u, v){} DirectX::XMFLOAT3 pos; DirectX::XMFLOAT2 texCoord; }; // This class renders a simple quad. ref class QuadRenderer sealed : public Direct3DBase { public: QuadRenderer(); void Update(float timeTotal = 0.0f, float timeDelta = 0.0f); void CreateTextureFromByte(byte * buffer,int width,int height); // Direct3DBase methods. virtual void CreateDeviceResources() override; virtual void CreateWindowSizeDependentResources() override; virtual void Render() override; private: void Render(Microsoft::WRL::ComPtr renderTargetView, Microsoft::WRL::ComPtr depthStencilView); bool m_loadingComplete; uint32 m_indexCount; ModelViewProjectionConstantBuffer m_constantBufferData; 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; Microsoft::WRL::ComPtr m_Texture; Microsoft::WRL::ComPtr m_SRV; Microsoft::WRL::ComPtr m_QuadsTexSamplerState; Microsoft::WRL::ComPtr m_Transparency; Microsoft::WRL::ComPtr CCWcullMode; Microsoft::WRL::ComPtr CWcullMode; };