Selam, sizlere bugün bir performance sistemi paylasiyorum.
Bir suru mob spawn yaparsaniz önemli fps drop yersiniz.
Cok fazla konusmaya gerek yok sizlere bir GIF göstereyim.
Before/Önce :Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
After/Sonra :Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Daha önceden kurmuştum ama sanki farklı bir ad ileydi yada bana öyle geliyor her neyse şuanda aktif olarak kullanıyorum.
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
I ask for help.Selam, sizlere bugün bir performance sistemi paylasiyorum.
Bir suru mob spawn yaparsaniz önemli fps drop yersiniz.
Cok fazla konusmaya gerek yok sizlere bir GIF göstereyim.
Before/Önce :Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
After/Sonra :Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
I can't figure out where to add the CRenderTargetManager function
Ekli dosyalar
Hatayı hangi konudaki sistemi eklerken aldıysan oraya at.I ask for help.
I can't figure out where to add the CRenderTargetManager function
PythonApplication.cpp
if (!s_bFrameSkip)
{
CGrannyMaterial::TranslateSpecularMatrix(g_specularSpd, g_specularSpd, 0.0f);
DWORD dwRenderStartTime = ELTimer_GetMSec();
bool canRender = true;
if (m_isMinimizedWnd)
{
canRender = false;
}
else
{
if (m_pyGraphic.IsLostDevice())
{
CPythonBackground& rkBG = CPythonBackground::Instance();
rkBG.ReleaseCharacterShadowTexture();
if (m_pyGraphic.RestoreDevice())
rkBG.CreateCharacterShadowTexture();
else
canRender = false;
}
}
// Replace all with :
if (!s_bFrameSkip)
{
CGrannyMaterial::TranslateSpecularMatrix(g_specularSpd, g_specularSpd, 0.0f);
DWORD dwRenderStartTime = ELTimer_GetMSec();
bool canRender = true;
if (m_isMinimizedWnd)
{
canRender = false;
}
else
{
#ifdef ENABLE_FIX_MOBS_LAG
if (DEVICE_STATE_OK != CheckDeviceState())
{
canRender = false;
CPythonBackground& rkBG = CPythonBackground::Instance();
CRenderTargetManager::Instance().ReleaseRenderTargetTextures();
if (m_pyGraphic.RestoreDevice())
{
CRenderTargetManager::Instance().CreateRenderTargetTextures();
rkBG.CreateCharacterShadowTexture();
}
else
{
canRender = false;
}
}
#else
if (m_pyGraphic.IsLostDevice())
{
CPythonBackground &rkBG = CPythonBackground::Instance();
rkBG.ReleaseCharacterShadowTexture();
CRenderTargetManager::Instance().ReleaseRenderTargetTextures();
if (m_pyGraphic.RestoreDevice())
{
CRenderTargetManager::Instance().CreateRenderTargetTextures();
rkBG.CreateCharacterShadowTexture();
}
else
{
canRender = false;
}
}
#endif
}
// Search :
int CPythonApplication::CheckDeviceState()
{
CGraphicDevice::EDeviceState e_deviceState = m_grpDevice.GetDeviceState();
switch (e_deviceState)
{
// 디바이스가 없으면 프로그램이 종료 되어야 한다.
case CGraphicDevice:
EVICESTATE_NULL:
return DEVICE_STATE_FALSE;
// DEVICESTATE_BROKEN일 때는 다음 루프에서 복구 될 수 있도록 리턴 한다.
// 그냥 진행할 경우 DrawPrimitive 같은 것을 하면 프로그램이 터진다.
case CGraphicDevice:
EVICESTATE_BROKEN:
return DEVICE_STATE_SKIP;
case CGraphicDevice:
EVICESTATE_NEEDS_RESET:
if (!m_grpDevice.Reset())
return DEVICE_STATE_SKIP;
break;
}
return DEVICE_STATE_OK;
}
// Replace all with :
int CPythonApplication::CheckDeviceState()
{
CGraphicDevice::EDeviceState e_deviceState = m_grpDevice.GetDeviceState();
switch (e_deviceState)
{
case CGraphicDevice:
EVICESTATE_NULL:
return DEVICE_STATE_FALSE;
case CGraphicDevice:
EVICESTATE_BROKEN:
return DEVICE_STATE_SKIP;
#ifdef ENABLE_FIX_MOBS_LAG
case CGraphicDevice:
EVICESTATE_NEEDS_RESET:
m_pyBackground.ReleaseCharacterShadowTexture();
CRenderTargetManager::Instance().ReleaseRenderTargetTextures();
Trace("DEVICESTATE_NEEDS_RESET - attempting");
if (!m_grpDevice.Reset())
{
return DEVICE_STATE_SKIP;
}
CRenderTargetManager::Instance().CreateRenderTargetTextures();
m_pyBackground.CreateCharacterShadowTexture();
break;
case CGraphicDevice:
EVICESTATE_OK: break;
default:;
#else
case CGraphicDevice:
EVICESTATE_NEEDS_RESET:
if (!m_grpDevice.Reset())
{
return DEVICE_STATE_SKIP;
}
break;
#endif
}
return DEVICE_STATE_OK;
}
CRenderTargetManager::Instance().ReleaseRenderTargetTextures(); error
// Search :Hatayı hangi konudaki sistemi eklerken aldıysan oraya at.
if (!s_bFrameSkip)
{
CGrannyMaterial::TranslateSpecularMatrix(g_specularSpd, g_specularSpd, 0.0f);
DWORD dwRenderStartTime = ELTimer_GetMSec();
bool canRender = true;
if (m_isMinimizedWnd)
{
canRender = false;
}
else
{
if (m_pyGraphic.IsLostDevice())
{
CPythonBackground& rkBG = CPythonBackground::Instance();
rkBG.ReleaseCharacterShadowTexture();
if (m_pyGraphic.RestoreDevice())
rkBG.CreateCharacterShadowTexture();
else
canRender = false;
}
}
// Replace all with :
if (!s_bFrameSkip)
{
CGrannyMaterial::TranslateSpecularMatrix(g_specularSpd, g_specularSpd, 0.0f);
DWORD dwRenderStartTime = ELTimer_GetMSec();
bool canRender = true;
if (m_isMinimizedWnd)
{
canRender = false;
}
else
{
#ifdef ENABLE_FIX_MOBS_LAG
if (DEVICE_STATE_OK != CheckDeviceState())
{
canRender = false;
CPythonBackground& rkBG = CPythonBackground::Instance();
CRenderTargetManager::Instance().ReleaseRenderTargetTextures();
if (m_pyGraphic.RestoreDevice())
{
CRenderTargetManager::Instance().CreateRenderTargetTextures();
rkBG.CreateCharacterShadowTexture();
}
else
{
canRender = false;
}
}
#else
if (m_pyGraphic.IsLostDevice())
{
CPythonBackground &rkBG = CPythonBackground::Instance();
rkBG.ReleaseCharacterShadowTexture();
CRenderTargetManager::Instance().ReleaseRenderTargetTextures();
if (m_pyGraphic.RestoreDevice())
{
CRenderTargetManager::Instance().CreateRenderTargetTextures();
rkBG.CreateCharacterShadowTexture();
}
else
{
canRender = false;
}
}
#endif
}
// Search :
int CPythonApplication::CheckDeviceState()
{
CGraphicDevice::EDeviceState e_deviceState = m_grpDevice.GetDeviceState();
switch (e_deviceState)
{
// 디바이스가 없으면 프로그램이 종료 되어야 한다.
case CGraphicDevice:
EVICESTATE_NULL:return DEVICE_STATE_FALSE;
// DEVICESTATE_BROKEN일 때는 다음 루프에서 복구 될 수 있도록 리턴 한다.
// 그냥 진행할 경우 DrawPrimitive 같은 것을 하면 프로그램이 터진다.
case CGraphicDevice:
EVICESTATE_BROKEN:return DEVICE_STATE_SKIP;
case CGraphicDevice:
EVICESTATE_NEEDS_RESET:if (!m_grpDevice.Reset())
return DEVICE_STATE_SKIP;
break;
}
return DEVICE_STATE_OK;
}
// Replace all with :
int CPythonApplication::CheckDeviceState()
{
CGraphicDevice::EDeviceState e_deviceState = m_grpDevice.GetDeviceState();
switch (e_deviceState)
{
case CGraphicDevice:
EVICESTATE_NULL:return DEVICE_STATE_FALSE;
case CGraphicDevice:
EVICESTATE_BROKEN:return DEVICE_STATE_SKIP;
#ifdef ENABLE_FIX_MOBS_LAG
case CGraphicDevice:
EVICESTATE_NEEDS_RESET:m_pyBackground.ReleaseCharacterShadowTexture();
CRenderTargetManager::Instance().ReleaseRenderTargetTextures();
Trace("DEVICESTATE_NEEDS_RESET - attempting");
if (!m_grpDevice.Reset())
{
return DEVICE_STATE_SKIP;
}
CRenderTargetManager::Instance().CreateRenderTargetTextures();
m_pyBackground.CreateCharacterShadowTexture();
break;
case CGraphicDevice:
EVICESTATE_OK: break;default:;
#else
case CGraphicDevice:
EVICESTATE_NEEDS_RESET:if (!m_grpDevice.Reset())
{
return DEVICE_STATE_SKIP;
}
break;
#endif
}
return DEVICE_STATE_OK;
}
CRenderTargetManager::Instance().ReleaseRenderTargetTextures(); error
Hata veren kodları sil. Hata sebebi dosyalarında render target sisteminin olmamasından kaynaklı.I ask for help.
I can't figure out where to add the CRenderTargetManager function
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Kilitli
- Cevaplar
- 212
- Görüntüleme
- 29K
- Cevaplar
- 64
- Görüntüleme
- 14K
- Cevaplar
- 8
- Görüntüleme
- 28K
- Cevaplar
- 40
- Görüntüleme
- 13K
- Cevaplar
- 1
- Görüntüleme
- 706
