LeviLamina
Loading...
Searching...
No Matches
ImageResource.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated forward declare list
6// clang-format off
7namespace cg { class ImageBuffer; }
8// clang-format on
9
10namespace cg {
11
13public:
14 // ImageResource inner types declare
15 // clang-format off
16 struct StreamedResource;
17 // clang-format on
18
19 // ImageResource inner types define
20 struct StreamedResource {
21 public:
22 // member variables
23 // NOLINTBEGIN
24 ::ll::TypedStorage<8, 24, ::std::vector<::cg::ImageBuffer>> mLoadedMipData;
25 ::ll::TypedStorage<8, 24, ::std::vector<uchar>> mLoadedMipLevels;
26 ::ll::TypedStorage<8, 8, uint64> mImageHash;
27 // NOLINTEND
28
29#ifdef LL_PLAT_S
30#else // LL_PLAT_C
31 public:
32 // prevent constructor by default
33 StreamedResource& operator=(StreamedResource const&);
34 StreamedResource(StreamedResource const&);
35 StreamedResource();
36
37#endif
38 public:
39 // member functions
40 // NOLINTBEGIN
41#ifdef LL_PLAT_C
42 MCAPI ::cg::ImageResource::StreamedResource& operator=(::cg::ImageResource::StreamedResource&&);
43
44 MCAPI ~StreamedResource();
45#endif
46 // NOLINTEND
47
48 public:
49 // destructor thunk
50 // NOLINTBEGIN
51#ifdef LL_PLAT_C
52 MCFOLD void $dtor();
53#endif
54 // NOLINTEND
55 };
56
57 using ImageData = ::std::variant<::std::vector<::cg::ImageBuffer>, ::cg::ImageResource::StreamedResource>;
58
59 using ImageHash = uint64;
60
61public:
62 // virtual functions
63 // NOLINTBEGIN
64 virtual ~ImageResource() = default;
65
66 virtual bool isEmpty() const = 0;
67
68 virtual bool isValid() const = 0;
69
70 virtual uint getSize() const = 0;
71
72 virtual ::cg::ImageBuffer const* getImage(uint mipLevel) const = 0;
73
74 virtual void addImage(::cg::ImageBuffer imageToAdd) = 0;
75
76 virtual void addImage(::std::shared_ptr<::cg::ImageResource> imageToAdd) = 0;
77
78 virtual ::std::variant<::std::vector<::cg::ImageBuffer>, ::cg::ImageResource::StreamedResource>
79 unwrapImageData() = 0;
80 // NOLINTEND
81
82public:
83 // virtual function thunks
84 // NOLINTBEGIN
85
86 // NOLINTEND
87};
88
89} // namespace cg
Definition ImageBuffer.h:16
Definition ImageResource.h:12
Definition ImageResource.h:20