From c407e75943f7fbea504bf74838b7f1cbea6321d0 Mon Sep 17 00:00:00 2001 From: Jack Andersen Date: Fri, 10 Mar 2017 11:08:51 -1000 Subject: [PATCH] Frontface culling support for Metal --- .../Shaders/CCameraBlurFilterMetal.cpp | 3 +- .../Shaders/CColoredQuadFilterMetal.cpp | 9 +- .../Shaders/CLineRendererShadersMetal.cpp | 8 +- .../Shaders/CSpaceWarpFilterMetal.cpp | 3 +- .../Shaders/CTextSupportShaderMetal.cpp | 8 +- .../Shaders/CTexturedQuadFilterMetal.cpp | 18 ++- .../Shaders/CThermalColdFilterMetal.cpp | 3 +- .../Shaders/CThermalHotFilterMetal.cpp | 2 +- .../Graphics/Shaders/CXRayBlurFilterMetal.cpp | 3 +- Runtime/Particle/CElementGenShadersMetal.cpp | 138 +++++++++--------- hecl | 2 +- specter | 2 +- 12 files changed, 106 insertions(+), 93 deletions(-) diff --git a/Runtime/Graphics/Shaders/CCameraBlurFilterMetal.cpp b/Runtime/Graphics/Shaders/CCameraBlurFilterMetal.cpp index f2b7feafb..e0e3943bc 100644 --- a/Runtime/Graphics/Shaders/CCameraBlurFilterMetal.cpp +++ b/Runtime/Graphics/Shaders/CCameraBlurFilterMetal.cpp @@ -118,7 +118,8 @@ TShader::IDataBindingFactory* CCameraBlurFilter::Initialize(b }; s_VtxFmt = ctx.newVertexFormat(2, VtxVmt); s_Pipeline = ctx.newShaderPipeline(VS, FS, s_VtxFmt, CGraphics::g_ViewportSamples, boo::BlendFactor::SrcAlpha, - boo::BlendFactor::InvSrcAlpha, boo::Primitive::TriStrips, false, false, false); + boo::BlendFactor::InvSrcAlpha, boo::Primitive::TriStrips, false, false, + boo::CullMode::None); return new CCameraBlurFilterMetalDataBindingFactory; } diff --git a/Runtime/Graphics/Shaders/CColoredQuadFilterMetal.cpp b/Runtime/Graphics/Shaders/CColoredQuadFilterMetal.cpp index 66fbfd6c2..dfd422e8e 100644 --- a/Runtime/Graphics/Shaders/CColoredQuadFilterMetal.cpp +++ b/Runtime/Graphics/Shaders/CColoredQuadFilterMetal.cpp @@ -93,11 +93,14 @@ CColoredQuadFilter::Initialize(boo::MetalDataFactory::Context& ctx) }; s_VtxFmt = ctx.newVertexFormat(1, VtxVmt); s_AlphaPipeline = ctx.newShaderPipeline(VS, FS, s_VtxFmt, CGraphics::g_ViewportSamples, boo::BlendFactor::SrcAlpha, - boo::BlendFactor::InvSrcAlpha, boo::Primitive::TriStrips, false, false, false); + boo::BlendFactor::InvSrcAlpha, boo::Primitive::TriStrips, false, false, + boo::CullMode::None); s_AddPipeline = ctx.newShaderPipeline(VS, FS, s_VtxFmt, CGraphics::g_ViewportSamples, boo::BlendFactor::SrcAlpha, - boo::BlendFactor::One, boo::Primitive::TriStrips, false, false, false); + boo::BlendFactor::One, boo::Primitive::TriStrips, false, false, + boo::CullMode::None); s_MultPipeline = ctx.newShaderPipeline(VS, FS, s_VtxFmt, CGraphics::g_ViewportSamples, boo::BlendFactor::SrcColor, - boo::BlendFactor::DstColor, boo::Primitive::TriStrips, false, false, false); + boo::BlendFactor::DstColor, boo::Primitive::TriStrips, false, false, + boo::CullMode::None); return new CColoredQuadFilterMetalDataBindingFactory; } diff --git a/Runtime/Graphics/Shaders/CLineRendererShadersMetal.cpp b/Runtime/Graphics/Shaders/CLineRendererShadersMetal.cpp index 8031536d9..dd758949f 100644 --- a/Runtime/Graphics/Shaders/CLineRendererShadersMetal.cpp +++ b/Runtime/Graphics/Shaders/CLineRendererShadersMetal.cpp @@ -143,19 +143,19 @@ CLineRendererShaders::IDataBindingFactory* CLineRendererShaders::Initialize(boo: m_texAlpha = ctx.newShaderPipeline(VS_METAL_TEX, FS_METAL_TEX, m_texVtxFmt, CGraphics::g_ViewportSamples, boo::BlendFactor::SrcAlpha, boo::BlendFactor::InvSrcAlpha, - boo::Primitive::TriStrips, false, true, false); + boo::Primitive::TriStrips, false, true, boo::CullMode::None); m_texAdditive = ctx.newShaderPipeline(VS_METAL_TEX, FS_METAL_TEX, m_texVtxFmt, CGraphics::g_ViewportSamples, boo::BlendFactor::SrcAlpha, boo::BlendFactor::One, - boo::Primitive::TriStrips, false, false, false); + boo::Primitive::TriStrips, false, false, boo::CullMode::None); m_noTexAlpha = ctx.newShaderPipeline(VS_METAL_NOTEX, FS_METAL_NOTEX, m_noTexVtxFmt, CGraphics::g_ViewportSamples, boo::BlendFactor::SrcAlpha, boo::BlendFactor::InvSrcAlpha, - boo::Primitive::TriStrips, false, true, false); + boo::Primitive::TriStrips, false, true, boo::CullMode::None); m_noTexAdditive = ctx.newShaderPipeline(VS_METAL_NOTEX, FS_METAL_NOTEX, m_noTexVtxFmt, CGraphics::g_ViewportSamples, boo::BlendFactor::SrcAlpha, boo::BlendFactor::One, - boo::Primitive::TriStrips, false, false, false); + boo::Primitive::TriStrips, false, false, boo::CullMode::None); return new struct MetalLineDataBindingFactory; } diff --git a/Runtime/Graphics/Shaders/CSpaceWarpFilterMetal.cpp b/Runtime/Graphics/Shaders/CSpaceWarpFilterMetal.cpp index 55a0fc1c0..68fb9e33a 100644 --- a/Runtime/Graphics/Shaders/CSpaceWarpFilterMetal.cpp +++ b/Runtime/Graphics/Shaders/CSpaceWarpFilterMetal.cpp @@ -84,7 +84,8 @@ TShader::IDataBindingFactory* CSpaceWarpFilter::Initialize(boo }; s_VtxFmt = ctx.newVertexFormat(2, VtxVmt); s_Pipeline = ctx.newShaderPipeline(VS, FS, s_VtxFmt, CGraphics::g_ViewportSamples, boo::BlendFactor::One, - boo::BlendFactor::Zero, boo::Primitive::TriStrips, false, false, false); + boo::BlendFactor::Zero, boo::Primitive::TriStrips, false, false, + boo::CullMode::None); return new CSpaceWarpFilterMetalDataBindingFactory; } diff --git a/Runtime/Graphics/Shaders/CTextSupportShaderMetal.cpp b/Runtime/Graphics/Shaders/CTextSupportShaderMetal.cpp index f92f2c623..7702b4259 100644 --- a/Runtime/Graphics/Shaders/CTextSupportShaderMetal.cpp +++ b/Runtime/Graphics/Shaders/CTextSupportShaderMetal.cpp @@ -139,9 +139,9 @@ CTextSupportShader::Initialize(boo::MetalDataFactory::Context& ctx) }; s_TextVtxFmt = ctx.newVertexFormat(11, TextVtxVmt); s_TextAlphaPipeline = ctx.newShaderPipeline(TextVS, TextFS, s_TextVtxFmt, CGraphics::g_ViewportSamples, boo::BlendFactor::SrcAlpha, - boo::BlendFactor::InvSrcAlpha, boo::Primitive::TriStrips, true, false, false); + boo::BlendFactor::InvSrcAlpha, boo::Primitive::TriStrips, true, false, boo::CullMode::None); s_TextAddPipeline = ctx.newShaderPipeline(TextVS, TextFS, s_TextVtxFmt, CGraphics::g_ViewportSamples, boo::BlendFactor::SrcAlpha, - boo::BlendFactor::One, boo::Primitive::TriStrips, true, false, false); + boo::BlendFactor::One, boo::Primitive::TriStrips, true, false, boo::CullMode::None); boo::VertexElementDescriptor ImageVtxVmt[] = { @@ -157,9 +157,9 @@ CTextSupportShader::Initialize(boo::MetalDataFactory::Context& ctx) }; s_ImageVtxFmt = ctx.newVertexFormat(9, ImageVtxVmt); s_ImageAlphaPipeline = ctx.newShaderPipeline(ImgVS, ImgFS, s_ImageVtxFmt, CGraphics::g_ViewportSamples, boo::BlendFactor::SrcAlpha, - boo::BlendFactor::InvSrcAlpha, boo::Primitive::TriStrips, true, false, false); + boo::BlendFactor::InvSrcAlpha, boo::Primitive::TriStrips, true, false, boo::CullMode::None); s_ImageAddPipeline = ctx.newShaderPipeline(ImgVS, ImgFS, s_ImageVtxFmt, CGraphics::g_ViewportSamples, boo::BlendFactor::SrcAlpha, - boo::BlendFactor::One, boo::Primitive::TriStrips, true, false, false); + boo::BlendFactor::One, boo::Primitive::TriStrips, true, false, boo::CullMode::None); return nullptr; } diff --git a/Runtime/Graphics/Shaders/CTexturedQuadFilterMetal.cpp b/Runtime/Graphics/Shaders/CTexturedQuadFilterMetal.cpp index ec9f61755..d5f72397b 100644 --- a/Runtime/Graphics/Shaders/CTexturedQuadFilterMetal.cpp +++ b/Runtime/Graphics/Shaders/CTexturedQuadFilterMetal.cpp @@ -149,11 +149,14 @@ CTexturedQuadFilter::Initialize(boo::MetalDataFactory::Context& ctx) }; s_VtxFmt = ctx.newVertexFormat(2, VtxVmt); s_AlphaPipeline = ctx.newShaderPipeline(VSNoFlip, FS, s_VtxFmt, CGraphics::g_ViewportSamples, boo::BlendFactor::SrcAlpha, - boo::BlendFactor::InvSrcAlpha, boo::Primitive::TriStrips, false, false, false); + boo::BlendFactor::InvSrcAlpha, boo::Primitive::TriStrips, false, false, + boo::CullMode::None); s_AddPipeline = ctx.newShaderPipeline(VSNoFlip, FS, s_VtxFmt, CGraphics::g_ViewportSamples, boo::BlendFactor::SrcAlpha, - boo::BlendFactor::One, boo::Primitive::TriStrips, false, false, false); + boo::BlendFactor::One, boo::Primitive::TriStrips, false, false, + boo::CullMode::None); s_MultPipeline = ctx.newShaderPipeline(VSNoFlip, FS, s_VtxFmt, CGraphics::g_ViewportSamples, boo::BlendFactor::SrcColor, - boo::BlendFactor::DstColor, boo::Primitive::TriStrips, false, false, false); + boo::BlendFactor::DstColor, boo::Primitive::TriStrips, false, false, + boo::CullMode::None); return new CTexturedQuadFilterMetalDataBindingFactory; } @@ -183,11 +186,14 @@ CTexturedQuadFilterAlpha::Initialize(boo::MetalDataFactory::Context& ctx) }; s_VtxFmt = ctx.newVertexFormat(2, VtxVmt); s_AlphaPipeline = ctx.newShaderPipeline(VSFlip, FSAlpha, s_VtxFmt, CGraphics::g_ViewportSamples, boo::BlendFactor::SrcAlpha, - boo::BlendFactor::InvSrcAlpha, boo::Primitive::TriStrips, false, false, false); + boo::BlendFactor::InvSrcAlpha, boo::Primitive::TriStrips, false, false, + boo::CullMode::None); s_AddPipeline = ctx.newShaderPipeline(VSFlip, FSAlpha, s_VtxFmt, CGraphics::g_ViewportSamples, boo::BlendFactor::SrcAlpha, - boo::BlendFactor::One, boo::Primitive::TriStrips, false, false, false); + boo::BlendFactor::One, boo::Primitive::TriStrips, false, false, + boo::CullMode::None); s_MultPipeline = ctx.newShaderPipeline(VSFlip, FSAlpha, s_VtxFmt, CGraphics::g_ViewportSamples, boo::BlendFactor::SrcColor, - boo::BlendFactor::DstColor, boo::Primitive::TriStrips, false, false, false); + boo::BlendFactor::DstColor, boo::Primitive::TriStrips, false, false, + boo::CullMode::None); return new CTexturedQuadFilterAlphaMetalDataBindingFactory; } diff --git a/Runtime/Graphics/Shaders/CThermalColdFilterMetal.cpp b/Runtime/Graphics/Shaders/CThermalColdFilterMetal.cpp index 458036246..730026440 100644 --- a/Runtime/Graphics/Shaders/CThermalColdFilterMetal.cpp +++ b/Runtime/Graphics/Shaders/CThermalColdFilterMetal.cpp @@ -112,7 +112,8 @@ TShader::IDataBindingFactory* CThermalColdFilter::Initialize }; s_VtxFmt = ctx.newVertexFormat(2, VtxVmt); s_Pipeline = ctx.newShaderPipeline(VS, FS, s_VtxFmt, CGraphics::g_ViewportSamples, boo::BlendFactor::One, - boo::BlendFactor::Zero, boo::Primitive::TriStrips, false, false, false); + boo::BlendFactor::Zero, boo::Primitive::TriStrips, false, false, + boo::CullMode::None); return new CThermalColdFilterMetalDataBindingFactory; } diff --git a/Runtime/Graphics/Shaders/CThermalHotFilterMetal.cpp b/Runtime/Graphics/Shaders/CThermalHotFilterMetal.cpp index 5de44faf0..ef77ec3eb 100644 --- a/Runtime/Graphics/Shaders/CThermalHotFilterMetal.cpp +++ b/Runtime/Graphics/Shaders/CThermalHotFilterMetal.cpp @@ -86,7 +86,7 @@ TShader::IDataBindingFactory* CThermalHotFilter::Initialize(b s_VtxFmt = ctx.newVertexFormat(2, VtxVmt); s_Pipeline = ctx.newShaderPipeline(VS, FS, s_VtxFmt, CGraphics::g_ViewportSamples, boo::BlendFactor::DstAlpha, boo::BlendFactor::InvDstAlpha, - boo::Primitive::TriStrips, false, false, false); + boo::Primitive::TriStrips, false, false, boo::CullMode::None); return new CThermalHotFilterMetalDataBindingFactory; } diff --git a/Runtime/Graphics/Shaders/CXRayBlurFilterMetal.cpp b/Runtime/Graphics/Shaders/CXRayBlurFilterMetal.cpp index 764fa86aa..e780d3d28 100644 --- a/Runtime/Graphics/Shaders/CXRayBlurFilterMetal.cpp +++ b/Runtime/Graphics/Shaders/CXRayBlurFilterMetal.cpp @@ -100,7 +100,8 @@ TShader::IDataBindingFactory* CXRayBlurFilter::Initialize(boo:: }; s_VtxFmt = ctx.newVertexFormat(2, VtxVmt); s_Pipeline = ctx.newShaderPipeline(VS, FS, s_VtxFmt, CGraphics::g_ViewportSamples, boo::BlendFactor::One, - boo::BlendFactor::Zero, boo::Primitive::TriStrips, false, false, false); + boo::BlendFactor::Zero, boo::Primitive::TriStrips, false, false, + boo::CullMode::None); return new CXRayBlurFilterMetalDataBindingFactory; } diff --git a/Runtime/Particle/CElementGenShadersMetal.cpp b/Runtime/Particle/CElementGenShadersMetal.cpp index f6abf227b..9ddc8ef30 100644 --- a/Runtime/Particle/CElementGenShadersMetal.cpp +++ b/Runtime/Particle/CElementGenShadersMetal.cpp @@ -291,91 +291,91 @@ CElementGenShaders::IDataBindingFactory* CElementGenShaders::Initialize(boo::Met m_vtxFormatNoTex = ctx.newVertexFormat(5, TexFmtNoTex); m_texZTestZWrite = ctx.newShaderPipeline(VS_METAL_TEX, FS_METAL_TEX, m_vtxFormatTex, - CGraphics::g_ViewportSamples, - boo::BlendFactor::SrcAlpha, boo::BlendFactor::InvSrcAlpha, - boo::Primitive::TriStrips, true, true, false); + CGraphics::g_ViewportSamples, + boo::BlendFactor::SrcAlpha, boo::BlendFactor::InvSrcAlpha, + boo::Primitive::TriStrips, true, true, boo::CullMode::None); m_texNoZTestZWrite = ctx.newShaderPipeline(VS_METAL_TEX, FS_METAL_TEX, m_vtxFormatTex, - CGraphics::g_ViewportSamples, - boo::BlendFactor::SrcAlpha, boo::BlendFactor::InvSrcAlpha, - boo::Primitive::TriStrips, false, true, false); - m_texZTestNoZWrite = ctx.newShaderPipeline(VS_METAL_TEX, FS_METAL_TEX, m_vtxFormatTex, - CGraphics::g_ViewportSamples, - boo::BlendFactor::SrcAlpha, boo::BlendFactor::InvSrcAlpha, - boo::Primitive::TriStrips, true, false, false); - m_texNoZTestNoZWrite = ctx.newShaderPipeline(VS_METAL_TEX, FS_METAL_TEX, m_vtxFormatTex, - CGraphics::g_ViewportSamples, - boo::BlendFactor::SrcAlpha, boo::BlendFactor::InvSrcAlpha, - boo::Primitive::TriStrips, false, false, false); - - m_texAdditiveZTest = ctx.newShaderPipeline(VS_METAL_TEX, FS_METAL_TEX, m_vtxFormatTex, - CGraphics::g_ViewportSamples, - boo::BlendFactor::SrcAlpha, boo::BlendFactor::One, - boo::Primitive::TriStrips, true, false, false); - m_texAdditiveNoZTest = ctx.newShaderPipeline(VS_METAL_TEX, FS_METAL_TEX, m_vtxFormatTex, - CGraphics::g_ViewportSamples, - boo::BlendFactor::SrcAlpha, boo::BlendFactor::One, - boo::Primitive::TriStrips, false, false, false); - - m_texRedToAlphaZTest = ctx.newShaderPipeline(VS_METAL_TEX, FS_METAL_TEX_REDTOALPHA, m_vtxFormatTex, - CGraphics::g_ViewportSamples, - boo::BlendFactor::SrcAlpha, boo::BlendFactor::InvSrcAlpha, - boo::Primitive::TriStrips, true, false, false); - m_texRedToAlphaNoZTest = ctx.newShaderPipeline(VS_METAL_TEX, FS_METAL_TEX_REDTOALPHA, m_vtxFormatTex, - CGraphics::g_ViewportSamples, - boo::BlendFactor::SrcAlpha, boo::BlendFactor::InvSrcAlpha, - boo::Primitive::TriStrips, false, false, false); - - m_indTexZWrite = ctx.newShaderPipeline(VS_METAL_INDTEX, FS_METAL_INDTEX, m_vtxFormatIndTex, CGraphics::g_ViewportSamples, boo::BlendFactor::SrcAlpha, boo::BlendFactor::InvSrcAlpha, - boo::Primitive::TriStrips, false, true, false); - m_indTexNoZWrite = ctx.newShaderPipeline(VS_METAL_INDTEX, FS_METAL_INDTEX, m_vtxFormatIndTex, + boo::Primitive::TriStrips, false, true, boo::CullMode::None); + m_texZTestNoZWrite = ctx.newShaderPipeline(VS_METAL_TEX, FS_METAL_TEX, m_vtxFormatTex, + CGraphics::g_ViewportSamples, + boo::BlendFactor::SrcAlpha, boo::BlendFactor::InvSrcAlpha, + boo::Primitive::TriStrips, true, false, boo::CullMode::None); + m_texNoZTestNoZWrite = ctx.newShaderPipeline(VS_METAL_TEX, FS_METAL_TEX, m_vtxFormatTex, CGraphics::g_ViewportSamples, boo::BlendFactor::SrcAlpha, boo::BlendFactor::InvSrcAlpha, - boo::Primitive::TriStrips, false, false, false); - m_indTexAdditive = ctx.newShaderPipeline(VS_METAL_INDTEX, FS_METAL_INDTEX, m_vtxFormatIndTex, + boo::Primitive::TriStrips, false, false, boo::CullMode::None); + + m_texAdditiveZTest = ctx.newShaderPipeline(VS_METAL_TEX, FS_METAL_TEX, m_vtxFormatTex, + CGraphics::g_ViewportSamples, + boo::BlendFactor::SrcAlpha, boo::BlendFactor::One, + boo::Primitive::TriStrips, true, false, boo::CullMode::None); + m_texAdditiveNoZTest = ctx.newShaderPipeline(VS_METAL_TEX, FS_METAL_TEX, m_vtxFormatTex, CGraphics::g_ViewportSamples, boo::BlendFactor::SrcAlpha, boo::BlendFactor::One, - boo::Primitive::TriStrips, false, true, false); + boo::Primitive::TriStrips, false, false, boo::CullMode::None); - m_cindTexZWrite = ctx.newShaderPipeline(VS_METAL_INDTEX, FS_METAL_CINDTEX, m_vtxFormatIndTex, - CGraphics::g_ViewportSamples, - boo::BlendFactor::SrcAlpha, boo::BlendFactor::InvSrcAlpha, - boo::Primitive::TriStrips, false, true, false); - m_cindTexNoZWrite = ctx.newShaderPipeline(VS_METAL_INDTEX, FS_METAL_CINDTEX, m_vtxFormatIndTex, - CGraphics::g_ViewportSamples, - boo::BlendFactor::SrcAlpha, boo::BlendFactor::InvSrcAlpha, - boo::Primitive::TriStrips, false, false, false); - m_cindTexAdditive = ctx.newShaderPipeline(VS_METAL_INDTEX, FS_METAL_CINDTEX, m_vtxFormatIndTex, - CGraphics::g_ViewportSamples, - boo::BlendFactor::SrcAlpha, boo::BlendFactor::One, - boo::Primitive::TriStrips, false, true, false); - - m_noTexZTestZWrite = ctx.newShaderPipeline(VS_METAL_NOTEX, FS_METAL_NOTEX, m_vtxFormatNoTex, + m_texRedToAlphaZTest = ctx.newShaderPipeline(VS_METAL_TEX, FS_METAL_TEX_REDTOALPHA, m_vtxFormatTex, + CGraphics::g_ViewportSamples, + boo::BlendFactor::SrcAlpha, boo::BlendFactor::InvSrcAlpha, + boo::Primitive::TriStrips, true, false, boo::CullMode::None); + m_texRedToAlphaNoZTest = ctx.newShaderPipeline(VS_METAL_TEX, FS_METAL_TEX_REDTOALPHA, m_vtxFormatTex, CGraphics::g_ViewportSamples, boo::BlendFactor::SrcAlpha, boo::BlendFactor::InvSrcAlpha, - boo::Primitive::TriStrips, true, true, false); + boo::Primitive::TriStrips, false, false, boo::CullMode::None); + + m_indTexZWrite = ctx.newShaderPipeline(VS_METAL_INDTEX, FS_METAL_INDTEX, m_vtxFormatIndTex, + CGraphics::g_ViewportSamples, + boo::BlendFactor::SrcAlpha, boo::BlendFactor::InvSrcAlpha, + boo::Primitive::TriStrips, false, true, boo::CullMode::None); + m_indTexNoZWrite = ctx.newShaderPipeline(VS_METAL_INDTEX, FS_METAL_INDTEX, m_vtxFormatIndTex, + CGraphics::g_ViewportSamples, + boo::BlendFactor::SrcAlpha, boo::BlendFactor::InvSrcAlpha, + boo::Primitive::TriStrips, false, false, boo::CullMode::None); + m_indTexAdditive = ctx.newShaderPipeline(VS_METAL_INDTEX, FS_METAL_INDTEX, m_vtxFormatIndTex, + CGraphics::g_ViewportSamples, + boo::BlendFactor::SrcAlpha, boo::BlendFactor::One, + boo::Primitive::TriStrips, false, true, boo::CullMode::None); + + m_cindTexZWrite = ctx.newShaderPipeline(VS_METAL_INDTEX, FS_METAL_CINDTEX, m_vtxFormatIndTex, + CGraphics::g_ViewportSamples, + boo::BlendFactor::SrcAlpha, boo::BlendFactor::InvSrcAlpha, + boo::Primitive::TriStrips, false, true, boo::CullMode::None); + m_cindTexNoZWrite = ctx.newShaderPipeline(VS_METAL_INDTEX, FS_METAL_CINDTEX, m_vtxFormatIndTex, + CGraphics::g_ViewportSamples, + boo::BlendFactor::SrcAlpha, boo::BlendFactor::InvSrcAlpha, + boo::Primitive::TriStrips, false, false, boo::CullMode::None); + m_cindTexAdditive = ctx.newShaderPipeline(VS_METAL_INDTEX, FS_METAL_CINDTEX, m_vtxFormatIndTex, + CGraphics::g_ViewportSamples, + boo::BlendFactor::SrcAlpha, boo::BlendFactor::One, + boo::Primitive::TriStrips, false, true, boo::CullMode::None); + + m_noTexZTestZWrite = ctx.newShaderPipeline(VS_METAL_NOTEX, FS_METAL_NOTEX, m_vtxFormatNoTex, + CGraphics::g_ViewportSamples, + boo::BlendFactor::SrcAlpha, boo::BlendFactor::InvSrcAlpha, + boo::Primitive::TriStrips, true, true, boo::CullMode::None); m_noTexNoZTestZWrite = ctx.newShaderPipeline(VS_METAL_NOTEX, FS_METAL_NOTEX, m_vtxFormatNoTex, - CGraphics::g_ViewportSamples, - boo::BlendFactor::SrcAlpha, boo::BlendFactor::InvSrcAlpha, - boo::Primitive::TriStrips, false, true, false); + CGraphics::g_ViewportSamples, + boo::BlendFactor::SrcAlpha, boo::BlendFactor::InvSrcAlpha, + boo::Primitive::TriStrips, false, true, boo::CullMode::None); m_noTexZTestNoZWrite = ctx.newShaderPipeline(VS_METAL_NOTEX, FS_METAL_NOTEX, m_vtxFormatNoTex, - CGraphics::g_ViewportSamples, - boo::BlendFactor::SrcAlpha, boo::BlendFactor::InvSrcAlpha, - boo::Primitive::TriStrips, true, false, false); + CGraphics::g_ViewportSamples, + boo::BlendFactor::SrcAlpha, boo::BlendFactor::InvSrcAlpha, + boo::Primitive::TriStrips, true, false, boo::CullMode::None); m_noTexNoZTestNoZWrite = ctx.newShaderPipeline(VS_METAL_NOTEX, FS_METAL_NOTEX, m_vtxFormatNoTex, - CGraphics::g_ViewportSamples, - boo::BlendFactor::SrcAlpha, boo::BlendFactor::InvSrcAlpha, - boo::Primitive::TriStrips, false, false, false); + CGraphics::g_ViewportSamples, + boo::BlendFactor::SrcAlpha, boo::BlendFactor::InvSrcAlpha, + boo::Primitive::TriStrips, false, false, boo::CullMode::None); m_noTexAdditiveZTest = ctx.newShaderPipeline(VS_METAL_NOTEX, FS_METAL_NOTEX, m_vtxFormatNoTex, - CGraphics::g_ViewportSamples, - boo::BlendFactor::SrcAlpha, boo::BlendFactor::One, - boo::Primitive::TriStrips, true, false, false); + CGraphics::g_ViewportSamples, + boo::BlendFactor::SrcAlpha, boo::BlendFactor::One, + boo::Primitive::TriStrips, true, false, boo::CullMode::None); m_noTexAdditiveNoZTest = ctx.newShaderPipeline(VS_METAL_NOTEX, FS_METAL_NOTEX, m_vtxFormatNoTex, - CGraphics::g_ViewportSamples, - boo::BlendFactor::SrcAlpha, boo::BlendFactor::One, - boo::Primitive::TriStrips, false, false, false); + CGraphics::g_ViewportSamples, + boo::BlendFactor::SrcAlpha, boo::BlendFactor::One, + boo::Primitive::TriStrips, false, false, boo::CullMode::None); return new struct MetalElementDataBindingFactory; } diff --git a/hecl b/hecl index 325a91981..98513a38f 160000 --- a/hecl +++ b/hecl @@ -1 +1 @@ -Subproject commit 325a91981f12d5b633c3a47238aa451523831d97 +Subproject commit 98513a38f2a3a84c14b158339fdb7f061c4ffec1 diff --git a/specter b/specter index 3dc1c3bae..0a24fe470 160000 --- a/specter +++ b/specter @@ -1 +1 @@ -Subproject commit 3dc1c3bae0cb3f8549ea696db389ee04e1352020 +Subproject commit 0a24fe47034b2e64ca6d8239d439d142cab0fb71