CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
CeresEngine::ShaderMaterial Class Reference

A material that renders using a custom shader. More...

#include <CeresEngine/Material/Material.hpp>

Inheritance diagram for CeresEngine::ShaderMaterial:
CeresEngine::TResource< ShaderMaterial, Material > CeresEngine::Material CeresEngine::TResource< Material > CeresEngine::Resource CeresEngine::IReflectable

Public Member Functions

 ShaderMaterial (const HShader &shader)
 
const HShadergetShader () const
 The shader to be used when rendering the material.
 
void setShader (const HShader &shader)
 The shader to be used when rendering the material.
 
- Public Member Functions inherited from CeresEngine::TResource< ShaderMaterial, Material >
ResourceHandle< ShaderMaterialgetResourceHandle () const noexcept
 Generates a hash for the provided type.
 
SPtr< ShaderMaterialgetShared () noexcept
 Gets a shared pointer to the resource.
 
SPtr< const ShaderMaterialgetShared () const noexcept
 Gets a shared pointer to the resource.
 
const ResourceTypeInfogetResourceType () const noexcept override
 Returns the resource type information descriptor.
 
 TResource (ResourceData &data, InputStream &dataStream)
 
void serialize (OutputStream &dataStream) const override
 Serializes a resource by writing data to dataStream.
 
- Public Member Functions inherited from CeresEngine::TResource< Material >
ResourceHandle< MaterialgetResourceHandle () const noexcept
 Generates a hash for the provided type.
 
SPtr< MaterialgetShared () noexcept
 Gets a shared pointer to the resource.
 
SPtr< const MaterialgetShared () const noexcept
 Gets a shared pointer to the resource.
 
 TResource (ResourceData &data, InputStream &dataStream)
 
- Public Member Functions inherited from CeresEngine::Resource
 Resource ()
 Default constructor for the Resource class.
 
 Resource (ResourceData &data)
 Creates a new Resource instance by passing a ResourceData instance.
 
virtual ~Resource () noexcept=default
 Resource virtual destructor.
 
ResourceManagergetResourceManager () const noexcept
 
HResource getResourceHandle () const noexcept
 Generates a hash for the provided type.
 
UUID getResourceID () const noexcept
 
HResource getParentResource () const noexcept
 A parent resource to which this resource is attached to.
 
SPtr< ResourceMetadatagetResourceMetadata () const noexcept
 A pointer to the user-defined resource metadata.
 
const PackagePtrgetPackage () const noexcept
 The package from which the resource was loaded from.
 
template<typename T = Resource>
SPtr< TgetShared () noexcept
 Gets a shared pointer to the resource.
 
template<typename T = Resource>
SPtr< const TgetShared () const noexcept
 Gets a shared pointer to the resource.
 
 Resource (ResourceData &data, InputStream &dataStream)
 Creates a new resource by reading data from dataStream.
 
- Public Member Functions inherited from CeresEngine::IReflectable
virtual ~IReflectable () noexcept=default
 

Private Types

using super = TResource< ShaderMaterial, Material >
 

Private Attributes

HShader mShader
 The shader to be used when rendering the material.
 

Friends

class TUserTypeInfo< ShaderMaterial >
 

Additional Inherited Members

- Static Public Member Functions inherited from CeresEngine::Resource
template<typename Processor >
static constexpr void reflect (Processor &&RTTI)
 Executes the given processor for every field of the struct.
 
- Protected Member Functions inherited from CeresEngine::Resource
HResourceStream createStream (const ResourceStreamFlags &flags=ResourceStreamFlag::Default)
 Creates a new resource stream.
 
void destroyStream (HResourceStream &stream)
 Destroys a stream.
 
void markAsDirty ()
 Marks the resource as dirty.
 

Detailed Description

A material that renders using a custom shader.

Member Typedef Documentation

◆ super

Constructor & Destructor Documentation

◆ ShaderMaterial()

CeresEngine::ShaderMaterial::ShaderMaterial ( const HShader shader)
explicit

Member Function Documentation

◆ getShader()

const HShader & CeresEngine::ShaderMaterial::getShader ( ) const
inline

The shader to be used when rendering the material.

◆ setShader()

void CeresEngine::ShaderMaterial::setShader ( const HShader shader)

The shader to be used when rendering the material.

Friends And Related Symbol Documentation

◆ TUserTypeInfo< ShaderMaterial >

Member Data Documentation

◆ mShader

HShader CeresEngine::ShaderMaterial::mShader
private

The shader to be used when rendering the material.


The documentation for this class was generated from the following file: