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
15#include <Corrade/Containers/Optional.h>
16#include <Magnum/Trade/ImageData.h>
17
18#include "../../fsIImage.h"
19
20struct fsSColour4B;
21
22
23class fsCImage : public fsIImage
24{
25 friend class fsIImage;
26 friend class fsCTexture;
27
28public:
29
30 ~fsCImage() override;
31
32protected:
33
34 void doAlphaChannelsCombine(fsIImage const* pBlend, fsPoint const& pOffset) override;
35
36 std::unique_ptr<fsIImage> doCloneSubSection(fsIImage const* pBlend, fsPoint const& pOffset) const override;
37
38 std::unique_ptr<fsIImage> doCreateFromAlpha8Data(std::vector<fsU8>& pAlphaData, fsS32 pImgW, fsS32 pImgH, fsPoint const& pPOTDimenions) override;
39
41
42 fsSColour4B doPixelGet(fsPoint const& pOffset) const override;
43
44 fsU8 doAlphaGet(fsPoint const& pPos) const override;
45
46 void doTextureCopyInto(fsIImage const* pSrc, fsS32 pU, fsS32 pV, fsS32 pX, fsS32 pY) override;
47
48 void doTextureCopyThroughStencil(fsIImage const* pSrc, fsIImage const* const pStencil,
49 fsS32 pU, fsS32 pV, fsS32 pX, fsS32 pY) override;
50
51 void doPixelSet(fsS32 pU, fsS32 pV, fsS32 pCol, fsS32 pRow, const fsSColour4B& pPixel) override;
52
53 fsPoint doDimensionsGet() const override;
54
55 void doCreate(const fsPoint& pDimensions) override;
56 void doCreate(const fsCResourceName& pImageFileName) override;
57
59
60private:
61
62 fsS32 strideGet() const;
63
64 // std::shared_ptr<Magnum::GL::BufferImage2D> mImage;
65 Magnum::Containers::Optional<Magnum::Trade::ImageData2D> mImage;
66};
67
68#endif
Definition fsCImage.h:26
friend class fsCTexture
Definition fsCImage.h:28
~fsCImage() override
void doCreate(const fsCResourceName &pImageFileName) override
void doPixelSet(fsS32 pU, fsS32 pV, fsS32 pCol, fsS32 pRow, const fsSColour4B &pPixel) override
std::unique_ptr< fsIImage > doCreateFromAlpha8Data(std::vector< fsU8 > &pAlphaData, fsS32 pImgW, fsS32 pImgH, fsPoint const &pPOTDimenions) override
void doTextureCopyThroughStencil(fsIImage const *pSrc, fsIImage const *const pStencil, fsS32 pU, fsS32 pV, fsS32 pX, fsS32 pY) override
void doTextureCopyInto(fsIImage const *pSrc, fsS32 pU, fsS32 pV, fsS32 pX, fsS32 pY) override
friend class fsIImage
Definition fsCImage.h:27
fsSColour4B doPixelGet(fsPoint const &pOffset) const override
fsU8 doAlphaGet(fsPoint const &pPos) const override
void doAlphaChannelsCombine(fsIImage const *pBlend, fsPoint const &pOffset) override
void doPremultipliedAlphaReverse() override
std::unique_ptr< fsIImage > doCloneSubSection(fsIImage const *pBlend, fsPoint const &pOffset) const override
fsPoint doDimensionsGet() const override
void doCreate(const fsPoint &pDimensions) override
Definition fsCResourceName.h:32
Definition fsIImage.h:21
unsigned char fsU8
Definition fsBaseTypes.h:15
int fsS32
Definition fsBaseTypes.h:20
Definition fsPoint.h:17
Definition fsSColour.h:54