mirror of
https://github.com/krystalgamer/spidey-decomp.git
synced 2025-02-17 03:18:13 +00:00
DXPOLY_SaveScreen
This commit is contained in:
parent
1a14fd6a46
commit
e4a79832cc
@ -32,7 +32,7 @@ EXPORT u32 gDisplayDeviceIndex;
|
||||
EXPORT LPDIRECTDRAW7 lpDD;
|
||||
|
||||
EXPORT DWORD gTotalVideoMemory;
|
||||
EXPORT LPDIRECTDRAWSURFACE7 g_pDDS_SaveScreen;
|
||||
LPDIRECTDRAWSURFACE7 g_pDDS_SaveScreen;
|
||||
EXPORT LPDIRECTDRAWSURFACE7 g_pDDS_Scene;
|
||||
|
||||
EXPORT LPDIRECTDRAWCLIPPER g_pClipper;
|
||||
@ -47,7 +47,7 @@ EXPORT SVideoMode gVideoModes[5] =
|
||||
};
|
||||
|
||||
EXPORT struct tagPOINT Point;
|
||||
EXPORT RECT gRect;
|
||||
RECT gRect;
|
||||
|
||||
EXPORT LPDIRECT3D7 g_D3D7;
|
||||
|
||||
|
2
DXinit.h
2
DXinit.h
@ -121,6 +121,8 @@ EXPORT extern LPDIRECTSOUND8 g_pDS;
|
||||
|
||||
EXPORT extern LPDIRECT3DDEVICE7 g_D3DDevice7;
|
||||
EXPORT extern i32 gDxOptionRelated;
|
||||
EXPORT extern LPDIRECTDRAWSURFACE7 g_pDDS_SaveScreen;
|
||||
EXPORT extern RECT gRect;
|
||||
|
||||
void validate_DXContext(void);
|
||||
void validate_DXContextEntry(void);
|
||||
|
47
DXsound.cpp
47
DXsound.cpp
@ -5,6 +5,7 @@
|
||||
|
||||
#include <cstring>
|
||||
|
||||
EXPORT i32 gScreenshotNumber;
|
||||
EXPORT u32 gCurrentBlendMode;
|
||||
EXPORT char* gD3DDepthCompareNames[9] =
|
||||
{
|
||||
@ -596,10 +597,52 @@ void DXPOLY_Init(u32)
|
||||
printf("DXPOLY_Init(u32)");
|
||||
}
|
||||
|
||||
// @MEDIUMTODO
|
||||
// @Ok
|
||||
// @Matching
|
||||
void DXPOLY_SaveScreen(void)
|
||||
{
|
||||
printf("DXPOLY_SaveScreen(void)");
|
||||
char v7[32];
|
||||
sprintf(v7, "scrn%4.4i.bmp", ++gScreenshotNumber);
|
||||
|
||||
DDSURFACEDESC2 v6;
|
||||
memset(&v6, 0, sizeof(v6));
|
||||
v6.dwSize = sizeof(v6);
|
||||
|
||||
if (gDxOptionRelated)
|
||||
{
|
||||
u32 width, height;
|
||||
DXINIT_GetCurrentResolution(&width, &height);
|
||||
|
||||
HRESULT hr = g_pDDS_SaveScreen->Lock(&gRect, &v6, 16, 0);
|
||||
D3D_ERROR_LOG_AND_QUIT(hr);
|
||||
|
||||
DXPOLY_SaveSurfaceAsBMP(
|
||||
v7,
|
||||
v6.lpSurface,
|
||||
width,
|
||||
height,
|
||||
v6.lPitch,
|
||||
&v6.ddpfPixelFormat,
|
||||
false);
|
||||
g_pDDS_SaveScreen->Unlock(&gRect);
|
||||
}
|
||||
else
|
||||
{
|
||||
HRESULT hr = g_pDDS_SaveScreen->Lock(0, &v6, 16, 0);
|
||||
D3D_ERROR_LOG_AND_QUIT(hr);
|
||||
|
||||
DXPOLY_SaveSurfaceAsBMP(
|
||||
v7,
|
||||
v6.lpSurface,
|
||||
v6.dwWidth,
|
||||
v6.dwHeight,
|
||||
v6.lPitch,
|
||||
&v6.ddpfPixelFormat,
|
||||
false);
|
||||
g_pDDS_SaveScreen->Unlock(0);
|
||||
}
|
||||
|
||||
DXERR_printf("Saved Screenshot %i.\r\n", gScreenshotNumber);
|
||||
}
|
||||
|
||||
// @MEDIUMTODO
|
||||
|
Loading…
x
Reference in New Issue
Block a user