Home | History | Annotate | Download | only in PhoneXamlDirect3DApp1Comp
      1 #pragma once
      2 
      3 #include "DirectXHelper.h"
      4 
      5 // Helper class that initializes DirectX APIs for 3D rendering.
      6 ref class Direct3DBase abstract
      7 {
      8 internal:
      9     Direct3DBase();
     10 
     11 public:
     12     virtual void Initialize();
     13     virtual void CreateDeviceResources();
     14     virtual void CreateWindowSizeDependentResources();
     15     virtual void UpdateForRenderResolutionChange(float width, float height);
     16     virtual void UpdateForWindowSizeChange(float width, float height);
     17     virtual void Render() = 0;
     18 
     19 internal:
     20     virtual ID3D11Texture2D* GetTexture()
     21     {
     22         return m_renderTarget.Get();
     23     }
     24 
     25 protected private:
     26     // Direct3D Objects.
     27     Microsoft::WRL::ComPtr<ID3D11Device1> m_d3dDevice;
     28     Microsoft::WRL::ComPtr<ID3D11DeviceContext1> m_d3dContext;
     29     Microsoft::WRL::ComPtr<ID3D11Texture2D> m_renderTarget;
     30     Microsoft::WRL::ComPtr<ID3D11RenderTargetView> m_renderTargetView;
     31     Microsoft::WRL::ComPtr<ID3D11DepthStencilView> m_depthStencilView;
     32 
     33     // Cached renderer properties.
     34     D3D_FEATURE_LEVEL m_featureLevel;
     35     Windows::Foundation::Size m_renderTargetSize;
     36     Windows::Foundation::Rect m_windowBounds;
     37 };