You.i Engine
YiD3D11TextureObject.h
Go to the documentation of this file.
1 // © You i Labs Inc. 2000-2017. All rights reserved.
2 #ifndef _YI_DIRECT3D11_TEXTURE_OBJECT_H_
3 #define _YI_DIRECT3D11_TEXTURE_OBJECT_H_
4 
6 #include "asset/YiAssetTexture.h"
7 
17 {
19 
20 public:
25 
29  virtual ~CYID3D11TextureObject();
30 
31  //Inherited from IYIGPUObject
32  virtual void Load(const std::shared_ptr<CYIAssetHardware> &pAsset) override;
33  virtual void Unload() override;
34  virtual void Use() const override;
35  virtual void Generate() override;
36  virtual void Free() override;
37  virtual void InvalidateHandle() override;
41  void Configure(int32_t width,
42  int32_t height,
43  int32_t format,
44  int32_t type);
45 
46  ID3D11Texture2D *GetDirect3D11Texture() const { return m_pTexture; }
47  ID3D11ShaderResourceView *GetResourceView() const {return m_pTextureRV;}
48  void SetDX11Texture(ID3D11Texture2D *pTexture, ID3D11ShaderResourceView *pResourceView);
49 
50  void SetIsRenderTarget( bool bRenderTarget );
51  void Bind(uint32_t slot = 0) const;
52 
53 private:
54  void CleanupInternal();
55  D3D11_FILTER_TYPE ConvertFilterType(CYIAssetTexture::YI_MIN_MAG_FILTER filterType) const;
56  D3D11_TEXTURE_ADDRESS_MODE ConvertTextureAddressType(CYIAssetTexture::YI_TEXTURE_WRAP addressType) const;
57 
58  int32_t m_width;
59  int32_t m_height;
60  int32_t m_format;
61  int32_t m_type;
62 
63  bool m_bIsRenderTarget;
64 
65  ID3D11Texture2D *m_pTexture;
66  ID3D11ShaderResourceView * m_pTextureRV;
67  ID3D11SamplerState * m_pSamplerLinear;
68 };
69 
72 #endif // _YI_DIRECT3D11_TEXTURE_OBJECT_H_
void Bind(uint32_t slot=0) const
An abstract class for common Direct3D buffer functionality.
Definition: YiD3D11AbstractBufferObject.h:17
YI_TEXTURE_WRAP
Definition: YiAssetTextureBase.h:40
void SetIsRenderTarget(bool bRenderTarget)
YI_MIN_MAG_FILTER
Definition: YiAssetTextureBase.h:30
virtual void Free() override
ID3D11Texture2D * GetDirect3D11Texture() const
Definition: YiD3D11TextureObject.h:46
virtual void InvalidateHandle() override
void Configure(int32_t width, int32_t height, int32_t format, int32_t type)
IYIGPUObject implementation for OpenGL Framebuffers.
Definition: YiD3D11FramebufferObject.h:18
virtual ~CYID3D11TextureObject()
virtual void Use() const override
virtual void Generate() override
virtual void Unload() override
void SetDX11Texture(ID3D11Texture2D *pTexture, ID3D11ShaderResourceView *pResourceView)
IYIGPUObject implementation for DirectFB textures.
Definition: YiD3D11TextureObject.h:16
virtual void Load(const std::shared_ptr< CYIAssetHardware > &pAsset) override
ID3D11ShaderResourceView * GetResourceView() const
Definition: YiD3D11TextureObject.h:47