forked from metin2/client
Upgraded to DirectX 9
This commit is contained in:
@ -902,9 +902,9 @@ bool CPythonApplication::CreateDevice(int width, int height, int Windowed, int b
|
||||
return false;
|
||||
|
||||
case CGraphicDevice::CREATE_NO_DIRECTX:
|
||||
//PyErr_SetString(PyExc_RuntimeError, "DirectX 8.1 or greater required to run game");
|
||||
//PyErr_SetString(PyExc_RuntimeError, "DirectX 9 or greater required to run game");
|
||||
SET_EXCEPTION(CREATE_NO_DIRECTX);
|
||||
TraceError("CreateDevice: DirectX 8.1 or greater required to run game");
|
||||
TraceError("CreateDevice: DirectX 9 or greater required to run game");
|
||||
return false;
|
||||
|
||||
case CGraphicDevice::CREATE_DEVICE:
|
||||
|
@ -113,7 +113,7 @@ int CPythonApplication::OnLogoUpdate()
|
||||
{
|
||||
m_bLogoError = true;
|
||||
|
||||
LPDIRECT3DTEXTURE8 tex = m_pLogoTex->GetD3DTexture();
|
||||
LPDIRECT3DTEXTURE9 tex = m_pLogoTex->GetD3DTexture();
|
||||
D3DLOCKED_RECT rt;
|
||||
ZeroMemory(&rt, sizeof(rt));
|
||||
|
||||
@ -158,7 +158,7 @@ int CPythonApplication::OnLogoUpdate()
|
||||
}
|
||||
|
||||
// <20>غ<EFBFBD><D8BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ۿ<EFBFBD><DBBF><EFBFBD> <20>ؽ<EFBFBD><D8BD>ķ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ؿ´<D8BF>.
|
||||
LPDIRECT3DTEXTURE8 tex = m_pLogoTex->GetD3DTexture();
|
||||
LPDIRECT3DTEXTURE9 tex = m_pLogoTex->GetD3DTexture();
|
||||
D3DLOCKED_RECT rt;
|
||||
ZeroMemory(&rt, sizeof(rt));
|
||||
|
||||
@ -197,8 +197,8 @@ void CPythonApplication::OnLogoRender()
|
||||
{
|
||||
if(!m_pLogoTex->IsEmpty() && !m_bLogoError && true == bInitializedLogo)
|
||||
{
|
||||
STATEMANAGER.SetTextureStageState(0, D3DTSS_MINFILTER, D3DTEXF_LINEAR);
|
||||
STATEMANAGER.SetTextureStageState(0, D3DTSS_MAGFILTER, D3DTEXF_LINEAR);
|
||||
STATEMANAGER.SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR);
|
||||
STATEMANAGER.SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR);
|
||||
m_pLogoTex->SetTextureStage(0);
|
||||
CPythonGraphic::instance().RenderTextureBox(m_nLeft, m_nTop, m_nRight, m_nBottom, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f);
|
||||
}
|
||||
@ -235,8 +235,8 @@ void CPythonApplication::OnLogoClose()
|
||||
if(m_pFilterSG != NULL) m_pFilterSG->Release(); m_pFilterSG = NULL;
|
||||
if(m_pGraphBuilder != NULL) m_pGraphBuilder->Release(); m_pGraphBuilder = NULL;
|
||||
|
||||
STATEMANAGER.SetTextureStageState(0, D3DTSS_MINFILTER, D3DTEXF_POINT);
|
||||
STATEMANAGER.SetTextureStageState(0, D3DTSS_MAGFILTER, D3DTEXF_POINT);
|
||||
STATEMANAGER.SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_POINT);
|
||||
STATEMANAGER.SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_POINT);
|
||||
|
||||
|
||||
}
|
@ -264,17 +264,17 @@ void CPythonMiniMap::Render(float fScreenX, float fScreenY)
|
||||
__SetPosition();
|
||||
}
|
||||
|
||||
STATEMANAGER.SaveTextureStageState(0, D3DTSS_MIPFILTER, D3DTEXF_POINT);
|
||||
STATEMANAGER.SaveTextureStageState(0, D3DTSS_MINFILTER, D3DTEXF_POINT);
|
||||
STATEMANAGER.SaveTextureStageState(0, D3DTSS_MAGFILTER, D3DTEXF_POINT);
|
||||
STATEMANAGER.SaveSamplerState(0, D3DSAMP_MIPFILTER, D3DTEXF_POINT);
|
||||
STATEMANAGER.SaveSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_POINT);
|
||||
STATEMANAGER.SaveSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_POINT);
|
||||
|
||||
STATEMANAGER.SaveTextureStageState(0, D3DTSS_ADDRESSU, D3DTADDRESS_CLAMP);
|
||||
STATEMANAGER.SaveTextureStageState(0, D3DTSS_ADDRESSV, D3DTADDRESS_CLAMP);
|
||||
STATEMANAGER.SaveSamplerState(0, D3DSAMP_ADDRESSU, D3DTADDRESS_CLAMP);
|
||||
STATEMANAGER.SaveSamplerState(0, D3DSAMP_ADDRESSV, D3DTADDRESS_CLAMP);
|
||||
|
||||
STATEMANAGER.SaveTextureStageState(1, D3DTSS_TEXCOORDINDEX, D3DTSS_TCI_CAMERASPACEPOSITION);
|
||||
STATEMANAGER.SaveTextureStageState(1, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_COUNT2);
|
||||
STATEMANAGER.SaveTextureStageState(1, D3DTSS_ADDRESSU, D3DTADDRESS_CLAMP);
|
||||
STATEMANAGER.SaveTextureStageState(1, D3DTSS_ADDRESSV, D3DTADDRESS_CLAMP);
|
||||
STATEMANAGER.SaveSamplerState(1, D3DSAMP_ADDRESSU, D3DTADDRESS_CLAMP);
|
||||
STATEMANAGER.SaveSamplerState(1, D3DSAMP_ADDRESSV, D3DTADDRESS_CLAMP);
|
||||
|
||||
STATEMANAGER.SaveTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
||||
STATEMANAGER.SaveTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
|
||||
@ -295,14 +295,14 @@ void CPythonMiniMap::Render(float fScreenX, float fScreenY)
|
||||
STATEMANAGER.SetTexture(1, m_MiniMapFilterGraphicImageInstance.GetTexturePointer()->GetD3DTexture());
|
||||
STATEMANAGER.SetTransform(D3DTS_TEXTURE1, &m_matMiniMapCover);
|
||||
|
||||
STATEMANAGER.SetVertexShader(D3DFVF_XYZ | D3DFVF_TEX1);
|
||||
STATEMANAGER.SetFVF(D3DFVF_XYZ | D3DFVF_TEX1);
|
||||
STATEMANAGER.SetStreamSource(0, m_VertexBuffer.GetD3DVertexBuffer(), 20);
|
||||
STATEMANAGER.SetIndices(m_IndexBuffer.GetD3DIndexBuffer(), 0);
|
||||
STATEMANAGER.SetTransform(D3DTS_WORLD, &m_matWorld);
|
||||
|
||||
for (BYTE byTerrainNum = 0; byTerrainNum < AROUND_AREA_NUM; ++byTerrainNum)
|
||||
{
|
||||
LPDIRECT3DTEXTURE8 pMiniMapTexture = m_lpMiniMapTexture[byTerrainNum];
|
||||
LPDIRECT3DTEXTURE9 pMiniMapTexture = m_lpMiniMapTexture[byTerrainNum];
|
||||
STATEMANAGER.SetTexture(0, pMiniMapTexture);
|
||||
if (pMiniMapTexture)
|
||||
{
|
||||
@ -333,12 +333,12 @@ void CPythonMiniMap::Render(float fScreenX, float fScreenY)
|
||||
STATEMANAGER.RestoreTextureStageState(0, D3DTSS_COLORARG2);
|
||||
STATEMANAGER.RestoreTextureStageState(0, D3DTSS_COLOROP);
|
||||
|
||||
STATEMANAGER.RestoreTextureStageState(0, D3DTSS_ADDRESSU);
|
||||
STATEMANAGER.RestoreTextureStageState(0, D3DTSS_ADDRESSV);
|
||||
STATEMANAGER.RestoreSamplerState(0, D3DSAMP_ADDRESSU);
|
||||
STATEMANAGER.RestoreSamplerState(0, D3DSAMP_ADDRESSV);
|
||||
STATEMANAGER.RestoreTextureStageState(1, D3DTSS_TEXCOORDINDEX);
|
||||
STATEMANAGER.RestoreTextureStageState(1, D3DTSS_TEXTURETRANSFORMFLAGS);
|
||||
STATEMANAGER.RestoreTextureStageState(1, D3DTSS_ADDRESSU);
|
||||
STATEMANAGER.RestoreTextureStageState(1, D3DTSS_ADDRESSV);
|
||||
STATEMANAGER.RestoreSamplerState(1, D3DSAMP_ADDRESSU);
|
||||
STATEMANAGER.RestoreSamplerState(1, D3DSAMP_ADDRESSV);
|
||||
|
||||
SetDiffuseOperation();
|
||||
STATEMANAGER.SetTransform(D3DTS_WORLD, &m_matIdentity);
|
||||
@ -427,12 +427,12 @@ void CPythonMiniMap::Render(float fScreenX, float fScreenY)
|
||||
STATEMANAGER.RestoreTextureStageState(0, D3DTSS_COLORARG2);
|
||||
STATEMANAGER.RestoreTextureStageState(0, D3DTSS_COLOROP);
|
||||
|
||||
STATEMANAGER.RestoreTextureStageState(0, D3DTSS_MIPFILTER);
|
||||
STATEMANAGER.RestoreTextureStageState(0, D3DTSS_MINFILTER);
|
||||
STATEMANAGER.RestoreTextureStageState(0, D3DTSS_MAGFILTER);
|
||||
STATEMANAGER.RestoreSamplerState(0, D3DSAMP_MIPFILTER);
|
||||
STATEMANAGER.RestoreSamplerState(0, D3DSAMP_MINFILTER);
|
||||
STATEMANAGER.RestoreSamplerState(0, D3DSAMP_MAGFILTER);
|
||||
|
||||
STATEMANAGER.SaveTextureStageState(0, D3DTSS_MINFILTER, D3DTEXF_LINEAR);
|
||||
STATEMANAGER.SaveTextureStageState(0, D3DTSS_MAGFILTER, D3DTEXF_LINEAR);
|
||||
STATEMANAGER.SaveSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR);
|
||||
STATEMANAGER.SaveSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR);
|
||||
|
||||
// ij<><C4B3><EFBFBD><EFBFBD> <20><>ũ
|
||||
CInstanceBase * pkInst = CPythonCharacterManager::Instance().GetMainInstancePtr();
|
||||
@ -476,8 +476,8 @@ void CPythonMiniMap::Render(float fScreenX, float fScreenY)
|
||||
m_MiniMapCameraraphicImageInstance.SetRotation(pkCmrCur->GetRoll());
|
||||
m_MiniMapCameraraphicImageInstance.Render();
|
||||
}
|
||||
STATEMANAGER.RestoreTextureStageState(0, D3DTSS_MINFILTER);
|
||||
STATEMANAGER.RestoreTextureStageState(0, D3DTSS_MAGFILTER);
|
||||
STATEMANAGER.RestoreSamplerState(0, D3DSAMP_MINFILTER);
|
||||
STATEMANAGER.RestoreSamplerState(0, D3DSAMP_MAGFILTER);
|
||||
}
|
||||
|
||||
void CPythonMiniMap::SetScale(float fScale)
|
||||
@ -969,8 +969,8 @@ void CPythonMiniMap::RenderAtlas(float fScreenX, float fScreenY)
|
||||
}
|
||||
|
||||
STATEMANAGER.SetTransform(D3DTS_WORLD, &m_matWorldAtlas);
|
||||
STATEMANAGER.SaveTextureStageState(0, D3DTSS_MINFILTER, D3DTEXF_POINT);
|
||||
STATEMANAGER.SaveTextureStageState(0, D3DTSS_MAGFILTER, D3DTEXF_POINT);
|
||||
STATEMANAGER.SaveSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_POINT);
|
||||
STATEMANAGER.SaveSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_POINT);
|
||||
m_AtlasImageInstance.Render();
|
||||
|
||||
STATEMANAGER.SaveRenderState(D3DRS_TEXTUREFACTOR, 0xFFFFFFFF);
|
||||
@ -998,8 +998,8 @@ void CPythonMiniMap::RenderAtlas(float fScreenX, float fScreenY)
|
||||
++m_AtlasMarkInfoVectorIterator;
|
||||
}
|
||||
|
||||
STATEMANAGER.SetTextureStageState(0, D3DTSS_MINFILTER, D3DTEXF_LINEAR);
|
||||
STATEMANAGER.SetTextureStageState(0, D3DTSS_MAGFILTER, D3DTEXF_LINEAR);
|
||||
STATEMANAGER.SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR);
|
||||
STATEMANAGER.SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR);
|
||||
STATEMANAGER.SetRenderState(D3DRS_TEXTUREFACTOR, CInstanceBase::GetIndexedNameColor(CInstanceBase::NAMECOLOR_WAYPOINT));
|
||||
m_AtlasMarkInfoVectorIterator = m_AtlasWayPointInfoVector.begin();
|
||||
for (; m_AtlasMarkInfoVectorIterator != m_AtlasWayPointInfoVector.end(); ++m_AtlasMarkInfoVectorIterator)
|
||||
@ -1030,8 +1030,8 @@ void CPythonMiniMap::RenderAtlas(float fScreenX, float fScreenY)
|
||||
if ((ELTimer_GetMSec() / 500) % 2)
|
||||
m_AtlasPlayerMark.Render();
|
||||
|
||||
STATEMANAGER.RestoreTextureStageState(0, D3DTSS_MINFILTER);
|
||||
STATEMANAGER.RestoreTextureStageState(0, D3DTSS_MAGFILTER);
|
||||
STATEMANAGER.RestoreSamplerState(0, D3DSAMP_MINFILTER);
|
||||
STATEMANAGER.RestoreSamplerState(0, D3DSAMP_MAGFILTER);
|
||||
STATEMANAGER.SetTransform(D3DTS_WORLD, &m_matIdentity);
|
||||
|
||||
{
|
||||
|
@ -181,7 +181,7 @@ class CPythonMiniMap : public CScreen, public CSingleton<CPythonMiniMap>
|
||||
float m_fMiniMapRadius;
|
||||
|
||||
// <20><> <20><EFBFBD>...
|
||||
LPDIRECT3DTEXTURE8 m_lpMiniMapTexture[AROUND_AREA_NUM];
|
||||
LPDIRECT3DTEXTURE9 m_lpMiniMapTexture[AROUND_AREA_NUM];
|
||||
|
||||
// <20>̴ϸ<CCB4> Ŀ<><C4BF>
|
||||
CGraphicImageInstance m_MiniMapFilterGraphicImageInstance;
|
||||
|
@ -36,21 +36,21 @@ void CPythonSystem::GetDisplaySettings()
|
||||
memset(m_ResolutionList, 0, sizeof(TResolution) * RESOLUTION_MAX_NUM);
|
||||
m_ResolutionCount = 0;
|
||||
|
||||
LPDIRECT3D8 lpD3D = CPythonGraphic::Instance().GetD3D();
|
||||
LPDIRECT3D9 lpD3D = CPythonGraphic::Instance().GetD3D();
|
||||
|
||||
D3DADAPTER_IDENTIFIER8 d3dAdapterIdentifier;
|
||||
D3DADAPTER_IDENTIFIER9 d3dAdapterIdentifier;
|
||||
D3DDISPLAYMODE d3ddmDesktop;
|
||||
|
||||
lpD3D->GetAdapterIdentifier(0, D3DENUM_NO_WHQL_LEVEL, &d3dAdapterIdentifier);
|
||||
lpD3D->GetAdapterDisplayMode(0, &d3ddmDesktop);
|
||||
lpD3D->GetAdapterIdentifier(D3DADAPTER_DEFAULT, D3DENUM_WHQL_LEVEL, &d3dAdapterIdentifier);
|
||||
lpD3D->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &d3ddmDesktop);
|
||||
|
||||
// <20><> <20><EFBFBD>Ͱ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD><C3B7><EFBFBD> <20><><EFBFBD>尹<EFBFBD><E5B0B9><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>..
|
||||
DWORD dwNumAdapterModes = lpD3D->GetAdapterModeCount(0);
|
||||
DWORD dwNumAdapterModes = lpD3D->GetAdapterModeCount(D3DADAPTER_DEFAULT, D3DFMT_UNKNOWN);
|
||||
|
||||
for (UINT iMode = 0; iMode < dwNumAdapterModes; iMode++)
|
||||
{
|
||||
D3DDISPLAYMODE DisplayMode;
|
||||
lpD3D->EnumAdapterModes(0, iMode, &DisplayMode);
|
||||
lpD3D->EnumAdapterModes(D3DADAPTER_DEFAULT, D3DFMT_UNKNOWN, iMode, &DisplayMode);
|
||||
DWORD bpp = 0;
|
||||
|
||||
// 800 600 <20>̻<EFBFBD><CCBB><EFBFBD> <20>ɷ<EFBFBD><C9B7><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
@ -15,8 +15,10 @@
|
||||
#include "../eterBase/CPostIt.h"
|
||||
|
||||
extern "C" {
|
||||
extern int _fltused;
|
||||
volatile int _AVOID_FLOATING_POINT_LIBRARY_BUG = _fltused;
|
||||
extern int32_t _fltused;
|
||||
volatile int32_t _AVOID_FLOATING_POINT_LIBRARY_BUG = _fltused;
|
||||
__declspec(dllexport) uint32_t NvOptimusEnablement = 0x00000001;
|
||||
__declspec(dllexport) int32_t AmdPowerXpressRequestHighPerformance = 1;
|
||||
};
|
||||
|
||||
#pragma comment(linker, "/NODEFAULTLIB:libci.lib")
|
||||
|
@ -177,7 +177,7 @@
|
||||
</Midl>
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)extern\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)extern\include;$(SolutionDir)extern\include\directx;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;USE_LOD;HAVE_SNPRINTF;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
@ -222,7 +222,7 @@
|
||||
</Midl>
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)extern\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)extern\include;$(SolutionDir)extern\include\directx;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;USE_LOD;DUNGEON_WORK;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
@ -273,7 +273,7 @@
|
||||
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
|
||||
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
|
||||
<OmitFramePointers>true</OmitFramePointers>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)extern\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)extern\include;$(SolutionDir)extern\include\directx;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;USE_LOD;__VTUNE__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<StringPooling>true</StringPooling>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
|
Reference in New Issue
Block a user