Texture.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #pragma once
  2. #include "Common.h"
  3. #include "RenderTarget.h"
  4. #include "../util/Rect.h"
  5. NS_BF_BEGIN;
  6. class ImageData;
  7. class Texture : public RenderTarget
  8. {
  9. public:
  10. int mRefCount;
  11. public:
  12. Texture();
  13. virtual ~Texture() {}
  14. virtual void AddRef();
  15. virtual void Release();
  16. virtual void PhysSetAsTarget() = 0;
  17. virtual void Blt(ImageData* imageData, int x, int y) { };
  18. virtual void SetBits(int destX, int destY, int destWidth, int destHeight, int srcPitch, uint32* bits) {}
  19. virtual void GetBits(int srcX, int srcY, int srcWidth, int srcHeight, int destPitch, uint32* bits) {}
  20. };
  21. class TextureSegment
  22. {
  23. public:
  24. Texture* mTexture;
  25. float mU1;
  26. float mV1;
  27. float mU2;
  28. float mV2;
  29. float mScaleX;
  30. float mScaleY;
  31. public:
  32. void InitFromTexture(Texture* texture);
  33. virtual void SetBits(int destX, int destY, int destWidth, int destHeight, int srcPitch, uint32* bits);
  34. virtual void GetBits(int srcX, int srcY, int srcWidth, int srcHeight, int destPitch, uint32* bits);
  35. void GetImageData(ImageData& imageData);
  36. void GetImageData(ImageData& imageData, int destX, int destY);
  37. void SetImageData(ImageData& imageData);
  38. RectF GetRect();
  39. };
  40. NS_BF_END;