gfxD3D11TextureArray.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #ifndef _GFXD3D11TEXTUREARRAY_H_
  2. #define _GFXD3D11TEXTUREARRAY_H_
  3. #include <dxgiformat.h>
  4. #include "gfx/gfxTextureArray.h"
  5. #include "gfx/gfxTextureManager.h"
  6. #include "core/util/safeRelease.h"
  7. #include "gfxD3D11TextureManager.h"
  8. class GFXD3D11TextureArray : public GFXTextureArray
  9. {
  10. public:
  11. GFXD3D11TextureArray()
  12. : mSRView( NULL ),
  13. mRTView( NULL ),
  14. mDSView( NULL ),
  15. mTextureArray( NULL )
  16. {
  17. }
  18. ~GFXD3D11TextureArray() { Release(); };
  19. void init();
  20. void setToTexUnit(U32 tuNum) override;
  21. void createResourceView(DXGI_FORMAT format, U32 numMipLevels, U32 usageFlags);
  22. // GFXResource interface
  23. void zombify() override;
  24. void resurrect() override;
  25. void Release() override;
  26. ID3D11ShaderResourceView* getSRView();
  27. ID3D11RenderTargetView* getRTView();
  28. ID3D11DepthStencilView* getDSView();
  29. ID3D11ShaderResourceView** getSRViewPtr();
  30. ID3D11RenderTargetView** getRTViewPtr();
  31. ID3D11DepthStencilView** getDSViewPtr();
  32. protected:
  33. void _setTexture(const GFXTexHandle& texture, U32 slot) override;
  34. private:
  35. ID3D11ShaderResourceView* mSRView; // for shader resource input
  36. ID3D11RenderTargetView* mRTView; // for render targets
  37. ID3D11DepthStencilView* mDSView; //render target view for depth stencil
  38. ID3D11Texture2D* mTextureArray;
  39. D3D11_TEXTURE2D_DESC mTextureArrayDesc;
  40. };
  41. #endif