3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/renderer/chunks/point_lighting/ILightLODResourceProvider.h"
7#include "mc/deps/minecraft_renderer/framebuilder/ShadowProbeDescription.h"
8#include "mc/deps/minecraft_renderer/resources/ClientTexture.h"
9#include "mc/world/level/BlockPos.h"
24namespace PointLighting {
27:
public ::PointLighting::ILightLODResourceProvider<::PointLighting::AnalyticLightResources> {
30 using ShadowProbeIndex = int;
32 using ProbeMap = ::std::unordered_map<::BlockPos, ::PointLighting::PointLightShadowProbe>;
37 ::ll::TypedStorage<8, 64, ::std::unordered_map<::BlockPos, ::PointLighting::PointLightShadowProbe>> mActiveProbes;
41 ::std::_List_iterator<::std::_List_val<
42 ::std::_List_simple_types<::std::pair<::BlockPos const, ::PointLighting::PointLightShadowProbe>>>>>
44 ::ll::TypedStorage<8, 24, ::std::vector<int>> mFreeShadowTextureIndices;
45 ::ll::TypedStorage<2, 2, ushort> mPointLightShadowTextureDimension;
46 ::ll::TypedStorage<2, 2, ushort> mPointLightShadowTextureArraySize;
47 ::ll::TypedStorage<8, 32, ::std::optional<::mce::ClientTexture>> mPointLightShadowTextureArray;
48 ::ll::TypedStorage<4, 4, uint> mCachedFrameCount;
49 ::ll::TypedStorage<1, 1, bool> mGeneratingProbeJobs;
50 ::ll::TypedStorage<8, 64, ::std::unordered_map<::BlockPos, uint>> mPartialProbeUpdates;
51 ::ll::TypedStorage<8, 24, ::std::vector<::AABB>> mBlockRegionChanges;
57 virtual ~PointLightShadowProbeManager() =
default;
59 virtual bool atCapacity() const ;
61 virtual
bool canReserve(::BlockPos const&) const ;
63 virtual
bool acquired(::BlockPos const&) const ;
67 ::mce::PointLightParameters const&,
69 ::PointLighting::AnalyticLightResources&
72 virtual
void release(::BlockPos const&, ::PointLighting::AnalyticLightResources&) ;
74 virtual
void advance(::BlockPos const&, ::PointLighting::AnalyticLightResources&,
float) ;
76 virtual
void finalize(::BlockPos const&, ::PointLighting::AnalyticLightResources&) ;
82 MCAPI ::std::vector<::mce::framebuilder::ShadowProbeDescription::ProbeUpdateWorkItem> _createFrameJobs();
84 MCAPI
void _createTextureArray(::mce::TextureResourceService& textureResourceService);
86 MCAPI ::mce::framebuilder::ShadowProbeDescription getShadowFrameData(
87 ::mce::framebuilder::PointLightShadowParameters const& shadowParameters,
88 ::glm::vec3 worldOrigin
91 MCAPI
void onBlockChanged(
92 ::BlockSource& source,
93 ::BlockPos const& blockPos,
95 ::Block const& oldBlock,
96 ::mce::framebuilder::PointLightShadowParameters const& shadowParameters
100 bool pointLightShadowsEnabled,
101 ::mce::framebuilder::PointLightShadowParameters const& shadowParameters,
102 ::mce::TextureResourceService& textureResourceService
Definition BlockSource.h:71
Definition PointLightShadowProbeManager.h:7
Definition PointLightShadowProbe.h:7
Definition AnalyticLightResources.h:7
Definition PointLightParameters.h:7
Definition TextureResourceService.h:7
Definition PointLightShadowParameters.h:7
Definition ShadowProbeDescription.h:7