123456789101112131415161718192021222324252627282930313233343536373839 |
- #pragma once
- #include "DirectXHelper.h"
- // Helper class that initializes DirectX APIs for 3D rendering.
- ref class Direct3DBase abstract
- {
- internal : Direct3DBase();
- public:
- virtual void Initialize(Windows::UI::Core::CoreWindow ^ window);
- virtual void HandleDeviceLost();
- virtual void CreateDeviceResources();
- virtual void CreateWindowSizeDependentResources();
- virtual void UpdateForWindowSizeChange();
- virtual void ReleaseResourcesForSuspending();
- virtual void Render() = 0;
- virtual void Present();
- virtual float ConvertDipsToPixels(float dips);
- protected
- private:
- // Direct3D Objects.
- Microsoft::WRL::ComPtr<ID3D11Device1> m_d3dDevice;
- Microsoft::WRL::ComPtr<ID3D11DeviceContext1> m_d3dContext;
- Microsoft::WRL::ComPtr<IDXGISwapChain1> m_swapChain;
- Microsoft::WRL::ComPtr<ID3D11RenderTargetView> m_renderTargetView;
- Microsoft::WRL::ComPtr<ID3D11DepthStencilView> m_depthStencilView;
- // Cached renderer properties.
- D3D_FEATURE_LEVEL m_featureLevel;
- Windows::Foundation::Size m_renderTargetSize;
- Windows::Foundation::Rect m_windowBounds;
- Platform::Agile<Windows::UI::Core::CoreWindow> m_window;
- Windows::Graphics::Display::DisplayOrientations m_orientation;
- // Transform used for display orientation.
- DirectX::XMFLOAT4X4 m_orientationTransform3D;
- };
|