/********************************************************************
*
* File: fsILineRenderData.h
*
* Purpose: Store the line data to be sent to the renderer
*
*********************************************************************/
#ifndef fsIRenderTextureRenderDatahdr
#define fsIRenderTextureRenderDatahdr
#include<vector>
#include <fsCore/fsSColour.h>
#include <fsCore/fsVec2d.h>
#include <fsCore/fsPoint.h>
#include <fsCore/src/fsCResourceName.h>
#include "fsIRenderData.h"
class fsVec2d;
class fsAffineMtx2d;
class fsSColour4B;
class fsIImage;
class fsRect;
class fsIRenderTextureRenderData : public fsIRenderData
{
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 partialStart();
void partialEnd();
void targetClear();
void brushSet(fsCResourceName const& pBrush);
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);
void initialiseScreen(fsPoint pDimensions);
void initialiseSolution(fsIImage *pSolution);
fsIRenderTextureRenderData();
virtual ~fsIRenderTextureRenderData();<--- Destructor in derived class
protected:
virtual void initialiseScreenDo(fsPoint pDimensions) {}
virtual void initialiseSolutionDo(fsIImage *pSolution) {}
virtual void resizeDo(fsPoint const& pSize) {}
virtual void targetSetDo() {}
virtual void partialStartDo() {}
virtual void partialEndDo() {}
virtual void targetClearDo() {}
void passToEngineRendererDo(fsIRenderer* pRenderer, fsS32 pFirstMaterialIndex, fsS32 pLastMaterialInJob) override;
void renderDo() override;<--- Function in derived class
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 brushSetDo(fsCResourceName const& pBrush) {}
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) {}
virtual void vertsSetDo(std::vector<fsVec2d> const& pVerts) {}
std::vector<fsVec2d> mVerts;
private:
};
#endif