2019-08-23 11:56:54 -07:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "Common.h"
|
|
|
|
#include "RenderTarget.h"
|
2025-01-26 07:04:26 -08:00
|
|
|
#include "../util/Rect.h"
|
2019-08-23 11:56:54 -07:00
|
|
|
|
|
|
|
NS_BF_BEGIN;
|
|
|
|
|
|
|
|
class ImageData;
|
|
|
|
|
|
|
|
class Texture : public RenderTarget
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
int mRefCount;
|
|
|
|
|
|
|
|
public:
|
|
|
|
Texture();
|
|
|
|
virtual ~Texture() {}
|
|
|
|
|
|
|
|
virtual void AddRef();
|
|
|
|
virtual void Release();
|
|
|
|
virtual void PhysSetAsTarget() = 0;
|
|
|
|
|
|
|
|
virtual void Blt(ImageData* imageData, int x, int y) { };
|
|
|
|
virtual void SetBits(int destX, int destY, int destWidth, int destHeight, int srcPitch, uint32* bits) {}
|
2019-09-18 09:58:02 -07:00
|
|
|
virtual void GetBits(int srcX, int srcY, int srcWidth, int srcHeight, int destPitch, uint32* bits) {}
|
2019-08-23 11:56:54 -07:00
|
|
|
};
|
|
|
|
|
|
|
|
class TextureSegment
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
Texture* mTexture;
|
|
|
|
float mU1;
|
|
|
|
float mV1;
|
|
|
|
float mU2;
|
|
|
|
float mV2;
|
|
|
|
float mScaleX;
|
|
|
|
float mScaleY;
|
|
|
|
|
|
|
|
public:
|
|
|
|
void InitFromTexture(Texture* texture);
|
2025-01-26 07:04:26 -08:00
|
|
|
|
|
|
|
virtual void SetBits(int destX, int destY, int destWidth, int destHeight, int srcPitch, uint32* bits);
|
|
|
|
virtual void GetBits(int srcX, int srcY, int srcWidth, int srcHeight, int destPitch, uint32* bits);
|
|
|
|
|
|
|
|
void GetImageData(ImageData& imageData);
|
|
|
|
void GetImageData(ImageData& imageData, int destX, int destY);
|
|
|
|
void SetImageData(ImageData& imageData);
|
|
|
|
|
2025-03-28 08:08:33 -04:00
|
|
|
RectF GetRect();
|
2019-08-23 11:56:54 -07:00
|
|
|
};
|
|
|
|
|
|
|
|
NS_BF_END;
|