Skip to content

Commit d1c56c4

Browse files
committed
[linux] add D3DXLoadSurfaceFromSurface implementation from WINE
1 parent 3683228 commit d1c56c4

File tree

5 files changed

+1013
-12
lines changed

5 files changed

+1013
-12
lines changed

src/libs/common/include/storm_d3dx9.h

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#pragma once
2+
#ifndef _WIN32
3+
4+
#include <d3d9.h>
5+
#include <algorithm>
6+
7+
#define D3DX_DEFAULT ((UINT)-1)
8+
9+
// Textures Methods
10+
11+
HRESULT D3DXLoadSurfaceFromMemory(IDirect3DSurface9 *dst_surface,
12+
const PALETTEENTRY *dst_palette, const RECT *dst_rect, const void *src_memory,
13+
D3DFORMAT src_format, UINT src_pitch, const PALETTEENTRY *src_palette, const RECT *src_rect,
14+
DWORD filter, D3DCOLOR color_key);
15+
16+
HRESULT D3DXLoadSurfaceFromSurface(IDirect3DSurface9 *dst_surface,
17+
const PALETTEENTRY *dst_palette, const RECT *dst_rect, IDirect3DSurface9 *src_surface,
18+
const PALETTEENTRY *src_palette, const RECT *src_rect, DWORD filter, D3DCOLOR color_key);
19+
20+
#endif

src/libs/common/include/storm_platform.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ inline const char *convert_path_sep(const char *cPath)
88

99
#include <limits.h>
1010

11+
#include "storm_d3dx9.h"
1112
#include "linux/winuser.h"
1213
#include "safe_str_lib.h"
1314
#undef EXTERN // fix for token.h:72:5: error: expected identifier EXTERN,

src/libs/renderer/src/s_device.cpp

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3328,11 +3328,7 @@ void DX9RENDER::MakeScreenShot()
33283328
return;
33293329
}
33303330

3331-
#ifdef _WIN32 // FIX_LINUX D3DXLoadSurfaceFromSurface
33323331
if (CHECKD3DERR(D3DXLoadSurfaceFromSurface(surface, NULL, NULL, renderTarget, NULL, NULL, D3DX_DEFAULT, 0)))
3333-
#else
3334-
if (FAILED(d3d9->UpdateSurface(renderTarget, nullptr, surface, nullptr)))
3335-
#endif
33363332
{
33373333
surface->Release();
33383334
renderTarget->Release();
@@ -3845,12 +3841,9 @@ HRESULT DX9RENDER::GetSurfaceLevel(IDirect3DTexture9 *ppTexture, UINT Level, IDi
38453841
HRESULT DX9RENDER::UpdateSurface(IDirect3DSurface9 *pSourceSurface, CONST RECT *pSourceRectsArray, UINT cRects,
38463842
IDirect3DSurface9 *pDestinationSurface, CONST POINT *pDestPointsArray)
38473843
{
3848-
#ifdef _WIN32 // FIX_LINUX D3DXLoadSurfaceFromSurface
38493844
return CHECKD3DERR(D3DXLoadSurfaceFromSurface(pDestinationSurface, nullptr, nullptr, pSourceSurface, nullptr,
38503845
nullptr, D3DX_DEFAULT, 0));
3851-
#else
3852-
return CHECKD3DERR(d3d9->UpdateSurface(pSourceSurface, pSourceRectsArray, pDestinationSurface, pDestPointsArray));
3853-
#endif
3846+
//return CHECKD3DERR(d3d9->UpdateSurface(pSourceSurface, pSourceRectsArray, pDestinationSurface, pDestPointsArray));
38543847
}
38553848

38563849
HRESULT DX9RENDER::StretchRect(IDirect3DSurface9 *pSourceSurface, const RECT *pSourceRect,

0 commit comments

Comments
 (0)