#ifndef ITexture2D_h__ #define ITexture2D_h__ #include "IResource.h" #include "render/ITextureDescription.h" #include "LString.h" #include "IDataRectangle.h" #include "render/IRenderTargetView.h" #include "render/IShaderResourceView.h" #include "render/ISurface.h" namespace LifeGraphics { class ITexture2D : public IResource { public: int bpp; virtual ~ITexture2D(){} ITextureDescription Description; virtual bool IsVideoTexture() = 0; virtual int Width() = 0; virtual int Height() = 0; virtual LifeCore::IDataRectangle* Map(int level, int read, int write) = 0; virtual void Unmap(int level){}; virtual void ToFile(const String& path) {}; virtual void Load(LifeCore::IDataStream* src) {}; virtual void CompleteAsyncRequest(IResource* source){}; virtual IRenderTargetView* getRTView() = 0; virtual IRenderTargetView* getRTView(int index) = 0; virtual IShaderResourceView* getSRView() = 0; virtual IShaderResourceView* getSRView(int index) = 0; virtual ISurface* getSurface(int id) = 0; }; } #endif