From e71de0b14ba86c5b164deba4d38281bb477b3eb7 Mon Sep 17 00:00:00 2001 From: Aaron Robinson Date: Sun, 28 Mar 2004 02:03:48 +0000 Subject: [PATCH] pshade testing..few fixes --- Cxbx.opt | Bin 60928 -> 67072 bytes CxbxKrnl.dsp | 2 +- Include/Cxbx.h | 2 +- Source/Win32/CxbxKrnl/EmuD3D8.cpp | 42 ++++++++++++++++++++---------- 4 files changed, 30 insertions(+), 16 deletions(-) diff --git a/Cxbx.opt b/Cxbx.opt index d6447cdea9d097a753cb2cd4c9b1ae66cac6354d..8e8ff1f0bfe76e23fab4518e6a8fdafe04e005ba 100644 GIT binary patch literal 67072 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 diff --git a/CxbxKrnl.dsp b/CxbxKrnl.dsp index 07e62ab81..c123fdcbf 100644 --- a/CxbxKrnl.dsp +++ b/CxbxKrnl.dsp @@ -1,5 +1,5 @@ # Microsoft Developer Studio Project File - Name="CxbxKrnl" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 60000 +# Microsoft Developer Studio Generated Build File, Format Version 6.00 # ** DO NOT EDIT ** # TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 diff --git a/Include/Cxbx.h b/Include/Cxbx.h index 9ab905da7..438545143 100644 --- a/Include/Cxbx.h +++ b/Include/Cxbx.h @@ -66,7 +66,7 @@ typedef signed long sint32; //#define _DEBUG_TRACE // define this to trace warnings -#define _DEBUG_WARNINGS +//#define _DEBUG_WARNINGS // version information #ifndef _DEBUG_TRACE diff --git a/Source/Win32/CxbxKrnl/EmuD3D8.cpp b/Source/Win32/CxbxKrnl/EmuD3D8.cpp index f96fae126..21c6ef794 100644 --- a/Source/Win32/CxbxKrnl/EmuD3D8.cpp +++ b/Source/Win32/CxbxKrnl/EmuD3D8.cpp @@ -2418,12 +2418,27 @@ HRESULT WINAPI XTL::EmuIDirect3DDevice8_SetPixelShader // redirect to windows d3d HRESULT hRet = D3D_OK; - /* TODO: kingofc's pixel shader stuff - HRESULT hRet = g_pD3DDevice8->SetPixelShader - ( - Handle - ); - //*/ + + // TODO: Pixel Shader emulation + /* + // simplest possible pixel shader (diffuse only) + static const char szDiffusePixelShader[] = + "// Diffuse only \n"\ + "ps.1.1 \n"\ + "mov r0, v0 \n";// c0 + + LPD3DXBUFFER pShader = 0; + LPD3DXBUFFER pErrors = 0; + + // assemble the shader + D3DXAssembleShader(szDiffusePixelShader, strlen(szDiffusePixelShader) - 1, 0, NULL, &pShader, &pErrors); + + DWORD dwHandle = 0; + + // create the shader device handle + g_pD3DDevice8->CreatePixelShader((DWORD*)pShader->GetBufferPointer(), &dwHandle); + g_pD3DDevice8->SetPixelShader(dwHandle); + */ if(FAILED(hRet)) { @@ -2503,11 +2518,11 @@ HRESULT WINAPI XTL::EmuIDirect3DDevice8_CreateTexture D3DFORMAT PCFormat = EmuXB2PC_D3DFormat(Format); // TODO: HACK: Devices that don't support this should somehow emulate it! - /* This is OK on my GeForce FX 5600 + //* This is OK on my GeForce FX 5600 if(PCFormat == D3DFMT_D16) { EmuWarning("D3DFMT_D16 is an unsupported texture format!"); - PCFormat = D3DFMT_X8R8G8B8; + PCFormat = D3DFMT_R5G6B5; } //* else if(PCFormat == D3DFMT_P8) @@ -2516,13 +2531,13 @@ HRESULT WINAPI XTL::EmuIDirect3DDevice8_CreateTexture PCFormat = D3DFMT_X8R8G8B8; } //*/ - /* This is OK on my GeForce FX 5600 + //* This is OK on my GeForce FX 5600 else if(PCFormat == D3DFMT_D24S8) { EmuWarning("D3DFMT_D24S8 is an unsupported texture format!"); PCFormat = D3DFMT_X8R8G8B8; }//*/ - /*else */if(PCFormat == D3DFMT_YUY2) + else if(PCFormat == D3DFMT_YUY2) { // cache the overlay size g_dwOverlayW = Width; @@ -2534,16 +2549,15 @@ HRESULT WINAPI XTL::EmuIDirect3DDevice8_CreateTexture if(PCFormat != D3DFMT_YUY2) { - DWORD PCUsage = 0;// disabled along with D3DFMT_D16 above - //DWORD PCUsage = Usage & (D3DUSAGE_RENDERTARGET | D3DUSAGE_DEPTHSTENCIL); + DWORD PCUsage = Usage & (D3DUSAGE_RENDERTARGET); +// DWORD PCUsage = Usage & (D3DUSAGE_RENDERTARGET | D3DUSAGE_DEPTHSTENCIL); D3DPOOL PCPool = D3DPOOL_MANAGED; EmuAdjustPower2(&Width, &Height); *ppTexture = new X_D3DTexture(); - // disabled along with D3DFMT_D16 above - if(Usage & (D3DUSAGE_RENDERTARGET | D3DUSAGE_DEPTHSTENCIL)) + if(Usage & (D3DUSAGE_RENDERTARGET)) PCPool = D3DPOOL_DEFAULT; hRet = g_pD3DDevice8->CreateTexture