summaryrefslogtreecommitdiff
path: root/replay/cl_replaymoviemanager.h
diff options
context:
space:
mode:
Diffstat (limited to 'replay/cl_replaymoviemanager.h')
-rw-r--r--replay/cl_replaymoviemanager.h114
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 &params );
+ 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