Plasma Engine  2.0
Loading...
Searching...
No Matches
DecalAtlasResource.h
1#pragma once
2
3#include <Core/ResourceManager/Resource.h>
4#include <Core/ResourceManager/ResourceTypeLoader.h>
5#include <Foundation/Math/Rect.h>
6#include <RendererCore/RendererCoreDLL.h>
7#include <Texture/Utils/TextureAtlasDesc.h>
8
11
12class plImage;
13
17
18class PL_RENDERERCORE_DLL plDecalAtlasResource : public plResource
19{
20 PL_ADD_DYNAMIC_REFLECTION(plDecalAtlasResource, plResource);
21 PL_RESOURCE_DECLARE_COMMON_CODE(plDecalAtlasResource);
22 PL_RESOURCE_DECLARE_CREATEABLE(plDecalAtlasResource, plDecalAtlasResourceDescriptor);
23
24public:
26
28 static plDecalAtlasResourceHandle GetDecalAtlasResource();
29
30 const plTexture2DResourceHandle& GetBaseColorTexture() const { return m_hBaseColor; }
31 const plTexture2DResourceHandle& GetNormalTexture() const { return m_hNormal; }
32 const plTexture2DResourceHandle& GetORMTexture() const { return m_hORM; }
33 const plVec2U32& GetBaseColorTextureSize() const { return m_vBaseColorSize; }
34 const plVec2U32& GetNormalTextureSize() const { return m_vNormalSize; }
35 const plVec2U32& GetORMTextureSize() const { return m_vORMSize; }
36 const plTextureAtlasRuntimeDesc& GetAtlas() const { return m_Atlas; }
37
38private:
39 virtual plResourceLoadDesc UnloadData(Unload WhatToUnload) override;
40 virtual plResourceLoadDesc UpdateContent(plStreamReader* Stream) override;
41 virtual void ReportResourceIsMissing() override;
42
43 void ReadDecalInfo(plStreamReader* Stream);
44
45 virtual void UpdateMemoryUsage(MemoryUsage& out_NewMemoryUsage) override;
46
47 void CreateLayerTexture(const plImage& img, bool bSRGB, plTexture2DResourceHandle& out_hTexture);
48
50 static plUInt32 s_uiDecalAtlasResources;
51 plTexture2DResourceHandle m_hBaseColor;
54 plVec2U32 m_vBaseColorSize;
55 plVec2U32 m_vNormalSize;
56 plVec2U32 m_vORMSize;
57};
Definition DecalAtlasResource.h:19
A class containing image data and associated meta data.
Definition Image.h:103
The base class for all resources.
Definition Resource.h:10
virtual plResourceLoadDesc UnloadData(Unload WhatToUnload)=0
Requests the resource to unload another quality level. If bFullUnload is true, the resource should un...
virtual plResourceLoadDesc UpdateContent(plStreamReader *pStream)=0
Called whenever more data for the resource is available. The resource must read the stream to update ...
virtual void UpdateMemoryUsage(MemoryUsage &out_NewMemoryUsage)=0
This function must be overridden by all resource types.
Interface for binary in (read) streams.
Definition Stream.h:22
Definition DecalAtlasResource.h:15
Definition Resource.h:34
Describes in which loading state a resource currently is, and how many different quality levels there...
Definition Declarations.h:102
Definition TextureAtlasDesc.h:36