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.
114 lines
3.9 KiB
114 lines
3.9 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
//=======================================================================================// |
|
|
|
#ifndef REPLAYMOVIEMANAGER_H |
|
#define REPLAYMOVIEMANAGER_H |
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
//---------------------------------------------------------------------------------------- |
|
|
|
#include "replay/ireplaymoviemanager.h" |
|
#include "replay/shared_defs.h" |
|
#include "genericpersistentmanager.h" |
|
#include "cl_replaymovie.h" |
|
#include "utlvector.h" |
|
|
|
//---------------------------------------------------------------------------------------- |
|
|
|
class IClientReplayHistoryManager; |
|
struct MaterialSystem_Config_t; |
|
|
|
//---------------------------------------------------------------------------------------- |
|
|
|
class CReplayMovieManager : public CGenericPersistentManager< CReplayMovie >, |
|
public IReplayMovieManager |
|
{ |
|
typedef CGenericPersistentManager< CReplayMovie > BaseClass; |
|
|
|
public: |
|
CReplayMovieManager(); |
|
~CReplayMovieManager(); |
|
|
|
virtual bool Init(); |
|
|
|
// |
|
// CBaseThinker |
|
// |
|
virtual float GetNextThinkTime() const; |
|
|
|
// |
|
// IReplayMovieManager |
|
// |
|
virtual int GetMovieCount(); |
|
virtual void GetMovieList( CUtlLinkedList< IReplayMovie * > &list ); |
|
virtual IReplayMovie *GetMovie( ReplayHandle_t hMovie ); |
|
virtual IReplayMovie *CreateAndAddMovie( ReplayHandle_t hReplay ); |
|
virtual void DeleteMovie( ReplayHandle_t hMovie ); |
|
virtual int GetNumMoviesDependentOnReplay( const CReplay *pReplay ); |
|
virtual void SetPendingMovie( IReplayMovie *pMovie ); |
|
virtual IReplayMovie *GetPendingMovie(); |
|
virtual void FlagMovieForFlush( IReplayMovie *pMovie, bool bImmediate ); |
|
virtual void GetMoviesAsQueryableItems( CUtlLinkedList< IQueryableReplayItem *, int > &lstMovies ); |
|
virtual const char *GetRenderDir() const; |
|
virtual const char *GetRawExportDir() const; |
|
|
|
virtual void RenderMovie( RenderMovieParams_t const& params ); |
|
virtual void RenderNextMovie(); |
|
virtual bool IsRendering() const { return m_bIsRendering; } |
|
virtual bool RenderingCancelled() const { return m_bRenderingCancelled; } |
|
virtual void CompleteRender( bool bSuccess, bool bShowBrowser ); |
|
virtual void ClearRenderCancelledFlag(); |
|
virtual void CancelRender(); |
|
|
|
void AddMovie( CReplayMovie *pNewMovie ); |
|
CReplayMovie *CastMovie( IReplayMovie *pMovie ); |
|
void CacheMovieTitle( const wchar_t *pTitle ); |
|
void GetCachedMovieTitleAndClear( wchar_t *pOut, int nBufLength ); |
|
RenderMovieParams_t &GetRenderMovieSettings() { return *m_pRenderMovieSettings; } |
|
|
|
private: |
|
// |
|
// CGenericPersistentManager |
|
// |
|
virtual const char *GetDebugName() const { return "movie manager"; } |
|
virtual const char *GetIndexFilename() const { return "movies." GENERIC_FILE_EXTENSION; } |
|
virtual CReplayMovie *Create(); |
|
virtual const char *GetRelativeIndexPath() const; |
|
virtual int GetVersion() const; |
|
virtual int GetHandleBase() const { return MOVIE_HANDLE_BASE; } |
|
virtual IReplayContext *GetReplayContext() const; |
|
|
|
void AddReplayForRender( CReplay *pReplay, int iPerformance ); |
|
void SetupVideo( RenderMovieParams_t const ¶ms ); |
|
void SetupHighDetailModels(); |
|
void SetupHighDetailTextures(); |
|
void SetupHighQualityAntialiasing(); |
|
void SetupHighQualityFiltering(); |
|
void SetupHighQualityShadowDetail(); |
|
void SetupHighQualityHDR(); |
|
void SetupHighQualityWaterDetail(); |
|
void SetupMulticoreRender(); |
|
void SetupHighQualityShaderDetail(); |
|
void SetupColorCorrection(); |
|
void SetupMotionBlur(); |
|
|
|
wchar_t m_wszCachedMovieTitle[MAX_REPLAY_TITLE_LENGTH]; |
|
IReplayMovie *m_pPendingMovie; |
|
MaterialSystem_Config_t *m_pVidModeSettings; // Used to restore video mode settings after render completion |
|
RenderMovieParams_t *m_pRenderMovieSettings; |
|
|
|
bool m_bIsRendering; |
|
bool m_bRenderingCancelled; |
|
|
|
// |
|
// TODO: |
|
// - date rendered |
|
// |
|
}; |
|
|
|
//---------------------------------------------------------------------------------------- |
|
|
|
#endif // REPLAYMOVIEMANAGER_H
|
|
|