LkEngine 0.1.2
 
Loading...
Searching...
No Matches
ArrayTexture.h
1#pragma once
2
3#include "LkEngine/Renderer/Texture.h"
4#include "LkEngine/Renderer/ArrayTextureSpecification.h"
5
6
7namespace LkEngine {
8
9 class LArrayTexture : public LObject
10 {
11 public:
12 virtual ~LArrayTexture() = default;
13
14 virtual void Bind() = 0;
15 virtual void Unbind() = 0;
16
17 virtual void AddTextureToArray(const TObjectPtr<LTexture> InTexture) = 0;
18 virtual bool RemoveTextureFromArray(const LRendererID InTextureID) = 0;
19
20 virtual const LRendererID GetRendererID() const = 0;
21 virtual LRendererID& GetRendererID() = 0;
22
23 virtual int GetTextureSlot() const = 0;
24 virtual const EArrayTextureDimension GetDimension() const = 0;
25 virtual const FArrayTextureSpecification& GetSpecification() const = 0;
26
27 virtual int GetWidth() const = 0;
28 virtual int GetHeight() const = 0;
29 virtual void SetWidth(const int InWidth) = 0;
30 virtual void SetHeight(const int InHeight) = 0;
31
32 virtual bool HasTexture(const TObjectPtr<LTexture>& Texture) = 0;
33 virtual TObjectPtr<LTexture> GetTextureWithID(LRendererID id) = 0;
34 virtual int GetIndexOfTexture(const TObjectPtr<LTexture>& Texture) = 0;
35
36 static TObjectPtr<LArrayTexture> Create(const FArrayTextureSpecification& Specification);
37
38 private:
40 };
41
42}
Definition ArrayTexture.h:10
Definition Object.h:46
Definition ObjectPtr.h:102
#define LCLASS(Class)
Definition CoreMacros.h:226
uint32_t LRendererID
Definition CoreTypes.h:30
Definition Asset.h:11
Definition ArrayTextureSpecification.h:15