CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
ShaderType.hpp
Go to the documentation of this file.
1//
2// CeresEngine - A game development framework
3//
4// Created by Rogiel Sulzbach.
5// Copyright (c) 2018-2022 Rogiel Sulzbach. All rights reserved.
6//
7
8#pragma once
9
12
15
16namespace CeresEngine {
17
25 Vertex = (1u << 0u),
26
29 TesselationControl = (1u << 1u),
30
33 TesselationEvaluation = (1u << 2u),
34
36 Geometry = (1u << 3u),
37
39 Fragment = (1u << 4u),
40
42 Compute = (1u << 5u),
43
44 Task = (1u << 6u),
45 Mesh = (1u << 7u),
46
47 RayTracingRayGeneration = (1u << 8u),
48 RayTracingAnyHit = (1u << 9u),
49 RayTracingClosestHit = (1u << 10u),
50 RayTracingMiss = (1u << 11u),
51 RayTracingIntersection = (1u << 12u),
52 RayTracingCallable = (1u << 13u),
53 };
54
57
128
129} // namespace CeresEngine
130
131
#define CE_FLAGS_OPERATORS(Enum)
Defines global operators for a Flags<Enum, Storage> implementation.
Definition Flags.hpp:216
#define CE_SCRIPT_EXPORT(...)
The CE_SCRIPT_EXPORT macro marks a class or method as exportable and available in scripting environme...
Definition Macros.hpp:247
#define CE_STRUCT_ENUM_DECL(T)
Definition StructEnum.hpp:49
A base class for all mesh implementations.
Definition Mesh.hpp:112
Definition StructEnum.hpp:18
UInt32 UnderlyingType
Definition StructEnum.hpp:20
Definition Application.hpp:19
std::uint32_t UInt32
Definition DataTypes.hpp:23
ShaderStage
Shader stage flags enumeration.
Definition ShaderType.hpp:23
@ Fragment
Specifies the fragment shader stage (also "Pixel Shader").
@ TesselationEvaluation
Specifies the tessellation-evaluation shader stage (also "Domain Shader").
@ TesselationControl
Specifies the tessellation-control shader stage (also "Hull Shader").
@ Compute
Specifies the compute shader stage.
@ Geometry
Specifies the geometry shader stage.
constexpr size_t hash(const T &v)
Generates a hash for the provided type.
Definition Hash.hpp:25
Shader type enumeration.
Definition ShaderType.hpp:59
@ RayTracingRayGeneration
Ray-tracing ray generation shader.
Definition ShaderType.hpp:89
@ Undefined
Undefined shader type.
Definition ShaderType.hpp:62
@ TesselationEvaluation
Tessellation evaluation shader type (also "Domain Shader").
Definition ShaderType.hpp:71
@ Mesh
Mesh shader type.
Definition ShaderType.hpp:86
@ RayTracingAnyHit
Ray-tracing ray hit shader.
Definition ShaderType.hpp:92
@ Task
Task shader type.
Definition ShaderType.hpp:83
@ Compute
Compute shader type.
Definition ShaderType.hpp:80
@ Geometry
Geometry shader type.
Definition ShaderType.hpp:74
@ RayTracingClosestHit
Ray-tracing closest ray hit shader.
Definition ShaderType.hpp:95
@ TesselationControl
Tessellation control shader type (also "Hull Shader").
Definition ShaderType.hpp:68
@ RayTracingCallable
Ray-tracing callable shader.
Definition ShaderType.hpp:104
@ Fragment
Fragment shader type (also "Pixel Shader").
Definition ShaderType.hpp:77
@ Vertex
Vertex shader type.
Definition ShaderType.hpp:65
@ RayTracingIntersection
Ray-tracing ray intersection shader.
Definition ShaderType.hpp:101
@ RayTracingMiss
Ray-tracing ray miss shader.
Definition ShaderType.hpp:98
enum CeresEngine::ShaderType::@25 raw
static constexpr auto all
Definition ShaderType.hpp:107
ShaderStage getStageFlag() const noexcept
A basic vertex type.
Definition Mesh.hpp:51