You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
2.8 KiB
72 lines
2.8 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
//=======================================================================================// |
|
|
|
#ifndef SCREENSHOT_H |
|
#define SCREENSHOT_H |
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
//---------------------------------------------------------------------------------------- |
|
|
|
#include "replay/basereplayserializeable.h" |
|
#include "mathlib/vector.h" |
|
#include "qlimits.h" |
|
#include "strtools.h" |
|
|
|
//---------------------------------------------------------------------------------------- |
|
|
|
#define SUBDIR_SCREENSHOTS "screenshots" |
|
|
|
//---------------------------------------------------------------------------------------- |
|
|
|
class CReplayScreenshot : public CBaseReplaySerializeable |
|
{ |
|
public: |
|
inline CReplayScreenshot( int nWidth = 0, int nHeight = 0, const char *pBaseFilename = NULL ) |
|
: m_nWidth( nWidth ), m_nHeight( nHeight ) |
|
{ |
|
if ( pBaseFilename ) |
|
{ |
|
V_strncpy( m_szBaseFilename, pBaseFilename, sizeof( m_szBaseFilename ) ); |
|
} |
|
} |
|
|
|
virtual bool Read( KeyValues *pIn ); |
|
virtual void Write( KeyValues *pOut ); |
|
virtual const char *GetSubKeyTitle() const; |
|
virtual const char *GetPath() const; |
|
|
|
int m_nWidth; // Screenshot width (does not include power-of-2 padding) |
|
int m_nHeight; // Screenshot height (does not include power-of-2 padding) |
|
char m_szBaseFilename[ MAX_OSPATH ]; |
|
}; |
|
|
|
//---------------------------------------------------------------------------------------- |
|
|
|
struct CaptureScreenshotParams_t // To be passed from the client into IReplayHistoryManager::CaptureScreenshot() |
|
{ |
|
float m_flDelay; // Delay from now (in seconds) when we will take the screenshot |
|
int m_nEntity; // Should be 0 if no camera adjustment is needed, otherwise should be the index of the entity index from which m_posCamera will be based |
|
Vector m_posCamera; // Local position, relative to entity's index (if m_nEntity > 0) for camera position |
|
QAngle m_angCamera; // World angles of camera - used if m_bUseCameraAngles is true |
|
bool m_bUseCameraAngles; // Should we use m_angCamera - m_nEntity can't be 0 |
|
bool m_bIgnoreMinTimeBetweenScreenshots; // Force screenshot, regardless of replay_mintimebetweenscreenshots? |
|
bool m_bPrimary; // Only set to true for the primary screenshot, which is taken when the user saves their replay |
|
}; |
|
|
|
//---------------------------------------------------------------------------------------- |
|
|
|
struct WriteReplayScreenshotParams_t // Passed from the engine into the client to take a screenshot |
|
{ |
|
const char *m_pFilename; |
|
int m_nWidth; |
|
int m_nHeight; |
|
Vector *m_pOrigin; // Perspective origin from which to render. Can be NULL |
|
QAngle *m_pAngles; // Perspective angles from which to render. Can be NULL |
|
}; |
|
|
|
//---------------------------------------------------------------------------------------- |
|
|
|
#endif // SCREENSHOT_H
|
|
|