1 /*! 2 @file 3 @author Ustinov Igor aka Igor', DadyaIgor 4 @date 09/2011 5 */ 6 7 #ifndef MYGUI_DIRECTX11_TEXTURE_H_ 8 #define MYGUI_DIRECTX11_TEXTURE_H_ 9 10 #include "MyGUI_Prerequest.h" 11 #include "MyGUI_ITexture.h" 12 #include "MyGUI_RenderFormat.h" 13 #include "MyGUI_Types.h" 14 15 struct IDirect3DTexture9; 16 17 namespace MyGUI 18 { 19 class DirectX11RenderManager; 20 class DirectX11RTTexture; 21 22 class DirectX11Texture : public ITexture 23 { 24 public: 25 DirectX11Texture(const std::string& _name, DirectX11RenderManager* _manager); 26 virtual ~DirectX11Texture(); 27 28 virtual const std::string& getName() const; 29 30 virtual void createManual(int _width, int _height, TextureUsage _usage, PixelFormat _format); 31 virtual void loadFromFile(const std::string& _filename); saveToFile(const std::string & _filename)32 virtual void saveToFile(const std::string& _filename) { } 33 34 virtual void destroy(); 35 36 virtual void* lock(TextureUsage _access); 37 virtual void unlock(); 38 virtual bool isLocked(); 39 40 virtual int getWidth(); 41 virtual int getHeight(); 42 43 virtual PixelFormat getFormat(); 44 virtual TextureUsage getUsage(); 45 virtual size_t getNumElemBytes(); 46 47 virtual IRenderTarget* getRenderTarget(); 48 49 private: 50 friend class DirectX11RTTexture; 51 ID3D11Texture2D* mTexture; 52 void* mWriteData; 53 54 public: 55 ID3D11ShaderResourceView* mResourceView; 56 57 private: 58 int mWidth; 59 int mHeight; 60 TextureUsage mTextureUsage; 61 size_t mNumElemBytes; 62 std::string mName; 63 bool mLock; 64 DirectX11RTTexture* mRenderTarget; 65 DirectX11RenderManager* mManager; 66 }; 67 68 } // namespace MyGUI 69 70 #endif // MYGUI_DIRECTX11_TEXTURE_H_ 71