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/client/particlesystem/particle/ParticleRenderData.h"
7#include "mc/deps/core/utility/buffer_span.h"
8
9// auto generated forward declare list
10// clang-format off
11class Matrix;
13class ScreenContext;
14class Tessellator;
15class Vec3;
16// clang-format on
17
18class ParticleRenderer {
19public:
20 // ParticleRenderer inner types declare
21 // clang-format off
22 struct RenderBucketData;
23 // clang-format on
24
25 // ParticleRenderer inner types define
26 struct RenderBucketData {
27 public:
28 // member variables
29 // NOLINTBEGIN
30 ::ll::TypedStorage<8, 16, ::buffer_span<uint64>> mParticleIndexList;
31 ::ll::TypedStorage<8, 8, ::ScreenContext&> mScreenContext;
32 ::ll::TypedStorage<8, 8, ::Vec3 const&> mCameraTargetPos;
33 ::ll::TypedStorage<8, 8, ::Vec3 const&> mCameraPos;
34 ::ll::TypedStorage<8, 8, ::ParticleRenderData const&> mParticleRenderData;
35 ::ll::TypedStorage<8, 8, uint64> mTextureIdx;
36 ::ll::TypedStorage<8, 8, uint64> mMaterialIdx;
37 ::ll::TypedStorage<4, 4, uint> mParticleType;
38 // NOLINTEND
39
40 public:
41 // prevent constructor by default
42 RenderBucketData& operator=(RenderBucketData const&);
43 RenderBucketData(RenderBucketData const&);
44 RenderBucketData();
45 };
46
47 using ParticleId = uint;
48
49public:
50 // member variables
51 // NOLINTBEGIN
52 ::ll::TypedStorage<8, 64, ::std::unordered_map<uint, ::std::vector<uint64>>> mBuckets;
53 // NOLINTEND
54
55public:
56 // member functions
57 // NOLINTBEGIN
58 MCAPI void _renderBucket(
59 ::ParticleRenderer::RenderBucketData const& bucketData,
60 ::Matrix const& rotMatXYZ,
61 ::Matrix const& rotMatY
62 );
63
64 MCAPI void _renderBuckets(
65 ::ScreenContext& screenContext,
66 ::Vec3 const& cameraTargetPos,
67 ::Vec3 const& cameraPos,
68 ::ParticleRenderData const& particleRenderData
69 );
70
71 MCAPI void _tesselateParticle(
72 ::Tessellator& t,
73 ::ParticleRenderData::ParticleData const& particleData,
74 ::Vec3 const& cameraTargetPos,
75 ::Vec3 const& cameraPos,
76 ::Matrix const& rotMatXYZ,
77 ::Matrix const& rotMatY,
78 bool includeRandomNumbersInNormalField
79 );
80
81 MCAPI ~ParticleRenderer();
82 // NOLINTEND
83
84public:
85 // static variables
86 // NOLINTBEGIN
87 MCAPI static int64& mParticleRenderBucketCount();
88
89 MCAPI static int64& mParticleRenderParticleCount();
90 // NOLINTEND
91
92public:
93 // destructor thunk
94 // NOLINTBEGIN
95 MCFOLD void $dtor();
96 // NOLINTEND
97};
Definition Matrix.h:5
Definition ParticleRenderData.h:5
Definition ParticleRenderer.h:5
Definition ScreenContext.h:5
Definition Tessellator.h:5
Definition Vec3.h:10
Definition ParticleRenderer.h:13