Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Tetragramm
GitHub Repository: Tetragramm/opencv
Path: blob/master/samples/wp8/OcvRotatingCube/PhoneXamlDirect3DApp1/PhoneXamlDirect3DApp1Comp/CubeRenderer.h
16349 views
1
#pragma once
2
3
#include "Direct3DBase.h"
4
#include <d3d11.h>
5
#include <mutex>
6
7
8
struct ModelViewProjectionConstantBuffer
9
{
10
DirectX::XMFLOAT4X4 model;
11
DirectX::XMFLOAT4X4 view;
12
DirectX::XMFLOAT4X4 projection;
13
};
14
15
struct Vertex //Overloaded Vertex Structure
16
{
17
Vertex(){}
18
Vertex(float x, float y, float z,
19
float u, float v)
20
: pos(x,y,z), texCoord(u, v){}
21
22
DirectX::XMFLOAT3 pos;
23
DirectX::XMFLOAT2 texCoord;
24
};
25
26
// This class renders a simple spinning cube.
27
ref class CubeRenderer sealed : public Direct3DBase
28
{
29
public:
30
CubeRenderer();
31
32
// Direct3DBase methods.
33
virtual void CreateDeviceResources() override;
34
virtual void CreateWindowSizeDependentResources() override;
35
virtual void Render() override;
36
37
// Method for updating time-dependent objects.
38
void Update(float timeTotal, float timeDelta);
39
40
void CreateTextureFromByte(byte * buffer,int width,int height);
41
private:
42
void Render(Microsoft::WRL::ComPtr<ID3D11RenderTargetView> renderTargetView, Microsoft::WRL::ComPtr<ID3D11DepthStencilView> depthStencilView);
43
bool m_loadingComplete;
44
45
Microsoft::WRL::ComPtr<ID3D11InputLayout> m_inputLayout;
46
Microsoft::WRL::ComPtr<ID3D11Buffer> m_vertexBuffer;
47
Microsoft::WRL::ComPtr<ID3D11Buffer> m_indexBuffer;
48
Microsoft::WRL::ComPtr<ID3D11VertexShader> m_vertexShader;
49
Microsoft::WRL::ComPtr<ID3D11PixelShader> m_pixelShader;
50
Microsoft::WRL::ComPtr<ID3D11Buffer> m_constantBuffer;
51
Microsoft::WRL::ComPtr<ID3D11Texture2D> m_texture;
52
Microsoft::WRL::ComPtr<ID3D11ShaderResourceView> m_SRV;
53
Microsoft::WRL::ComPtr<ID3D11SamplerState> m_cubesTexSamplerState;
54
uint32 m_indexCount;
55
ModelViewProjectionConstantBuffer m_constantBufferData;
56
std::mutex m_mutex;
57
Microsoft::WRL::ComPtr<ID3D11BlendState> m_transparency;
58
Microsoft::WRL::ComPtr<ID3D11RasterizerState> m_CCWcullMode;
59
Microsoft::WRL::ComPtr<ID3D11RasterizerState> m_CWcullMode;
60
61
};
62
63