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