/********************************************************************
*
* File: fsCNativeSpriteRenderData.h
*
* Purpose: cocos2d-x implementation of sprite render data.
*
*********************************************************************/
#ifndef fsCNativeSpriteRenderDatahdr
#define fsCNativeSpriteRenderDatahdr
#include "../../../fsINativeRenderData.h"
#include "../../../fsISpriteRenderData.h"
#if defined fsFRAMEWORK_CX
#include "../../../impl/cocos2d-x/native/fsCNativeSprite.h"
#elif defined fsFRAMEWORK_AX
#include "../../../impl/axmol/native/fsCNativeSprite.h"
#elif defined fsFRAMEWORK_MG
#include "../../../impl/magnum/native/fsCNativeSprite.h"
#elif defined fsFRAMEWORK_RL
#include "../../../impl/raylib/native/fsCNativeSprite.h"
#elif defined fsFRAMEWORK_BF
#include "../../../impl/bgfx/native/fsCNativeSprite.h"
#else
#error Unhandled platform.
#endif
struct fsSColour4B;
class fsRect;
class fsCNativeSpriteRenderData : public fsISpriteRenderData, public fsINativeRenderData
{
friend class fsCRenderDataFactoryNative;
public:
virtual ~fsCNativeSpriteRenderData() = default;<--- Destructor in derived class
protected:
static fsIRenderData* create();
fsCNativeSpriteRenderData();
void polyInfoSetDo(fsSPolyInfo const& pPolyInfo) override;
void textureWrapSetDo() override;
void uvScrollDo(const fsRect& pOffSet) override;
void passToEngineRendererDo(fsIRenderer* pRenderer, fsS32 pFirstMaterialIndex, fsS32 pLastMaterialInJob) override;
void renderDo() override;
fsBool batchableDo() const override { return false; }
void colourSetDo(const fsSColour4B& pColour) override;
void brushSetDo(std::shared_ptr<fsCBrush> pBrush) override;
void vertsSetDo(std::vector<fsVec2d> const& pVerts) override;
void widthSetDo(fsS32 pWidth) override;
void heightSetDo(fsS32 pHeight) override;
void matrixApplyDo(const fsAffineMtx2d& pRenderMatrix) override;
void alphaBlendModeSetDo(fsS32 pAlphaBlendMode) override;
fsCNativeSprite* nativeImplGet() const override;
private:
};
#endif