optimized_texture.h
上传用户:jnfxsk
上传日期:2022-06-16
资源大小:3675k
文件大小:1k
源码类别:

游戏引擎

开发平台:

Visual C++

  1. #ifndef OPTIMIZED_TEXTURE_H
  2. #define OPTIMIZED_TEXTURE_H
  3. #include "texasm.h"
  4. #include "gfx_object.h"
  5. #include "RectPlacement.h"
  6. bool Write32BitPNGWithPitch(FILE* fp, void* pBits, bool bNeedAlpha, int nWidth, int nHeight, int nPitch);
  7. struct CColor
  8. {
  9. unsigned char r;
  10. unsigned char g;
  11. unsigned char b;
  12. unsigned char a;
  13. };
  14. class COptimizedTexture
  15. {
  16. public:
  17. COptimizedTexture();
  18. ~COptimizedTexture() { Reset(); }
  19. void Reset();
  20. void SetMaxSize(int w, int h) { maxw = w; maxh = h; }
  21. void SetMargin(int margin) { placer.SetMargin(margin); }
  22. bool PlaceObject(CGfxObject *obj);
  23. void AddNoTextureObject(CGfxObject *obj);
  24. int GetNumPlaced() { return obj_list.size(); }
  25. bool Create();
  26. bool CopyData();
  27. bool OptimizeAlpha();
  28. bool Save(char *filename);
  29. bool SaveDescriptions(char *resfile, char *texfile, char *texname);
  30. private:
  31. int maxw;
  32. int maxh;
  33. GfxObjList obj_list;
  34. CRectPlacement placer;
  35. int texw;
  36. int texh;
  37. HTEXTURE tex;
  38. CColor *tex_data;
  39. int pitch;
  40. };
  41. #endif