Raito
0.1
Loading...
Searching...
No Matches
RHI.h
Go to the documentation of this file.
1
/*
2
MIT License
3
4
Copyright (c) 2023 Víctor Falcón Zaro
5
6
Permission is hereby granted, free of charge, to any person obtaining a copy
7
of this software and associated documentation files (the "Software"), to deal
8
in the Software without restriction, including without limitation the rights
9
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
copies of the Software, and to permit persons to whom the Software is
11
furnished to do so, subject to the following conditions:
12
13
The above copyright notice and this permission notice shall be included in all
14
copies or substantial portions of the Software.
15
16
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
SOFTWARE.
23
*/
24
25
#pragma once
26
27
#include "
Renderer.h
"
28
#include "
Shader.h
"
29
30
namespace
Raito::Assets
31
{
32
struct
Mesh;
33
struct
Texture
;
34
}
35
36
namespace
Raito::Renderer
37
{
40
41
struct
RHI
42
{
43
bool(*
Initialize
)();
44
void(*
Shutdown
)();
45
46
struct
47
{
48
Surface
(*
Create
)(
SysWindow
*);
49
void(*
Remove
)(
u32
);
50
void(*
Resize
)(
u32
,
u32
,
u32
);
51
u32
(*
Width
)(
u32
);
52
u32
(*
Height
)(
u32
);
53
void(*
Render
)(
u32
);
54
u32
(*
GetColorAttachment
)(
u32
,
u32
);
55
u32
(*
GetDepthAttachment
)(
u32
);
56
u32
(*
GetDeferredAttachment
)(
u32
);
57
u32
(*
GetDeferredDepth
)();
58
u32
(*
GetLightDeferredAttachment
)(
u32
);
59
u32
(*
GetSSAOAttachment
)();
60
}
Surface
;
61
62
struct
63
{
64
Shader
* (*GetShader)(
u32
);
65
Shader
* (*GetShaderId)(
EngineShader
);
66
const
std::vector<Shader*>& (*GetAllShaders)();
67
ShaderFileData
(*
GetFileData
)(
EngineShader
);
68
u32
(*
CompileShader
)(
const
ShaderFileData
&);
69
}
Shader
;
70
71
struct
72
{
73
u32
(*
AddMesh
)(
Assets::Mesh
*);
74
void(*
RemoveMesh
)(
u32
);
75
76
}
Meshes
;
77
78
struct
79
{
80
u32
(*
AddTexture
)(
Assets::Texture
*,
ubyte
* data);
81
void(*
RemoveTexture
)(
u32
);
82
}
Textures
;
83
84
struct
85
{
86
u32
(*
AddMaterial
)(
const
Assets::PbrMaterial
& material);
87
void(*
SetMaterialValue
)(
u32
,
const
Assets::PbrMaterial
material);
88
void(*
RemoveMaterial
)(
u32
);
89
}
Materials
;
90
91
struct
92
{
93
void(*
SetSSAO
)(bool);
94
void(*
SetParallaxMapping
)(bool);
95
void(*
SetBloom
)(bool);
96
void(*
SetShadows
)(bool);
97
void(*
SetDebugAABB
)(bool);
98
void(*
SetFrustumCulling
)(bool);
99
LightTechnique
(*
GetTechnique
)(void);
100
void(*
SetTechnique
)(
LightTechnique
);
101
}
Settings
;
102
};
103
}
ubyte
unsigned char ubyte
Unsigned byte type.
Definition
BasicTypes.h:31
u32
unsigned __int32 u32
Unsigned integer 32 bit type.
Definition
BasicTypes.h:55
Texture
GLuint Texture
Definition
OpenGLPostProcessPass.cpp:29
Renderer.h
Shader.h
Raito::Renderer::Shader
Definition
Shader.h:68
Raito::Assets
Definition
AssetImport.cpp:47
Raito::Renderer
Definition
Camera.cpp:33
Raito::Renderer::EngineShader
EngineShader
Definition
Shader.h:32
Raito::Renderer::LightTechnique
LightTechnique
Definition
Renderer.h:119
Raito::Assets::Mesh
Definition
Mesh.h:48
Raito::Assets::PbrMaterial
Definition
PbrMaterial.h:8
Raito::Assets::Texture
Definition
Texture.h:45
Raito::Renderer::RHI
Definition
RHI.h:42
Raito::Renderer::RHI::SetDebugAABB
void(* SetDebugAABB)(bool)
Definition
RHI.h:97
Raito::Renderer::RHI::CompileShader
u32(* CompileShader)(const ShaderFileData &)
Definition
RHI.h:68
Raito::Renderer::RHI::SetSSAO
void(* SetSSAO)(bool)
Definition
RHI.h:93
Raito::Renderer::RHI::GetDepthAttachment
u32(* GetDepthAttachment)(u32)
Definition
RHI.h:55
Raito::Renderer::RHI::SetBloom
void(* SetBloom)(bool)
Definition
RHI.h:95
Raito::Renderer::RHI::Width
u32(* Width)(u32)
Definition
RHI.h:51
Raito::Renderer::RHI::Textures
struct Raito::Renderer::RHI::@4 Textures
Raito::Renderer::RHI::Surface
struct Raito::Renderer::RHI::@1 Surface
Raito::Renderer::RHI::SetParallaxMapping
void(* SetParallaxMapping)(bool)
Definition
RHI.h:94
Raito::Renderer::RHI::Shutdown
void(* Shutdown)()
Definition
RHI.h:44
Raito::Renderer::RHI::SetTechnique
void(* SetTechnique)(LightTechnique)
Definition
RHI.h:100
Raito::Renderer::RHI::SetMaterialValue
void(* SetMaterialValue)(u32, const Assets::PbrMaterial material)
Definition
RHI.h:87
Raito::Renderer::RHI::GetLightDeferredAttachment
u32(* GetLightDeferredAttachment)(u32)
Definition
RHI.h:58
Raito::Renderer::RHI::AddMaterial
u32(* AddMaterial)(const Assets::PbrMaterial &material)
Definition
RHI.h:86
Raito::Renderer::RHI::GetSSAOAttachment
u32(* GetSSAOAttachment)()
Definition
RHI.h:59
Raito::Renderer::RHI::RemoveTexture
void(* RemoveTexture)(u32)
Definition
RHI.h:81
Raito::Renderer::RHI::RemoveMesh
void(* RemoveMesh)(u32)
Definition
RHI.h:74
Raito::Renderer::RHI::GetDeferredAttachment
u32(* GetDeferredAttachment)(u32)
Definition
RHI.h:56
Raito::Renderer::RHI::Create
Surface(* Create)(SysWindow *)
Definition
RHI.h:48
Raito::Renderer::RHI::SetShadows
void(* SetShadows)(bool)
Definition
RHI.h:96
Raito::Renderer::RHI::GetColorAttachment
u32(* GetColorAttachment)(u32, u32)
Definition
RHI.h:54
Raito::Renderer::RHI::Height
u32(* Height)(u32)
Definition
RHI.h:52
Raito::Renderer::RHI::Meshes
struct Raito::Renderer::RHI::@3 Meshes
Raito::Renderer::RHI::GetDeferredDepth
u32(* GetDeferredDepth)()
Definition
RHI.h:57
Raito::Renderer::RHI::Initialize
bool(* Initialize)()
Definition
RHI.h:43
Raito::Renderer::RHI::Shader
struct Raito::Renderer::RHI::@2 Shader
Raito::Renderer::RHI::Resize
void(* Resize)(u32, u32, u32)
Definition
RHI.h:50
Raito::Renderer::RHI::AddMesh
u32(* AddMesh)(Assets::Mesh *)
Definition
RHI.h:73
Raito::Renderer::RHI::SetFrustumCulling
void(* SetFrustumCulling)(bool)
Definition
RHI.h:98
Raito::Renderer::RHI::AddTexture
u32(* AddTexture)(Assets::Texture *, ubyte *data)
Definition
RHI.h:80
Raito::Renderer::RHI::GetTechnique
LightTechnique(* GetTechnique)(void)
Definition
RHI.h:99
Raito::Renderer::RHI::Remove
void(* Remove)(u32)
Definition
RHI.h:49
Raito::Renderer::RHI::Settings
struct Raito::Renderer::RHI::@6 Settings
Raito::Renderer::RHI::Render
void(* Render)(u32)
Definition
RHI.h:53
Raito::Renderer::RHI::RemoveMaterial
void(* RemoveMaterial)(u32)
Definition
RHI.h:88
Raito::Renderer::RHI::Materials
struct Raito::Renderer::RHI::@5 Materials
Raito::Renderer::RHI::GetFileData
ShaderFileData(* GetFileData)(EngineShader)
Definition
RHI.h:67
Raito::Renderer::ShaderFileData
Definition
Shader.h:60
Raito::SysWindow
System window structure.
Definition
Window.h:50
Core
Source
Raito
Renderer
RHI.h
Generated by
1.11.0