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.
54 lines
1.5 KiB
54 lines
1.5 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
//=======================================================================================// |
|
|
|
#if !defined( REPLAY_SCREENSHOT_H ) |
|
#define REPLAY_SCREENSHOT_H |
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
//----------------------------------------------------------------------------- |
|
|
|
#include "replay/screenshot.h" |
|
|
|
//----------------------------------------------------------------------------- |
|
|
|
class IViewRender; |
|
|
|
//----------------------------------------------------------------------------- |
|
|
|
// |
|
// Takes screenshots as VTF's for the replay system - allocates enough |
|
// memory up-front as opposed to every frame. Should be destroyed and recreated |
|
// any time the cvar "replay_screenshotresolution" changes OR the actual screen |
|
// resolution. |
|
// |
|
class CReplayScreenshotTaker |
|
{ |
|
public: |
|
CReplayScreenshotTaker( IViewRender *pViewRender, CViewSetup &view ); |
|
~CReplayScreenshotTaker(); |
|
|
|
void TakeScreenshot( WriteReplayScreenshotParams_t ¶ms ); |
|
|
|
static void CreateRenderTarget( IMaterialSystem *pMaterialSystem ); |
|
|
|
private: |
|
IViewRender *m_pViewRender; |
|
CViewSetup &m_View; |
|
uint8 *m_pUnpaddedPixels; |
|
uint8 *m_pPaddedPixels; |
|
IVTFTexture *m_pVTFTexture; |
|
uint8 *m_pVTFPixels; |
|
|
|
int m_aUnpaddedDims[2]; // Width & height of m_pUnpaddedPixels |
|
int m_aPaddedDims[2]; // Width & height of m_pPaddedPixels |
|
|
|
CUtlBuffer *m_pBuffer; |
|
|
|
|
|
static ITexture *m_pScreenshotTarget; |
|
}; |
|
|
|
#endif // REPLAY_SCREENSHOT_H
|
|
|