/* D3DTexture.h Written by Matthew Fisher DirectX implementation of BaseTexture. See BaseTexture.h for a definiton of the base functions. */ #ifdef USE_D3D9 class D3D9Texture : public GraphicsAsset { public: D3D9Texture(); ~D3D9Texture(); // // Memory // void FreeMemory(); void ReleaseMemory(); void Reset(GraphicsDevice &graphics); void Init(GraphicsDevice &graphics); void Allocate(D3DFORMAT Format, UINT Width, UINT Height, bool RenderTarget, UINT MipmapLevels); // // Load texture data from memory // void LoadFromFile(const String &filename, D3DFORMAT format); void Load(const Bitmap &Bmp); void LoadABGR(const Bitmap &Bmp); void Load(const Grid &Data); void Load(const Grid &Data); void Load(const Grid &Data); void Load(const Grid &Data); void Load(D3D9Texture &Tex); void UpdateMipMapLevels(); void Clear(); // // Dump texture data to memory // void ReadData(Bitmap &Bmp); void ReadData(Grid &Data); void ReadData(Grid &Data); void ReadData(Grid &Data); void ReadData(Grid &Data); void Flush(); void Set(int Index); void SetAsRenderTarget(int Index); void SetNull(int Index); // // Accessors // __forceinline LPDIRECT3DTEXTURE9 GetTexture() { return _Texture; } __forceinline LPDIRECT3DSURFACE9 SurfaceTopLevel() { return _SurfaceTopLevel; } __forceinline UINT Width() { return _Width; } __forceinline UINT Height() { return _Height; } private: // // These are not permitted // D3D9Texture(const D3D9Texture &Tex); D3D9Texture& operator = (const D3D9Texture &Tex); bool _RenderTarget; UINT _Width, _Height; D3DFORMAT _Format; LPDIRECT3DTEXTURE9 _Texture; LPDIRECT3DSURFACE9 _SurfacePlain; LPDIRECT3DSURFACE9 _SurfaceTopLevel; LPDIRECT3DDEVICE9 _Device; }; #endif