2022-10-18 23:13:51 +00:00
|
|
|
#ifndef _CUVELEMENT
|
|
|
|
#define _CUVELEMENT
|
|
|
|
|
|
|
|
#include "types.h"
|
|
|
|
|
|
|
|
#include "Kyoto/Particles/IElement.hpp"
|
|
|
|
#include "Kyoto/TToken.hpp"
|
|
|
|
|
|
|
|
class CTexture;
|
|
|
|
|
|
|
|
class CUVEConstant : public CUVElement {
|
|
|
|
TLockedToken< CTexture > x4_tex;
|
|
|
|
|
|
|
|
public:
|
|
|
|
CUVEConstant(TToken< CTexture > tex);
|
2023-02-06 17:01:01 +00:00
|
|
|
~CUVEConstant() override;
|
|
|
|
TLockedToken< CTexture > GetValueTexture(int frame) const override;
|
|
|
|
void GetValueUV(int frame, SUVElementSet& valOut) const override;
|
|
|
|
bool HasConstantTexture() const override { return true; }
|
|
|
|
bool HasConstantUV() const override { return true; }
|
2022-10-18 23:13:51 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
class CUVEAnimTexture : public CUVElement {
|
|
|
|
TLockedToken< CTexture > x4_tex;
|
|
|
|
int x10_tileW;
|
|
|
|
int x14_tileH;
|
|
|
|
int x18_strideW;
|
|
|
|
int x1c_strideH;
|
|
|
|
int x20_tiles;
|
|
|
|
bool x24_loop;
|
|
|
|
CIntElement* x28_cycleFrames;
|
|
|
|
rstl::vector< SUVElementSet > x2c_uvElems;
|
|
|
|
|
|
|
|
public:
|
|
|
|
CUVEAnimTexture(TToken< CTexture > tex, CIntElement* tileW, CIntElement* tileH,
|
|
|
|
CIntElement* strideW, CIntElement* strideH, CIntElement* cycleFrames, bool loop);
|
2023-02-06 17:01:01 +00:00
|
|
|
~CUVEAnimTexture() override;
|
|
|
|
TLockedToken< CTexture > GetValueTexture(int frame) const override;
|
|
|
|
void GetValueUV(int frame, SUVElementSet& valOut) const override;
|
|
|
|
bool HasConstantTexture() const override { return true; }
|
|
|
|
bool HasConstantUV() const override { return false; }
|
2022-10-18 23:13:51 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif // _CUVELEMENT
|