Fission FSN
Loading...
Searching...
No Matches
fsCBrush.h
Go to the documentation of this file.
1/********************************************************************
2*
3* Created: 27/2/2014 15:39
4*
5* File: fsCBrush.h
6*
7* Author: Mick Waites
8*
9* Purpose: Reference to an area on a shared texture.
10*
11*********************************************************************/
12
13#ifndef fsCBrushhdr
14#define fsCBrushhdr
15
16#include <memory>
17
18#include <fsCore/fsBaseTypes.h>
19#include <fsCore/fsPoint.h>
20#include <fsCore/fsStr.h>
21
22struct fsSColour4B;
23class fsITexture;
24
26{
27public:
28
29 void blend(std::shared_ptr<fsCBrush> pMask);
30
31 void finalise();
32
33 std::shared_ptr<fsCBrush> originalBrushGet() const;
34 std::shared_ptr<fsITexture> textureGet() const;
35
36 fsSColour4B pixelGet(fsS32 pCol, fsS32 pRow);
37 void pixelSet(fsS32 pCol, fsS32 pRow, const fsSColour4B& pPixel);
38 void textureCopyThroughStencil(std::shared_ptr<fsCBrush> pSrc, std::shared_ptr<fsCBrush> pStencil, fsS32 pX,
39 fsS32 pY, fsS32 pAlphaHitMaskThreshold = 0) const;
40 void textureCopyInto(std::shared_ptr<fsCBrush> pSrc, fsS32 pX, fsS32 pY);
41
42 void hitTestDelegateSet(std::shared_ptr<fsCBrush> pHitDelegate);
43 fsPoint const& hitTestDimensionsGet() const;
44
45 fsPoint const& dimensionsGet() const;
46 fsPoint const& offsetGet() const;
47
48 fsBool hasHitMapGet() const;
49 fsBool hitTest(const fsPoint& pLocalPoint) const;
50
52
53 void sanityCheck(fsStr const& pName) const;
54 void initEmpty(std::shared_ptr<fsITexture> pTexture, fsPoint const& pDimensions);
55 void init(std::shared_ptr<fsITexture> pTexture, fsPoint const& pOffset, fsPoint const& pDimensions);
56 void init(std::shared_ptr<fsCBrush> pBrush, fsPoint const& pOffset, fsPoint const& pDimensions);
57
58 fsCBrush();
59 ~fsCBrush();
60
61protected:
62
63
64private:
65
66 std::shared_ptr<fsCBrush> mOriginal;
67 std::shared_ptr<fsCBrush> mHitTestDelegate;
68 std::shared_ptr<fsITexture> mTexture;
69
70 fsPoint mOffset;
71 fsPoint mDimensions;
72};
73
74#endif
void textureCopyThroughStencil(std::shared_ptr< fsCBrush > pSrc, std::shared_ptr< fsCBrush > pStencil, fsS32 pX, fsS32 pY, fsS32 pAlphaHitMaskThreshold=0) const
Definition fsCBrush.cpp:45
void sanityCheck(fsStr const &pName) const
Definition fsCBrush.cpp:114
fsPoint const & hitTestDimensionsGet() const
Definition fsCBrush.cpp:62
~fsCBrush()
Definition fsCBrush.cpp:151
void pixelSet(fsS32 pCol, fsS32 pRow, const fsSColour4B &pPixel)
Definition fsCBrush.cpp:40
fsBool hasAlphaChannelGet() const
Definition fsCBrush.cpp:99
std::shared_ptr< fsCBrush > originalBrushGet() const
Definition fsCBrush.cpp:9
fsBool hitTest(const fsPoint &pLocalPoint) const
Definition fsCBrush.cpp:90
void hitTestDelegateSet(std::shared_ptr< fsCBrush > pHitDelegate)
Definition fsCBrush.cpp:57
fsPoint const & dimensionsGet() const
Definition fsCBrush.cpp:71
void textureCopyInto(std::shared_ptr< fsCBrush > pSrc, fsS32 pX, fsS32 pY)
Definition fsCBrush.cpp:52
void initEmpty(std::shared_ptr< fsITexture > pTexture, fsPoint const &pDimensions)
Definition fsCBrush.cpp:108
fsSColour4B pixelGet(fsS32 pCol, fsS32 pRow)
Definition fsCBrush.cpp:35
std::shared_ptr< fsITexture > textureGet() const
Definition fsCBrush.cpp:14
void finalise()
Definition fsCBrush.cpp:30
fsCBrush()
Definition fsCBrush.cpp:145
void blend(std::shared_ptr< fsCBrush > pMask)
Definition fsCBrush.cpp:19
void init(std::shared_ptr< fsITexture > pTexture, fsPoint const &pOffset, fsPoint const &pDimensions)
Definition fsCBrush.cpp:138
fsPoint const & offsetGet() const
Definition fsCBrush.cpp:76
fsBool hasHitMapGet() const
Definition fsCBrush.cpp:81
Definition fsITexture.h:26
Definition fsStr.h:23
bool fsBool
Definition fsBaseTypes.h:26
int fsS32
Definition fsBaseTypes.h:20
Definition fsPoint.h:17
Definition fsSColour.h:54