Renderer: Add proper support for blending

This commit is contained in:
Jérôme Leclercq
2021-05-14 01:50:46 +02:00
parent 61dbd91346
commit adbf1e1da0
13 changed files with 207 additions and 99 deletions

View File

@@ -19,20 +19,31 @@ namespace Nz
AnimationType_Max = AnimationType_Static
};
enum BlendFunc
enum class BlendEquation
{
BlendFunc_DestAlpha,
BlendFunc_DestColor,
BlendFunc_SrcAlpha,
BlendFunc_SrcColor,
BlendFunc_InvDestAlpha,
BlendFunc_InvDestColor,
BlendFunc_InvSrcAlpha,
BlendFunc_InvSrcColor,
BlendFunc_One,
BlendFunc_Zero,
Add,
Max,
Min,
ReverseSubtract,
Subtract,
};
BlendFunc_Max = BlendFunc_Zero
enum class BlendFunc
{
ConstantColor,
ConstantAlpha,
DstAlpha,
DstColor,
SrcAlpha,
SrcColor,
InvConstantColor,
InvConstantAlpha,
InvDstAlpha,
InvDstColor,
InvSrcAlpha,
InvSrcColor,
One,
Zero
};
enum BufferAccess

View File

@@ -22,6 +22,12 @@ namespace Nz
static constexpr const char* BackFaceStencilReference = "MatBackFaceStencilReference";
static constexpr const char* BackFaceStencilZFail = "MatBackFaceStencilZFail";
static constexpr const char* Blending = "MatBlending";
static constexpr const char* BlendModeAlpha = "MatBlendModeAlpha";
static constexpr const char* BlendModeColor = "MatBlendModeColor";
static constexpr const char* BlendDstAlpha = "MatBlendDstAlpha";
static constexpr const char* BlendDstColor = "MatBlendDstColor";
static constexpr const char* BlendSrcAlpha = "MatBlendSrcAlpha";
static constexpr const char* BlendSrcColor = "MatBlendSrcColor";
static constexpr const char* CullingSide = "MatCullingSide";
static constexpr const char* ColorWrite = "MatColorWrite";
static constexpr const char* DepthBuffer = "MatDepthBuffer";
@@ -33,7 +39,6 @@ namespace Nz
static constexpr const char* DiffuseFilter = "MatDiffuseFilter";
static constexpr const char* DiffuseTexturePath = "MatDiffuseTexturePath";
static constexpr const char* DiffuseWrap = "MatDiffuseWrap";
static constexpr const char* DstBlend = "MatDstBlend";
static constexpr const char* EmissiveTexturePath = "MatEmissiveTexturePath";
static constexpr const char* FaceCulling = "MatFaceCulling";
static constexpr const char* FaceFilling = "MatFaceFilling";
@@ -51,7 +56,6 @@ namespace Nz
static constexpr const char* SpecularFilter = "MatSpecularFilter";
static constexpr const char* SpecularTexturePath = "MatSpecularTexturePath";
static constexpr const char* SpecularWrap = "MatSpecularWrap";
static constexpr const char* SrcBlend = "MatSrcBlend";
static constexpr const char* StencilCompare = "MatStencilCompare";
static constexpr const char* StencilFail = "MatStencilFail";
static constexpr const char* StencilMask = "MatStencilMask";