From 324d89693c5b6c2794d7090dbdf0ed3c36eed9ac Mon Sep 17 00:00:00 2001 From: Luke Street Date: Sun, 31 Jul 2022 17:03:15 -0400 Subject: [PATCH] Update aurora; CMoviePlayer fixes --- Runtime/Graphics/CGraphics.cpp | 7 +------ Runtime/Graphics/CMoviePlayer.cpp | 11 +++++++++-- extern/aurora | 2 +- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/Runtime/Graphics/CGraphics.cpp b/Runtime/Graphics/CGraphics.cpp index 23e847654..e6ac1d39a 100644 --- a/Runtime/Graphics/CGraphics.cpp +++ b/Runtime/Graphics/CGraphics.cpp @@ -190,7 +190,7 @@ void CGraphics::Render2D(CTexture& tex, u32 x, u32 y, u32 w, u32 h, const zeus:: const auto oldLights = g_LightActive; SetOrtho(-g_Viewport.x10_halfWidth, g_Viewport.x10_halfWidth, g_Viewport.x14_halfHeight, -g_Viewport.x14_halfHeight, -1.f, -10.f); - GXLoadPosMtxImm({}, GX_PNMTX0); + GXLoadPosMtxImm(&zeus::skIdentityMatrix4f, GX_PNMTX0); DisableAllLights(); SetCullMode(ERglCullMode::None); tex.Load(GX_TEXMAP0, EClampMode::Repeat); @@ -273,11 +273,6 @@ void CGraphics::SetModelMatrix(const zeus::CTransform& xf) { SetViewMatrix(); } -constexpr zeus::CMatrix4f PlusOneZ(1.f, 0.f, 0.f, 0.f, 0.f, 1.f, 0.f, 0.f, 0.f, 0.f, 1.f, 1.f, 0.f, 0.f, 0.f, 1.f); - -constexpr zeus::CMatrix4f VulkanCorrect(1.f, 0.f, 0.f, 0.f, 0.f, -1.f, 0.f, 0.f, 0.f, 0.f, 0.5f, 0.5f + FLT_EPSILON, - 0.f, 0.f, 0.f, 1.f); - zeus::CMatrix4f CGraphics::CalculatePerspectiveMatrix(float fovy, float aspect, float znear, float zfar) { CProjectionState st; float tfov = std::tan(zeus::degToRad(fovy * 0.5f)); diff --git a/Runtime/Graphics/CMoviePlayer.cpp b/Runtime/Graphics/CMoviePlayer.cpp index 1f91127b4..d4d0bc456 100644 --- a/Runtime/Graphics/CMoviePlayer.cpp +++ b/Runtime/Graphics/CMoviePlayer.cpp @@ -78,8 +78,8 @@ static void MyTHPGXYuv2RgbSetup(bool interlaced2ndFrame, bool fieldFlip) { GXSetColorUpdate(true); GXSetAlphaUpdate(false); GXInvalidateTexAll(); - GXSetVtxAttrFmt(GX_VTXFMT7, GX_VA_POS, GX_CLR_RGBA, GX_F32, 0); - GXSetVtxAttrFmt(GX_VTXFMT7, GX_VA_TEX0, GX_CLR_RGBA, GX_RGBX8, 0); + GXSetVtxAttrFmt(GX_VTXFMT7, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetVtxAttrFmt(GX_VTXFMT7, GX_VA_TEX0, GX_TEX_ST, GX_U16, 0); CGX::SetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD1, GX_TEXMAP1, GX_COLOR_NULL); CGX::SetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_KONST, GX_CC_C0); CGX::SetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, false, GX_TEVPREV); @@ -484,8 +484,15 @@ bool CMoviePlayer::DrawVideo() { const s32 vpWidth = CGraphics::GetViewportWidth(); const s32 vpTop = CGraphics::GetViewportTop(); const s32 vpLeft = CGraphics::GetViewportLeft(); +#ifdef AURORA + // Scale to full size, maintaining aspect ratio + float vidAspect = static_cast(x6c_videoInfo.width) / static_cast(x6c_videoInfo.height); + const s32 vidWidth = vpHeight * vidAspect; + const s32 vidHeight = vpHeight; +#else const s32 vidWidth = x6c_videoInfo.width; const s32 vidHeight = x6c_videoInfo.height; +#endif const s32 centerX = (vidWidth - vpWidth) / 2; const s32 centerY = (vidHeight - vpHeight) / 2; const s32 vl = vpLeft - centerX; diff --git a/extern/aurora b/extern/aurora index e22541f17..04590f30c 160000 --- a/extern/aurora +++ b/extern/aurora @@ -1 +1 @@ -Subproject commit e22541f1750128a4386759ee4f8c21565619a020 +Subproject commit 04590f30cd90814d70fa7d1fe4a5f1e814b177c2