OROCHI
 
Loading...
Searching...
No Matches
GxSysPrimitive.h
Go to the documentation of this file.
1//===========================================================================
11//===========================================================================
12#pragma once
13
14GX_CORE_NAMESPACE_BEGIN()
15
16//===========================================================================
18//===========================================================================
20{
21 //-----------------------------------------------------------
23 //-----------------------------------------------------------
25public:
26 // RTTI定義
28 // GxClassBase継承クラス用禁止宣言
30
31
32 //-------------------------------------------------------------
34 //-------------------------------------------------------------
36public:
38 GxPrimitiveInitialInformation(void) : _useAutoClearZMask2D(true),
39 _renderToBackBuffer2D(true),
40 _bufferSize3D(0),
41 _vertexBufferSize3D(0),
42 _indexBufferSize3D(0),
43 _use32BitIndex3D(false),
44 _bufferSize2D(0),
45 _vertexBufferSize2D(0),
46 _indexBufferSize2D(0),
47 _use32BitIndex2D(false),
48 _maxProjectionMatrix2DIdCount(GxMath::VALUE_256),
49 _useVirtualResolutionHudSet(true) {}
50
52 //-------------------------------------------------------------
54 //-------------------------------------------------------------
56
58 void loadJson(const GxJson::GxJsonNode& jsonNode);
59
60#if GX_DEVELOP
62 static GxGuiBase* createGui(GxProperty& property, GxTypedObject* pOwner, const GxRtti& rtti, u32 index);
63#endif // GX_DEVELOP
64
66 //-------------------------------------------------------------
68 //-------------------------------------------------------------
70
72 GX_FORCE_INLINE void setManagerSize3D(u32 bufferSize, u32 vertexBufferSize, u32 indexBufferSize, b32 use32BitIndex = false)
73 {
74 _bufferSize3D = bufferSize;
75 _vertexBufferSize3D = vertexBufferSize;
76 _indexBufferSize3D = indexBufferSize;
77 _use32BitIndex3D = use32BitIndex;
78 }
79
81 GX_FORCE_INLINE void setManagerSize2D(u32 bufferSize, u32 vertexBufferSize, u32 indexBufferSize, b32 use32BitIndex = false)
82 {
83 _bufferSize2D = bufferSize;
84 _vertexBufferSize2D = vertexBufferSize;
85 _indexBufferSize2D = indexBufferSize;
86 _use32BitIndex2D = use32BitIndex;
87 }
88
90 constexpr void setMaxProjectionMatrix2DIdCount(u32 count){ _maxProjectionMatrix2DIdCount = count; }
91
93 GX_FORCE_INLINE void setUseVirtualResolutionHudSet(b32 state){ _useVirtualResolutionHudSet = state; }
94
96 constexpr u32 getBufferSize3D(void) const { return _bufferSize3D; }
98 constexpr u32 getVertexBufferSize3D(void) const { return _vertexBufferSize3D; }
100 constexpr u32 getIndexBufferSize3D(void) const { return _indexBufferSize3D; }
102 constexpr u32 getBufferSize2D(void) const { return _bufferSize2D; }
104 constexpr u32 getVertexBufferSize2D(void) const { return _vertexBufferSize2D; }
106 constexpr u32 getIndexBufferSize2D(void) const { return _indexBufferSize2D; }
108 constexpr u32 getMaxProjectionMatrix2DIdCount(void) const { return _maxProjectionMatrix2DIdCount; }
110 GX_FORCE_INLINE b32 isUse32BitIndex3D(void) const { return _use32BitIndex3D; }
112 GX_FORCE_INLINE b32 isUse32BitIndex2D(void) const { return _use32BitIndex2D; }
114 GX_FORCE_INLINE b32 isUseVirtualResolutionHudSet(void) const { return _useVirtualResolutionHudSet; }
115
117 //-------------------------------------------------------------
119 //-------------------------------------------------------------
121
125private:
126 u32 _bufferSize3D;
127 u32 _vertexBufferSize3D;
128 u32 _indexBufferSize3D;
129 b32 _use32BitIndex3D;
130 u32 _bufferSize2D;
131 u32 _vertexBufferSize2D;
132 u32 _indexBufferSize2D;
133 b32 _use32BitIndex2D;
134 u32 _maxProjectionMatrix2DIdCount;
135 b32 _useVirtualResolutionHudSet;
136
138};
139
140//===========================================================================
142//===========================================================================
143class GxSysPrimitive : public GxSysBase, public SingletonBase<GxSysPrimitive>
144{
145 //-------------------------------------------------------------
147 //-------------------------------------------------------------
149public:
150 GX_RTTI_ABSTRACT_CLASS(GxSysPrimitive, GxSysBase)
151 // ClassBase継承クラス用禁止宣言
153
154
155 //-------------------------------------------------------------
157 //-------------------------------------------------------------
159
161 GxSysPrimitive(void);
163 ~GxSysPrimitive(void) override {}
165 b32 initialize(const GxClassBase* pInitialInformation) override;
167 void terminate(void) override;
168
170 virtual b32 initializeThreadLocalStorage(u32 workerThreadIndex);
171
173 //-------------------------------------------------------------
175 //-------------------------------------------------------------
177
179 virtual void beginPrimitiveRender(void);
180
182 virtual void endPrimitiveRender(void);
183
185 GxVector2 transformWorldTo2D(const GxVector3& worldPosision) const;
186
188 //-------------------------------------------------------------
190 //-------------------------------------------------------------
192public:
194 GxSize getResolution2D(void) const;
196 GxRect getSafetyArea(void) const;
197
199 constexpr void setSubPriority2D(u32 subPriority) { _subPriority2D = subPriority; }
201 constexpr u32 getSubPriority2D(void) const { return _subPriority2D; }
203 constexpr void setSubPriority3D(u32 subPriority) { _subPriority3D = subPriority; }
205 constexpr u32 getSubPriority3D(void) const { return _subPriority3D; }
207 GX_FORCE_INLINE void setUseVirtualResolutionHudSet(b32 state) { _useVirtualResolutionHudSet = state; }
209 GX_FORCE_INLINE b32 isUseVirtualResolutionHudSet(void) const { return _useVirtualResolutionHudSet; }
211 GX_FORCE_INLINE const GxPoint2& getOutputOffset2D(void) const { return _pManager2D->getOutputOffset2D(); }
213 GX_FORCE_INLINE void setOutputOffset2D(const GxPoint2& offset) { _pManager2D->setOutputOffset2D(offset); }
214#if GX_DEVELOP
216 constexpr GxPrimitiveManager* getPrimitiveManager2D(void) const { return _pManager2D; }
218 constexpr GxPrimitiveManager* getPrimitiveManager3D(void) const { return _pManager3D; }
219#endif //GX_DEVELOP
220
222 GX_FORCE_INLINE void set2DScissorRect(const GxRect& rect, f32 priority, u32 viewFlag = 0xFFFFFFFF) { getContext2D()->setScissorRect(rect, priority, viewFlag); }
223
225 GX_FORCE_INLINE b32 isRenderToBackBuffer2D(void) const { return _renderToBackBuffer2D; }
226
227private:
228#if defined(GX_THREAD_LOCAL_STORAGE)
230 GX_FORCE_INLINE GxPrimitiveContext* getContext2D(void) { return _pContext2D; }
232 GX_FORCE_INLINE GxPrimitiveContext* getContext3D(void) { return _pContext3D; }
233#else //GX_THREAD_LOCAL_STORAGE
235 GX_FORCE_INLINE GxPrimitiveContext* getContext2D(void) { return _pContext2D[GxThread::getCurrentThread()->getIndex()]; }
237 GX_FORCE_INLINE GxPrimitiveContext* getContext3D(void) { return _pContext3D[GxThread::getCurrentThread()->getIndex()]; }
238#endif // !GX_THREAD_LOCAL_STORAGE
239
240public:
242 GX_FORCE_INLINE GxPrimitiveVertex* draw2DLineList(u32 vertexCount, const GxPrimitiveMaterial& material, f32 priority) { return getContext2D()->draw2DLineList(vertexCount, material, priority); }
244 GX_FORCE_INLINE GxPrimitiveVertex* draw2DLineStrip(u32 vertexCount, const GxPrimitiveMaterial& material, f32 priority) { return getContext2D()->draw2DLineStrip(vertexCount, material, priority); }
246 GX_FORCE_INLINE GxPrimitiveVertex* draw2DTriangleList(u32 vertexCount, const GxPrimitiveMaterial& material, f32 priority) { return getContext2D()->draw2DTriangleList(vertexCount, material, priority); }
248 GX_FORCE_INLINE GxPrimitiveVertex* draw2DTriangleStrip(u32 vertexCount, const GxPrimitiveMaterial& material, f32 priority) { return getContext2D()->draw2DTriangleStrip(vertexCount, material, priority); }
250 GX_FORCE_INLINE GxPrimitiveVertex* draw2DTriangleFan(u32 vertexCount, const GxPrimitiveMaterial& material, f32 priority) { return getContext2D()->draw2DTriangleFan(vertexCount, material, priority); }
252 GX_FORCE_INLINE GxPrimitiveVertex* draw2DQuadList(u32 vertexCount, const GxPrimitiveMaterial& material, f32 priority) { return getContext2D()->draw2DQuadList(vertexCount, material, priority); }
253
255 void draw2DPoint(const GxVector3& position, const GxColor color, const GxPrimitiveMaterial& material = GxPrimitiveMaterial::DEFAULT_2D, b32 useAutoScale = true);
257 void draw2DLineF(const GxVector3& position0, const GxVector3& position1, const GxColor color, const GxPrimitiveMaterial& material = GxPrimitiveMaterial::DEFAULT_2D, b32 useAutoScale = true);
259 void draw2DLineG(const GxVector3& position0, const GxVector3& position1, const GxColor color0, const GxColor color1, const GxPrimitiveMaterial& material = GxPrimitiveMaterial::DEFAULT_2D, b32 useAutoScale = true);
261 void draw2DPolyLineF(const GxVector3& position0, const GxVector3& position1, u32 width, const GxColor color, PRIMITIVE_FILL_MODE fillMode = PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial& material = GxPrimitiveMaterial::DEFAULT_2D, b32 useAutoScale = true);
263 void draw2DPolyLineG(const GxVector3& position0, const GxVector3& position1, u32 width, const GxColor color0, const GxColor color1, PRIMITIVE_FILL_MODE fillMode = PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial& material = GxPrimitiveMaterial::DEFAULT_2D, b32 useAutoScale = true);
265 void draw2DTriangleF(const GxVector3& position0, const GxVector3& position1, const GxVector3& position2, const GxColor color, PRIMITIVE_FILL_MODE fillMode = PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial& material = GxPrimitiveMaterial::DEFAULT_2D, b32 useAutoScale = true);
267 void draw2DTriangleG(const GxVector3& position0, const GxVector3& position1, const GxVector3& position2, const GxColor color0, const GxColor color1, const GxColor color2, PRIMITIVE_FILL_MODE fillMode = PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial& material = GxPrimitiveMaterial::DEFAULT_2D, b32 useAutoScale = true);
269 void draw2DRectF(const GxRectF& rect, f32 z, const GxColor color, PRIMITIVE_FILL_MODE fillMode = PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial& material = GxPrimitiveMaterial::DEFAULT_2D, b32 useAutoScale = true);
271 void draw2DRectF(const GxRectF& rect, f32 positionZ, f32 z, const GxColor color, PRIMITIVE_FILL_MODE fillMode = PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial& material = GxPrimitiveMaterial::DEFAULT_2D, b32 useAutoScale = true);
273 void draw2DRectG(const GxRectF& rect, f32 z, const GxColor color0, const GxColor color1, const GxColor color2, const GxColor color3, PRIMITIVE_FILL_MODE fillMode = PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial& material = GxPrimitiveMaterial::DEFAULT_2D, b32 useAutoScale = true);
275 void draw2DRectTextureF(const GxRectF& rect, f32 z, const GxColor color, const GxFloat2& uv0, const GxFloat2& uv1, const GxPrimitiveMaterial& material = GxPrimitiveMaterial::DEFAULT_2D, const GxFloat2& uvSecond0 = GxFloat2(0.f, 0.f), const GxFloat2& uvSecond1 = GxFloat2(1.f, 1.f), b32 useAutoScale = true);
277 void draw2DRectTextureF(const GxRectF& rect, f32 positionZ, f32 z, const GxColor color, const GxFloat2& uv0, const GxFloat2& uv1, const GxPrimitiveMaterial& material = GxPrimitiveMaterial::DEFAULT_2D, const GxFloat2& uvSecond0 = GxFloat2(0.f, 0.f), const GxFloat2& uvSecond1 = GxFloat2(1.f, 1.f), b32 useAutoScale = true);
279 void draw2DRectTextureG(const GxRectF& rect, f32 z, const GxColor color0, const GxColor color1, const GxColor color2, const GxColor color3, const GxFloat2& uv0, const GxFloat2& uv1, const GxPrimitiveMaterial& material = GxPrimitiveMaterial::DEFAULT_2D, const GxFloat2& uvSecond0 = GxFloat2(0.f, 0.f), const GxFloat2& uvSecond1 = GxFloat2(1.f, 1.f), b32 useAutoScale = true);
281 void draw2DRectTextureG(const GxRectF& rect, f32 positionZ, f32 z, const GxColor color0, const GxColor color1, const GxColor color2, const GxColor color3, const GxFloat2& uv0, const GxFloat2& uv1, const GxPrimitiveMaterial& material = GxPrimitiveMaterial::DEFAULT_2D, const GxFloat2& uvSecond0 = GxFloat2(0.f, 0.f), const GxFloat2& uvSecond1 = GxFloat2(1.f, 1.f), b32 useAutoScale = true);
282
284 void draw2DRectF(const GxRectF& rect, f32 z, const GxVector2& rotateCenter, const f32 rotateRadian, const GxColor color, PRIMITIVE_FILL_MODE fillMode = PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial& material = GxPrimitiveMaterial::DEFAULT_2D, b32 useAutoScale = true);
286 void draw2DRectG(const GxRectF& rect, f32 z, const GxVector2& rotateCenter, const f32 rotateRadian, const GxColor color0, const GxColor color1, const GxColor color2, const GxColor color3, PRIMITIVE_FILL_MODE fillMode = PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial& material = GxPrimitiveMaterial::DEFAULT_2D, b32 useAutoScale = true);
288 void draw2DRectTextureF(const GxRectF& rect, f32 z, const GxVector2& rotateCenter, const f32 rotateRadian, const GxColor color, const GxFloat2& uv0, const GxFloat2& uv1, const GxPrimitiveMaterial& material = GxPrimitiveMaterial::DEFAULT_2D, const GxFloat2& uvSecond0 = GxFloat2(0.f, 0.f), const GxFloat2& uvSecond1 = GxFloat2(1.f, 1.f), b32 useAutoScale = true);
290 void draw2DRectTextureF(const GxRectF& rect, f32 positionZ, f32 z, const GxVector2& rotateCenter, const f32 rotateRadian, const GxColor color, const GxFloat2& uv0, const GxFloat2& uv1, const GxPrimitiveMaterial& material = GxPrimitiveMaterial::DEFAULT_2D, const GxFloat2& uvSecond0 = GxFloat2(0.f, 0.f), const GxFloat2& uvSecond1 = GxFloat2(1.f, 1.f), b32 useAutoScale = true);
292 void draw2DRectTextureG(const GxRectF& rect, f32 z, const GxVector2& rotateCenter, const f32 rotateRadian, const GxColor color0, const GxColor color1, const GxColor color2, const GxColor color3, const GxFloat2& uv0, const GxFloat2& uv1, const GxPrimitiveMaterial& material = GxPrimitiveMaterial::DEFAULT_2D, const GxFloat2& uvSecond0 = GxFloat2(0.f, 0.f), const GxFloat2& uvSecond1 = GxFloat2(1.f, 1.f), b32 useAutoScale = true);
294 void draw2DRectTextureG(const GxRectF& rect, f32 positionZ, f32 z, const GxVector2& rotateCenter, const f32 rotateRadian, const GxColor color0, const GxColor color1, const GxColor color2, const GxColor color3, const GxFloat2& uv0, const GxFloat2& uv1, const GxPrimitiveMaterial& material = GxPrimitiveMaterial::DEFAULT_2D, const GxFloat2& uvSecond0 = GxFloat2(0.f, 0.f), const GxFloat2& uvSecond1 = GxFloat2(1.f, 1.f), b32 useAutoScale = true);
295
297 void draw2DCircleF(const GxVector3& position, f32 radius, const GxColor color, u32 divide = 36, PRIMITIVE_FILL_MODE fillMode = PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial& material = GxPrimitiveMaterial::DEFAULT_2D, b32 useAutoScale = true);
299 void draw2DCircleG(const GxVector3& position, f32 radius, const GxColor color0, const GxColor color1, u32 divide = 36, PRIMITIVE_FILL_MODE fillMode = PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial& material = GxPrimitiveMaterial::DEFAULT_2D, b32 useAutoScale = true);
301 void draw2DFanF(const GxVector3& center, f32 radius, f32 degreeStart, f32 degreeDelta, const GxColor color, u32 divide = 12, PRIMITIVE_FILL_MODE fillMode = PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial& material = GxPrimitiveMaterial::DEFAULT_2D, b32 useAutoScale = true);
303 void draw2DFanG(const GxVector3& center, f32 radius, f32 degreeStart, f32 degreeDelta, const GxColor color0, const GxColor color1, u32 divide, PRIMITIVE_FILL_MODE fillMode = PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial& material = GxPrimitiveMaterial::DEFAULT_2D, b32 useAutoScale = true);
305 void draw2DArrowF(const GxVector3& position0, const GxVector3& position1, const GxColor color, PRIMITIVE_FILL_MODE fillMode = PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial& material = GxPrimitiveMaterial::DEFAULT_2D, f32 arrowRate = 0.2f, f32 arrowRadius = DEGREE_TO_RADIAN(30.0f), b32 useAutoScale = true);
307 void draw2DArrowG(const GxVector3& position0, const GxVector3& position1, const GxColor color0, const GxColor color1, PRIMITIVE_FILL_MODE fillMode = PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial& material = GxPrimitiveMaterial::DEFAULT_2D, f32 arrowRate = 0.2f, f32 arrowRadius = DEGREE_TO_RADIAN(30.0f), b32 useAutoScale = true);
308
310 GX_FORCE_INLINE void draw2DCustom(const GxPrimitiveMaterial& material, f32 priority) { getContext2D()->draw2DCustom(material, priority); }
311
313 GX_FORCE_INLINE void setProjectionMatrix2D(u32 projectionId, const GxMatrix44& matrix) { _pManager2D->setProjectionMatrix2D(projectionId, matrix); };
315 GX_FORCE_INLINE const GxMatrix44& getProjectionMatrix2D(u32 projectionId) const { return _pManager2D->getProjectionMatrix2D(projectionId); };
317 GX_FORCE_INLINE u32 allocateProjectionMatrix2DId(void) { return _pManager2D->allocateProjectionMatrix2DId(); };
319 GX_FORCE_INLINE void freeProjectionMatrix2DId(u32 projectionId) { _pManager2D->freeProjectionMatrix2DId(projectionId); };
320
321public:
323 GX_FORCE_INLINE GxPrimitiveVertex* draw3DLineList(u32 vertexCount, const GxPrimitiveMaterial& material, const GxVector3& priorityPoint, u32 viewFlag = 0xFFFFFFFF) { return getContext3D()->draw3DLineList(vertexCount, material, priorityPoint, viewFlag); }
325 GX_FORCE_INLINE GxPrimitiveVertex* draw3DLineStrip(u32 vertexCount, const GxPrimitiveMaterial& material, const GxVector3& priorityPoint, u32 viewFlag = 0xFFFFFFFF) { return getContext3D()->draw3DLineStrip(vertexCount, material, priorityPoint, viewFlag); }
327 GX_FORCE_INLINE GxPrimitiveVertex* draw3DTriangleList(u32 vertexCount, const GxPrimitiveMaterial& material, const GxVector3& priorityPoint, u32 viewFlag = 0xFFFFFFFF) { return getContext3D()->draw3DTriangleList(vertexCount, material, priorityPoint, viewFlag); }
329 GX_FORCE_INLINE GxPrimitiveVertex* draw3DTriangleStrip(u32 vertexCount, const GxPrimitiveMaterial& material, const GxVector3& priorityPoint, u32 viewFlag = 0xFFFFFFFF) { return getContext3D()->draw3DTriangleStrip(vertexCount, material, priorityPoint, viewFlag); }
331 GX_FORCE_INLINE GxPrimitiveVertex* draw3DTriangleFan(u32 vertexCount, const GxPrimitiveMaterial& material, const GxVector3& priorityPoint, u32 viewFlag = 0xFFFFFFFF) { return getContext3D()->draw3DTriangleFan(vertexCount, material, priorityPoint, viewFlag); }
333 GX_FORCE_INLINE GxPrimitiveVertex* draw3DQuadList(u32 vertexCount, const GxPrimitiveMaterial& material, const GxVector3& priorityPoint, u32 viewFlag = 0xFFFFFFFF) { return getContext3D()->draw3DQuadList(vertexCount, material, priorityPoint, viewFlag); }
334
336 GX_FORCE_INLINE void draw3DPoint(const GxVector3& position, const GxColor color, const GxPrimitiveMaterial& material = GxPrimitiveMaterial::DEFAULT_3D, u32 viewFlag = 0xFFFFFFFF) { getContext3D()->draw3DPoint(position, color, material, viewFlag); }
338 GX_FORCE_INLINE void draw3DLineF(const GxVector3& position0, const GxVector3& position1, const GxColor color, const GxPrimitiveMaterial& material = GxPrimitiveMaterial::DEFAULT_3D, u32 viewFlag = 0xFFFFFFFF) { getContext3D()->draw3DLineF(position0, position1, color, material, viewFlag); }
340 GX_FORCE_INLINE void draw3DLineG(const GxVector3& position0, const GxVector3& position1, const GxColor color0, const GxColor color1, const GxPrimitiveMaterial& material = GxPrimitiveMaterial::DEFAULT_3D, u32 viewFlag = 0xFFFFFFFF) { getContext3D()->draw3DLineG(position0, position1, color0, color1, material, viewFlag); }
342 GX_FORCE_INLINE void draw3DTriangleF(const GxVector3& position0, const GxVector3& position1, const GxVector3& position2, const GxColor color, PRIMITIVE_FILL_MODE fillMode = PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial& material = GxPrimitiveMaterial::DEFAULT_3D, u32 viewFlag = 0xFFFFFFFF) { getContext3D()->draw3DTriangleF(position0, position1, position2, color, fillMode, material, viewFlag); }
344 GX_FORCE_INLINE void draw3DTriangleG(const GxVector3& position0, const GxVector3& position1, const GxVector3& position2, const GxColor color0, const GxColor color1, const GxColor color2, PRIMITIVE_FILL_MODE fillMode = PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial& material = GxPrimitiveMaterial::DEFAULT_3D, u32 viewFlag = 0xFFFFFFFF) { getContext3D()->draw3DTriangleG(position0, position1, position2, color0, color1, color2, fillMode, material, viewFlag); }
346 GX_FORCE_INLINE void draw3DQuadF(const GxVector3& position0, const GxVector3& position1, const GxVector3& position2, const GxVector3& position3, const GxColor color, PRIMITIVE_FILL_MODE fillMode = PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial& material = GxPrimitiveMaterial::DEFAULT_3D, u32 viewFlag = 0xFFFFFFFF) { getContext3D()->draw3DQuadF(position0, position1, position2, position3, color, fillMode, material, viewFlag); }
348 GX_FORCE_INLINE void draw3DQuadG(const GxVector3& position0, const GxVector3& position1, const GxVector3& position2, const GxVector3& position3, const GxColor color0, const GxColor color1, const GxColor color2, const GxColor color3, PRIMITIVE_FILL_MODE fillMode = PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial& material = GxPrimitiveMaterial::DEFAULT_3D, u32 viewFlag = 0xFFFFFFFF) { getContext3D()->draw3DQuadG(position0, position1, position2, position3, color0, color1, color2, color3, fillMode, material, viewFlag); }
350 GX_FORCE_INLINE void draw3DQuadTextureF(const GxVector3& position0, const GxVector3& position1, const GxVector3& position2, const GxVector3& position3, const GxColor color, GxFloat2& uv0, GxFloat2& uv1, GxFloat2& uv2, GxFloat2& uv3, PRIMITIVE_FILL_MODE fillMode = PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial& material = GxPrimitiveMaterial::DEFAULT_3D, u32 viewFlag = 0xFFFFFFFF) { GxFloat2 uvArray[4] = {uv0, uv1, uv2, uv3}; getContext3D()->draw3DQuadTextureF(position0, position1, position2, position3, color, uvArray, fillMode, material, nullptr, viewFlag); }
352 GX_FORCE_INLINE void draw3DQuadTextureG(const GxVector3& position0, const GxVector3& position1, const GxVector3& position2, const GxVector3& position3, const GxColor color0, const GxColor color1, const GxColor color2, const GxColor color3, GxFloat2& uv0, GxFloat2& uv1, GxFloat2& uv2, GxFloat2& uv3, PRIMITIVE_FILL_MODE fillMode = PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial& material = GxPrimitiveMaterial::DEFAULT_3D, u32 viewFlag = 0xFFFFFFFF) { GxColor colorArray[4] = {color0, color1, color2, color3}; GxFloat2 uvArray[4] = {uv0, uv1, uv2, uv3}; getContext3D()->draw3DQuadTextureG(position0, position1, position2, position3, colorArray, uvArray, fillMode, material, nullptr, viewFlag); }
354 GX_FORCE_INLINE void draw3DArrowF(const GxVector3& position0, const GxVector3& position1, const GxColor color, PRIMITIVE_FILL_MODE fillMode = PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial& material = GxPrimitiveMaterial::DEFAULT_3D, f32 arrowRate=0.2f, f32 arrowRadius=DEGREE_TO_RADIAN(30.0f), u32 viewFlag = 0xFFFFFFFF) { getContext3D()->draw3DArrowF(position0, position1, color, fillMode, material, arrowRate, arrowRadius, viewFlag); }
356 GX_FORCE_INLINE void draw3DArrowG(const GxVector3& position0, const GxVector3& position1, const GxColor color0, const GxColor color1, PRIMITIVE_FILL_MODE fillMode = PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial& material = GxPrimitiveMaterial::DEFAULT_3D, f32 arrowRate=0.2f, f32 arrowRadius=DEGREE_TO_RADIAN(30.0f), u32 viewFlag = 0xFFFFFFFF) { getContext3D()->draw3DArrowG(position0, position1, color0, color1, fillMode, material, arrowRate, arrowRadius, viewFlag); }
358 GX_FORCE_INLINE void draw3DMatrix(const GxMatrixAffine& matrix, f32 size, PRIMITIVE_FILL_MODE fillMode = PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial& material = GxPrimitiveMaterial::DEFAULT_3D, f32 arrowRate=0.2f, f32 arrowRadius=DEGREE_TO_RADIAN(30.0f), u32 viewFlag = 0xFFFFFFFF) { getContext3D()->draw3DMatrix(matrix, size, fillMode, material, arrowRate, arrowRadius, viewFlag); }
360 GX_FORCE_INLINE void draw3DMatrix(const GxVector3& position, f32 size, PRIMITIVE_FILL_MODE fillMode = PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial& material = GxPrimitiveMaterial::DEFAULT_3D, f32 arrowRate=0.2f, f32 arrowRadius=DEGREE_TO_RADIAN(30.0f), u32 viewFlag = 0xFFFFFFFF) { getContext3D()->draw3DMatrix(position, size, fillMode, material, arrowRate, arrowRadius, viewFlag); }
362 GX_FORCE_INLINE void draw3DSphere(const GxShapeSphere& sphere, const GxColor color, u32 divide = 12, PRIMITIVE_FILL_MODE fillMode = PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial& material = GxPrimitiveMaterial::DEFAULT_3D, u32 viewFlag = 0xFFFFFFFF) { getContext3D()->draw3DSphere(sphere, color, divide, fillMode, material, viewFlag); }
364 GX_FORCE_INLINE void draw3DSphere(const GxVector3& center, f32 radius, const GxColor color, u32 divide = 12, PRIMITIVE_FILL_MODE fillMode = PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial& material = GxPrimitiveMaterial::DEFAULT_3D, u32 viewFlag = 0xFFFFFFFF) { getContext3D()->draw3DSphere(center, radius, color, divide, fillMode, material, viewFlag); }
366 GX_FORCE_INLINE void draw3DSphere(const GxMatrixAffine& coord, f32 radius, const GxColor color, u32 divide = 12, PRIMITIVE_FILL_MODE fillMode = PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial& material = GxPrimitiveMaterial::DEFAULT_3D, u32 viewFlag = 0xFFFFFFFF) { getContext3D()->draw3DSphere(coord, radius, color, divide, fillMode, material, viewFlag); }
368 GX_FORCE_INLINE void draw3DBox(const GxShapeBox& box, const GxColor color, PRIMITIVE_FILL_MODE fillMode = PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial& material = GxPrimitiveMaterial::DEFAULT_3D, u32 viewFlag = 0xFFFFFFFF) { getContext3D()->draw3DBox(box, color, fillMode, material, viewFlag); }
370 GX_FORCE_INLINE void draw3DBox(const GxMatrixAffine& coord, const GxVector3& extent, const GxColor color, PRIMITIVE_FILL_MODE fillMode = PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial& material = GxPrimitiveMaterial::DEFAULT_3D, u32 viewFlag = 0xFFFFFFFF) { getContext3D()->draw3DBox(coord, extent, color, fillMode, material, viewFlag); }
371
373 GX_FORCE_INLINE void draw3DCustom(const GxPrimitiveMaterial& material, const GxVector3& priorityPoint, u32 viewFlag = 0xFFFFFFFF) { getContext3D()->draw3DCustom(material, priorityPoint, viewFlag); }
374
376 //-------------------------------------------------------------
378 //-------------------------------------------------------------
380private:
381 GxPrimitiveManager* _pManager2D;
382 GxPrimitiveManager* _pManager3D;
383
384#if defined(GX_THREAD_LOCAL_STORAGE)
385 static GX_THREAD_LOCAL_STORAGE GxPrimitiveContext* _pContext2D;
386 static GX_THREAD_LOCAL_STORAGE GxPrimitiveContext* _pContext3D;
387#else //GX_THREAD_LOCAL_STORAGE
388 static GxPrimitiveContext* _pContext2D[GxThread::THREAD_MAX];
389 static GxPrimitiveContext* _pContext3D[GxThread::THREAD_MAX];
390#endif // !GX_THREAD_LOCAL_STORAGE
391
392 u32 _subPriority2D;
393 u32 _subPriority3D;
394 b32 _useVirtualResolutionHudSet;
395 b32 _useAutoClearZMask2D;
396 b32 _renderToBackBuffer2D;
397
399};
400
401// アクセスインターフェース
402GX_FORCE_INLINE GxSysPrimitive* getGxSysPrimitive(void){ return GxSysPrimitive::getSingletonPointer(); }
403
404GX_CORE_NAMESPACE_END()
#define GX_PROHIBIT_CLASS_BASE(__CLASS__)
GxClassBase継承の禁止宣言
Definition GxBase.h:240
void GxTypedObject
その他
Definition GxDefine.h:213
PRIMITIVE_FILL_MODE
塗りつぶしモード
Definition GxPrimitive.h:31
@ SOLID
塗りつぶし
オブジェクト基底クラス
Definition GxBase.h:88
JSON解析用ノード
Definition GxJson.h:108
算術演算クラス
Definition GxMath.h:84
プリミティブの並列発行を管理します。
Definition GxPrimitiveContext.h:22
GxPrimitiveVertex * draw3DLineStrip(u32 vertexCount, const GxPrimitiveMaterial &material, const GxVector3 &priorityPoint, u32 viewFlag=0xFFFFFFFF)
3Dラインストリップ
Definition GxPrimitiveContext.cpp:923
void draw3DQuadG(const GxVector3 &position0, const GxVector3 &position1, const GxVector3 &position2, const GxVector3 &position3, const GxColor color0, const GxColor color1, const GxColor color2, const GxColor color3, PRIMITIVE_FILL_MODE fillMode, const GxPrimitiveMaterial &material, u32 viewFlag=0xFFFFFFFF)
3D四角形(Gradation)
Definition GxPrimitiveContext.cpp:1172
void setScissorRect(const GxRect &rect, f32 priority, u32 viewFlag=0xFFFFFFFF)
シザリング矩形の設定
Definition GxPrimitiveContext.cpp:101
GX_FORCE_INLINE void draw3DBox(const GxShapeBox &box, const GxColor color, PRIMITIVE_FILL_MODE fillMode, const GxPrimitiveMaterial &material, u32 viewFlag=0xFFFFFFFF)
3D箱(形状指定)
Definition GxPrimitiveContext.inl:603
GxPrimitiveVertex * draw2DTriangleList(u32 vertexCount, const GxPrimitiveMaterial &material, f32 priority)
2Dトライアングルリスト
Definition GxPrimitiveContext.cpp:282
GX_FORCE_INLINE void draw3DLineF(const GxVector3 &position0, const GxVector3 &position1, const GxColor color, const GxPrimitiveMaterial &material, u32 viewFlag=0xFFFFFFFF)
3Dライン(Flat)
Definition GxPrimitiveContext.inl:431
void draw2DCustom(const GxPrimitiveMaterial &material, f32 priority)
カスタム2D描画を行う。GxPrimitiveMaterial::_handler コールバックのみ実行する
Definition GxPrimitiveContext.cpp:1693
GX_FORCE_INLINE void draw3DQuadTextureF(const GxVector3 &position0, const GxVector3 &position1, const GxVector3 &position2, const GxVector3 &position3, const GxColor color, GxFloat2 *pUvArray, PRIMITIVE_FILL_MODE fillMode, const GxPrimitiveMaterial &material, GxFloat2 *pUvArraySecond=nullptr, u32 viewFlag=0xFFFFFFFF)
3Dテクスチャ付き四角形(Flat)
Definition GxPrimitiveContext.inl:502
GxPrimitiveVertex * draw3DLineList(u32 vertexCount, const GxPrimitiveMaterial &material, const GxVector3 &priorityPoint, u32 viewFlag=0xFFFFFFFF)
3Dラインリスト
Definition GxPrimitiveContext.cpp:888
GX_FORCE_INLINE void draw3DTriangleF(const GxVector3 &position0, const GxVector3 &position1, const GxVector3 &position2, const GxColor color, PRIMITIVE_FILL_MODE fillMode, const GxPrimitiveMaterial &material, u32 viewFlag=0xFFFFFFFF)
3D三角形(Flat)
Definition GxPrimitiveContext.inl:468
void draw3DQuadTextureG(const GxVector3 &position0, const GxVector3 &position1, const GxVector3 &position2, const GxVector3 &position3, GxColor *pColorArray, GxFloat2 *pUvArray, PRIMITIVE_FILL_MODE fillMode, const GxPrimitiveMaterial &material, GxFloat2 *pUvArraySecond=nullptr, u32 viewFlag=0xFFFFFFFF)
3Dテクスチャ付き四角形(Gradation)
Definition GxPrimitiveContext.cpp:1246
void draw3DArrowG(const GxVector3 &position0, const GxVector3 &position1, const GxColor color0, const GxColor color1, PRIMITIVE_FILL_MODE fillMode, const GxPrimitiveMaterial &material, f32 arrowRate=0.2f, f32 arrowRadian=DEGREE_TO_RADIAN(30.0f), u32 viewFlag=0xFFFFFFFF)
3Dベクトル(Gradation)
Definition GxPrimitiveContext.cpp:1344
GxPrimitiveVertex * draw2DTriangleStrip(u32 vertexCount, const GxPrimitiveMaterial &material, f32 priority)
2Dトライアングルストリップ
Definition GxPrimitiveContext.cpp:316
GX_FORCE_INLINE void draw3DMatrix(const GxMatrixAffine &matrix, f32 size, PRIMITIVE_FILL_MODE fillMode, const GxPrimitiveMaterial &material, f32 arrowRate=0.2f, f32 arrowRadius=DEGREE_TO_RADIAN(30.0f), u32 viewFlag=0xFFFFFFFF)
3Dマトリクス
Definition GxPrimitiveContext.inl:534
GX_FORCE_INLINE void draw3DQuadF(const GxVector3 &position0, const GxVector3 &position1, const GxVector3 &position2, const GxVector3 &position3, const GxColor color, PRIMITIVE_FILL_MODE fillMode, const GxPrimitiveMaterial &material, u32 viewFlag=0xFFFFFFFF)
3D四角形(Flat)
Definition GxPrimitiveContext.inl:484
GxPrimitiveVertex * draw3DQuadList(u32 vertexCount, const GxPrimitiveMaterial &material, const GxVector3 &priorityPoint, u32 viewFlag=0xFFFFFFFF)
3Dクアッドリストリスト
Definition GxPrimitiveContext.cpp:1063
GxPrimitiveVertex * draw3DTriangleFan(u32 vertexCount, const GxPrimitiveMaterial &material, const GxVector3 &priorityPoint, u32 viewFlag=0xFFFFFFFF)
3Dトライアングルファン
Definition GxPrimitiveContext.cpp:1028
void draw3DCustom(const GxPrimitiveMaterial &material, const GxVector3 &priorityPoint, u32 viewFlag=0xFFFFFFFF)
カスタム3D描画を行う。GxPrimitiveMaterial::_handler コールバックのみ実行する
Definition GxPrimitiveContext.cpp:1667
GX_FORCE_INLINE void draw3DLineG(const GxVector3 &position0, const GxVector3 &position1, const GxColor color0, const GxColor color1, const GxPrimitiveMaterial &material, u32 viewFlag=0xFFFFFFFF)
3Dライン(Gradation)
Definition GxPrimitiveContext.inl:445
GxPrimitiveVertex * draw2DTriangleFan(u32 vertexCount, const GxPrimitiveMaterial &material, f32 priority)
2Dトライアングルファン
Definition GxPrimitiveContext.cpp:350
GxPrimitiveVertex * draw2DLineList(u32 vertexCount, const GxPrimitiveMaterial &material, f32 priority)
2Dラインリスト
Definition GxPrimitiveContext.cpp:214
GxPrimitiveVertex * draw3DTriangleList(u32 vertexCount, const GxPrimitiveMaterial &material, const GxVector3 &priorityPoint, u32 viewFlag=0xFFFFFFFF)
3Dトライアングルリスト
Definition GxPrimitiveContext.cpp:958
GX_FORCE_INLINE void draw3DSphere(const GxShapeSphere &sphere, const GxColor color, u32 divide, PRIMITIVE_FILL_MODE fillMode, const GxPrimitiveMaterial &material, u32 viewFlag=0xFFFFFFFF)
3D球(形状指定)
Definition GxPrimitiveContext.inl:575
GX_FORCE_INLINE void draw3DPoint(const GxVector3 &position, const GxColor color, const GxPrimitiveMaterial &material, u32 viewFlag=0xFFFFFFFF)
3D点
Definition GxPrimitiveContext.inl:412
GX_FORCE_INLINE void draw3DArrowF(const GxVector3 &position0, const GxVector3 &position1, const GxColor color, PRIMITIVE_FILL_MODE fillMode, const GxPrimitiveMaterial &material, f32 arrowRate=0.2f, f32 arrowRadian=DEGREE_TO_RADIAN(30.0f), u32 viewFlag=0xFFFFFFFF)
3Dベクトル(Flat)
Definition GxPrimitiveContext.inl:519
GxPrimitiveVertex * draw2DLineStrip(u32 vertexCount, const GxPrimitiveMaterial &material, f32 priority)
2Dラインストリップ
Definition GxPrimitiveContext.cpp:248
void draw3DTriangleG(const GxVector3 &position0, const GxVector3 &position1, const GxVector3 &position2, const GxColor color0, const GxColor color1, const GxColor color2, PRIMITIVE_FILL_MODE fillMode, const GxPrimitiveMaterial &material, u32 viewFlag=0xFFFFFFFF)
3D三角形(Gradation)
Definition GxPrimitiveContext.cpp:1102
GxPrimitiveVertex * draw3DTriangleStrip(u32 vertexCount, const GxPrimitiveMaterial &material, const GxVector3 &priorityPoint, u32 viewFlag=0xFFFFFFFF)
3Dトライアングルストリップ
Definition GxPrimitiveContext.cpp:993
GxPrimitiveVertex * draw2DQuadList(u32 vertexCount, const GxPrimitiveMaterial &material, f32 priority)
2Dクアッドリスト
Definition GxPrimitiveContext.cpp:384
初期化クラス
Definition GxSysPrimitive.h:20
constexpr u32 getVertexBufferSize3D(void) const
3D頂点バッファサイズ取得
Definition GxSysPrimitive.h:98
GxPrimitiveInitialInformation(void)
コンストラクタ
Definition GxSysPrimitive.h:38
GxPoint2 _offset
自動スケーリング後のオフセット値
Definition GxSysPrimitive.h:122
constexpr void setMaxProjectionMatrix2DIdCount(u32 count)
2D projection のスタックサイズ
Definition GxSysPrimitive.h:90
GX_FORCE_INLINE void setManagerSize2D(u32 bufferSize, u32 vertexBufferSize, u32 indexBufferSize, b32 use32BitIndex=false)
2D描画マネージャサイズ割り当て
Definition GxSysPrimitive.h:81
constexpr u32 getIndexBufferSize2D(void) const
2Dインデックスバッファサイズ取得
Definition GxSysPrimitive.h:106
constexpr u32 getIndexBufferSize3D(void) const
3Dインデックスバッファサイズ取得
Definition GxSysPrimitive.h:100
GX_FORCE_INLINE b32 isUseVirtualResolutionHudSet(void) const
HUDの仮想解像度使用判定
Definition GxSysPrimitive.h:114
GX_FORCE_INLINE b32 isUse32BitIndex2D(void) const
2D 32bitインデックス使用判定
Definition GxSysPrimitive.h:112
GX_FORCE_INLINE void setUseVirtualResolutionHudSet(b32 state)
HUDセットで仮想解像度を使うか (常に true になるよう廃止予定)
Definition GxSysPrimitive.h:93
b32 _renderToBackBuffer2D
2Dはバックバッファに描画するか?デフォルトは true
Definition GxSysPrimitive.h:124
b32 _useAutoClearZMask2D
2D描画前に深度マスク(深度バッファ)の全画面クリアするか?
Definition GxSysPrimitive.h:123
constexpr u32 getBufferSize2D(void) const
2Dバッファサイズ取得
Definition GxSysPrimitive.h:102
constexpr u32 getBufferSize3D(void) const
3Dバッファサイズ取得
Definition GxSysPrimitive.h:96
GX_FORCE_INLINE b32 isUse32BitIndex3D(void) const
3D 32bitインデックス使用判定
Definition GxSysPrimitive.h:110
constexpr u32 getMaxProjectionMatrix2DIdCount(void) const
2D射影マトリクスID最大数を取得
Definition GxSysPrimitive.h:108
constexpr u32 getVertexBufferSize2D(void) const
2D頂点バッファサイズ取得
Definition GxSysPrimitive.h:104
GX_FORCE_INLINE void setManagerSize3D(u32 bufferSize, u32 vertexBufferSize, u32 indexBufferSize, b32 use32BitIndex=false)
3D描画マネージャサイズ割り当て
Definition GxSysPrimitive.h:72
プリミティブの描画発行単位を管理します。
Definition GxPrimitiveManager.h:23
GX_FORCE_INLINE void setOutputOffset2D(const GxPoint2 &offset)
2Dプリミティブ全体の位置オフセットを設定
Definition GxPrimitiveManager.h:249
u32 allocateProjectionMatrix2DId(void)
2Dプリミティブの射影行列のIDを予約する
Definition GxPrimitiveManager.cpp:560
const GxMatrix44 & getProjectionMatrix2D(u32 projectionId) const
2Dプリミティブの射影行列を取得する
Definition GxPrimitiveManager.cpp:547
void freeProjectionMatrix2DId(u32 projectionId)
2Dプリミティブの射影行列のIDを返却する
Definition GxPrimitiveManager.cpp:581
void setProjectionMatrix2D(u32 projectionId, const GxMatrix44 &matrix)
2Dプリミティブの射影行列を設定する
Definition GxPrimitiveManager.cpp:533
GX_FORCE_INLINE const GxPoint2 & getOutputOffset2D(void) const
2Dプリミティブ全体の位置オフセットを取得
Definition GxPrimitiveManager.h:247
プロパティクラス
Definition GxProperty.h:48
実行時型情報クラス
Definition GxRtti.h:154
箱形状クラス
Definition GxShape.h:333
球形状クラス
Definition GxShape.h:240
システム基底クラス
Definition GxSysBase.h:18
プリミティブ描画システムクラス
Definition GxSysPrimitive.h:144
void terminate(void) override
終了処理
Definition GxSysPrimitive.cpp:131
void draw2DRectTextureG(const GxRectF &rect, f32 z, const GxColor color0, const GxColor color1, const GxColor color2, const GxColor color3, const GxFloat2 &uv0, const GxFloat2 &uv1, const GxPrimitiveMaterial &material=GxPrimitiveMaterial::DEFAULT_2D, const GxFloat2 &uvSecond0=GxFloat2(0.f, 0.f), const GxFloat2 &uvSecond1=GxFloat2(1.f, 1.f), b32 useAutoScale=true)
2Dテクスチャ付き四角形(Gradation)
Definition GxSysPrimitive.cpp:604
virtual void beginPrimitiveRender(void)
描画の開始
Definition GxSysPrimitive.cpp:205
b32 initialize(const GxClassBase *pInitialInformation) override
初期化
Definition GxSysPrimitive.cpp:146
GX_FORCE_INLINE GxPrimitiveVertex * draw2DLineStrip(u32 vertexCount, const GxPrimitiveMaterial &material, f32 priority)
2Dラインストリップ
Definition GxSysPrimitive.h:244
constexpr u32 getSubPriority3D(void) const
3Dサブプライオリティの取得
Definition GxSysPrimitive.h:205
GX_FORCE_INLINE void freeProjectionMatrix2DId(u32 projectionId)
2Dプリミティブの射影行列のIDを返却する
Definition GxSysPrimitive.h:319
void draw2DTriangleG(const GxVector3 &position0, const GxVector3 &position1, const GxVector3 &position2, const GxColor color0, const GxColor color1, const GxColor color2, PRIMITIVE_FILL_MODE fillMode=PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial &material=GxPrimitiveMaterial::DEFAULT_2D, b32 useAutoScale=true)
2D三角形(Gradation)
Definition GxSysPrimitive.cpp:502
void draw2DLineF(const GxVector3 &position0, const GxVector3 &position1, const GxColor color, const GxPrimitiveMaterial &material=GxPrimitiveMaterial::DEFAULT_2D, b32 useAutoScale=true)
2Dライン(Flat)
Definition GxSysPrimitive.cpp:425
void draw2DFanF(const GxVector3 &center, f32 radius, f32 degreeStart, f32 degreeDelta, const GxColor color, u32 divide=12, PRIMITIVE_FILL_MODE fillMode=PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial &material=GxPrimitiveMaterial::DEFAULT_2D, b32 useAutoScale=true)
2D扇形(Flat)
Definition GxSysPrimitive.cpp:769
GX_FORCE_INLINE b32 isUseVirtualResolutionHudSet(void) const
HUDセットに仮想解像度を使うかを取得
Definition GxSysPrimitive.h:209
void draw2DCircleG(const GxVector3 &position, f32 radius, const GxColor color0, const GxColor color1, u32 divide=36, PRIMITIVE_FILL_MODE fillMode=PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial &material=GxPrimitiveMaterial::DEFAULT_2D, b32 useAutoScale=true)
2D円(Gradation)
Definition GxSysPrimitive.cpp:752
void draw2DPolyLineF(const GxVector3 &position0, const GxVector3 &position1, u32 width, const GxColor color, PRIMITIVE_FILL_MODE fillMode=PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial &material=GxPrimitiveMaterial::DEFAULT_2D, b32 useAutoScale=true)
2Dポリライン(Flat)
Definition GxSysPrimitive.cpp:454
GX_FORCE_INLINE void draw3DQuadTextureF(const GxVector3 &position0, const GxVector3 &position1, const GxVector3 &position2, const GxVector3 &position3, const GxColor color, GxFloat2 &uv0, GxFloat2 &uv1, GxFloat2 &uv2, GxFloat2 &uv3, PRIMITIVE_FILL_MODE fillMode=PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial &material=GxPrimitiveMaterial::DEFAULT_3D, u32 viewFlag=0xFFFFFFFF)
3Dテクスチャ付き四角形(Flat)
Definition GxSysPrimitive.h:350
GX_FORCE_INLINE b32 isRenderToBackBuffer2D(void) const
2Dはバックバッファに描画するか否か判定
Definition GxSysPrimitive.h:225
GX_FORCE_INLINE void draw3DMatrix(const GxMatrixAffine &matrix, f32 size, PRIMITIVE_FILL_MODE fillMode=PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial &material=GxPrimitiveMaterial::DEFAULT_3D, f32 arrowRate=0.2f, f32 arrowRadius=DEGREE_TO_RADIAN(30.0f), u32 viewFlag=0xFFFFFFFF)
3Dマトリクス
Definition GxSysPrimitive.h:358
~GxSysPrimitive(void) override
デストラクタ
Definition GxSysPrimitive.h:163
void draw2DArrowG(const GxVector3 &position0, const GxVector3 &position1, const GxColor color0, const GxColor color1, PRIMITIVE_FILL_MODE fillMode=PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial &material=GxPrimitiveMaterial::DEFAULT_2D, f32 arrowRate=0.2f, f32 arrowRadius=DEGREE_TO_RADIAN(30.0f), b32 useAutoScale=true)
2Dベクトル(Gradation)
Definition GxSysPrimitive.cpp:820
GX_FORCE_INLINE void draw3DCustom(const GxPrimitiveMaterial &material, const GxVector3 &priorityPoint, u32 viewFlag=0xFFFFFFFF)
カスタム3D描画を行う。GxPrimitiveMaterial::_handler コールバックのみ実行する
Definition GxSysPrimitive.h:373
GX_FORCE_INLINE void setProjectionMatrix2D(u32 projectionId, const GxMatrix44 &matrix)
2D射影行列設定
Definition GxSysPrimitive.h:313
void draw2DLineG(const GxVector3 &position0, const GxVector3 &position1, const GxColor color0, const GxColor color1, const GxPrimitiveMaterial &material=GxPrimitiveMaterial::DEFAULT_2D, b32 useAutoScale=true)
2Dライン(Gradation)
Definition GxSysPrimitive.cpp:439
GX_FORCE_INLINE void draw3DSphere(const GxMatrixAffine &coord, f32 radius, const GxColor color, u32 divide=12, PRIMITIVE_FILL_MODE fillMode=PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial &material=GxPrimitiveMaterial::DEFAULT_3D, u32 viewFlag=0xFFFFFFFF)
3D球(行列指定)
Definition GxSysPrimitive.h:366
virtual b32 initializeThreadLocalStorage(u32 workerThreadIndex)
スレッドローカルストレージ初期化関数
Definition GxSysPrimitive.cpp:189
GX_FORCE_INLINE GxPrimitiveVertex * draw2DTriangleFan(u32 vertexCount, const GxPrimitiveMaterial &material, f32 priority)
2Dトライアングルファン
Definition GxSysPrimitive.h:250
GxSysPrimitive(void)
コンストラクタ
Definition GxSysPrimitive.cpp:117
GX_FORCE_INLINE const GxPoint2 & getOutputOffset2D(void) const
2Dプリミティブ全体の位置オフセットを取得
Definition GxSysPrimitive.h:211
GX_FORCE_INLINE u32 allocateProjectionMatrix2DId(void)
2Dプリミティブの射影行列のIDを予約する
Definition GxSysPrimitive.h:317
GX_FORCE_INLINE void draw3DSphere(const GxShapeSphere &sphere, const GxColor color, u32 divide=12, PRIMITIVE_FILL_MODE fillMode=PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial &material=GxPrimitiveMaterial::DEFAULT_3D, u32 viewFlag=0xFFFFFFFF)
3D球(形状指定)
Definition GxSysPrimitive.h:362
GxSize getResolution2D(void) const
2D描画解像度の取得
Definition GxSysPrimitive.cpp:381
GX_FORCE_INLINE void draw3DQuadF(const GxVector3 &position0, const GxVector3 &position1, const GxVector3 &position2, const GxVector3 &position3, const GxColor color, PRIMITIVE_FILL_MODE fillMode=PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial &material=GxPrimitiveMaterial::DEFAULT_3D, u32 viewFlag=0xFFFFFFFF)
3D四角形(Flat)
Definition GxSysPrimitive.h:346
GX_FORCE_INLINE GxPrimitiveVertex * draw3DTriangleList(u32 vertexCount, const GxPrimitiveMaterial &material, const GxVector3 &priorityPoint, u32 viewFlag=0xFFFFFFFF)
3Dトライアングルリスト
Definition GxSysPrimitive.h:327
constexpr void setSubPriority2D(u32 subPriority)
2Dサブプライオリティの設定
Definition GxSysPrimitive.h:199
GX_FORCE_INLINE GxPrimitiveVertex * draw3DQuadList(u32 vertexCount, const GxPrimitiveMaterial &material, const GxVector3 &priorityPoint, u32 viewFlag=0xFFFFFFFF)
3Dクアッドリスト
Definition GxSysPrimitive.h:333
GX_FORCE_INLINE void draw3DLineG(const GxVector3 &position0, const GxVector3 &position1, const GxColor color0, const GxColor color1, const GxPrimitiveMaterial &material=GxPrimitiveMaterial::DEFAULT_3D, u32 viewFlag=0xFFFFFFFF)
3Dライン(Gradation)
Definition GxSysPrimitive.h:340
GxRect getSafetyArea(void) const
2Dセーフティエリアの取得
Definition GxSysPrimitive.cpp:390
GX_FORCE_INLINE void draw3DQuadG(const GxVector3 &position0, const GxVector3 &position1, const GxVector3 &position2, const GxVector3 &position3, const GxColor color0, const GxColor color1, const GxColor color2, const GxColor color3, PRIMITIVE_FILL_MODE fillMode=PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial &material=GxPrimitiveMaterial::DEFAULT_3D, u32 viewFlag=0xFFFFFFFF)
3D四角形(Gradation)
Definition GxSysPrimitive.h:348
void draw2DRectTextureF(const GxRectF &rect, f32 z, const GxColor color, const GxFloat2 &uv0, const GxFloat2 &uv1, const GxPrimitiveMaterial &material=GxPrimitiveMaterial::DEFAULT_2D, const GxFloat2 &uvSecond0=GxFloat2(0.f, 0.f), const GxFloat2 &uvSecond1=GxFloat2(1.f, 1.f), b32 useAutoScale=true)
2Dテクスチャ付き四角形(Flat)
Definition GxSysPrimitive.cpp:566
GX_FORCE_INLINE void set2DScissorRect(const GxRect &rect, f32 priority, u32 viewFlag=0xFFFFFFFF)
シザリング矩形の設定
Definition GxSysPrimitive.h:222
GX_FORCE_INLINE void draw3DMatrix(const GxVector3 &position, f32 size, PRIMITIVE_FILL_MODE fillMode=PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial &material=GxPrimitiveMaterial::DEFAULT_3D, f32 arrowRate=0.2f, f32 arrowRadius=DEGREE_TO_RADIAN(30.0f), u32 viewFlag=0xFFFFFFFF)
3Dマトリクス(ポジションのみ)
Definition GxSysPrimitive.h:360
GX_FORCE_INLINE void draw3DTriangleG(const GxVector3 &position0, const GxVector3 &position1, const GxVector3 &position2, const GxColor color0, const GxColor color1, const GxColor color2, PRIMITIVE_FILL_MODE fillMode=PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial &material=GxPrimitiveMaterial::DEFAULT_3D, u32 viewFlag=0xFFFFFFFF)
3D三角形(Gradation)
Definition GxSysPrimitive.h:344
GX_FORCE_INLINE const GxMatrix44 & getProjectionMatrix2D(u32 projectionId) const
2D射影行列取得
Definition GxSysPrimitive.h:315
GX_FORCE_INLINE GxPrimitiveVertex * draw3DLineList(u32 vertexCount, const GxPrimitiveMaterial &material, const GxVector3 &priorityPoint, u32 viewFlag=0xFFFFFFFF)
3Dラインリスト
Definition GxSysPrimitive.h:323
void draw2DPolyLineG(const GxVector3 &position0, const GxVector3 &position1, u32 width, const GxColor color0, const GxColor color1, PRIMITIVE_FILL_MODE fillMode=PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial &material=GxPrimitiveMaterial::DEFAULT_2D, b32 useAutoScale=true)
2Dポリライン(Gradation)
Definition GxSysPrimitive.cpp:470
GX_FORCE_INLINE GxPrimitiveVertex * draw2DTriangleList(u32 vertexCount, const GxPrimitiveMaterial &material, f32 priority)
2Dトライアングルリスト
Definition GxSysPrimitive.h:246
void draw2DPoint(const GxVector3 &position, const GxColor color, const GxPrimitiveMaterial &material=GxPrimitiveMaterial::DEFAULT_2D, b32 useAutoScale=true)
2D点
Definition GxSysPrimitive.cpp:412
GX_FORCE_INLINE void draw3DPoint(const GxVector3 &position, const GxColor color, const GxPrimitiveMaterial &material=GxPrimitiveMaterial::DEFAULT_3D, u32 viewFlag=0xFFFFFFFF)
3D点
Definition GxSysPrimitive.h:336
GX_FORCE_INLINE void setUseVirtualResolutionHudSet(b32 state)
HUDセットに仮想解像度を使うかの設定 (常に true を使うように廃止予定)
Definition GxSysPrimitive.h:207
constexpr void setSubPriority3D(u32 subPriority)
3Dサブプライオリティの設定
Definition GxSysPrimitive.h:203
void draw2DRectF(const GxRectF &rect, f32 z, const GxColor color, PRIMITIVE_FILL_MODE fillMode=PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial &material=GxPrimitiveMaterial::DEFAULT_2D, b32 useAutoScale=true)
2D四角形(Flat)
Definition GxSysPrimitive.cpp:516
void draw2DRectG(const GxRectF &rect, f32 z, const GxColor color0, const GxColor color1, const GxColor color2, const GxColor color3, PRIMITIVE_FILL_MODE fillMode=PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial &material=GxPrimitiveMaterial::DEFAULT_2D, b32 useAutoScale=true)
2D四角形(Gradation)
Definition GxSysPrimitive.cpp:549
GX_FORCE_INLINE GxPrimitiveVertex * draw2DLineList(u32 vertexCount, const GxPrimitiveMaterial &material, f32 priority)
2Dラインリスト
Definition GxSysPrimitive.h:242
GX_FORCE_INLINE void draw3DQuadTextureG(const GxVector3 &position0, const GxVector3 &position1, const GxVector3 &position2, const GxVector3 &position3, const GxColor color0, const GxColor color1, const GxColor color2, const GxColor color3, GxFloat2 &uv0, GxFloat2 &uv1, GxFloat2 &uv2, GxFloat2 &uv3, PRIMITIVE_FILL_MODE fillMode=PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial &material=GxPrimitiveMaterial::DEFAULT_3D, u32 viewFlag=0xFFFFFFFF)
3Dテクスチャ付き四角形(Gradation)
Definition GxSysPrimitive.h:352
GX_FORCE_INLINE void draw3DBox(const GxShapeBox &box, const GxColor color, PRIMITIVE_FILL_MODE fillMode=PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial &material=GxPrimitiveMaterial::DEFAULT_3D, u32 viewFlag=0xFFFFFFFF)
3D箱(形状指定)
Definition GxSysPrimitive.h:368
void draw2DTriangleF(const GxVector3 &position0, const GxVector3 &position1, const GxVector3 &position2, const GxColor color, PRIMITIVE_FILL_MODE fillMode=PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial &material=GxPrimitiveMaterial::DEFAULT_2D, b32 useAutoScale=true)
2D三角形(Flat)
Definition GxSysPrimitive.cpp:485
GX_FORCE_INLINE GxPrimitiveVertex * draw3DLineStrip(u32 vertexCount, const GxPrimitiveMaterial &material, const GxVector3 &priorityPoint, u32 viewFlag=0xFFFFFFFF)
3Dラインストリップ
Definition GxSysPrimitive.h:325
void draw2DFanG(const GxVector3 &center, f32 radius, f32 degreeStart, f32 degreeDelta, const GxColor color0, const GxColor color1, u32 divide, PRIMITIVE_FILL_MODE fillMode=PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial &material=GxPrimitiveMaterial::DEFAULT_2D, b32 useAutoScale=true)
2D扇形(Gradation)
Definition GxSysPrimitive.cpp:787
void draw2DArrowF(const GxVector3 &position0, const GxVector3 &position1, const GxColor color, PRIMITIVE_FILL_MODE fillMode=PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial &material=GxPrimitiveMaterial::DEFAULT_2D, f32 arrowRate=0.2f, f32 arrowRadius=DEGREE_TO_RADIAN(30.0f), b32 useAutoScale=true)
2Dベクトル(Flat)
Definition GxSysPrimitive.cpp:803
GX_FORCE_INLINE GxPrimitiveVertex * draw2DTriangleStrip(u32 vertexCount, const GxPrimitiveMaterial &material, f32 priority)
2Dトライアングルストリップ
Definition GxSysPrimitive.h:248
GX_FORCE_INLINE void draw3DTriangleF(const GxVector3 &position0, const GxVector3 &position1, const GxVector3 &position2, const GxColor color, PRIMITIVE_FILL_MODE fillMode=PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial &material=GxPrimitiveMaterial::DEFAULT_3D, u32 viewFlag=0xFFFFFFFF)
3D三角形(Flat)
Definition GxSysPrimitive.h:342
GX_FORCE_INLINE void draw2DCustom(const GxPrimitiveMaterial &material, f32 priority)
カスタム2D描画を行う。GxPrimitiveMaterial::_handler コールバックのみ実行する
Definition GxSysPrimitive.h:310
GX_FORCE_INLINE void draw3DBox(const GxMatrixAffine &coord, const GxVector3 &extent, const GxColor color, PRIMITIVE_FILL_MODE fillMode=PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial &material=GxPrimitiveMaterial::DEFAULT_3D, u32 viewFlag=0xFFFFFFFF)
3D箱(行列指定)
Definition GxSysPrimitive.h:370
GX_FORCE_INLINE void draw3DArrowF(const GxVector3 &position0, const GxVector3 &position1, const GxColor color, PRIMITIVE_FILL_MODE fillMode=PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial &material=GxPrimitiveMaterial::DEFAULT_3D, f32 arrowRate=0.2f, f32 arrowRadius=DEGREE_TO_RADIAN(30.0f), u32 viewFlag=0xFFFFFFFF)
3Dベクトル(Flat)
Definition GxSysPrimitive.h:354
virtual void endPrimitiveRender(void)
描画の終了
Definition GxSysPrimitive.cpp:214
GX_FORCE_INLINE void draw3DArrowG(const GxVector3 &position0, const GxVector3 &position1, const GxColor color0, const GxColor color1, PRIMITIVE_FILL_MODE fillMode=PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial &material=GxPrimitiveMaterial::DEFAULT_3D, f32 arrowRate=0.2f, f32 arrowRadius=DEGREE_TO_RADIAN(30.0f), u32 viewFlag=0xFFFFFFFF)
3Dベクトル(Gradation)
Definition GxSysPrimitive.h:356
GX_FORCE_INLINE GxPrimitiveVertex * draw2DQuadList(u32 vertexCount, const GxPrimitiveMaterial &material, f32 priority)
2Dクアッドリスト
Definition GxSysPrimitive.h:252
void draw2DCircleF(const GxVector3 &position, f32 radius, const GxColor color, u32 divide=36, PRIMITIVE_FILL_MODE fillMode=PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial &material=GxPrimitiveMaterial::DEFAULT_2D, b32 useAutoScale=true)
2D円(Flat)
Definition GxSysPrimitive.cpp:736
constexpr u32 getSubPriority2D(void) const
2Dサブプライオリティの取得
Definition GxSysPrimitive.h:201
GX_FORCE_INLINE void draw3DSphere(const GxVector3 &center, f32 radius, const GxColor color, u32 divide=12, PRIMITIVE_FILL_MODE fillMode=PRIMITIVE_FILL_MODE::SOLID, const GxPrimitiveMaterial &material=GxPrimitiveMaterial::DEFAULT_3D, u32 viewFlag=0xFFFFFFFF)
3D球(ポジション指定)
Definition GxSysPrimitive.h:364
GX_FORCE_INLINE void draw3DLineF(const GxVector3 &position0, const GxVector3 &position1, const GxColor color, const GxPrimitiveMaterial &material=GxPrimitiveMaterial::DEFAULT_3D, u32 viewFlag=0xFFFFFFFF)
3Dライン(Flat)
Definition GxSysPrimitive.h:338
GX_FORCE_INLINE GxPrimitiveVertex * draw3DTriangleStrip(u32 vertexCount, const GxPrimitiveMaterial &material, const GxVector3 &priorityPoint, u32 viewFlag=0xFFFFFFFF)
3Dトライアングルストリップ
Definition GxSysPrimitive.h:329
GX_FORCE_INLINE GxPrimitiveVertex * draw3DTriangleFan(u32 vertexCount, const GxPrimitiveMaterial &material, const GxVector3 &priorityPoint, u32 viewFlag=0xFFFFFFFF)
3Dトライアングルファン
Definition GxSysPrimitive.h:331
void draw2DRectTextureG(const GxRectF &rect, f32 positionZ, f32 z, const GxVector2 &rotateCenter, const f32 rotateRadian, const GxColor color0, const GxColor color1, const GxColor color2, const GxColor color3, const GxFloat2 &uv0, const GxFloat2 &uv1, const GxPrimitiveMaterial &material=GxPrimitiveMaterial::DEFAULT_2D, const GxFloat2 &uvSecond0=GxFloat2(0.f, 0.f), const GxFloat2 &uvSecond1=GxFloat2(1.f, 1.f), b32 useAutoScale=true)
2Dテクスチャ付き回転あり四角形(Z指定あり、Gradation)
GxVector2 transformWorldTo2D(const GxVector3 &worldPosision) const
ワールド座標→2D座標
Definition GxSysPrimitive.cpp:400
GX_FORCE_INLINE void setOutputOffset2D(const GxPoint2 &offset)
2Dプリミティブ全体の位置オフセットを設定
Definition GxSysPrimitive.h:213
static GxThread * getCurrentThread(void)
カレントスレッドを取得
Definition GxThread.cpp:505
constexpr u32 getIndex(void) const
インデックスを取得
Definition GxThread.h:251
static constexpr u32 THREAD_MAX
スレッドの最大数
Definition GxThread.h:188
シングルトン基礎クラス
Definition GxSingleton.h:19
static constexpr GxSysPrimitive * getSingletonPointer(void)
Definition GxSingleton.h:59
Definition GxColor.h:21
2次元浮動小数点数クラス
Definition GxStruct.h:22
4×4行列(行優先)
Definition GxMatrix.h:607
アフィン変換行列(行優先)
Definition GxMatrix.h:330
座標
Definition GxStruct.h:867
プリミティブマテリアル
Definition GxPrimitive.h:103
static const GxPrimitiveMaterial DEFAULT_3D
3Dデフォルト
Definition GxPrimitive.h:122
static const GxPrimitiveMaterial DEFAULT_2D
2Dデフォルト
Definition GxPrimitive.h:136
プリミティブ頂点
Definition GxPrimitive.h:20
実数矩形
Definition GxStruct.h:1100
矩形
Definition GxStruct.h:951
サイズ
Definition GxStruct.h:730
2次元ベクトル
Definition GxVector.h:34
3次元ベクトル
Definition GxVector.h:245
32bitブーリアン
Definition GxDefine.h:173