forked from metin-server/m2dev-client-src
ported to DX9
This commit is contained in:
@@ -26,7 +26,6 @@ target_link_libraries(UserInterface
|
||||
SpeedTreeLib
|
||||
SphereLib
|
||||
|
||||
ws2_32
|
||||
cryptopp-static
|
||||
lzo2
|
||||
|
||||
@@ -34,6 +33,14 @@ target_link_libraries(UserInterface
|
||||
Granny
|
||||
SpeedTree
|
||||
MilesSoundSystem
|
||||
Python
|
||||
|
||||
ws2_32
|
||||
strmiids
|
||||
amstrmid
|
||||
dmoguids
|
||||
ddraw
|
||||
version
|
||||
)
|
||||
|
||||
GroupSourcesByFolder(UserInterface)
|
||||
@@ -1,17 +1,17 @@
|
||||
#pragma once
|
||||
|
||||
#include "../eterLib/MSApplication.h"
|
||||
#include "../eterLib/Input.h"
|
||||
#include "../eterLib/Profiler.h"
|
||||
#include "../eterLib/GrpDevice.h"
|
||||
#include "../eterLib/NetDevice.h"
|
||||
#include "../eterLib/GrpLightManager.h"
|
||||
#include "../EffectLib/EffectManager.h"
|
||||
#include "../gamelib/RaceManager.h"
|
||||
#include "../gamelib/ItemManager.h"
|
||||
#include "../gamelib/FlyingObjectManager.h"
|
||||
#include "../gamelib/GameEventManager.h"
|
||||
#include "../milesLib/SoundManager.h"
|
||||
#include "eterLib/MSApplication.h"
|
||||
#include "eterLib/Input.h"
|
||||
#include "eterLib/Profiler.h"
|
||||
#include "eterLib/GrpDevice.h"
|
||||
#include "eterLib/NetDevice.h"
|
||||
#include "eterLib/GrpLightManager.h"
|
||||
#include "EffectLib/EffectManager.h"
|
||||
#include "gamelib/RaceManager.h"
|
||||
#include "gamelib/ItemManager.h"
|
||||
#include "gamelib/FlyingObjectManager.h"
|
||||
#include "gamelib/GameEventManager.h"
|
||||
#include "milesLib/SoundManager.h"
|
||||
|
||||
#include "PythonEventManager.h"
|
||||
#include "PythonPlayer.h"
|
||||
@@ -42,6 +42,8 @@
|
||||
#include "AbstractApplication.h"
|
||||
#include "MovieMan.h"
|
||||
|
||||
#include <qedit.h>
|
||||
|
||||
class CPythonApplication : public CMSApplication, public CInputKeyboard, public IAbstractApplication
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
|
||||
// ÁغñçÀ¸¸?¹öÆÛ¿¡¼ ÅØ½ºÃÄ·Î º¹»çÇØ¿Â´Ù.
|
||||
LPDIRECT3DTEXTURE8 tex = m_pLogoTex->GetD3DTexture();
|
||||
LPDIRECT3DTEXTURE9 tex = m_pLogoTex->GetD3DTexture();
|
||||
D3DLOCKED_RECT rt;
|
||||
ZeroMemory(&rt, sizeof(rt));
|
||||
|
||||
@@ -198,8 +198,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);
|
||||
}
|
||||
@@ -236,8 +236,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);
|
||||
|
||||
// 캐릭터 마크
|
||||
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;
|
||||
|
||||
// 맵 그림...
|
||||
LPDIRECT3DTEXTURE8 m_lpMiniMapTexture[AROUND_AREA_NUM];
|
||||
LPDIRECT3DTEXTURE9 m_lpMiniMapTexture[AROUND_AREA_NUM];
|
||||
|
||||
// 미니맵 커버
|
||||
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->GetAdapterIdentifier(0, 0, &d3dAdapterIdentifier);
|
||||
lpD3D->GetAdapterDisplayMode(0, &d3ddmDesktop);
|
||||
|
||||
// 이 어뎁터가 가지고 있는 디스플래이 모드갯수를 나열한다..
|
||||
DWORD dwNumAdapterModes = lpD3D->GetAdapterModeCount(0);
|
||||
DWORD dwNumAdapterModes = lpD3D->GetAdapterModeCount(0, d3ddmDesktop.Format);
|
||||
|
||||
for (UINT iMode = 0; iMode < dwNumAdapterModes; iMode++)
|
||||
{
|
||||
D3DDISPLAYMODE DisplayMode;
|
||||
lpD3D->EnumAdapterModes(0, iMode, &DisplayMode);
|
||||
lpD3D->EnumAdapterModes(0, d3ddmDesktop.Format, iMode, &DisplayMode);
|
||||
DWORD bpp = 0;
|
||||
|
||||
// 800 600 이상만 걸러낸다.
|
||||
|
||||
@@ -23,7 +23,6 @@
|
||||
#endif
|
||||
|
||||
#include <dshow.h>
|
||||
#include <qedit.h>
|
||||
|
||||
#include "Locale.h"
|
||||
|
||||
|
||||
@@ -27,23 +27,6 @@ volatile int _AVOID_FLOATING_POINT_LIBRARY_BUG = _fltused;
|
||||
extern "C" { FILE __iob_func[3] = { *stdin,*stdout,*stderr }; }
|
||||
#pragma comment(linker, "/NODEFAULTLIB:libci.lib")
|
||||
|
||||
#pragma comment( lib, "version.lib" )
|
||||
#pragma comment( lib, "python27.lib" )
|
||||
#pragma comment( lib, "imagehlp.lib" )
|
||||
#pragma comment( lib, "devil.lib" )
|
||||
#pragma comment( lib, "granny2.lib" )
|
||||
#pragma comment( lib, "mss32.lib" )
|
||||
#pragma comment( lib, "winmm.lib" )
|
||||
#pragma comment( lib, "imm32.lib" )
|
||||
#pragma comment( lib, "oldnames.lib" )
|
||||
#pragma comment( lib, "SpeedTreeRT.lib" )
|
||||
#pragma comment( lib, "dinput8.lib" )
|
||||
#pragma comment( lib, "dxguid.lib" )
|
||||
#pragma comment( lib, "ws2_32.lib" )
|
||||
#pragma comment( lib, "strmiids.lib" )
|
||||
#pragma comment( lib, "ddraw.lib" )
|
||||
#pragma comment( lib, "dmoguids.lib" )
|
||||
//#pragma comment( lib, "wsock32.lib" )
|
||||
#include <stdlib.h>
|
||||
bool __IS_TEST_SERVER_MODE__=false;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user