Fission FSN
Loading...
Searching...
No Matches
fsCTexture.h
Go to the documentation of this file.
1/********************************************************************
2*
3* File: fsCTexture.h
4*
5* Purpose: Cocos2d-x implementation of a texture.
6*
7*********************************************************************/
8
9#ifndef fsCTexturehdr
10#define fsCTexturehdr
11
12#include "../../fsITexture.h"
13
14namespace ax
15{
16 class Texture2D;
17 class Image;
18}
19
20
21class fsCTexture : public fsITexture
22{
23 friend class fsITexture;
24
25public:
26
27 ax::Texture2D* textureGet() const { return mTexture.get(); }
28
29 fsS32 imageWidthGet() const override;
30 fsS32 imageHeightGet() const override;
31 fsS32 textureWidthGet() const override;
32 fsS32 textureHeightGet() const override;
33
34 fsBool hasAlphaChannelGet() const override;
35 fsU8 alphaGet(fsS32 pU, fsS32 pV, fsS32 pCol, fsS32 pRow) const override;
36
37 virtual ~fsCTexture();
38
39protected:
40
41 void filterModeSetDo(fsFilterMode pNewMode) override;
42 void wrapModeSetDo(fsWrapMode pNewMode) override;
43
44 std::shared_ptr<fsITexture> doCloneSubSection(fsCBrush const* pBlend, fsPoint const& pOffset) const override;
45 void doBlend(fsCBrush const* pBlend, fsPoint const& pOffset) override;
46
47 fsSColour4B pixelGetDo(fsS32 pU, fsS32 pV, fsS32 pCol, fsS32 pRow) override;
48 void doPixelSet(fsS32 pU, fsS32 pV, fsS32 pCol, fsS32 pRow, const fsSColour4B& pPixel) override;
49 void doTextureCopyThroughStencil(std::shared_ptr<fsITexture> pSrc, std::shared_ptr<fsITexture> pStencil, fsS32 pU,
50 fsS32 pV, fsS32 pX, fsS32 pY, fsS32 pAlphaHitMaskThreshold) override;
51 void doTextureCopyInto(std::shared_ptr<fsITexture> pSrc, fsS32 pU, fsS32 pV, fsS32 pX, fsS32 pY) override;
52
53 fsU8 alphaValueGet(fsS32 pImgX, fsS32 pImgY) override;
54
55 void createFromAlpha8Data(std::vector<fsU8>& pAlphaData, fsS32 pImgW, fsS32 pImgH,
56 fsPoint const& pPOTDimenions) override;
57
58 void createFromImage(fsIImage const* pImage) override;
59
60 fsCTexture();
61
62private:
63
64 fsU32 v3FilterModes(fsFilterMode pNewMode);
65 fsU32 v3WrapModes(fsWrapMode pNewMode);
66
67 void alphaChannelsCombine(fsCBrush const* pBlend, fsPoint const& pOffset);
68
69 void premultipliedAlphaReverse();
70
71 fsS32 strideGet() const;
72
73 std::shared_ptr<ax::Texture2D> mTexture;
74};
75
76#endif
Definition fsCBrush.h:26
fsU8 alphaValueGet(fsS32 pImgX, fsS32 pImgY) override
Definition fsCTexture.cpp:179
fsSColour4B pixelGetDo(fsS32 pU, fsS32 pV, fsS32 pCol, fsS32 pRow) override
Definition fsCTexture.cpp:95
fsS32 textureHeightGet() const override
Definition fsCTexture.cpp:141
fsCTexture()
Definition fsCTexture.cpp:238
void doTextureCopyInto(std::shared_ptr< fsITexture > pSrc, fsS32 pU, fsS32 pV, fsS32 pX, fsS32 pY) override
Definition fsCTexture.cpp:116
fsS32 textureWidthGet() const override
Definition fsCTexture.cpp:132
void createFromAlpha8Data(std::vector< fsU8 > &pAlphaData, fsS32 pImgW, fsS32 pImgH, fsPoint const &pPOTDimenions) override
Definition fsCTexture.cpp:204
fsBool hasAlphaChannelGet() const override
Definition fsCTexture.cpp:76
fsS32 imageHeightGet() const override
Definition fsCTexture.cpp:127
fsU8 alphaGet(fsS32 pU, fsS32 pV, fsS32 pCol, fsS32 pRow) const override
Definition fsCTexture.cpp:90
std::shared_ptr< fsITexture > doCloneSubSection(fsCBrush const *pBlend, fsPoint const &pOffset) const override
Definition fsCTexture.cpp:195
void createFromImage(fsIImage const *pImage) override
Definition fsCTexture.cpp:155
ax::Texture2D * textureGet() const
Definition fsCTexture.h:27
friend class fsITexture
Definition fsCTexture.h:23
fsS32 imageWidthGet() const override
Definition fsCTexture.cpp:122
virtual ~fsCTexture()
Definition fsCTexture.cpp:243
void doTextureCopyThroughStencil(std::shared_ptr< fsITexture > pSrc, std::shared_ptr< fsITexture > pStencil, fsS32 pU, fsS32 pV, fsS32 pX, fsS32 pY, fsS32 pAlphaHitMaskThreshold) override
Definition fsCTexture.cpp:105
void doPixelSet(fsS32 pU, fsS32 pV, fsS32 pCol, fsS32 pRow, const fsSColour4B &pPixel) override
Definition fsCTexture.cpp:100
void doBlend(fsCBrush const *pBlend, fsPoint const &pOffset) override
Definition fsCTexture.cpp:184
void wrapModeSetDo(fsWrapMode pNewMode) override
Definition fsCTexture.cpp:57
void filterModeSetDo(fsFilterMode pNewMode) override
Definition fsCTexture.cpp:43
Definition fsIImage.h:21
fsFilterMode
Definition fsITexture.h:37
fsWrapMode
Definition fsITexture.h:48
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
Definition fsC3dLight.h:19
Definition fsPoint.h:17
Definition fsSColour.h:54