17 virtual void Bind()
override;
18 virtual void Unbind()
override;
21 virtual bool RemoveTextureFromArray(
const LRendererID TextureID)
override;
23 FORCEINLINE
virtual const LRendererID GetRendererID()
const override
28 FORCEINLINE
virtual LRendererID& GetRendererID()
override
33 FORCEINLINE
virtual int GetTextureSlot()
const override
35 return Specification.TextureSlot;
43 FORCEINLINE
virtual const EArrayTextureDimension GetDimension()
const override
45 return Specification.Dimension;
48 FORCEINLINE
virtual int GetWidth()
const override {
return m_Width; }
49 FORCEINLINE
virtual int GetHeight()
const override {
return m_Height; }
50 FORCEINLINE
virtual void SetWidth(
const int NewWidth)
override { m_Width = NewWidth; }
51 FORCEINLINE
virtual void SetHeight(
const int NewHeight)
override { m_Height = NewHeight; }
55 return (TextureIDSet.find(Texture->GetRendererID()) != TextureIDSet.end());
60 if (
auto Iter = IndexCache.find(TextureID); Iter != IndexCache.end())
62 return (Textures.at((*Iter).second));
65 LK_ASSERT(
false,
"GetTextureWithID failed with ID: {}", TextureID);
71 for (
int i = 0; i < Textures.size(); i++)
73 if (Textures[i]->GetRendererID() == Texture->GetRendererID())
83 static constexpr int MaxTexturesPerArray = 32;
91 std::deque<TObjectPtr<LTexture>> Textures{};
92 std::unordered_map<LRendererID, int> IndexCache{};
93 std::unordered_set<LRendererID> TextureIDSet{};
Definition ArrayTexture.h:10
Definition OpenGLArrayTexture.h:11
Definition ArrayTextureSpecification.h:15