aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Client/Common/XUI/XUI_Ctrl_SplashPulser.cpp
diff options
context:
space:
mode:
authordaoge_cmd <3523206925@qq.com>2026-03-01 12:16:08 +0800
committerdaoge_cmd <3523206925@qq.com>2026-03-01 12:16:08 +0800
commitb691c43c44ff180d10e7d4a9afc83b98551ff586 (patch)
tree3e9849222cbc6ba49f2f1fc6e5fe7179632c7390 /Minecraft.Client/Common/XUI/XUI_Ctrl_SplashPulser.cpp
parentdef8cb415354ac390b7e89052a50605285f1aca9 (diff)
Initial commit
Diffstat (limited to 'Minecraft.Client/Common/XUI/XUI_Ctrl_SplashPulser.cpp')
-rw-r--r--Minecraft.Client/Common/XUI/XUI_Ctrl_SplashPulser.cpp94
1 files changed, 94 insertions, 0 deletions
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;
+}
+
+
+