LeviLamina
Loading...
Searching...
No Matches
CaptureImpl.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
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"
13
14// auto generated forward declare list
15// clang-format off
16namespace GeometryAtlas { class GeometryAtlasCapture; }
17namespace GeometryAtlas { class IAtlasTile; }
18namespace dragon::atlas { class IAtlasHandle; }
19namespace dragon::atlas { class IAtlasRenderOperations; }
20// clang-format on
21
22namespace GeometryAtlas {
23
24class CaptureImpl : public ::GeometryAtlas::IGeometryAtlasCaptureService {
25public:
26 // CaptureImpl inner types declare
27 // clang-format off
28 struct PendingAtlas;
29 struct PendingTile;
30 struct PendingRequest;
31 // clang-format on
32
33 // CaptureImpl inner types define
34 struct PendingAtlas {
35 public:
36 // member variables
37 // NOLINTBEGIN
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;
41 // NOLINTEND
42 };
43
44 struct PendingTile {
45 public:
46 // member variables
47 // NOLINTBEGIN
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;
50 // NOLINTEND
51 };
52
53 struct PendingRequest {
54 public:
55 // member variables
56 // NOLINTBEGIN
57 ::ll::TypedStorage<8, 40, ::Bedrock::Threading::AsyncPromise<::GeometryAtlas::GeometryAtlasCapture>> mPromise;
58 ::ll::TypedStorage<8, 24, ::std::vector<::GeometryAtlas::CaptureImpl::PendingTile>> mTiles;
59 ::ll::TypedStorage<
60 8,
61 48,
62 ::brstd::flat_map<
63 uint64,
64 ::std::shared_ptr<::GeometryAtlas::CaptureImpl::PendingAtlas>,
65 ::std::less<uint64>,
66 ::std::vector<uint64>,
67 ::std::vector<::std::shared_ptr<::GeometryAtlas::CaptureImpl::PendingAtlas>>>>
68 mAtlases;
69 ::ll::TypedStorage<8, 16, ::brstd::future<::cg::ImageBuffer>> mDragonFuture;
70 ::ll::TypedStorage<4, 4, ::brstd::once_flag> mAssignAtlases;
71 // NOLINTEND
72 };
73
74public:
75 // member variables
76 // NOLINTBEGIN
77 ::ll::TypedStorage<8, 24, ::std::vector<::std::unique_ptr<::GeometryAtlas::CaptureImpl::PendingRequest>>> mRequests;
78 // NOLINTEND
79
80public:
81 // virtual functions
82 // NOLINTBEGIN
83 virtual void processCaptureRequests(::dragon::atlas::IAtlasRenderOperations& renderOps) /*override*/;
84
85 virtual ::Bedrock::Threading::Async<::GeometryAtlas::GeometryAtlasCapture>
86 requestCapture(::std::vector<::std::shared_ptr<::GeometryAtlas::IAtlasTile>>&& tiles) /*override*/;
87 // NOLINTEND
88
89public:
90 // virtual function thunks
91 // NOLINTBEGIN
92 MCAPI void $processCaptureRequests(::dragon::atlas::IAtlasRenderOperations& renderOps);
93
94 MCAPI ::Bedrock::Threading::Async<::GeometryAtlas::GeometryAtlasCapture>
95 $requestCapture(::std::vector<::std::shared_ptr<::GeometryAtlas::IAtlasTile>>&& tiles);
96 // NOLINTEND
97
98public:
99 // vftables
100 // NOLINTBEGIN
101 MCNAPI static void** $vftable();
102 // NOLINTEND
103};
104
105} // namespace GeometryAtlas
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:19