Cogs.Core
Public Member Functions | Private Attributes | List of all members
Cogs::Core::RenderResources Class Reference

Contains render resources used by the renderer. More...

#include <RenderResources.h>

Inheritance diagram for Cogs::Core::RenderResources:
Cogs::Core::IRenderResources

Public Member Functions

 RenderResources (class Context *context)
 
void initialize (Context *context, class Renderer *renderer)
 
void cleanup (Context *context)
 
COGSCORE_DLL_API struct RenderTargetcreateRenderTarget ()
 
COGSCORE_DLL_API struct RenderTexturecreateRenderTexture ()
 
struct RenderListcreateRenderList ()
 
struct RenderBuffercreateRenderBuffer ()
 
struct RenderMeshcreateRenderMesh ()
 
void destroyRenderMesh (struct RenderMesh *renderMesh)
 
uint32_t getRenderHandle (struct RenderMesh *renderMesh)
 
struct RenderMeshgetRenderMesh (uint32_t handle)
 
void updateResource (struct RenderResource *resource)
 
void releaseResource (struct RenderResource *resource)
 
COGSCORE_DLL_API void destroyResource (struct RenderResource *resource)
 
COGSCORE_DLL_API struct RenderEffectgetRenderEffect (const EffectHandle &effect)
 
COGSCORE_DLL_API struct RenderMaterialgetRenderMaterial (const Material *material)
 
COGSCORE_DLL_API struct RenderMaterialgetRenderMaterial (const MaterialHandle &material)
 
COGSCORE_DLL_API struct RenderMaterialInstancegetRenderMaterialInstance (const MaterialInstance *materialInstance)
 
COGSCORE_DLL_API struct RenderMaterialInstancegetRenderMaterialInstance (const MaterialInstanceHandle &materialInstance)
 
COGSCORE_DLL_API struct RenderTexturegetRenderTexture (const TextureHandle &texture)
 
COGSCORE_DLL_API struct RenderMeshgetRenderMesh (const MeshHandle &mesh)
 
ActivationResult updateResource (const MeshHandle &meshHandle) override
 
ActivationResult updateResource (const TextureHandle &textureHandle) override
 
ActivationResult updateResource (const EffectHandle &effectHandle) override
 
ActivationResult updateResource (const MaterialHandle &materialHandle) override
 
ActivationResult updateResource (const MaterialInstanceHandle &materialInstanceHandle) override
 
void releaseResource (Texture *texture) override
 
void releaseResource (Mesh *mesh) override
 
void releaseResource (Material *material) override
 
void releaseResource (MaterialInstance *materialInstance) override
 
void releaseResource (Effect *effect) override
 
std::string getReport () const override
 
ContextgetContext ()
 
RenderergetRenderer ()
 
virtual ActivationResult updateResource (const TextureHandle &texture)=0
 
virtual ActivationResult updateResource (const MeshHandle &mesh)=0
 
virtual ActivationResult updateResource (const EffectHandle &effect)=0
 
virtual ActivationResult updateResource (const MaterialHandle &material)=0
 
virtual ActivationResult updateResource (const MaterialInstanceHandle &materialInstance)=0
 
virtual void releaseResource (Texture *texture)=0
 
virtual void releaseResource (Mesh *mesh)=0
 
virtual void releaseResource (Effect *effect)=0
 
virtual void releaseResource (Material *material)=0
 
virtual void releaseResource (MaterialInstance *materialInstance)=0
 
virtual std::string getReport () const =0
 

Private Attributes

class Rendererrenderer = nullptr
 
IGraphicsDevicedevice = nullptr
 
Contextcontext = nullptr
 
struct RenderStatesrenderStates = nullptr
 
std::unique_ptr< struct RenderResourceStoragestorage
 

Detailed Description

Contains render resources used by the renderer.

Engine resources, such as Textures, Mesh and Effect instances, are handed to the renderer when loading/modifying has finished. A corresponding render resource is then created which is responsible for handling GPU residency.

This class keeps track of all the currently resident resources.

Definition at line 18 of file RenderResources.h.

Constructor & Destructor Documentation

◆ RenderResources()

Cogs::Core::RenderResources::RenderResources ( class Context context)

Definition at line 63 of file RenderResources.cpp.

◆ ~RenderResources()

Cogs::Core::RenderResources::~RenderResources ( )

Definition at line 69 of file RenderResources.cpp.

Member Function Documentation

◆ cleanup()

void Cogs::Core::RenderResources::cleanup ( Context context)

Definition at line 107 of file RenderResources.cpp.

◆ createRenderBuffer()

RenderBuffer * Cogs::Core::RenderResources::createRenderBuffer ( )

Definition at line 133 of file RenderResources.cpp.

◆ createRenderList()

RenderList * Cogs::Core::RenderResources::createRenderList ( )

Definition at line 126 of file RenderResources.cpp.

◆ createRenderMesh()

Cogs::Core::RenderMesh * Cogs::Core::RenderResources::createRenderMesh ( )

Definition at line 140 of file RenderResources.cpp.

◆ createRenderTarget()

RenderTarget * Cogs::Core::RenderResources::createRenderTarget ( )

Definition at line 112 of file RenderResources.cpp.

◆ createRenderTexture()

RenderTexture * Cogs::Core::RenderResources::createRenderTexture ( )

Definition at line 119 of file RenderResources.cpp.

◆ destroyRenderMesh()

void Cogs::Core::RenderResources::destroyRenderMesh ( struct RenderMesh renderMesh)

Definition at line 149 of file RenderResources.cpp.

◆ destroyResource()

void Cogs::Core::RenderResources::destroyResource ( struct RenderResource resource)

Definition at line 204 of file RenderResources.cpp.

◆ getContext()

Context * Cogs::Core::RenderResources::getContext ( )
inline

Definition at line 62 of file RenderResources.h.

◆ getRenderEffect()

RenderEffect * Cogs::Core::RenderResources::getRenderEffect ( const EffectHandle effect)

Definition at line 225 of file RenderResources.cpp.

◆ getRenderer()

Renderer * Cogs::Core::RenderResources::getRenderer ( )
inline

Definition at line 64 of file RenderResources.h.

◆ getRenderHandle()

uint32_t Cogs::Core::RenderResources::getRenderHandle ( struct RenderMesh renderMesh)

Definition at line 156 of file RenderResources.cpp.

◆ getRenderMaterial() [1/2]

RenderMaterial * Cogs::Core::RenderResources::getRenderMaterial ( const Material material)

Definition at line 234 of file RenderResources.cpp.

◆ getRenderMaterial() [2/2]

RenderMaterial * Cogs::Core::RenderResources::getRenderMaterial ( const MaterialHandle material)

Definition at line 248 of file RenderResources.cpp.

◆ getRenderMaterialInstance() [1/2]

RenderMaterialInstance * Cogs::Core::RenderResources::getRenderMaterialInstance ( const MaterialInstance materialInstance)

Definition at line 241 of file RenderResources.cpp.

◆ getRenderMaterialInstance() [2/2]

RenderMaterialInstance * Cogs::Core::RenderResources::getRenderMaterialInstance ( const MaterialInstanceHandle materialInstance)

Definition at line 253 of file RenderResources.cpp.

◆ getRenderMesh() [1/2]

RenderMesh * Cogs::Core::RenderResources::getRenderMesh ( const MeshHandle mesh)

Definition at line 267 of file RenderResources.cpp.

◆ getRenderMesh() [2/2]

RenderMesh * Cogs::Core::RenderResources::getRenderMesh ( uint32_t  handle)

Definition at line 161 of file RenderResources.cpp.

◆ getRenderTexture()

RenderTexture * Cogs::Core::RenderResources::getRenderTexture ( const TextureHandle texture)

Definition at line 258 of file RenderResources.cpp.

◆ getReport()

std::string Cogs::Core::RenderResources::getReport ( ) const
overridevirtual

Implements Cogs::Core::IRenderResources.

Definition at line 73 of file RenderResources.cpp.

◆ initialize()

void Cogs::Core::RenderResources::initialize ( Context context,
class Renderer renderer 
)

Definition at line 99 of file RenderResources.cpp.

◆ releaseResource() [1/6]

void Cogs::Core::RenderResources::releaseResource ( Effect effect)
overridevirtual

Implements Cogs::Core::IRenderResources.

Definition at line 378 of file RenderResources.cpp.

◆ releaseResource() [2/6]

void Cogs::Core::RenderResources::releaseResource ( Material material)
overridevirtual

Implements Cogs::Core::IRenderResources.

Definition at line 364 of file RenderResources.cpp.

◆ releaseResource() [3/6]

void Cogs::Core::RenderResources::releaseResource ( MaterialInstance materialInstance)
overridevirtual

Implements Cogs::Core::IRenderResources.

Definition at line 371 of file RenderResources.cpp.

◆ releaseResource() [4/6]

void Cogs::Core::RenderResources::releaseResource ( Mesh mesh)
overridevirtual

Implements Cogs::Core::IRenderResources.

Definition at line 355 of file RenderResources.cpp.

◆ releaseResource() [5/6]

void Cogs::Core::RenderResources::releaseResource ( struct RenderResource resource)

Definition at line 186 of file RenderResources.cpp.

◆ releaseResource() [6/6]

void Cogs::Core::RenderResources::releaseResource ( Texture texture)
overridevirtual

Implements Cogs::Core::IRenderResources.

Definition at line 342 of file RenderResources.cpp.

◆ updateResource() [1/6]

ActivationResult Cogs::Core::RenderResources::updateResource ( const EffectHandle effectHandle)
overridevirtual

Implements Cogs::Core::IRenderResources.

Definition at line 309 of file RenderResources.cpp.

◆ updateResource() [2/6]

Cogs::Core::ActivationResult Cogs::Core::RenderResources::updateResource ( const MaterialHandle materialHandle)
overridevirtual

Implements Cogs::Core::IRenderResources.

Definition at line 315 of file RenderResources.cpp.

◆ updateResource() [3/6]

Cogs::Core::ActivationResult Cogs::Core::RenderResources::updateResource ( const MaterialInstanceHandle materialInstanceHandle)
overridevirtual

Implements Cogs::Core::IRenderResources.

Definition at line 321 of file RenderResources.cpp.

◆ updateResource() [4/6]

ActivationResult Cogs::Core::RenderResources::updateResource ( const MeshHandle meshHandle)
overridevirtual

Implements Cogs::Core::IRenderResources.

Definition at line 296 of file RenderResources.cpp.

◆ updateResource() [5/6]

ActivationResult Cogs::Core::RenderResources::updateResource ( const TextureHandle textureHandle)
overridevirtual

Implements Cogs::Core::IRenderResources.

Definition at line 303 of file RenderResources.cpp.

◆ updateResource() [6/6]

void Cogs::Core::RenderResources::updateResource ( struct RenderResource resource)

Definition at line 168 of file RenderResources.cpp.

Member Data Documentation

◆ context

Context* Cogs::Core::RenderResources::context = nullptr
private

Definition at line 69 of file RenderResources.h.

◆ device

IGraphicsDevice* Cogs::Core::RenderResources::device = nullptr
private

Definition at line 68 of file RenderResources.h.

◆ renderer

class Renderer* Cogs::Core::RenderResources::renderer = nullptr
private

Definition at line 67 of file RenderResources.h.

◆ renderStates

struct RenderStates* Cogs::Core::RenderResources::renderStates = nullptr
private

Definition at line 70 of file RenderResources.h.

◆ storage

std::unique_ptr<struct RenderResourceStorage> Cogs::Core::RenderResources::storage
private

Definition at line 72 of file RenderResources.h.


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