//========= 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