forked from metin-server/m2dev-client-src
effect updating moved to update from render & rendering performance checker removed
This commit is contained in:
@@ -162,89 +162,21 @@ void CPythonApplication::Exit()
|
|||||||
PostQuitMessage(0);
|
PostQuitMessage(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool PERF_CHECKER_RENDER_GAME = false;
|
|
||||||
|
|
||||||
void CPythonApplication::RenderGame()
|
void CPythonApplication::RenderGame()
|
||||||
{
|
{
|
||||||
if (!PERF_CHECKER_RENDER_GAME)
|
float fAspect = m_kWndMgr.GetAspect();
|
||||||
{
|
float fFarClip = m_pyBackground.GetFarClip();
|
||||||
float fAspect=m_kWndMgr.GetAspect();
|
|
||||||
float fFarClip=m_pyBackground.GetFarClip();
|
|
||||||
|
|
||||||
m_pyGraphic.SetPerspective(30.0f, fAspect, 100.0, fFarClip);
|
|
||||||
|
|
||||||
CCullingManager::Instance().Process();
|
|
||||||
|
|
||||||
m_kChrMgr.Deform();
|
|
||||||
m_kEftMgr.Update();
|
|
||||||
|
|
||||||
m_pyBackground.RenderCharacterShadowToTexture();
|
|
||||||
|
|
||||||
m_pyGraphic.SetGameRenderState();
|
|
||||||
m_pyGraphic.PushState();
|
|
||||||
|
|
||||||
{
|
|
||||||
long lx, ly;
|
|
||||||
m_kWndMgr.GetMousePosition(lx, ly);
|
|
||||||
m_pyGraphic.SetCursorPosition(lx, ly);
|
|
||||||
}
|
|
||||||
|
|
||||||
m_pyBackground.RenderSky();
|
|
||||||
|
|
||||||
m_pyBackground.RenderBeforeLensFlare();
|
|
||||||
|
|
||||||
m_pyBackground.RenderCloud();
|
|
||||||
|
|
||||||
m_pyBackground.BeginEnvironment();
|
|
||||||
m_pyBackground.Render();
|
|
||||||
|
|
||||||
m_pyBackground.SetCharacterDirLight();
|
|
||||||
m_kChrMgr.Render();
|
|
||||||
|
|
||||||
m_pyBackground.SetBackgroundDirLight();
|
|
||||||
m_pyBackground.RenderWater();
|
|
||||||
m_pyBackground.RenderSnow();
|
|
||||||
m_pyBackground.RenderEffect();
|
|
||||||
|
|
||||||
m_pyBackground.EndEnvironment();
|
|
||||||
|
|
||||||
m_kEftMgr.Render();
|
|
||||||
m_pyItem.Render();
|
|
||||||
m_FlyingManager.Render();
|
|
||||||
|
|
||||||
m_pyBackground.BeginEnvironment();
|
|
||||||
m_pyBackground.RenderPCBlocker();
|
|
||||||
m_pyBackground.EndEnvironment();
|
|
||||||
|
|
||||||
m_pyBackground.RenderAfterLensFlare();
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
//if (GetAsyncKeyState(VK_Z))
|
|
||||||
// STATEMANAGER.SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME);
|
|
||||||
|
|
||||||
DWORD t1=ELTimer_GetMSec();
|
|
||||||
m_kChrMgr.Deform();
|
|
||||||
DWORD t2=ELTimer_GetMSec();
|
|
||||||
m_kEftMgr.Update();
|
|
||||||
DWORD t3=ELTimer_GetMSec();
|
|
||||||
m_pyBackground.RenderCharacterShadowToTexture();
|
|
||||||
DWORD t4=ELTimer_GetMSec();
|
|
||||||
|
|
||||||
m_pyGraphic.SetGameRenderState();
|
|
||||||
m_pyGraphic.PushState();
|
|
||||||
|
|
||||||
float fAspect=m_kWndMgr.GetAspect();
|
|
||||||
float fFarClip=m_pyBackground.GetFarClip();
|
|
||||||
|
|
||||||
m_pyGraphic.SetPerspective(30.0f, fAspect, 100.0, fFarClip);
|
m_pyGraphic.SetPerspective(30.0f, fAspect, 100.0, fFarClip);
|
||||||
|
|
||||||
DWORD t5=ELTimer_GetMSec();
|
|
||||||
|
|
||||||
CCullingManager::Instance().Process();
|
CCullingManager::Instance().Process();
|
||||||
|
|
||||||
DWORD t6=ELTimer_GetMSec();
|
m_kChrMgr.Deform();
|
||||||
|
|
||||||
|
m_pyBackground.RenderCharacterShadowToTexture();
|
||||||
|
|
||||||
|
m_pyGraphic.SetGameRenderState();
|
||||||
|
m_pyGraphic.PushState();
|
||||||
|
|
||||||
{
|
{
|
||||||
long lx, ly;
|
long lx, ly;
|
||||||
@@ -253,79 +185,42 @@ void CPythonApplication::RenderGame()
|
|||||||
}
|
}
|
||||||
|
|
||||||
m_pyBackground.RenderSky();
|
m_pyBackground.RenderSky();
|
||||||
DWORD t7=ELTimer_GetMSec();
|
|
||||||
m_pyBackground.RenderBeforeLensFlare();
|
m_pyBackground.RenderBeforeLensFlare();
|
||||||
DWORD t8=ELTimer_GetMSec();
|
|
||||||
m_pyBackground.RenderCloud();
|
m_pyBackground.RenderCloud();
|
||||||
DWORD t9=ELTimer_GetMSec();
|
|
||||||
m_pyBackground.BeginEnvironment();
|
m_pyBackground.BeginEnvironment();
|
||||||
m_pyBackground.Render();
|
m_pyBackground.Render();
|
||||||
|
|
||||||
m_pyBackground.SetCharacterDirLight();
|
m_pyBackground.SetCharacterDirLight();
|
||||||
DWORD t10=ELTimer_GetMSec();
|
|
||||||
m_kChrMgr.Render();
|
m_kChrMgr.Render();
|
||||||
DWORD t11=ELTimer_GetMSec();
|
|
||||||
|
|
||||||
m_pyBackground.SetBackgroundDirLight();
|
m_pyBackground.SetBackgroundDirLight();
|
||||||
m_pyBackground.RenderWater();
|
m_pyBackground.RenderWater();
|
||||||
DWORD t12=ELTimer_GetMSec();
|
m_pyBackground.RenderSnow();
|
||||||
m_pyBackground.RenderEffect();
|
m_pyBackground.RenderEffect();
|
||||||
DWORD t13=ELTimer_GetMSec();
|
|
||||||
m_pyBackground.EndEnvironment();
|
m_pyBackground.EndEnvironment();
|
||||||
|
|
||||||
m_kEftMgr.Render();
|
m_kEftMgr.Render();
|
||||||
DWORD t14=ELTimer_GetMSec();
|
|
||||||
m_pyItem.Render();
|
m_pyItem.Render();
|
||||||
DWORD t15=ELTimer_GetMSec();
|
|
||||||
m_FlyingManager.Render();
|
m_FlyingManager.Render();
|
||||||
DWORD t16=ELTimer_GetMSec();
|
|
||||||
m_pyBackground.BeginEnvironment();
|
m_pyBackground.BeginEnvironment();
|
||||||
m_pyBackground.RenderPCBlocker();
|
m_pyBackground.RenderPCBlocker();
|
||||||
m_pyBackground.EndEnvironment();
|
m_pyBackground.EndEnvironment();
|
||||||
DWORD t17=ELTimer_GetMSec();
|
|
||||||
m_pyBackground.RenderAfterLensFlare();
|
m_pyBackground.RenderAfterLensFlare();
|
||||||
DWORD t18=ELTimer_GetMSec();
|
|
||||||
DWORD tEnd=ELTimer_GetMSec();
|
|
||||||
|
|
||||||
if (GetAsyncKeyState(VK_Z))
|
|
||||||
STATEMANAGER.SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID);
|
|
||||||
|
|
||||||
if (tEnd-t1<3)
|
|
||||||
return;
|
|
||||||
|
|
||||||
static FILE* fp=fopen("perf_game_render.txt", "w");
|
|
||||||
|
|
||||||
fprintf(fp, "GR.Total %d (Time %d)\n", tEnd-t1, ELTimer_GetMSec());
|
|
||||||
fprintf(fp, "GR.DFM %d\n", t2-t1);
|
|
||||||
fprintf(fp, "GR.EFT.UP %d\n", t3-t2);
|
|
||||||
fprintf(fp, "GR.SHW %d\n", t4-t3);
|
|
||||||
fprintf(fp, "GR.STT %d\n", t5-t4);
|
|
||||||
fprintf(fp, "GR.CLL %d\n", t6-t5);
|
|
||||||
fprintf(fp, "GR.BG.SKY %d\n", t7-t6);
|
|
||||||
fprintf(fp, "GR.BG.LEN %d\n", t8-t7);
|
|
||||||
fprintf(fp, "GR.BG.CLD %d\n", t9-t8);
|
|
||||||
fprintf(fp, "GR.BG.MAIN %d\n", t10-t9);
|
|
||||||
fprintf(fp, "GR.CHR %d\n", t11-t10);
|
|
||||||
fprintf(fp, "GR.BG.WTR %d\n", t12-t11);
|
|
||||||
fprintf(fp, "GR.BG.EFT %d\n", t13-t12);
|
|
||||||
fprintf(fp, "GR.EFT %d\n", t14-t13);
|
|
||||||
fprintf(fp, "GR.ITM %d\n", t15-t14);
|
|
||||||
fprintf(fp, "GR.FLY %d\n", t16-t15);
|
|
||||||
fprintf(fp, "GR.BG.BLK %d\n", t17-t16);
|
|
||||||
fprintf(fp, "GR.BG.LEN %d\n", t18-t17);
|
|
||||||
|
|
||||||
|
|
||||||
fflush(fp);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CPythonApplication::UpdateGame()
|
void CPythonApplication::UpdateGame()
|
||||||
{
|
{
|
||||||
DWORD t1=ELTimer_GetMSec();
|
|
||||||
POINT ptMouse;
|
POINT ptMouse;
|
||||||
GetMousePosition(&ptMouse);
|
GetMousePosition(&ptMouse);
|
||||||
|
|
||||||
CGraphicTextInstance::Hyperlink_UpdateMousePos(ptMouse.x, ptMouse.y);
|
CGraphicTextInstance::Hyperlink_UpdateMousePos(ptMouse.x, ptMouse.y);
|
||||||
|
|
||||||
DWORD t2=ELTimer_GetMSec();
|
|
||||||
|
|
||||||
//!@# Alt+Tab Áß SetTransfor ¿¡¼ ƨ±è Çö»ó ÇØ°áÀ» À§ÇØ - [levites]
|
//!@# Alt+Tab Áß SetTransfor ¿¡¼ ƨ±è Çö»ó ÇØ°áÀ» À§ÇØ - [levites]
|
||||||
//if (m_isActivateWnd)
|
//if (m_isActivateWnd)
|
||||||
@@ -338,56 +233,27 @@ void CPythonApplication::UpdateGame()
|
|||||||
s.BuildViewFrustum();
|
s.BuildViewFrustum();
|
||||||
}
|
}
|
||||||
|
|
||||||
DWORD t3=ELTimer_GetMSec();
|
|
||||||
TPixelPosition kPPosMainActor;
|
TPixelPosition kPPosMainActor;
|
||||||
m_pyPlayer.NEW_GetMainActorPosition(&kPPosMainActor);
|
m_pyPlayer.NEW_GetMainActorPosition(&kPPosMainActor);
|
||||||
|
|
||||||
DWORD t4=ELTimer_GetMSec();
|
|
||||||
m_pyBackground.Update(kPPosMainActor.x, kPPosMainActor.y, kPPosMainActor.z);
|
m_pyBackground.Update(kPPosMainActor.x, kPPosMainActor.y, kPPosMainActor.z);
|
||||||
|
|
||||||
DWORD t5=ELTimer_GetMSec();
|
|
||||||
m_GameEventManager.SetCenterPosition(kPPosMainActor.x, kPPosMainActor.y, kPPosMainActor.z);
|
m_GameEventManager.SetCenterPosition(kPPosMainActor.x, kPPosMainActor.y, kPPosMainActor.z);
|
||||||
m_GameEventManager.Update();
|
m_GameEventManager.Update();
|
||||||
|
|
||||||
DWORD t6=ELTimer_GetMSec();
|
m_kChrMgr.Update();
|
||||||
m_kChrMgr.Update();
|
|
||||||
DWORD t7=ELTimer_GetMSec();
|
m_kEftMgr.Update();
|
||||||
m_kEftMgr.UpdateSound();
|
m_kEftMgr.UpdateSound();
|
||||||
DWORD t8=ELTimer_GetMSec();
|
|
||||||
m_FlyingManager.Update();
|
m_FlyingManager.Update();
|
||||||
DWORD t9=ELTimer_GetMSec();
|
|
||||||
m_pyItem.Update(ptMouse);
|
m_pyItem.Update(ptMouse);
|
||||||
DWORD t10=ELTimer_GetMSec();
|
|
||||||
m_pyPlayer.Update();
|
m_pyPlayer.Update();
|
||||||
DWORD t11=ELTimer_GetMSec();
|
|
||||||
|
|
||||||
// NOTE : Update µ¿¾È À§Ä¡ °ªÀÌ ¹Ù²î¹Ç·Î ´Ù½Ã ¾ò¾î ¿É´Ï´Ù - [levites]
|
// NOTE : Update µ¿¾È À§Ä¡ °ªÀÌ ¹Ù²î¹Ç·Î ´Ù½Ã ¾ò¾î ¿É´Ï´Ù - [levites]
|
||||||
// ÀÌ ºÎºÐ ¶§¹®¿¡ ¸ÞÀÎ Äɸ¯ÅÍÀÇ Sound°¡ ÀÌÀü À§Ä¡¿¡¼ Ç÷¹ÀÌ µÇ´Â Çö»óÀÌ ÀÖ¾úÀ½.
|
// ÀÌ ºÎºÐ ¶§¹®¿¡ ¸ÞÀÎ Äɸ¯ÅÍÀÇ Sound°¡ ÀÌÀü À§Ä¡¿¡¼ Ç÷¹ÀÌ µÇ´Â Çö»óÀÌ ÀÖ¾úÀ½.
|
||||||
m_pyPlayer.NEW_GetMainActorPosition(&kPPosMainActor);
|
m_pyPlayer.NEW_GetMainActorPosition(&kPPosMainActor);
|
||||||
SetCenterPosition(kPPosMainActor.x, kPPosMainActor.y, kPPosMainActor.z);
|
SetCenterPosition(kPPosMainActor.x, kPPosMainActor.y, kPPosMainActor.z);
|
||||||
DWORD t12=ELTimer_GetMSec();
|
|
||||||
|
|
||||||
if (PERF_CHECKER_RENDER_GAME)
|
|
||||||
{
|
|
||||||
if (t12-t1>5)
|
|
||||||
{
|
|
||||||
static FILE* fp=fopen("perf_game_update.txt", "w");
|
|
||||||
|
|
||||||
fprintf(fp, "GU.Total %d (Time %d)\n", t12-t1, ELTimer_GetMSec());
|
|
||||||
fprintf(fp, "GU.GMP %d\n", t2-t1);
|
|
||||||
fprintf(fp, "GU.SCR %d\n", t3-t2);
|
|
||||||
fprintf(fp, "GU.MPS %d\n", t4-t3);
|
|
||||||
fprintf(fp, "GU.BG %d\n", t5-t4);
|
|
||||||
fprintf(fp, "GU.GEM %d\n", t6-t5);
|
|
||||||
fprintf(fp, "GU.CHR %d\n", t7-t6);
|
|
||||||
fprintf(fp, "GU.EFT %d\n", t8-t7);
|
|
||||||
fprintf(fp, "GU.FLY %d\n", t9-t8);
|
|
||||||
fprintf(fp, "GU.ITM %d\n", t10-t9);
|
|
||||||
fprintf(fp, "GU.PLR %d\n", t11-t10);
|
|
||||||
fprintf(fp, "GU.POS %d\n", t12-t11);
|
|
||||||
fflush(fp);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CPythonApplication::SkipRenderBuffering(DWORD dwSleepMSec)
|
void CPythonApplication::SkipRenderBuffering(DWORD dwSleepMSec)
|
||||||
|
|||||||
@@ -5,7 +5,6 @@
|
|||||||
|
|
||||||
#include <stb_image.h>
|
#include <stb_image.h>
|
||||||
|
|
||||||
extern bool PERF_CHECKER_RENDER_GAME;
|
|
||||||
extern D3DXCOLOR g_fSpecularColor;
|
extern D3DXCOLOR g_fSpecularColor;
|
||||||
extern BOOL bVisibleNotice = true;
|
extern BOOL bVisibleNotice = true;
|
||||||
extern BOOL bTestServerFlag = FALSE;
|
extern BOOL bTestServerFlag = FALSE;
|
||||||
@@ -76,10 +75,7 @@ PyObject* appEnablePerformanceTime(PyObject* poSelf, PyObject* poArgs)
|
|||||||
if (!PyTuple_GetInteger(poArgs, 1, &nEnable))
|
if (!PyTuple_GetInteger(poArgs, 1, &nEnable))
|
||||||
return Py_BuildException();
|
return Py_BuildException();
|
||||||
|
|
||||||
bool isEnable=nEnable ? true : false;
|
// TODO: remove this function
|
||||||
|
|
||||||
if (strcmp(szMode, "RENDER_GAME")==0)
|
|
||||||
PERF_CHECKER_RENDER_GAME = isEnable;
|
|
||||||
|
|
||||||
return Py_BuildNone();
|
return Py_BuildNone();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user