Fission FSN
Loading...
Searching...
No Matches
fsCVertexRenderer-v3.h
Go to the documentation of this file.
1/********************************************************************
2*
3* File: fsCRenderer.h
4*
5* Purpose: cocos2d-x implementation for fsIRenderer
6*
7*********************************************************************/
8
9#ifndef fsCRendererhdr
10#define fsCRendererhdr
11
13
14#if defined fsVertexRenderer
15
16class fsCRenderer : public fsIRenderer
17{
18 friend class fsIRenderer;
19 friend class fsCVertexStreamSpriteRenderData;
20 friend class fsCVertexStreamLineRenderData;
21
22public:
23
24 virtual ~fsCRenderer();
25
26protected:
27
28 virtual void frameStartDo() override;
29 virtual void begin2dDo() override;
30 virtual void end2dDo() override;
31 virtual void begin3dDo() override;
32 virtual void end3dDo() override;
33 virtual void frameEndDo() override;
34
35 virtual void initialiseDo() override;
36 virtual void uninitialiseDo() override;
37
38 virtual void spriteBatchRender(fsS32 pFirstMaterialIndex, fsS32 pLastMaterialIndex) override;
39 virtual void textBatchRender(fsS32 pFirstFontIndex, fsS32 pLastFontIndex) override;
40 virtual void lineBatchRender(fsS32 pBatchIndex) override;
41 virtual void textEntryBatchRender(fsITextEntryRenderData* const pTextEntry) override;
42
43#if defined fs3d
44 virtual void sprite3dBatchRender(fsC3dSceneSprite* const pScene) override;
45#endif
46
47 fsCRenderer(fsS32 pMaxSprites, fsS32 pMaxMaterialChanges);
48
49private:
50
51#if defined fs3d
52 fsS32 unusedLightIndexGet();
53#endif
54
55 void blendModeSet(fsS32 pBlendMode);
56
57 fsS32 numVertsGet(fsS32 pMaterial) const;
58
59 void spriteBatchDataAllocateFromCache(fsS32 pNumVerts);
60 void spriteBatchDataPopulate(fsS32 pMaterial);
61 void spriteBatchDataRender(fsS32 pMaterial);
62
63 void lineBatchDataAllocateFromCache(fsS32 pBatchIndex);
64 void lineBatchDataPopulate(fsS32 pBatchIndex);
65 void lineBatchDataRender(fsS32 pBatchIndex);
66
67 struct fsSF32VertBuffer
68 {
69 fsSF32VertBuffer();
70 ~fsSF32VertBuffer();
71 void init(fsS32 pSize);
72
73 fsS32 mSize;
74 fsF32* mBuffer;
75 };
76
77 struct fsRenderBuffers
78 {
79 fsRenderBuffers() = default;
80
81 ~fsRenderBuffers() = default;
82
83 fsSF32VertBuffer mBatchedVerts;
84 fsSF32VertBuffer mBatchedUVs;
85 fsSF32VertBuffer mBatchedColours;
86 };
87
88 struct fsRenderBuffersPtr
89 {
90 fsRenderBuffersPtr(const fsRenderBuffers& pRenderBuffer)
91 {
92 mBatchedVerts = pRenderBuffer.mBatchedVerts.mBuffer;
93 mBatchedUVs = pRenderBuffer.mBatchedUVs.mBuffer;
94 mBatchedColours = pRenderBuffer.mBatchedColours.mBuffer;
95 }
96
97 ~fsRenderBuffersPtr() {}
98
99 fsF32* mBatchedVerts;
100 fsF32* mBatchedUVs;
101 fsF32* mBatchedColours;
102 };
103
104 fsRenderBuffers mRenderBuffers;
105
106 fsS32 mSpriteIndex;
107 fsS32 mTxtSprIndex;
108 fsS32 mLineBatch;
109
110 fsF32 mZoom;
111 fsF32 mTrackingScale;
112};
113
114#endif
115#endif
Definition fsIRenderer.h:73
virtual void end2dDo()=0
virtual void begin3dDo()=0
virtual void begin2dDo()=0
virtual void uninitialiseDo()=0
virtual void initialiseDo()=0
virtual void frameStartDo()=0
virtual void end3dDo()=0
virtual void frameEndDo()=0
int fsS32
Definition fsBaseTypes.h:20
float fsF32
Definition fsBaseTypes.h:28