Plasma Engine  2.0
Loading...
Searching...
No Matches
ColorGradientResource.h
1#pragma once
2
3#include <Core/ResourceManager/Resource.h>
4#include <Foundation/Tracks/ColorGradient.h>
5
7{
8 plColorGradient m_Gradient;
9
10 void Save(plStreamWriter& inout_stream) const;
11 void Load(plStreamReader& inout_stream);
12};
13
15
17class PL_CORE_DLL plColorGradientResource : public plResource
18{
19 PL_ADD_DYNAMIC_REFLECTION(plColorGradientResource, plResource);
20 PL_RESOURCE_DECLARE_COMMON_CODE(plColorGradientResource);
21 PL_RESOURCE_DECLARE_CREATEABLE(plColorGradientResource, plColorGradientResourceDescriptor);
22
23public:
25
27 const plColorGradientResourceDescriptor& GetDescriptor() const { return m_Descriptor; }
28
29 inline plColor Evaluate(double x) const
30 {
31 plColor result;
32 m_Descriptor.m_Gradient.Evaluate(x, result);
33 return result;
34 }
35
36private:
37 virtual plResourceLoadDesc UnloadData(Unload WhatToUnload) override;
38 virtual plResourceLoadDesc UpdateContent(plStreamReader* Stream) override;
39 virtual void UpdateMemoryUsage(MemoryUsage& out_NewMemoryUsage) override;
40
42};
A color curve for animating colors.
Definition ColorGradient.h:15
A resource that stores a single color gradient. The data is stored in the descriptor.
Definition ColorGradientResource.h:18
const plColorGradientResourceDescriptor & GetDescriptor() const
Returns all the data that is stored in this resource.
Definition ColorGradientResource.h:27
plColor represents an RGBA color in linear color space. Values are stored as float,...
Definition Color.h:44
The base class for all resources.
Definition Resource.h:10
Interface for binary in (read) streams.
Definition Stream.h:22
Interface for binary out (write) streams.
Definition Stream.h:107
Definition ColorGradientResource.h:7
Describes in which loading state a resource currently is, and how many different quality levels there...
Definition Declarations.h:102