/********************************************************************
*
* File: fsCNativeSprite.h
*
* Purpose: Sprite that is added to and retained by a scene. All
* positioning / parenting is handled in the scene
*
*********************************************************************/
#ifndef fsCNativeSpritehdr
#define fsCNativeSpritehdr
#include <fsCore/fsBaseTypes.h>
#include <fsCore/fsSColour.h>
#include "fsINative.h"
#include "fsCore/fsAffineMtx2d.h"
class fsAffineMtx2d;
class fsCBrush;
class fsCTexture;
struct fsPoint;
class fsCNativeSprite : public fsINative
{
friend class fsCNativeSpriteRenderData;
public:
fsBool hitTest(const fsPoint& pLocalPos, fsBool pRequireHitMap) const;
fsS32 widthGet() const;
fsS32 heightGet() const;
std::shared_ptr<fsCBrush> brushGet() const;
virtual ~fsCNativeSprite();<--- Destructor in derived class
protected:
void polygonInfoSetDo(fsIRenderData::fsSPolyInfo const& pPolyInfo) override;<--- Function in derived class
void textureWrapSetDo() override;<--- Function in derived class
void renderDo() override;
void colourSetDo(const fsSColour4B& pColour) override;
void uvSetDo(const fsRect& pOffest) override;<--- Function in derived class
void vertsSetDo(std::vector<fsVec2d> const& pVerts) override;
void widthSetDo(fsS32 pWidth) override;
void heightSetDo(fsS32 pHeight) override;
void brushSetDo(std::shared_ptr<fsCBrush> pBrush) override;
void alphaBlendModeSetDo(fsS32 pAlphaBlendMode) override;<--- Function in derived class
fsCNativeSprite();
private:
fsS32 mWidth;
fsS32 mHeight;
fsSColour4B mTint;
std::shared_ptr<fsCBrush> mBrush;
fsCTexture* mTexture;
fsBool mScaled;
};
#endif