3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/gui/geometry_atlas/IGeometryAtlasCaptureService.h"
7#include "mc/deps/core/threading/Async.h"
8#include "mc/deps/core/threading/AsyncPromise.h"
9#include "mc/deps/core_graphics/ImageBuffer.h"
10#include "mc/platform/brstd/flat_map.h"
11#include "mc/platform/brstd/future.h"
12#include "mc/platform/brstd/once_flag.h"
22namespace GeometryAtlas {
24class CaptureImpl :
public ::GeometryAtlas::IGeometryAtlasCaptureService {
38 ::ll::TypedStorage<8, 16, ::gsl::not_null<::std::shared_ptr<::dragon::atlas::IAtlasHandle>>> mAtlas;
39 ::ll::TypedStorage<8, 16, ::brstd::future<::cg::ImageBuffer>> mFuture;
40 ::ll::TypedStorage<8, 56, ::std::optional<::cg::ImageBuffer>> mBuffer;
48 ::ll::TypedStorage<8, 16, ::gsl::not_null<::std::shared_ptr<::GeometryAtlas::IAtlasTile>>> mTile;
49 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::GeometryAtlas::CaptureImpl::PendingAtlas>> mAtlas;
57 ::ll::TypedStorage<8, 40, ::Bedrock::Threading::AsyncPromise<::GeometryAtlas::GeometryAtlasCapture>> mPromise;
58 ::ll::TypedStorage<8, 24, ::std::vector<::GeometryAtlas::CaptureImpl::PendingTile>> mTiles;
64 ::std::shared_ptr<::GeometryAtlas::CaptureImpl::PendingAtlas>,
66 ::std::vector<uint64>,
67 ::std::vector<::std::shared_ptr<::GeometryAtlas::CaptureImpl::PendingAtlas>>>>
69 ::ll::TypedStorage<8, 16, ::brstd::future<::cg::ImageBuffer>> mDragonFuture;
70 ::ll::TypedStorage<4, 4, ::brstd::once_flag> mAssignAtlases;
77 ::ll::TypedStorage<8, 24, ::std::vector<::std::unique_ptr<::GeometryAtlas::CaptureImpl::PendingRequest>>> mRequests;
83 virtual void processCaptureRequests(::dragon::atlas::IAtlasRenderOperations& renderOps) ;
85 virtual ::Bedrock::Threading::Async<::GeometryAtlas::GeometryAtlasCapture>
86 requestCapture(::std::vector<::std::shared_ptr<::GeometryAtlas::IAtlasTile>>&& tiles) ;
92 MCAPI
void $processCaptureRequests(::dragon::atlas::IAtlasRenderOperations& renderOps);
94 MCAPI ::Bedrock::Threading::Async<::GeometryAtlas::GeometryAtlasCapture>
95 $requestCapture(::std::vector<::std::shared_ptr<::GeometryAtlas::IAtlasTile>>&& tiles);
Definition CaptureImpl.h:7
static MCAPI void ** $vftable()
Definition GeometryAtlasCapture.h:7
Definition IAtlasTile.h:7
Definition IAtlasHandle.h:7
Definition IAtlasRenderOperations.h:7
Definition CaptureImpl.h:17
Definition CaptureImpl.h:21
Definition CaptureImpl.h:19