Fission FSN
Loading...
Searching...
No Matches
fsCImage.h
Go to the documentation of this file.
1/********************************************************************
2*
3* File: fsCImage.h
4*
5* Purpose: Engine specific image class - helper to load up
6* texture data
7*
8*********************************************************************/
9
10#ifndef fsCImagehdr
11#define fsCImagehdr
12
13#include <map>
14#include <vector>
15
16#include "../../fsIImage.h"
17
18namespace ax {
19 class Image;
20}
21
22struct fsSColour4B;
23
24
25class fsCImage : public fsIImage
26{
27 friend class fsIImage;
28 friend class fsCTexture;
29
30public:
31
32 ~fsCImage() override;
33
34protected:
35
36 void doAlphaChannelsCombine(fsIImage const* pBlend, fsPoint const& pOffset) override;
37
38 std::unique_ptr<fsIImage> doCloneSubSection(fsIImage const* pBlend, fsPoint const& pOffset) const override;
39
40 std::unique_ptr<fsIImage> doCreateFromAlpha8Data(std::vector<fsU8>& pAlphaData, fsS32 pImgW, fsS32 pImgH, fsPoint const& pPOTDimenions) override;
41
42 void doPremultipliedAlphaReverse() override;
43
44 fsSColour4B doPixelGet(fsPoint const& pOffset) const override;
45
46 fsU8 doAlphaGet(fsPoint const& pPos) const override;
47
48 void doTextureCopyInto(fsIImage const* pSrc, fsS32 pU, fsS32 pV, fsS32 pX, fsS32 pY) override;
49
50 void doTextureCopyThroughStencil(fsIImage const* pSrc, fsIImage const* const pStencil,
51 fsS32 pU, fsS32 pV, fsS32 pX, fsS32 pY) override;
52
53 void doPixelSet(fsS32 pU, fsS32 pV, fsS32 pCol, fsS32 pRow, const fsSColour4B& pPixel) override;
54
55 fsPoint doDimensionsGet() const override;
56
57 void doCreate(const fsPoint& pDimensions) override;
58 void doCreate(const fsCResourceName& pImageFileName) override;
59
60 fsCImage();
61
62private:
63
64 fsS32 strideGet() const;
65
66 static std::map<fsS32, fsS32> mPixelFormats;
67
68 std::unique_ptr<ax::Image> mImage;
69};
70
71#endif
friend class fsCTexture
Definition fsCImage.h:28
~fsCImage() override
Definition fsCImage.cpp:356
void doPixelSet(fsS32 pU, fsS32 pV, fsS32 pCol, fsS32 pRow, const fsSColour4B &pPixel) override
Definition fsCImage.cpp:285
std::unique_ptr< fsIImage > doCreateFromAlpha8Data(std::vector< fsU8 > &pAlphaData, fsS32 pImgW, fsS32 pImgH, fsPoint const &pPOTDimenions) override
Definition fsCImage.cpp:71
void doTextureCopyThroughStencil(fsIImage const *pSrc, fsIImage const *const pStencil, fsS32 pU, fsS32 pV, fsS32 pX, fsS32 pY) override
Definition fsCImage.cpp:196
void doTextureCopyInto(fsIImage const *pSrc, fsS32 pU, fsS32 pV, fsS32 pX, fsS32 pY) override
Definition fsCImage.cpp:254
friend class fsIImage
Definition fsCImage.h:27
fsSColour4B doPixelGet(fsPoint const &pOffset) const override
Definition fsCImage.cpp:116
fsCImage()
Definition fsCImage.cpp:352
fsU8 doAlphaGet(fsPoint const &pPos) const override
Definition fsCImage.cpp:156
void doAlphaChannelsCombine(fsIImage const *pBlend, fsPoint const &pOffset) override
Definition fsCImage.cpp:17
void doPremultipliedAlphaReverse() override
Definition fsCImage.cpp:98
std::unique_ptr< fsIImage > doCloneSubSection(fsIImage const *pBlend, fsPoint const &pOffset) const override
Definition fsCImage.cpp:45
fsPoint doDimensionsGet() const override
Definition fsCImage.cpp:305
void doCreate(const fsPoint &pDimensions) override
Definition fsCImage.cpp:310
Definition fsCResourceName.h:32
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