/********************************************************************
*
* File: fsCNativeTextSpriteRenderData.h
*
* Purpose: Cocos2d-x implementation of the text render data.
*
*********************************************************************/
#ifndef fsCNativeTextSpriteRenderDatahdr
#define fsCNativeTextSpriteRenderDatahdr
#include "../../../fsINativeRenderData.h"
#include "../../../fsITextRenderData.h"
#if defined fsFRAMEWORK_CX
#include "../../../impl/cocos2d-x/native/fsCNativeTextSprite.h"
#elif defined fsFRAMEWORK_AX
#include "../../../impl/axmol/native/fsCNativeTextSprite.h"
#elif defined fsFRAMEWORK_MG
#include "../../../impl/magnum/native/fsCNativeTextSprite.h"
#elif defined fsFRAMEWORK_RL
#include "../../../impl/raylib/native/fsCNativeTextSprite.h"
#elif defined fsFRAMEWORK_BF
#include "../../../impl/bgfx/native/fsCNativeTextSprite.h"
#else
#error Unhandled platform.
#endif
class fsVec2d;
class fsCNativeTextSpriteRenderData : public fsITextRenderData, public fsINativeRenderData
{
friend class fsCRenderDataFactoryNative;
public:
virtual ~fsCNativeTextSpriteRenderData() = default;<--- Destructor in derived class
protected:
void outlineSetDo(const fsSColour4B& pOutline, fsF32 pSize) const override;
void shadowSetDo(const fsSColour4B& pShadow, fsVec2d pOffset, fsF32 pBlurRadius) const override;
void glowSetDo(const fsSColour4B& pGlow) const override;
static fsIRenderData* create();
fsCNativeTextSpriteRenderData();
fsBool batchableDo() const override { return false; }
void passToEngineRendererDo(fsIRenderer* pRenderer, fsS32 pFirstMaterialIndex, fsS32 pLastMaterialInJob) override;
void dirtyTextProcessDo(const fsAffineMtx2d& pRenderMatrix, const fsRect& pFormattingRect,
const fsStr& pText) override;
void renderDo() override;
fsS32 stringWidthInPixelsGet() const override;
// virtual void dirtyTextProcessDo(const fsAffineMtx2d& pRenderMatrix, const fsRect& pFormattingRect, const fsStr& pText) override;
void matrixApplyDo(const fsAffineMtx2d& pRenderMatrix) override;
void formattingRectSizeSetDo(const fsRect& pFormatting) override;
void alignmentSetDo() override;
void colourSetDo(const fsSColour4B& pColour) override;
fsCNativeTextSprite* nativeImplGet() const override;
private:
};
#endif