diff options
Diffstat (limited to 'replay/cl_replaymoviemanager.h')
| -rw-r--r-- | replay/cl_replaymoviemanager.h | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/replay/cl_replaymoviemanager.h b/replay/cl_replaymoviemanager.h new file mode 100644 index 0000000..e7f6f05 --- /dev/null +++ b/replay/cl_replaymoviemanager.h @@ -0,0 +1,114 @@ +//========= 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 |