2015-02-13 22:29:30 +08:00
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include "Direct3DBase.h"
|
|
|
|
|
#include <d3d11.h>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
struct ModelViewProjectionConstantBuffer
|
|
|
|
|
{
|
2015-02-21 00:49:10 +08:00
|
|
|
|
DirectX::XMFLOAT4X4 model;
|
|
|
|
|
DirectX::XMFLOAT4X4 view;
|
|
|
|
|
DirectX::XMFLOAT4X4 projection;
|
2015-02-13 22:29:30 +08:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct Vertex //Overloaded Vertex Structure
|
|
|
|
|
{
|
2015-02-21 00:49:10 +08:00
|
|
|
|
Vertex(){}
|
|
|
|
|
Vertex(float x, float y, float z,
|
|
|
|
|
float u, float v)
|
|
|
|
|
: pos(x,y,z), texCoord(u, v){}
|
2015-02-13 22:29:30 +08:00
|
|
|
|
|
2015-02-21 00:49:10 +08:00
|
|
|
|
DirectX::XMFLOAT3 pos;
|
|
|
|
|
DirectX::XMFLOAT2 texCoord;
|
2015-02-13 22:29:30 +08:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// This class renders a simple quad.
|
|
|
|
|
ref class QuadRenderer sealed : public Direct3DBase
|
|
|
|
|
{
|
|
|
|
|
public:
|
2015-02-21 00:49:10 +08:00
|
|
|
|
QuadRenderer();
|
2015-02-13 22:29:30 +08:00
|
|
|
|
|
2015-02-21 00:49:10 +08:00
|
|
|
|
void Update(float timeTotal = 0.0f, float timeDelta = 0.0f);
|
2015-02-13 22:29:30 +08:00
|
|
|
|
void CreateTextureFromByte(byte * buffer,int width,int height);
|
|
|
|
|
|
2015-02-21 00:49:10 +08:00
|
|
|
|
// Direct3DBase methods.
|
|
|
|
|
virtual void CreateDeviceResources() override;
|
|
|
|
|
virtual void CreateWindowSizeDependentResources() override;
|
2015-02-13 22:29:30 +08:00
|
|
|
|
virtual void Render() override;
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
void Render(Microsoft::WRL::ComPtr<ID3D11RenderTargetView> renderTargetView, Microsoft::WRL::ComPtr<ID3D11DepthStencilView> depthStencilView);
|
2015-02-21 00:49:10 +08:00
|
|
|
|
bool m_loadingComplete;
|
|
|
|
|
uint32 m_indexCount;
|
|
|
|
|
ModelViewProjectionConstantBuffer m_constantBufferData;
|
|
|
|
|
Microsoft::WRL::ComPtr<ID3D11InputLayout> m_inputLayout;
|
|
|
|
|
Microsoft::WRL::ComPtr<ID3D11Buffer> m_vertexBuffer;
|
|
|
|
|
Microsoft::WRL::ComPtr<ID3D11Buffer> m_indexBuffer;
|
|
|
|
|
Microsoft::WRL::ComPtr<ID3D11VertexShader> m_vertexShader;
|
|
|
|
|
Microsoft::WRL::ComPtr<ID3D11PixelShader> m_pixelShader;
|
|
|
|
|
Microsoft::WRL::ComPtr<ID3D11Buffer> m_constantBuffer;
|
|
|
|
|
Microsoft::WRL::ComPtr<ID3D11Texture2D> m_Texture;
|
|
|
|
|
Microsoft::WRL::ComPtr<ID3D11ShaderResourceView> m_SRV;
|
|
|
|
|
Microsoft::WRL::ComPtr<ID3D11SamplerState> m_QuadsTexSamplerState;
|
|
|
|
|
Microsoft::WRL::ComPtr<ID3D11BlendState> m_Transparency;
|
|
|
|
|
Microsoft::WRL::ComPtr<ID3D11RasterizerState> CCWcullMode;
|
|
|
|
|
Microsoft::WRL::ComPtr<ID3D11RasterizerState> CWcullMode;
|
2015-02-13 22:29:30 +08:00
|
|
|
|
};
|