9#ifndef fsCNativeRenderTextureV3hdr
10#define fsCNativeRenderTextureV3hdr
74 struct fsSMutableTexture
77 fsSMutableTexture(
fsIImage* pCanvas);
81 mPixels[y * stride() + x * bytesPerPixel() + 0] = mPaintColour.
mR;
82 mPixels[y * stride() + x * bytesPerPixel() + 1] = mPaintColour.
mG;
83 mPixels[y * stride() + x * bytesPerPixel() + 2] = mPaintColour.
mB;
84 mPixels[y * stride() + x * bytesPerPixel() + 3] = mPaintColour.
mA;
90 mPixels[y * stride() + x * bytesPerPixel() + 0],
91 mPixels[y * stride() + x * bytesPerPixel() + 1],
92 mPixels[y * stride() + x * bytesPerPixel() + 2],
93 mPixels[y * stride() + x * bytesPerPixel() + 3]);
96 fsU32 bytesPerPixel()
const {
return mBpp / 8; }
97 fsS32 stride()
const {
return mWidth * bytesPerPixel(); }
98 fsS32 len()
const {
return stride() * mHeight; }
103 fsSColour4B mPaintColour;
106 ax::Node* implGet()
const override;
108 void updateDynamicTexturePixels()
const;
109 fsCAxmolRenderTexture* screenshotTargetGet()
const;
110 void screenTextureDestroy();
111 void dynamicTextureDestroy();
113 enum class eScreenEffect
120 fsCResourceName mSaveFilename;
121 fsStr mFragmentShader;
122 eScreenEffect mScreenEffect;
123 fsPoint mScreenEffectFocusPos;
124 fsF32 mScreenEffectRadius;
125 fsBool mScreenEffectFocusOverrideActive;
127 ax::Mat4 mCanvasMatrix;
128 ax::Mat4 mBrushMatrix;
130 fsCAxmolRenderTexture* mDynamicScreenTexture;
131 ax::Sprite* mDynamicScreenSprite;
132 fsCAxmolRenderTexture* mDynamicTexture;
133 ax::Sprite* mDynamicTextureSprite;
137 std::unique_ptr<fsSMutableTexture> mMutableTexture;
Definition fsAffineMtx2d.h:27
Definition fsCNativeRenderTexture.h:31
void initialiseScreenDo(fsPoint pDimensions)
void resizeDo(fsPoint const &pSize) override
void updateShaderParams()
void paintWithSpriteBrushDo(fsPoint const &pPos) override
void matrixApplyDo(fsAffineMtx2d const &pTransform) override
void saveDo(fsCResourceName const &pFilename) override
fsPoint screenEffectFocusPosGet() const
void partialEndDo() override
void partialStartDo() override
void shaderEffectRefresh(const fsStr &pFragmentShader)
void paintDo(std::vector< fsPoint > const &pPos, fsSColour4B const &pColour) override
friend class fsITexture
Definition fsCNativeRenderTexture.h:32
void targetSetDo() override
void shadersCreateDo(const fsStr &pVertex, const fsStr &pFragment) override
void initialiseSolutionDo(fsIImage *pSolution)
void screenShotEndDo(const fsStr &pSceneName) override
void targetClearDo() override
void recolourDo(fsSColour4B const &pOld, fsSColour4B const &pNew) override
virtual ~fsCNativeRenderTexture()
void screenEffectParamsSetDo(fsPoint const &pFocusPos, fsF32 pRadius) override
void screenEffectParamsClearDo() override
void captureRegionSaveDo(const fsRect &pCaptureRect, fsPoint const &pOutputDimensions, fsCResourceName const &pFilename) override
void screenShotStartDo() override
void brushSetDo(fsCResourceName const &pBrushFilename) override
Definition fsCResourceName.h:32
Definition fsIRenderableTexture.h:38
void paint(std::vector< fsPoint > const &pPos, fsSColour4B const &pColour)
Definition fsIRenderableTexture.cpp:97
unsigned int fsU32
Definition fsBaseTypes.h:21
bool fsBool
Definition fsBaseTypes.h:26
unsigned char fsU8
Definition fsBaseTypes.h:15
int fsS32
Definition fsBaseTypes.h:20
float fsF32
Definition fsBaseTypes.h:28
Definition fsC3dLight.h:19
Definition fsSColour.h:54
fsU8 mG
Definition fsSColour.h:82
fsU8 mR
Definition fsSColour.h:81
fsU8 mB
Definition fsSColour.h:83
fsU8 mA
Definition fsSColour.h:84