LeviLamina
Loading...
Searching...
No Matches
ParticleRenderer.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/utility/buffer_span.h"
7
8// auto generated forward declare list
9// clang-format off
11class ScreenContext;
12class Vec3;
13// clang-format on
14
15class ParticleRenderer {
16public:
17 // ParticleRenderer inner types declare
18 // clang-format off
19 struct RenderBucketData;
20 // clang-format on
21
22 // ParticleRenderer inner types define
23 struct RenderBucketData {
24 public:
25 // member variables
26 // NOLINTBEGIN
27 ::ll::TypedStorage<8, 16, ::buffer_span<uint64>> mParticleIndexList;
28 ::ll::TypedStorage<8, 8, ::ScreenContext&> mScreenContext;
29 ::ll::TypedStorage<8, 8, ::Vec3 const&> mCameraTargetPos;
30 ::ll::TypedStorage<8, 8, ::Vec3 const&> mCameraPos;
31 ::ll::TypedStorage<8, 8, ::ParticleRenderData const&> mParticleRenderData;
32 ::ll::TypedStorage<8, 8, uint64> mTextureIdx;
33 ::ll::TypedStorage<8, 8, uint64> mMaterialIdx;
34 ::ll::TypedStorage<4, 4, uint> mParticleType;
35 // NOLINTEND
36
37 public:
38 // prevent constructor by default
39 RenderBucketData& operator=(RenderBucketData const&);
40 RenderBucketData(RenderBucketData const&);
41 RenderBucketData();
42 };
43
44 using ParticleId = uint;
45
46public:
47 // member variables
48 // NOLINTBEGIN
49 ::ll::TypedStorage<8, 64, ::std::unordered_map<uint, ::std::vector<uint64>>> mBuckets;
50 // NOLINTEND
51
52public:
53 // member functions
54 // NOLINTBEGIN
55 MCAPI void _renderBuckets(
56 ::ScreenContext& screenContext,
57 ::Vec3 const& cameraTargetPos,
58 ::Vec3 const& cameraPos,
59 ::ParticleRenderData const& particleRenderData
60 );
61
62 MCAPI void renderParticles(
63 ::ScreenContext& screenContext,
64 ::Vec3 const& cameraTargetPos,
65 ::Vec3 const& cameraPos,
66 ::ParticleRenderData const& particleRenderData
67 );
68 // NOLINTEND
69
70public:
71 // static variables
72 // NOLINTBEGIN
73 MCAPI static int64& mParticleRenderBucketCount();
74
75 MCAPI static int64& mParticleRenderParticleCount();
76 // NOLINTEND
77};
Definition ParticleRenderData.h:5
Definition ParticleRenderer.h:5
Definition ScreenContext.h:5
Definition Vec3.h:10
Definition ParticleRenderer.h:13