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