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
9
using
plDecalAtlasResourceHandle
=
plTypedResourceHandle<class plDecalAtlasResource>
;
10
using
plTexture2DResourceHandle
=
plTypedResourceHandle<class plTexture2DResource>
;
11
12
class
plImage
;
13
14
struct
plDecalAtlasResourceDescriptor
15
{
16
};
17
18
class
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
24
public
:
25
plDecalAtlasResource
();
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
38
private
:
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
49
plTextureAtlasRuntimeDesc
m_Atlas;
50
static
plUInt32 s_uiDecalAtlasResources;
51
plTexture2DResourceHandle
m_hBaseColor;
52
plTexture2DResourceHandle
m_hNormal;
53
plTexture2DResourceHandle
m_hORM;
54
plVec2U32
m_vBaseColorSize;
55
plVec2U32
m_vNormalSize;
56
plVec2U32
m_vORMSize;
57
};
plDecalAtlasResource
Definition
DecalAtlasResource.h:19
plImage
A class containing image data and associated meta data.
Definition
Image.h:103
plResource
The base class for all resources.
Definition
Resource.h:10
plResource::UnloadData
virtual plResourceLoadDesc UnloadData(Unload WhatToUnload)=0
Requests the resource to unload another quality level. If bFullUnload is true, the resource should un...
plResource::UpdateContent
virtual plResourceLoadDesc UpdateContent(plStreamReader *pStream)=0
Called whenever more data for the resource is available. The resource must read the stream to update ...
plResource::UpdateMemoryUsage
virtual void UpdateMemoryUsage(MemoryUsage &out_NewMemoryUsage)=0
This function must be overridden by all resource types.
plStreamReader
Interface for binary in (read) streams.
Definition
Stream.h:22
plTypedResourceHandle< class plDecalAtlasResource >
plVec2Template< plUInt32 >
plDecalAtlasResourceDescriptor
Definition
DecalAtlasResource.h:15
plResource::MemoryUsage
Definition
Resource.h:34
plResourceLoadDesc
Describes in which loading state a resource currently is, and how many different quality levels there...
Definition
Declarations.h:102
plTextureAtlasRuntimeDesc
Definition
TextureAtlasDesc.h:36
Code
Engine
RendererCore
Decals
DecalAtlasResource.h
Generated by
1.11.0