hl2_src-leak-2017/src/replay/cl_replaymoviemanager.h

115 lines
3.9 KiB
C++

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