Cogs.Core
Source
Renderer
RenderResources.h
1
#pragma once
2
3
#include "IRenderer.h"
4
5
#include "Resources/Resources.h"
6
7
namespace
Cogs
8
{
9
namespace
Core
10
{
18
class
RenderResources
:
public
IRenderResources
19
{
20
public
:
21
RenderResources
(
class
Context
* context);
22
~RenderResources
();
23
24
void
initialize(
Context
* context,
class
Renderer
* renderer);
25
void
cleanup(
Context
* context);
26
27
COGSCORE_DLL_API
struct
RenderTarget
* createRenderTarget();
28
COGSCORE_DLL_API
struct
RenderTexture
* createRenderTexture();
29
struct
RenderList
* createRenderList();
30
struct
RenderBuffer
* createRenderBuffer();
31
struct
RenderMesh
* createRenderMesh();
32
void
destroyRenderMesh(
struct
RenderMesh
* renderMesh);
33
uint32_t getRenderHandle(
struct
RenderMesh
* renderMesh);
34
struct
RenderMesh
* getRenderMesh(uint32_t handle);
35
36
void
updateResource(
struct
RenderResource
* resource);
37
void
releaseResource(
struct
RenderResource
* resource);
38
COGSCORE_DLL_API
void
destroyResource(
struct
RenderResource
* resource);
39
40
COGSCORE_DLL_API
struct
RenderEffect
* getRenderEffect(
const
EffectHandle
& effect);
41
COGSCORE_DLL_API
struct
RenderMaterial
* getRenderMaterial(
const
Material
* material);
42
COGSCORE_DLL_API
struct
RenderMaterial
* getRenderMaterial(
const
MaterialHandle
& material);
43
COGSCORE_DLL_API
struct
RenderMaterialInstance
* getRenderMaterialInstance(
const
MaterialInstance
* materialInstance);
44
COGSCORE_DLL_API
struct
RenderMaterialInstance
* getRenderMaterialInstance(
const
MaterialInstanceHandle
& materialInstance);
45
COGSCORE_DLL_API
struct
RenderTexture
* getRenderTexture(
const
TextureHandle
& texture);
46
COGSCORE_DLL_API
struct
RenderMesh
* getRenderMesh(
const
MeshHandle
& mesh);
47
48
ActivationResult
updateResource(
const
MeshHandle
& meshHandle)
override
;
49
ActivationResult
updateResource(
const
TextureHandle
& textureHandle)
override
;
50
ActivationResult
updateResource(
const
EffectHandle
& effectHandle)
override
;
51
ActivationResult
updateResource(
const
MaterialHandle
& materialHandle)
override
;
52
ActivationResult
updateResource(
const
MaterialInstanceHandle
& materialInstanceHandle)
override
;
53
54
void
releaseResource(
Texture
* texture)
override
;
55
void
releaseResource(
Mesh
* mesh)
override
;
56
void
releaseResource(
Material
* material)
override
;
57
void
releaseResource(
MaterialInstance
* materialInstance)
override
;
58
void
releaseResource(
Effect
* effect)
override
;
59
60
std::string getReport()
const override
;
61
62
Context
* getContext() {
return
context; }
63
64
Renderer
* getRenderer() {
return
renderer; }
65
66
private
:
67
class
Renderer
* renderer =
nullptr
;
68
IGraphicsDevice
* device =
nullptr
;
69
Context
* context =
nullptr
;
70
struct
RenderStates
* renderStates =
nullptr
;
71
72
std::unique_ptr<struct RenderResourceStorage> storage;
73
};
74
}
75
}
Cogs::Core::Context
A Context instance contains all the services, systems and runtime components needed to use Cogs.
Definition:
Context.h:83
Cogs::Core::IRenderResources
Interface to the render resources.
Definition:
IRenderer.h:64
Cogs::Core::RenderResources
Contains render resources used by the renderer.
Definition:
RenderResources.h:19
Cogs::Core::Renderer
Core renderer system.
Definition:
Renderer.h:28
Cogs::IGraphicsDevice
Represents a graphics device used to manage graphics resources and issue drawing commands.
Definition:
IGraphicsDevice.h:169
Cogs::Core::ActivationResult
ActivationResult
Defines results for resource activation.
Definition:
ResourceBase.h:14
Cogs
Contains all Cogs related functionality.
Definition:
FieldSetter.h:23
Cogs::Core::Effect
Effect resources contain data to control the shader stages of the GPU pipeline.
Definition:
Effect.h:24
Cogs::Core::MaterialInstance
Material instances represent a specialized Material combined with state for all its buffers and prope...
Definition:
MaterialInstance.h:17
Cogs::Core::Material
Material resources define the how of geometry rendering (the what is defined by Mesh and Texture reso...
Definition:
Material.h:82
Cogs::Core::Mesh
Meshes contain streams of vertex data in addition to index data and options defining geometry used fo...
Definition:
Mesh.h:265
Cogs::Core::RenderBuffer
Definition:
RenderBuffer.h:13
Cogs::Core::RenderEffect
Definition:
RenderEffect.h:18
Cogs::Core::RenderList
Definition:
RenderList.h:300
Cogs::Core::RenderMaterialInstance
Definition:
RenderMaterialInstance.h:21
Cogs::Core::RenderMaterial
Definition:
RenderMaterial.h:25
Cogs::Core::RenderMesh
Definition:
RenderMesh.h:20
Cogs::Core::RenderResource
Definition:
RenderResource.h:49
Cogs::Core::RenderStates
Definition:
RenderStates.h:24
Cogs::Core::RenderTarget
Definition:
RenderTarget.h:18
Cogs::Core::RenderTexture
Definition:
RenderTexture.h:20
Cogs::Core::ResourceHandle_t< Effect >
Cogs::Core::Texture
Texture resources contain raster bitmap data to use for texturing.
Definition:
Texture.h:91
Generated by
1.9.6