CPauseScreenBlur fixes

This commit is contained in:
Jack Andersen 2017-11-16 22:57:40 -10:00
parent 0edac28ed4
commit d14763ca19
11 changed files with 43 additions and 39 deletions

View File

@ -98,8 +98,8 @@ CColoredQuadFilter::Initialize(boo::MetalDataFactory::Context& ctx)
boo::BlendFactor::One, boo::Primitive::TriStrips, boo::BlendFactor::One, boo::Primitive::TriStrips,
boo::ZTest::None, false, true, true, boo::CullMode::None); boo::ZTest::None, false, true, true, boo::CullMode::None);
s_MultPipeline = ctx.newShaderPipeline(VS, FS, nullptr, nullptr, s_MultPipeline = ctx.newShaderPipeline(VS, FS, nullptr, nullptr,
s_VtxFmt, CGraphics::g_ViewportSamples, boo::BlendFactor::SrcColor, s_VtxFmt, CGraphics::g_ViewportSamples, boo::BlendFactor::Zero,
boo::BlendFactor::DstColor, boo::Primitive::TriStrips, boo::BlendFactor::SrcColor, boo::Primitive::TriStrips,
boo::ZTest::None, false, true, true, boo::CullMode::None); boo::ZTest::None, false, true, true, boo::CullMode::None);
return new CColoredQuadFilterMetalDataBindingFactory; return new CColoredQuadFilterMetalDataBindingFactory;
} }

View File

@ -169,8 +169,8 @@ CRandomStaticFilter::Initialize(boo::MetalDataFactory::Context& ctx)
boo::ZTest::None, false, true, false, boo::CullMode::None); boo::ZTest::None, false, true, false, boo::CullMode::None);
s_MultPipeline = ctx.newShaderPipeline(VS, FS, nullptr, nullptr, s_MultPipeline = ctx.newShaderPipeline(VS, FS, nullptr, nullptr,
s_VtxFmt, CGraphics::g_ViewportSamples, s_VtxFmt, CGraphics::g_ViewportSamples,
boo::BlendFactor::SrcColor, boo::BlendFactor::Zero,
boo::BlendFactor::DstColor, boo::Primitive::TriStrips, boo::BlendFactor::SrcColor, boo::Primitive::TriStrips,
boo::ZTest::None, false, true, false, boo::CullMode::None); boo::ZTest::None, false, true, false, boo::CullMode::None);
s_CookieCutterPipeline = ctx.newShaderPipeline(VS, FSCookieCutter, nullptr, nullptr, s_CookieCutterPipeline = ctx.newShaderPipeline(VS, FSCookieCutter, nullptr, nullptr,
s_VtxFmt, CGraphics::g_ViewportSamples, s_VtxFmt, CGraphics::g_ViewportSamples,

View File

@ -102,8 +102,8 @@ CScanLinesFilter::Initialize(boo::MetalDataFactory::Context& ctx)
boo::BlendFactor::One, boo::Primitive::TriStrips, boo::BlendFactor::One, boo::Primitive::TriStrips,
boo::ZTest::None, false, true, true, boo::CullMode::None); boo::ZTest::None, false, true, true, boo::CullMode::None);
s_MultPipeline = ctx.newShaderPipeline(VS, FS, nullptr, nullptr, s_MultPipeline = ctx.newShaderPipeline(VS, FS, nullptr, nullptr,
s_VtxFmt, CGraphics::g_ViewportSamples, boo::BlendFactor::SrcColor, s_VtxFmt, CGraphics::g_ViewportSamples, boo::BlendFactor::Zero,
boo::BlendFactor::DstColor, boo::Primitive::TriStrips, boo::BlendFactor::SrcColor, boo::Primitive::TriStrips,
boo::ZTest::None, false, true, true, boo::CullMode::None); boo::ZTest::None, false, true, true, boo::CullMode::None);
return new CScanLinesFilterMetalDataBindingFactory; return new CScanLinesFilterMetalDataBindingFactory;
} }

View File

@ -12,6 +12,7 @@ CTexturedQuadFilter::CTexturedQuadFilter(const boo::ObjToken<boo::ITexture>& tex
CTexturedQuadFilter::CTexturedQuadFilter(EFilterType type, const boo::ObjToken<boo::ITexture>& tex, bool gequal) CTexturedQuadFilter::CTexturedQuadFilter(EFilterType type, const boo::ObjToken<boo::ITexture>& tex, bool gequal)
: m_booTex(tex), m_gequal(gequal) : m_booTex(tex), m_gequal(gequal)
{ {
tex->setClampMode(boo::TextureClampMode::ClampToEdge);
CGraphics::CommitResources([&](boo::IGraphicsDataFactory::Context& ctx) -> bool CGraphics::CommitResources([&](boo::IGraphicsDataFactory::Context& ctx) -> bool
{ {
m_vbo = ctx.newDynamicBuffer(boo::BufferUse::Vertex, 32, 16); m_vbo = ctx.newDynamicBuffer(boo::BufferUse::Vertex, 32, 16);
@ -99,22 +100,22 @@ void CTexturedQuadFilter::DrawFilter(EFilterShape shape, const zeus::CColor& col
{ {
Vert QuadVerts[] = Vert QuadVerts[] =
{ {
{{-1.f, -1.f, 0.f}, {0.f, 0.f}}, {{-1.f, -1.f, 0.f}, {t, t}}, // ll
{{-1.f, 0.f, 0.f}, {0.f, t}}, {{-1.f, 0.f, 0.f}, {t, 0.f}},
{{ 0.f, -1.f, 0.f}, {t, 0.f}}, {{ 0.f, -1.f, 0.f}, {0.f, t}},
{{ 0.f, 0.f, 0.f}, {t, t}}, {{ 0.f, 0.f, 0.f}, {0.f, 0.f}},
{{-1.f, 1.f, 0.f}, {0.f, 0.f}}, {{-1.f, 1.f, 0.f}, {t, t}}, // ul
{{-1.f, 0.f, 0.f}, {0.f, t}}, {{-1.f, 0.f, 0.f}, {t, 0.f}},
{{ 0.f, 1.f, 0.f}, {t, 0.f}}, {{ 0.f, 1.f, 0.f}, {0.f, t}},
{{ 0.f, 0.f, 0.f}, {t, t}}, {{ 0.f, 0.f, 0.f}, {0.f, 0.f}},
{{ 1.f, -1.f, 0.f}, {0.f, 0.f}}, {{ 1.f, -1.f, 0.f}, {t, t}}, // lr
{{ 1.f, 0.f, 0.f}, {0.f, t}}, {{ 1.f, 0.f, 0.f}, {t, 0.f}},
{{ 0.f, -1.f, 0.f}, {t, 0.f}}, {{ 0.f, -1.f, 0.f}, {0.f, t}},
{{ 0.f, 0.f, 0.f}, {t, t}}, {{ 0.f, 0.f, 0.f}, {0.f, 0.f}},
{{ 1.f, 1.f, 0.f}, {0.f, 0.f}}, {{ 1.f, 1.f, 0.f}, {t, t}}, // ur
{{ 1.f, 0.f, 0.f}, {0.f, t}}, {{ 1.f, 0.f, 0.f}, {t, 0.f}},
{{ 0.f, 1.f, 0.f}, {t, 0.f}}, {{ 0.f, 1.f, 0.f}, {0.f, t}},
{{ 0.f, 0.f, 0.f}, {t, t}}, {{ 0.f, 0.f, 0.f}, {0.f, 0.f}},
}; };
m_vbo->load(QuadVerts, sizeof(Vert) * 16); m_vbo->load(QuadVerts, sizeof(Vert) * 16);
CGraphics::DrawArray(0, 4); CGraphics::DrawArray(0, 4);

View File

@ -59,7 +59,7 @@ BOO_GLSL_BINDING_HEAD
"void main()\n" "void main()\n"
"{\n" "{\n"
" vtf.color = color;\n" " vtf.color = color;\n"
" vtf.uv = -uvIn.xy;\n" " vtf.uv = uvIn.xy;\n"
" vtf.lod = lod;\n" " vtf.lod = lod;\n"
" gl_Position = mtx * vec4(posIn.xyz, 1.0);\n" " gl_Position = mtx * vec4(posIn.xyz, 1.0);\n"
" gl_Position = FLIPFROMGL(gl_Position);\n" " gl_Position = FLIPFROMGL(gl_Position);\n"

View File

@ -64,7 +64,7 @@ static const char* VSNoFlip =
" VertToFrag vtf;\n" " VertToFrag vtf;\n"
" vtf.color = color;\n" " vtf.color = color;\n"
" vtf.uv = v.uvIn.xy;\n" " vtf.uv = v.uvIn.xy;\n"
" vtf.uv.y = -vtf.uv.y;\n" " vtf.uv.y = 1.f - vtf.uv.y;\n"
" vtf.lod = lod;\n" " vtf.lod = lod;\n"
" vtf.position = mul(mat, float4(v.posIn.xyz, 1.0));\n" " vtf.position = mul(mat, float4(v.posIn.xyz, 1.0));\n"
" return vtf;\n" " return vtf;\n"
@ -80,7 +80,7 @@ static const char* FS =
"};\n" "};\n"
"\n" "\n"
"Texture2D tex : register(t0);\n" "Texture2D tex : register(t0);\n"
"SamplerState samp : register(s0);\n" "SamplerState samp : register(s2);\n"
"\n" "\n"
"float4 main(in VertToFrag vtf) : SV_Target0\n" "float4 main(in VertToFrag vtf) : SV_Target0\n"
"{\n" "{\n"
@ -97,7 +97,7 @@ static const char* FSAlpha =
"};\n" "};\n"
"\n" "\n"
"Texture2D tex : register(t0);\n" "Texture2D tex : register(t0);\n"
"SamplerState samp : register(s0);\n" "SamplerState samp : register(s2);\n"
"\n" "\n"
"float4 main(in VertToFrag vtf) : SV_Target0\n" "float4 main(in VertToFrag vtf) : SV_Target0\n"
"{\n" "{\n"

View File

@ -68,7 +68,6 @@ static const char* VSNoFlip =
" VertToFrag vtf;\n" " VertToFrag vtf;\n"
" vtf.color = tqu.color;\n" " vtf.color = tqu.color;\n"
" vtf.uv = v.uvIn.xy;\n" " vtf.uv = v.uvIn.xy;\n"
" vtf.uv.y = -vtf.uv.y;\n"
" vtf.lod = tqu.lod;\n" " vtf.lod = tqu.lod;\n"
" vtf.position = tqu.mat * float4(v.posIn.xyz, 1.0);\n" " vtf.position = tqu.mat * float4(v.posIn.xyz, 1.0);\n"
" return vtf;\n" " return vtf;\n"
@ -78,7 +77,7 @@ static const char* VSNoFlip =
static const char* FS = static const char* FS =
"#include <metal_stdlib>\n" "#include <metal_stdlib>\n"
"using namespace metal;\n" "using namespace metal;\n"
"constexpr sampler samp(address::repeat, filter::linear);\n" "constexpr sampler samp(address::clamp_to_edge, filter::linear);\n"
"struct VertToFrag\n" "struct VertToFrag\n"
"{\n" "{\n"
" float4 position [[ position ]];\n" " float4 position [[ position ]];\n"
@ -95,7 +94,7 @@ static const char* FS =
static const char* FSAlpha = static const char* FSAlpha =
"#include <metal_stdlib>\n" "#include <metal_stdlib>\n"
"using namespace metal;\n" "using namespace metal;\n"
"constexpr sampler samp(address::repeat, filter::linear);\n" "constexpr sampler samp(address::clamp_to_edge, filter::linear);\n"
"struct VertToFrag\n" "struct VertToFrag\n"
"{\n" "{\n"
" float4 position [[ position ]];\n" " float4 position [[ position ]];\n"
@ -171,8 +170,8 @@ CTexturedQuadFilter::Initialize(boo::MetalDataFactory::Context& ctx)
boo::BlendFactor::One, boo::Primitive::TriStrips, boo::ZTest::None, false, boo::BlendFactor::One, boo::Primitive::TriStrips, boo::ZTest::None, false,
true, false, boo::CullMode::None); true, false, boo::CullMode::None);
s_MultPipeline = ctx.newShaderPipeline(VSNoFlip, FS, nullptr, nullptr, s_MultPipeline = ctx.newShaderPipeline(VSNoFlip, FS, nullptr, nullptr,
s_VtxFmt, CGraphics::g_ViewportSamples, boo::BlendFactor::SrcColor, s_VtxFmt, CGraphics::g_ViewportSamples, boo::BlendFactor::Zero,
boo::BlendFactor::DstColor, boo::Primitive::TriStrips, boo::ZTest::None, false, boo::BlendFactor::SrcColor, boo::Primitive::TriStrips, boo::ZTest::None, false,
true, false, boo::CullMode::None); true, false, boo::CullMode::None);
return new CTexturedQuadFilterMetalDataBindingFactory; return new CTexturedQuadFilterMetalDataBindingFactory;
} }
@ -240,8 +239,8 @@ CTexturedQuadFilterAlpha::Initialize(boo::MetalDataFactory::Context& ctx)
boo::BlendFactor::One, boo::Primitive::TriStrips, boo::BlendFactor::One, boo::Primitive::TriStrips,
boo::ZTest::None, false, true, false, boo::CullMode::None); boo::ZTest::None, false, true, false, boo::CullMode::None);
s_AMultPipeline = ctx.newShaderPipeline(VSFlip, FSAlpha, nullptr, nullptr, s_AMultPipeline = ctx.newShaderPipeline(VSFlip, FSAlpha, nullptr, nullptr,
s_AVtxFmt, CGraphics::g_ViewportSamples, boo::BlendFactor::SrcColor, s_AVtxFmt, CGraphics::g_ViewportSamples, boo::BlendFactor::Zero,
boo::BlendFactor::DstColor, boo::Primitive::TriStrips, boo::BlendFactor::SrcColor, boo::Primitive::TriStrips,
boo::ZTest::None, false, true, false, boo::CullMode::None); boo::ZTest::None, false, true, false, boo::CullMode::None);
return new CTexturedQuadFilterAlphaMetalDataBindingFactory; return new CTexturedQuadFilterAlphaMetalDataBindingFactory;
} }

View File

@ -438,7 +438,8 @@ void CInGameGuiManager::Update(CStateManager& stateMgr, float dt, CArchitectureQ
if (x1f0_enablePlayerVisor) if (x1f0_enablePlayerVisor)
x30_playerVisor->Update(dt, stateMgr); x30_playerVisor->Update(dt, stateMgr);
if (x1f8_25_playerAlive) if (x1f8_25_playerAlive)
x34_samusHud->Update(dt, stateMgr, x1e0_helmetVisMode, x1ec_hudVisMode != EHudVisMode::Zero, x1e4_enableTargetingManager); x34_samusHud->Update(dt, stateMgr, x1e0_helmetVisMode, x1ec_hudVisMode != EHudVisMode::Zero,
x1e4_enableTargetingManager);
} }
if (x1e8_enableAutoMapper) if (x1e8_enableAutoMapper)
@ -747,7 +748,9 @@ void CInGameGuiManager::StartFadeIn()
bool CInGameGuiManager::GetIsGameDraw() const bool CInGameGuiManager::GetIsGameDraw() const
{ {
return x3c_pauseScreenBlur->IsGameDraw(); // Always draw world for URDE, even while paused
return true;
//return x3c_pauseScreenBlur->IsGameDraw();
} }
} }

View File

@ -106,10 +106,11 @@ void CPauseScreenBlur::Draw(const CStateManager&) const
{ {
zeus::CColor filterColor = zeus::CColor filterColor =
zeus::CColor::lerp(zeus::CColor::skWhite, g_tweakGuiColors->GetPauseBlurFilterColor(), t); zeus::CColor::lerp(zeus::CColor::skWhite, g_tweakGuiColors->GetPauseBlurFilterColor(), t);
const_cast<CTexturedQuadFilter&>(m_quarterFilter).DrawFilter(EFilterShape::FullscreenQuarters, filterColor, t * (31.f/32.f)); const_cast<CTexturedQuadFilter&>(m_quarterFilter).DrawFilter(EFilterShape::FullscreenQuarters,
filterColor, t);
zeus::CColor scanLinesColor = zeus::CColor scanLinesColor =
zeus::CColor::lerp(zeus::CColor::skWhite, zeus::CColor(0.75f, 1.f), t); zeus::CColor::lerp(zeus::CColor::skWhite, zeus::CColor(0.75f, 1.f), t);
const_cast<CScanLinesFilterEven&>(m_linesFilter).draw(scanLinesColor); //const_cast<CScanLinesFilterEven&>(m_linesFilter).draw(scanLinesColor);
} }
if (x50_24_blurring /*&& x1c_camBlur.x2d_noPersistentCopy*/) if (x50_24_blurring /*&& x1c_camBlur.x2d_noPersistentCopy*/)

2
hecl

@ -1 +1 @@
Subproject commit b57b00da0be1d40be7b413b923f1de0ddb432735 Subproject commit 47e0feda0dffb476757d78cbb07c7500a16185e6

@ -1 +1 @@
Subproject commit 2ad799ced38bd484d5afd5f56e677e0075f7da03 Subproject commit 45c81ae955c52c9cf185c643879b3436595f5b06