afTexture.h
上传用户:kaiguan
上传日期:2007-10-28
资源大小:1074k
文件大小:2k
源码类别:

其他游戏

开发平台:

Visual C++

  1. #ifndef AF_TEXTURE
  2. #define AF_TEXTURE
  3. #include "afImage.h"
  4. #include "afString.h"
  5. #include <D3D9.h>
  6. /// afTextur class
  7. class  afTexture
  8. {
  9. public:
  10. afTexture();   
  11. afTexture(const afString& nName, LPDIRECT3DTEXTURE9 nD3DTex, int nWidth, int nHeight, afImage::FORMAT nFormat);
  12. /// Returns a pointer to the underlying Direct3D texture
  13. /**
  14.  *  The special case the texture object is invalid (NULL)
  15.  *  is caught and NULL is returned
  16.  */
  17. LPDIRECT3DTEXTURE9 getD3DTexture()  {  return (this==NULL) ? NULL : d3dTexture;  }
  18. /// Cast operator to cast the texture to a Direct3D texture
  19. /**
  20.  *  The special case the texture object is invalid (NULL)
  21.  *  is caught and NULL is returned
  22.  */
  23. operator LPDIRECT3DTEXTURE9()  {  return (this==NULL) ? NULL : d3dTexture;  }
  24. /// Returns true if the texture in a compressed format
  25. bool isCompressed() const;
  26. /// Returns the width of the texture
  27. int getWidth() const  {  return width;  }
  28. /// Returns the height of the texture
  29. int getHeight() const  {  return height;  }
  30. /// Returns the name of the texture
  31. const afString& getName() const  {  return name;  }
  32. /// Retrieves a pointer to the texture data
  33. /**
  34.  *  In order to get a pointer to the texture's data, the texture must be locked.
  35.  *  Before the texture can be used for further rendering it must be unlocked
  36.  *  by calling releaseData()
  37.  */
  38. bool getData(unsigned char*& nData, int& nPitch, int nLevel=0, bool nReadOnly=true);
  39. /// returns the texture's image format
  40. afImage::FORMAT getFormat() const  {  return format;  }
  41. /// Releases a texture which was by getData()
  42. void releaseData();
  43. LPDIRECT3DTEXTURE9 d3dTexture;
  44. int width, height;
  45. afImage::FORMAT format;
  46. afString name;
  47. int lockLevel;
  48. };
  49. typedef afTexture *afTexturePtr;
  50. #endif