ImageData.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #pragma once
  2. #include "../Common.h"
  3. NS_BF_BEGIN;
  4. enum
  5. {
  6. HWBITS_UNKNOWN,
  7. HWBITS_PVRTC_2BPPV1,
  8. HWBITS_PVRTC_4BPPV1,
  9. HWBITS_PVRTC_2X4BPPV1
  10. };
  11. class ImageData
  12. {
  13. public:
  14. int mRefCount;
  15. int mX;
  16. int mY;
  17. int mWidth;
  18. int mHeight;
  19. int mStride;
  20. void* mHWBits;
  21. int mHWBitsLength;
  22. int mHWBitsType;
  23. uint32* mBits;
  24. uint8* mSrcData;
  25. int mSrcDataLen;
  26. bool mKeepSrcDataValid;
  27. bool mOwnsSrcData;
  28. bool mWantsAlphaPremultiplied;
  29. bool mAlphaPremultiplied;
  30. bool mIsAdditive;
  31. public:
  32. ImageData();
  33. virtual ~ImageData();
  34. void AddRef();
  35. void Deref();
  36. void SwapRAndB();
  37. void CreateNew(int x, int y, int width, int height, bool clear = true);
  38. void CreateNew(int width, int height, bool clear = true);
  39. void CopyFrom(ImageData* img, int x, int y);
  40. void Fill(uint32 color);
  41. virtual ImageData* Duplicate();
  42. void SetSrcData(uint8* data, int dataLen);
  43. virtual bool LoadFromMemory(void* ptr, int size);
  44. virtual bool LoadFromFile(const StringImpl& path);
  45. virtual bool ReadData() { return false; }
  46. virtual void PremultiplyAlpha();
  47. virtual void UnPremultiplyAlpha();
  48. };
  49. NS_BF_END;