Fission FSN
Loading...
Searching...
No Matches
fsIImage.h
Go to the documentation of this file.
1/********************************************************************
2*
3* File: fsIImage.h
4*
5* Purpose: Interface to helper image class to load textures
6*
7*********************************************************************/
8
9#ifndef fsIImagehdr
10#define fsIImagehdr
11#include <memory>
12#include <vector>
13
14#include "fsCore/fsPoint.h"
16
17class fsCResourceName;
18struct fsSColour4B;
19
21{
22public:
23
24 void alphaChannelsCombine(fsIImage const* pBlend, fsPoint const& pOffset);
25
26 std::unique_ptr<fsIImage> cloneSubSection(fsIImage const* pBlend, fsPoint const& pOffset) const;
27
28 std::unique_ptr<fsIImage> createFromAlpha8Data(std::vector<fsU8>& pAlphaData, fsS32 pImgW, fsS32 pImgH, fsPoint const& pPOTDimenions);
29
31
32 fsSColour4B pixelGet(fsPoint const& pOffset) const;
33
34 void textureCopyInto(fsIImage const* pSrc, fsS32 pU, fsS32 pV, fsS32 pX, fsS32 pY);
35
36 void textureCopyThroughStencil(fsIImage const* pSrc, fsIImage const* pStencil,
37 fsS32 pU, fsS32 pV, fsS32 pX, fsS32 pY);
38
39 fsU8 alphaGet(fsPoint const& pOffest) const;
40 void pixelSet(fsS32 pU, fsS32 pV, fsS32 pCol, fsS32 pRow, const fsSColour4B& pPixel);
41 fsPoint dimensionsGet() const;
42
43 static std::unique_ptr<fsIImage> create(const fsPoint& pDimentsions);
44 static std::unique_ptr<fsIImage> create(const fsCResourceName& pImageFileName);
45
46 virtual ~fsIImage();
47
48protected:
49
50 virtual void doAlphaChannelsCombine(fsIImage const* pBlend, fsPoint const& pOffset) = 0;
51
52 virtual std::unique_ptr<fsIImage> doCloneSubSection(fsIImage const* pBlend, fsPoint const& pOffset) const = 0;
53
54 virtual std::unique_ptr<fsIImage> doCreateFromAlpha8Data(std::vector<fsU8>& pAlphaData, fsS32 pImgW, fsS32 pImgH, fsPoint const& pPOTDimenions) = 0;
55
56 virtual void doPremultipliedAlphaReverse() = 0;
57
58 virtual fsSColour4B doPixelGet(fsPoint const& pOffset) const = 0;
59
60 virtual void doTextureCopyInto(fsIImage const* const pSrc, fsS32 pU, fsS32 pV, fsS32 pX, fsS32 pY) = 0;
61
62 virtual void doTextureCopyThroughStencil(fsIImage const* const pSrc, fsIImage const* const pStencil,
63 fsS32 pU, fsS32 pV, fsS32 pX, fsS32 pY) = 0;
64
65 virtual fsU8 doAlphaGet(fsPoint const& pOffest) const = 0;
66 virtual void doPixelSet(fsS32 pU, fsS32 pV, fsS32 pCol, fsS32 pRow, const fsSColour4B& pPixel) = 0;
67 virtual fsPoint doDimensionsGet() const = 0;
68
69 virtual void doCreate(const fsPoint& pDimentsions) = 0;
70 virtual void doCreate(const fsCResourceName& pImageFileName) = 0;
71
72 fsIImage();
73
74private:
75
76};
77
78#endif
Definition fsCResourceName.h:32
fsU8 alphaGet(fsPoint const &pOffest) const
Definition fsIImage.cpp:48
virtual fsU8 doAlphaGet(fsPoint const &pOffest) const =0
void textureCopyInto(fsIImage const *pSrc, fsS32 pU, fsS32 pV, fsS32 pX, fsS32 pY)
Definition fsIImage.cpp:53
std::unique_ptr< fsIImage > cloneSubSection(fsIImage const *pBlend, fsPoint const &pOffset) const
Definition fsIImage.cpp:28
virtual void doCreate(const fsPoint &pDimentsions)=0
virtual ~fsIImage()
Definition fsIImage.cpp:97
virtual std::unique_ptr< fsIImage > doCreateFromAlpha8Data(std::vector< fsU8 > &pAlphaData, fsS32 pImgW, fsS32 pImgH, fsPoint const &pPOTDimenions)=0
static std::unique_ptr< fsIImage > create(const fsPoint &pDimentsions)
Definition fsIImage.cpp:79
virtual fsPoint doDimensionsGet() const =0
void pixelSet(fsS32 pU, fsS32 pV, fsS32 pCol, fsS32 pRow, const fsSColour4B &pPixel)
Definition fsIImage.cpp:69
fsSColour4B pixelGet(fsPoint const &pOffset) const
Definition fsIImage.cpp:43
virtual void doTextureCopyThroughStencil(fsIImage const *const pSrc, fsIImage const *const pStencil, fsS32 pU, fsS32 pV, fsS32 pX, fsS32 pY)=0
fsPoint dimensionsGet() const
Definition fsIImage.cpp:74
fsIImage()
Definition fsIImage.cpp:93
void alphaChannelsCombine(fsIImage const *pBlend, fsPoint const &pOffset)
Definition fsIImage.cpp:23
virtual void doCreate(const fsCResourceName &pImageFileName)=0
virtual fsSColour4B doPixelGet(fsPoint const &pOffset) const =0
void premultipliedAlphaReverse()
Definition fsIImage.cpp:38
virtual void doPremultipliedAlphaReverse()=0
virtual void doTextureCopyInto(fsIImage const *const pSrc, fsS32 pU, fsS32 pV, fsS32 pX, fsS32 pY)=0
std::unique_ptr< fsIImage > createFromAlpha8Data(std::vector< fsU8 > &pAlphaData, fsS32 pImgW, fsS32 pImgH, fsPoint const &pPOTDimenions)
Definition fsIImage.cpp:33
virtual void doAlphaChannelsCombine(fsIImage const *pBlend, fsPoint const &pOffset)=0
void textureCopyThroughStencil(fsIImage const *pSrc, fsIImage const *pStencil, fsS32 pU, fsS32 pV, fsS32 pX, fsS32 pY)
Definition fsIImage.cpp:58
virtual void doPixelSet(fsS32 pU, fsS32 pV, fsS32 pCol, fsS32 pRow, const fsSColour4B &pPixel)=0
virtual std::unique_ptr< fsIImage > doCloneSubSection(fsIImage const *pBlend, fsPoint const &pOffset) const =0
unsigned char fsU8
Definition fsBaseTypes.h:15
int fsS32
Definition fsBaseTypes.h:20
Definition fsPoint.h:17
Definition fsSColour.h:54