Plasma Engine  2.0
Loading...
Searching...
No Matches
RmlUiResource.h
1#pragma once
2
3#include <Core/ResourceManager/Resource.h>
4#include <Foundation/IO/DependencyFile.h>
5#include <RmlUiPlugin/RmlUiPluginDLL.h>
6
7struct PL_RMLUIPLUGIN_DLL plRmlUiScaleMode
8{
9 using StorageType = plUInt8;
10
11 enum Enum
12 {
13 Fixed,
14 WithScreenSize,
15
16 Default = Fixed
17 };
18};
19
20PL_DECLARE_REFLECTABLE_TYPE(PL_RMLUIPLUGIN_DLL, plRmlUiScaleMode);
21
22struct PL_RMLUIPLUGIN_DLL plRmlUiResourceDescriptor
23{
24 plResult Save(plStreamWriter& inout_stream);
25 plResult Load(plStreamReader& inout_stream);
26
27 plDependencyFile m_DependencyFile;
28
29 plString m_sRmlFile;
30 plEnum<plRmlUiScaleMode> m_ScaleMode;
31 plVec2U32 m_ReferenceResolution;
32};
33
35
36class PL_RMLUIPLUGIN_DLL plRmlUiResource : public plResource
37{
38 PL_ADD_DYNAMIC_REFLECTION(plRmlUiResource, plResource);
39 PL_RESOURCE_DECLARE_COMMON_CODE(plRmlUiResource);
40 PL_RESOURCE_DECLARE_CREATEABLE(plRmlUiResource, plRmlUiResourceDescriptor);
41
42public:
44
45 const plString& GetRmlFile() const { return m_sRmlFile; }
46 const plEnum<plRmlUiScaleMode>& GetScaleMode() const { return m_ScaleMode; }
47 const plVec2U32& GetReferenceResolution() const { return m_vReferenceResolution; }
48
49private:
50 virtual plResourceLoadDesc UnloadData(Unload WhatToUnload) override;
51 virtual plResourceLoadDesc UpdateContent(plStreamReader* Stream) override;
52 virtual void UpdateMemoryUsage(MemoryUsage& out_NewMemoryUsage) override;
53
54 plString m_sRmlFile;
55 plEnum<plRmlUiScaleMode> m_ScaleMode;
56 plVec2U32 m_vReferenceResolution = plVec2U32::MakeZero();
57};
58
60{
61public:
62 virtual bool IsResourceOutdated(const plResource* pResource) const override;
63};
This class represents a set of files of which one wants to know when any one of them changes.
Definition DependencyFile.h:15
The base class for all resources.
Definition Resource.h:10
A default implementation of plResourceTypeLoader for standard file loading.
Definition ResourceTypeLoader.h:60
Definition RmlUiResource.h:37
Definition RmlUiResource.h:60
virtual bool IsResourceOutdated(const plResource *pResource) const override
If this function returns true, a resource is unloaded and loaded again to update its content.
Definition RmlUiResource.cpp:129
Interface for binary in (read) streams.
Definition Stream.h:22
Interface for binary out (write) streams.
Definition Stream.h:107
static constexpr plVec2Template< plUInt32 > MakeZero()
Definition Vec2.h:49
A custom enum implementation that allows to define the underlying storage type to control its memory ...
Definition Enum.h:37
Definition Resource.h:34
Describes in which loading state a resource currently is, and how many different quality levels there...
Definition Declarations.h:102
Default enum for returning failure or success, instead of using a bool.
Definition Types.h:54
Definition RmlUiResource.h:23
Definition RmlUiResource.h:8