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 MCAPI_C void _allocateTexture();
36
37 MCAPI_C bool _tryCreateAtlasUnderMax(::std::vector<::cg::AtlasCreationTile> const& inTiles, uint maxArea);
38
39 MCAPI_C void createAtlasForTiles(
40 ::std::vector<::cg::AtlasCreationTile> const& inTiles,
41 uint maxArea,
42 uint padSize,
43 ::cg::MipMapSupport mipMapSupport,
44 uint maxMips
45 );
46
47 MCAPI_C void updateTextureAtUVs(
48 ::cg::TextureAtlasTileUVs const& inUVs,
49 ::cg::ImageBuffer const* const srcImage,
50 uint mipLevel,
51 ::mce::Color const& defaultColor,
52 bool isQuad,
53 bool isAdditive,
54 bool applyTint,
55 ::cg::ImageBuffer const* const srcImageTint,
56 bool multiChannelTint,
57 ::TintMapColor const& multiChannelTintBaseColor,
58 ::TintMapColor const& multiChannelTintColor,
59 ::mce::Color const& singleChannelTintColor,
60 bool applyOverlay,
61 ::mce::Color const& overlayColor,
62 bool fadeMip,
63 float fadeMipAmount,
64 ::mce::Color const& fadeMipColor
65 );
66 // NOLINTEND
67
68public:
69 // static functions
70 // NOLINTBEGIN
71 MCAPI_C static void _readTexture(
72 ::glm::vec<4, uchar>& color,
73 ::glm::vec2 const& uv,
74 ::cg::ImageBuffer const& textureData,
75 uint textureDataStride,
76 ::glm::ivec2 const& maxDimensions
77 );
78
79 MCAPI_C static bool _tryCreateUVs(
80 ::std::vector<::cg::AtlasCreationTile> const& inTiles,
81 uint width,
82 uint height,
83 uint padSize,
84 ::std::vector<::cg::TextureAtlasTileUVs>& outTileUvs,
85 uint& outMaxWidth,
86 uint& outMaxHeight
87 );
88 // NOLINTEND
89};
90
91} // 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