12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- #pragma once
- #include "Direct3DBase.h"
- #include <d3d11.h>
- #include <mutex>
- 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 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);
- void CreateTextureFromByte(byte * buffer,int width,int height);
- private:
- void Render(Microsoft::WRL::ComPtr<ID3D11RenderTargetView> renderTargetView, Microsoft::WRL::ComPtr<ID3D11DepthStencilView> depthStencilView);
- bool m_loadingComplete;
- 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_cubesTexSamplerState;
- uint32 m_indexCount;
- ModelViewProjectionConstantBuffer m_constantBufferData;
- std::mutex m_mutex;
- Microsoft::WRL::ComPtr<ID3D11BlendState> m_transparency;
- Microsoft::WRL::ComPtr<ID3D11RasterizerState> m_CCWcullMode;
- Microsoft::WRL::ComPtr<ID3D11RasterizerState> m_CWcullMode;
- };
|