LkEngine 0.1.2
 
Loading...
Searching...
No Matches
BlendingSpecification.h
1#pragma once
2
3
4namespace LkEngine {
5
6 enum class ESourceBlendFunction
7 {
8 Zero = 0,
9 One,
10 Color,
11 Alpha,
12 One_Minus_DestinationAlpha
13 };
14
15 enum class EDestinationBlendFunction
16 {
17 Zero = 0,
18 One,
19 Alpha,
20 Color,
21 One_Minus_SourceAlpha,
22 };
23
24 enum class EDepthFunction
25 {
26 Never = 0,
27 Less,
28 Equal,
29 LessOrEqual,
30 Greater,
31 NotEqual,
32 GreaterOrEqual,
33 Always
34 };
35
37 {
38 ESourceBlendFunction Source{};
39 EDestinationBlendFunction Destination;
40
42 : Source(ESourceBlendFunction::Alpha)
43 , Destination(EDestinationBlendFunction::One_Minus_SourceAlpha)
44 {
45 }
46 FBlendFunction(const ESourceBlendFunction& InSourceBlendFunction,
47 const EDestinationBlendFunction& InDestinationBlendFunction)
48 : Source(InSourceBlendFunction)
49 , Destination(InDestinationBlendFunction)
50 {
51 }
52 };
53
54
55 namespace Enum
56 {
57 static constexpr const char* ToString(const EDepthFunction DepthFunc)
58 {
59 switch (DepthFunc)
60 {
61 case EDepthFunction::Never: return "Never";
62 case EDepthFunction::Less: return "Less";
63 case EDepthFunction::Equal: return "Equal";
64 case EDepthFunction::LessOrEqual: return "LessOrEqual";
65 case EDepthFunction::Greater: return "Greater";
66 case EDepthFunction::NotEqual: return "NotEqual";
67 case EDepthFunction::GreaterOrEqual: return "GreaterOrEqual";
68 case EDepthFunction::Always: return "Always";
69 }
70
71 LK_CORE_VERIFY(false, "Enum::ToString(EDepthFunction) failed for value: {}", static_cast<int>(DepthFunc));
72 return nullptr;
73 }
74 }
75
76
77}
Definition Asset.h:11
Definition BlendingSpecification.h:37