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.
115 lines
3.9 KiB
115 lines
3.9 KiB
5 years ago
|
//========= 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
|