LeviLamina
Loading...
Searching...
No Matches
RenderChunkShared.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/client/renderer/chunks/VisibilityNode.h"
7#include "mc/deps/minecraft_renderer/framebuilder/dragon/RenderMetadata.h"
8#include "mc/world/level/ActorBlockSyncMessage.h"
9#include "mc/world/level/BlockActorBlockSyncMessage.h"
10#include "mc/world/level/BlockPos.h"
11
12// auto generated forward declare list
13// clang-format off
14class BlockSource;
17class SubChunkPos;
18class Vec3;
19namespace mce { struct BufferResourceService; }
20// clang-format on
21
23public:
24 // RenderChunkShared inner types declare
25 // clang-format off
28 // clang-format on
29
30 // RenderChunkShared inner types define
31 enum class VisibilityBuildState : int {
32 Dirty = 0,
33 Building = 1,
34 BuildingButDirty = 2,
35 Ready = 3,
36 };
37
38 enum class DataState : int {
39 WontLoad = 0,
40 Loading = 1,
41 Loaded = 2,
42 };
43
44 enum class BuildState : int {
45 Building = 0,
46 NotBuldingOrSorting = 1,
47 };
48
50 public:
51 // member variables
52 // NOLINTBEGIN
53 ::ll::TypedStorage<8, 16, ::ActorBlockSyncMessage> mEntityBlockSyncMessage;
54 ::ll::TypedStorage<1, 1, uchar> mRenderChunkGeometryVersion;
55 // NOLINTEND
56 };
57
59 public:
60 // member variables
61 // NOLINTBEGIN
62 ::ll::TypedStorage<4, 16, ::BlockActorBlockSyncMessage> mBlockEntityBlockSyncMessage;
63 ::ll::TypedStorage<1, 1, uchar> mRenderChunkGeometryVersion;
64 // NOLINTEND
65 };
66
67public:
68 // member variables
69 // NOLINTBEGIN
70 ::ll::TypedStorage<1, 1, bool> mEmpty;
71 ::ll::TypedStorage<1, 1, bool> mSkyLit;
72 ::ll::TypedStorage<1, 1, bool> mAllDark;
73 ::ll::TypedStorage<1, 1, bool> mImmediateChangeRequested;
74 ::ll::TypedStorage<4, 4, ::std::atomic<::RenderChunkShared::BuildState>> mBuildState;
75 ::ll::TypedStorage<4, 12, ::BlockPos> mCenter;
76 ::ll::TypedStorage<4, 12, ::BlockPos> mPosition;
77 ::ll::TypedStorage<4, 4, ::std::atomic<::RenderChunkShared::VisibilityBuildState>> mVisibilityBuildState;
78 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::RenderChunkGeometry>> mCurrentRenderChunkGeometry;
79 ::ll::TypedStorage<1, 6, ::VisibilityNode> mVisibility;
80 ::ll::TypedStorage<1, 1, bool> mVisibilityMatrixChanged;
81 ::ll::TypedStorage<1, 1, uchar> mVisibleCameraSet;
82 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::RenderChunkGeometry>> mBuildingRenderChunkGeometry;
83 ::ll::TypedStorage<8, 24, ::std::vector<::RenderChunkShared::ActorBlockSyncMessageWithVersion>>
84 mEntityBlockMessageList;
85 ::ll::TypedStorage<8, 24, ::std::vector<::RenderChunkShared::BlockActorBlockSyncMessageWithVersion>>
86 mBlockEntityBlockMessageList;
87 ::ll::TypedStorage<8, 64, ::dragon::RenderMetadata> mRenderMetadata;
88 // NOLINTEND
89
90public:
91 // prevent constructor by default
92 RenderChunkShared();
93
94public:
95 // member functions
96 // NOLINTBEGIN
97 MCAPI explicit RenderChunkShared(::SubChunkPos const& rcp);
98
99 MCAPI void
100 endRebuild(::RenderChunkBuilder& builder, ::mce::BufferResourceService& bufferResourceService, bool useSplitStream);
101
102 MCAPI ::std::vector<::BlockActorBlockSyncMessage> getAndPruneBlockEntityBlockSyncMessages(uchar version);
103
104 MCAPI ::std::vector<::ActorBlockSyncMessage> getAndPruneEntityBlockSyncMessages(uchar version);
105
106 MCAPI void rebuildVisbility(::BlockSource& region);
107
108 MCAPI void startRebuild(::RenderChunkBuilder& builder, ::Vec3 const& currentCameraPosition);
109
110 MCAPI ~RenderChunkShared();
111 // NOLINTEND
112
113public:
114 // constructor thunks
115 // NOLINTBEGIN
116 MCAPI void* $ctor(::SubChunkPos const& rcp);
117 // NOLINTEND
118
119public:
120 // destructor thunk
121 // NOLINTBEGIN
122 MCAPI void $dtor();
123 // NOLINTEND
124};
Definition BlockSource.h:71
Definition RenderChunkBuilder.h:5
Definition RenderChunkGeometry.h:5
Definition RenderChunkShared.h:5
Definition SubChunkPos.h:5
Definition Vec3.h:10
Definition BufferResourceService.h:7