From b691c43c44ff180d10e7d4a9afc83b98551ff586 Mon Sep 17 00:00:00 2001 From: daoge_cmd <3523206925@qq.com> Date: Sun, 1 Mar 2026 12:16:08 +0800 Subject: Initial commit --- .../Common/XUI/XUI_Ctrl_SplashPulser.cpp | 94 ++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 Minecraft.Client/Common/XUI/XUI_Ctrl_SplashPulser.cpp (limited to 'Minecraft.Client/Common/XUI/XUI_Ctrl_SplashPulser.cpp') diff --git a/Minecraft.Client/Common/XUI/XUI_Ctrl_SplashPulser.cpp b/Minecraft.Client/Common/XUI/XUI_Ctrl_SplashPulser.cpp new file mode 100644 index 00000000..2e971710 --- /dev/null +++ b/Minecraft.Client/Common/XUI/XUI_Ctrl_SplashPulser.cpp @@ -0,0 +1,94 @@ +#include "stdafx.h" +#include "..\..\Minecraft.h" +#include "..\..\ScreenSizeCalculator.h" +#include "..\..\Lighting.h" +#include "XUI_Ctrl_SplashPulser.h" +#include "..\..\Font.h" +#include "..\..\..\Minecraft.World\Mth.h" +#include "..\..\..\Minecraft.World\System.h" + +//----------------------------------------------------------------------------- +// CXuiCtrlSplashPulser class +//----------------------------------------------------------------------------- + +//----------------------------------------------------------------------------- +CXuiCtrlSplashPulser::CXuiCtrlSplashPulser() : + m_bDirty(FALSE), + m_fScale(1.0f), + m_fAlpha(1.0f) +{ + Minecraft *pMinecraft=Minecraft::GetInstance(); + + ScreenSizeCalculator ssc(pMinecraft->options, pMinecraft->width_phys, pMinecraft->height_phys); + m_fScreenWidth=(float)pMinecraft->width_phys; + m_fRawWidth=(float)ssc.rawWidth; + m_fScreenHeight=(float)pMinecraft->height_phys; + m_fRawHeight=(float)ssc.rawHeight; +} + +//----------------------------------------------------------------------------- +HRESULT CXuiCtrlSplashPulser::OnInit(XUIMessageInit* pInitData, BOOL& rfHandled) +{ + HRESULT hr=S_OK; + return hr; +} + +HRESULT CXuiCtrlSplashPulser::OnRender(XUIMessageRender *pRenderData, BOOL &bHandled ) +{ +#ifdef _XBOX + HXUIDC hDC = pRenderData->hDC; + + Minecraft *pMinecraft=Minecraft::GetInstance(); + Font *font = pMinecraft->font; + + wstring splash( GetText() ); + + // build and render with the game call + + glDisable(GL_CULL_FACE); + glDisable(GL_DEPTH_TEST); + + RenderManager.Set_matrixDirty(); + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + glOrtho(0, 1280.0f, 720.0f, 0, 1000, 3000); + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + glTranslatef(0, 0, -2000); + glColor4f(1.0f,1.0f,1.0f,1.0f); + + glPushMatrix(); + + D3DXMATRIX matrix; + CXuiControl xuiControl(m_hObj); + xuiControl.GetFullXForm(&matrix); + float bwidth,bheight; + xuiControl.GetBounds(&bwidth,&bheight); + + float xo = (matrix._41 + (bwidth*matrix._11)/2 ); + float yo = (matrix._42 + (bheight*matrix._22) ); + glTranslatef(xo, yo, 0); + + glRotatef(-17, 0, 0, 1); + float sss = 1.8f - Mth::abs(Mth::sin(System::currentTimeMillis() % 1000 / 1000.0f * PI * 2) * 0.1f); + sss*=(m_fScreenWidth/m_fRawWidth); + + sss = sss * 100 / (font->width(splash) + 8 * 4); + glScalef(sss, sss, sss); + //drawCenteredString(font, splash, 0, -8, 0xffff00); + font->drawShadow(splash, 0 - (font->width(splash)) / 2, -8, 0xffff00); + glPopMatrix(); + + glDisable(GL_RESCALE_NORMAL); + + glEnable(GL_DEPTH_TEST); + + XuiRenderRestoreState(hDC); + + bHandled = TRUE; +#endif + return S_OK; +} + + + -- cgit v1.2.3