Fission FSN
Loading...
Searching...
No Matches
fsINative.h
Go to the documentation of this file.
1/********************************************************************
2*
3* File: fsINative.h
4*
5* Purpose: Scene node interface for all things hierarchied in
6* in impl's - scene sprites and scene text as we start
7*
8*********************************************************************/
9
10#ifndef fsINativehdr
11#define fsINativehdr
12
13#include <fsCore/fsBaseTypes.h>
14#include <fsCore/fsVec2d.h>
15
16#ifdef AXMOL_V3
17 #include <scene/Node.h>
18#else
19 #include <2d/Node.h>
20#endif
21
23
24class fsAffineMtx2d;
25class fsSColour4B;
26class fsVec2d;
27class fsCBrush;
28class fsRect;
29
30// axmol v3's Node::visit() takes a SceneRenderState, not a raw Renderer*; builds one from the running scene's camera.
31void fsAxmolNodeVisit(ax::Node* pNode, const ax::Mat4& pRenderMatrix, uint32_t pFlags);
32
34{
35public:
36
37 void render();
38 void matrixApply(const fsAffineMtx2d& pRenderMatrix);
39
40 void widthSet(fsS32 pWidth);
41 void heightSet(fsS32 pHeight);
42
43 void polygonInfoSet(fsIRenderData::fsSPolyInfo const& pPolyInfo);
44 void textureWrapSet();
45 void uvSet(const fsRect& pOffest);
46 void vertsSet(std::vector<fsVec2d> const& pVerts);
47 void brushSet(std::shared_ptr<fsCBrush> pBrush);
48 void alphaBlendModeSet(fsS32 pAlphaBlendMode);
49 void colourSet(const fsSColour4B& pColour);
50
51 virtual ~fsINative() = default;
52
53protected:
54
55 virtual void renderDo() = 0;
56 virtual void matrixApplyDo(const fsAffineMtx2d& pRenderMatrix) = 0;
57
58
59 virtual void polygonInfoSetDo(fsIRenderData::fsSPolyInfo const& pPolyInfo) {}
60
61 virtual void textureWrapSetDo() {}
62
63 virtual void uvSetDo(const fsRect& pOffest) {}
64
65
66 virtual void vertsSetDo(std::vector<fsVec2d> const& pVerts) {}
67
68 virtual void widthSetDo(fsS32 pWidth) {}
69 virtual void heightSetDo(fsS32 pHeight) {}
70
71 virtual void brushSetDo(std::shared_ptr<fsCBrush> pBrush) {}
72 virtual void alphaBlendModeSetDo(fsS32 pAlphaBlendMode) {}
73 virtual void colourSetDo(const fsSColour4B& pColour) {}
74
75 fsINative() = default;
76
77private:
78
79 virtual ax::Node* implGet() const = 0;
80};
81
82#endif
void fsAxmolNodeVisit(ax::Node *pNode, const ax::Mat4 &pRenderMatrix, uint32_t pFlags)
Definition fsINative.cpp:10
Definition fsAffineMtx2d.h:27
Definition fsCBrush.h:26
void alphaBlendModeSet(fsS32 pAlphaBlendMode)
Definition fsINative.cpp:62
void matrixApply(const fsAffineMtx2d &pRenderMatrix)
Definition fsINative.cpp:72
virtual void vertsSetDo(std::vector< fsVec2d > const &pVerts)
Definition fsINative.h:66
void brushSet(std::shared_ptr< fsCBrush > pBrush)
Definition fsINative.cpp:67
void vertsSet(std::vector< fsVec2d > const &pVerts)
Definition fsINative.cpp:42
void heightSet(fsS32 pHeight)
Definition fsINative.cpp:52
virtual void matrixApplyDo(const fsAffineMtx2d &pRenderMatrix)=0
Definition fsINative.cpp:56
fsINative()=default
Definition fsINative.cpp:72
virtual void widthSetDo(fsS32 pWidth)
Definition fsINative.h:68
void uvSet(const fsRect &pOffest)
Definition fsINative.cpp:32
void colourSet(const fsSColour4B &pColour)
Definition fsINative.cpp:57
virtual void alphaBlendModeSetDo(fsS32 pAlphaBlendMode)
Definition fsINative.h:72
virtual void renderDo()=0
virtual void heightSetDo(fsS32 pHeight)
Definition fsINative.h:69
void widthSet(fsS32 pWidth)
Definition fsINative.cpp:47
void polygonInfoSet(fsIRenderData::fsSPolyInfo const &pPolyInfo)
Definition fsINative.cpp:22
void textureWrapSet()
Definition fsINative.cpp:27
void render()
Definition fsINative.cpp:37
virtual ~fsINative()=default
virtual void uvSetDo(const fsRect &pOffest)
Definition fsINative.h:63
virtual void polygonInfoSetDo(fsIRenderData::fsSPolyInfo const &pPolyInfo)
Definition fsINative.h:59
virtual void brushSetDo(std::shared_ptr< fsCBrush > pBrush)
Definition fsINative.h:71
virtual void textureWrapSetDo()
Definition fsINative.h:61
virtual void colourSetDo(const fsSColour4B &pColour)
Definition fsINative.h:73
Definition fsRect.h:16
int fsS32
Definition fsBaseTypes.h:20
Definition fsIRenderData.h:44
Definition fsSColour.h:54
Definition fsVec2d.h:16