Cogs.Core
|
Contains render resources used by the renderer. More...
#include <RenderResources.h>
Public Member Functions | |
RenderResources (class Context *context) | |
void | initialize (Context *context, class Renderer *renderer) |
void | cleanup (Context *context) |
COGSCORE_DLL_API struct RenderTarget * | createRenderTarget () |
COGSCORE_DLL_API struct RenderTexture * | createRenderTexture () |
struct RenderList * | createRenderList () |
struct RenderBuffer * | createRenderBuffer () |
struct RenderMesh * | createRenderMesh () |
void | destroyRenderMesh (struct RenderMesh *renderMesh) |
uint32_t | getRenderHandle (struct RenderMesh *renderMesh) |
struct RenderMesh * | getRenderMesh (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 RenderEffect * | getRenderEffect (const EffectHandle &effect) |
COGSCORE_DLL_API struct RenderMaterial * | getRenderMaterial (const Material *material) |
COGSCORE_DLL_API struct RenderMaterial * | getRenderMaterial (const MaterialHandle &material) |
COGSCORE_DLL_API struct RenderMaterialInstance * | getRenderMaterialInstance (const MaterialInstance *materialInstance) |
COGSCORE_DLL_API struct RenderMaterialInstance * | getRenderMaterialInstance (const MaterialInstanceHandle &materialInstance) |
COGSCORE_DLL_API struct RenderTexture * | getRenderTexture (const TextureHandle &texture) |
COGSCORE_DLL_API struct RenderMesh * | getRenderMesh (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 |
Context * | getContext () |
Renderer * | getRenderer () |
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 Renderer * | renderer = nullptr |
IGraphicsDevice * | device = nullptr |
Context * | context = nullptr |
struct RenderStates * | renderStates = nullptr |
std::unique_ptr< struct RenderResourceStorage > | storage |
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.
Cogs::Core::RenderResources::RenderResources | ( | class Context * | context | ) |
Definition at line 63 of file RenderResources.cpp.
Cogs::Core::RenderResources::~RenderResources | ( | ) |
Definition at line 69 of file RenderResources.cpp.
void Cogs::Core::RenderResources::cleanup | ( | Context * | context | ) |
Definition at line 107 of file RenderResources.cpp.
RenderBuffer * Cogs::Core::RenderResources::createRenderBuffer | ( | ) |
Definition at line 133 of file RenderResources.cpp.
RenderList * Cogs::Core::RenderResources::createRenderList | ( | ) |
Definition at line 126 of file RenderResources.cpp.
Cogs::Core::RenderMesh * Cogs::Core::RenderResources::createRenderMesh | ( | ) |
Definition at line 140 of file RenderResources.cpp.
RenderTarget * Cogs::Core::RenderResources::createRenderTarget | ( | ) |
Definition at line 112 of file RenderResources.cpp.
RenderTexture * Cogs::Core::RenderResources::createRenderTexture | ( | ) |
Definition at line 119 of file RenderResources.cpp.
void Cogs::Core::RenderResources::destroyRenderMesh | ( | struct RenderMesh * | renderMesh | ) |
Definition at line 149 of file RenderResources.cpp.
void Cogs::Core::RenderResources::destroyResource | ( | struct RenderResource * | resource | ) |
Definition at line 204 of file RenderResources.cpp.
|
inline |
Definition at line 62 of file RenderResources.h.
RenderEffect * Cogs::Core::RenderResources::getRenderEffect | ( | const EffectHandle & | effect | ) |
Definition at line 225 of file RenderResources.cpp.
|
inline |
Definition at line 64 of file RenderResources.h.
uint32_t Cogs::Core::RenderResources::getRenderHandle | ( | struct RenderMesh * | renderMesh | ) |
Definition at line 156 of file RenderResources.cpp.
RenderMaterial * Cogs::Core::RenderResources::getRenderMaterial | ( | const Material * | material | ) |
Definition at line 234 of file RenderResources.cpp.
RenderMaterial * Cogs::Core::RenderResources::getRenderMaterial | ( | const MaterialHandle & | material | ) |
Definition at line 248 of file RenderResources.cpp.
RenderMaterialInstance * Cogs::Core::RenderResources::getRenderMaterialInstance | ( | const MaterialInstance * | materialInstance | ) |
Definition at line 241 of file RenderResources.cpp.
RenderMaterialInstance * Cogs::Core::RenderResources::getRenderMaterialInstance | ( | const MaterialInstanceHandle & | materialInstance | ) |
Definition at line 253 of file RenderResources.cpp.
RenderMesh * Cogs::Core::RenderResources::getRenderMesh | ( | const MeshHandle & | mesh | ) |
Definition at line 267 of file RenderResources.cpp.
RenderMesh * Cogs::Core::RenderResources::getRenderMesh | ( | uint32_t | handle | ) |
Definition at line 161 of file RenderResources.cpp.
RenderTexture * Cogs::Core::RenderResources::getRenderTexture | ( | const TextureHandle & | texture | ) |
Definition at line 258 of file RenderResources.cpp.
|
overridevirtual |
Implements Cogs::Core::IRenderResources.
Definition at line 73 of file RenderResources.cpp.
Definition at line 99 of file RenderResources.cpp.
|
overridevirtual |
Implements Cogs::Core::IRenderResources.
Definition at line 378 of file RenderResources.cpp.
|
overridevirtual |
Implements Cogs::Core::IRenderResources.
Definition at line 364 of file RenderResources.cpp.
|
overridevirtual |
Implements Cogs::Core::IRenderResources.
Definition at line 371 of file RenderResources.cpp.
|
overridevirtual |
Implements Cogs::Core::IRenderResources.
Definition at line 355 of file RenderResources.cpp.
void Cogs::Core::RenderResources::releaseResource | ( | struct RenderResource * | resource | ) |
Definition at line 186 of file RenderResources.cpp.
|
overridevirtual |
Implements Cogs::Core::IRenderResources.
Definition at line 342 of file RenderResources.cpp.
|
overridevirtual |
Implements Cogs::Core::IRenderResources.
Definition at line 309 of file RenderResources.cpp.
|
overridevirtual |
Implements Cogs::Core::IRenderResources.
Definition at line 315 of file RenderResources.cpp.
|
overridevirtual |
Implements Cogs::Core::IRenderResources.
Definition at line 321 of file RenderResources.cpp.
|
overridevirtual |
Implements Cogs::Core::IRenderResources.
Definition at line 296 of file RenderResources.cpp.
|
overridevirtual |
Implements Cogs::Core::IRenderResources.
Definition at line 303 of file RenderResources.cpp.
void Cogs::Core::RenderResources::updateResource | ( | struct RenderResource * | resource | ) |
Definition at line 168 of file RenderResources.cpp.
|
private |
Definition at line 69 of file RenderResources.h.
|
private |
Definition at line 68 of file RenderResources.h.
|
private |
Definition at line 67 of file RenderResources.h.
|
private |
Definition at line 70 of file RenderResources.h.
|
private |
Definition at line 72 of file RenderResources.h.