deepin-ocr/3rdparty/opencv-4.5.4/samples/wp8/OcvRotatingCube/PhoneXamlDirect3DApp1/PhoneXamlDirect3DApp1Comp/CubeRenderer.h
wangzhengyang 718c41634f feat: 切换后端至PaddleOCR-NCNN,切换工程为CMake
1.项目后端整体迁移至PaddleOCR-NCNN算法,已通过基本的兼容性测试
2.工程改为使用CMake组织,后续为了更好地兼容第三方库,不再提供QMake工程
3.重整权利声明文件,重整代码工程,确保最小化侵权风险

Log: 切换后端至PaddleOCR-NCNN,切换工程为CMake
Change-Id: I4d5d2c5d37505a4a24b389b1a4c5d12f17bfa38c
2022-05-10 10:22:11 +08:00

62 lines
1.9 KiB
C++

#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;
};