1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-08 11:38:21 +02:00
Beef/BeefySysLib/gfx/Texture.h
2025-03-28 08:08:33 -04:00

53 lines
1.2 KiB
C++

#pragma once
#include "Common.h"
#include "RenderTarget.h"
#include "../util/Rect.h"
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) {}
virtual void GetBits(int srcX, int srcY, int srcWidth, int srcHeight, int destPitch, uint32* bits) {}
};
class TextureSegment
{
public:
Texture* mTexture;
float mU1;
float mV1;
float mU2;
float mV2;
float mScaleX;
float mScaleY;
public:
void InitFromTexture(Texture* texture);
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);
RectF GetRect();
};
NS_BF_END;