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 initEmpty(std::shared_ptr<fsITexture> pTexture, fsPoint const& pDimensions);
54 void init(std::shared_ptr<fsITexture> pTexture, fsPoint const& pOffset, fsPoint const& pDimensions);
55 void init(std::shared_ptr<fsCBrush> pBrush, fsPoint const& pOffset, fsPoint const& pDimensions);
56
57 fsCBrush();
58 ~fsCBrush();
59
60protected:
61
62
63private:
64
65 std::shared_ptr<fsCBrush> mOriginal;
66 std::shared_ptr<fsCBrush> mHitTestDelegate;
67 std::shared_ptr<fsITexture> mTexture;
68
69 fsPoint mOffset;
70 fsPoint mDimensions;
71};
72
73#endif
void textureCopyThroughStencil(std::shared_ptr< fsCBrush > pSrc, std::shared_ptr< fsCBrush > pStencil, fsS32 pX, fsS32 pY, fsS32 pAlphaHitMaskThreshold=0) const
Definition fsCBrush.cpp:44
fsPoint const & hitTestDimensionsGet() const
Definition fsCBrush.cpp:61
~fsCBrush()
Definition fsCBrush.cpp:131
void pixelSet(fsS32 pCol, fsS32 pRow, const fsSColour4B &pPixel)
Definition fsCBrush.cpp:39
fsBool hasAlphaChannelGet() const
Definition fsCBrush.cpp:98
std::shared_ptr< fsCBrush > originalBrushGet() const
Definition fsCBrush.cpp:8
fsBool hitTest(const fsPoint &pLocalPoint) const
Definition fsCBrush.cpp:89
void hitTestDelegateSet(std::shared_ptr< fsCBrush > pHitDelegate)
Definition fsCBrush.cpp:56
fsPoint const & dimensionsGet() const
Definition fsCBrush.cpp:70
void textureCopyInto(std::shared_ptr< fsCBrush > pSrc, fsS32 pX, fsS32 pY)
Definition fsCBrush.cpp:51
void initEmpty(std::shared_ptr< fsITexture > pTexture, fsPoint const &pDimensions)
Definition fsCBrush.cpp:107
fsSColour4B pixelGet(fsS32 pCol, fsS32 pRow)
Definition fsCBrush.cpp:34
std::shared_ptr< fsITexture > textureGet() const
Definition fsCBrush.cpp:13
void finalise()
Definition fsCBrush.cpp:29
fsCBrush()
Definition fsCBrush.cpp:125
void blend(std::shared_ptr< fsCBrush > pMask)
Definition fsCBrush.cpp:18
void init(std::shared_ptr< fsITexture > pTexture, fsPoint const &pOffset, fsPoint const &pDimensions)
Definition fsCBrush.cpp:118
fsPoint const & offsetGet() const
Definition fsCBrush.cpp:75
fsBool hasHitMapGet() const
Definition fsCBrush.cpp:80
Definition fsITexture.h:26
bool fsBool
Definition fsBaseTypes.h:26
int fsS32
Definition fsBaseTypes.h:20
Definition fsPoint.h:17
Definition fsSColour.h:54