LeviLamina
Loading...
Searching...
No Matches
TextureAtlas.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core_graphics/MipMapSupport.h"
7#include "mc/deps/core_graphics/TextureDescription.h"
8
9// auto generated forward declare list
10// clang-format off
11class TintMapColor;
12namespace cg { class ImageBuffer; }
13namespace cg { struct AtlasCreationTile; }
14namespace cg { struct TextureAtlasTileUVs; }
15namespace mce { class Color; }
16// clang-format on
17
18namespace cg {
19
21public:
22 // member variables
23 // NOLINTBEGIN
24 ::ll::TypedStorage<8, 24, ::std::vector<::cg::ImageBuffer>> mAtlasMipStorage;
25 ::ll::TypedStorage<8, 24, ::std::vector<::cg::TextureAtlasTileUVs>> mTileUVs;
26 ::ll::TypedStorage<4, 24, ::cg::TextureDescription> mAtlasTextureDescription;
27 ::ll::TypedStorage<4, 4, uint> mPadSize;
28 ::ll::TypedStorage<4, 4, uint> mReductionMips;
29 ::ll::TypedStorage<8, 8, uint64> mStorageAllocated;
30 // NOLINTEND
31
32public:
33 // member functions
34 // NOLINTBEGIN
35#ifdef LL_PLAT_C
36 MCAPI void _allocateTexture();
37
38 MCAPI bool _tryCreateAtlasUnderMax(::std::vector<::cg::AtlasCreationTile> const& inTiles, uint maxArea);
39
40 MCAPI void createAtlasForTiles(
41 ::std::vector<::cg::AtlasCreationTile> const& inTiles,
42 uint maxArea,
43 uint padSize,
44 ::cg::MipMapSupport mipMapSupport,
45 uint maxMips
46 );
47
48 MCAPI void updateTextureAtUVs(
49 ::cg::TextureAtlasTileUVs const& inUVs,
50 ::cg::ImageBuffer const* const srcImage,
51 uint mipLevel,
52 ::mce::Color const& defaultColor,
53 bool isQuad,
54 bool isAdditive,
55 bool applyTint,
56 ::cg::ImageBuffer const* const srcImageTint,
57 bool multiChannelTint,
58 ::TintMapColor const& multiChannelTintBaseColor,
59 ::TintMapColor const& multiChannelTintColor,
60 ::mce::Color const& singleChannelTintColor,
61 bool applyOverlay,
62 ::mce::Color const& overlayColor,
63 bool fadeMip,
64 float fadeMipAmount,
65 ::mce::Color const& fadeMipColor
66 );
67#endif
68 // NOLINTEND
69
70public:
71 // static functions
72 // NOLINTBEGIN
73#ifdef LL_PLAT_C
74 MCAPI static void _readTexture(
75 ::glm::vec<4, uchar>& color,
76 ::glm::vec2 const& uv,
77 ::cg::ImageBuffer const& textureData,
78 uint textureDataStride,
79 ::glm::ivec2 const& maxDimensions
80 );
81
82 MCAPI static bool _tryCreateUVs(
83 ::std::vector<::cg::AtlasCreationTile> const& inTiles,
84 uint width,
85 uint height,
86 uint padSize,
87 ::std::vector<::cg::TextureAtlasTileUVs>& outTileUvs,
88 uint& outMaxWidth,
89 uint& outMaxHeight
90 );
91#endif
92 // NOLINTEND
93};
94
95} // namespace cg
Definition TintMapColor.h:8
Definition ImageBuffer.h:16
Definition TextureAtlas.h:20
Definition Color.h:13
Definition AtlasCreationTile.h:7
Definition TextureAtlasTileUVs.h:7