/********************************************************************
*
* File: fsIRenderableTexture.h
*
* Purpose: Interface for texture that can be rendered to
*
*********************************************************************/
#ifndef fsIRenderableTexturehdr
#define fsIRenderableTexturehdr
#include <vector>
#include <fsCore/fsSColour.h>
#include <fsCore/src/fsCResourceName.h>
#if defined fsFRAMEWORK_CX
#include "impl/cocos2d-x/native/fsINative.h"
#elif defined fsFRAMEWORK_AX
#include "impl/axmol/native/fsINative.h"
#elif defined fsFRAMEWORK_MG
#include "impl/magnum/native/fsINative.h"
#elif defined fsFRAMEWORK_RL
#include "impl/raylib/native/fsINative.h"
#elif defined fsFRAMEWORK_BF
#include "impl/bgfx/native/fsINative.h"
#else
#error Unhandled platform.
#endif
struct fsPoint;
class fsRect;
class fsCBrush;
class fsAffineMtx2d;
class fsIRenderableTexture : public fsINative
{
public:
void resize(fsPoint const& pSize);
void screenShotStart();
void screenShotEnd(const fsStr& pSceneName);
void shadersCreate(const fsStr& pVertex, const fsStr& pFragment);
void screenEffectParamsSet(fsPoint const& pFocusPos, fsF32 pRadius);
void screenEffectParamsClear();
void targetSet();
void partialEnd();
void partialStart();
void targetClear();
void brushSet(fsCResourceName const& pBrushFilename);
void save(fsCResourceName const& pFilename);
void captureRegionSave(const fsRect& pCaptureRect, fsPoint const& pOutputDimensions, fsCResourceName const& pFilename);
void recolour(fsSColour4B const& pOld, fsSColour4B const& pNew);
void paintWithSpriteBrush(fsPoint const& pPos);
void paint(std::vector<fsPoint> const& pPos, fsSColour4B const& pColour);
virtual ~fsIRenderableTexture();<--- Destructor in derived class<--- Destructor in derived class<--- Destructor in derived class<--- Destructor in derived class<--- Destructor in derived class
protected:
virtual void resizeDo(fsPoint const& pSize) {}
virtual void screenShotStartDo() {}
virtual void screenShotEndDo(const fsStr& pSceneName) {}
virtual void shadersCreateDo(const fsStr& pVertex, const fsStr& pFragment) {}
virtual void screenEffectParamsSetDo(fsPoint const& pFocusPos, fsF32 pRadius) {}
virtual void screenEffectParamsClearDo() {}
virtual void targetSetDo() {}
virtual void partialEndDo() {}
virtual void partialStartDo() {}
virtual void targetClearDo() {}
virtual void brushSetDo(fsCResourceName const& pBrushFilename) {}
virtual void saveDo(fsCResourceName const& pFilename) {}
virtual void captureRegionSaveDo(const fsRect& pCaptureRect, fsPoint const& pOutputDimensions, fsCResourceName const& pFilename) {}
virtual void recolourDo(fsSColour4B const& pOld, fsSColour4B const& pNew) {}
virtual void paintWithSpriteBrushDo(fsPoint const& pPos) {}
virtual void paintDo(std::vector<fsPoint> const& pPos, fsSColour4B const& pColour) {}
fsIRenderableTexture();
private:
};
#endif