Blame view

3rdparty/opencv-4.5.4/samples/wp8/OcvRotatingCube/PhoneXamlDirect3DApp1/PhoneXamlDirect3DApp1Comp/CubeRenderer.h 1.93 KB
f4334277   Hu Chunming   提交3rdparty
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
  #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;
  
  };