mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-16 05:37:00 +00:00
1
This commit is contained in:
@@ -0,0 +1,111 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
//=======================================================================================//
|
||||
|
||||
#ifndef REPLAYRENDERER_H
|
||||
#define REPLAYRENDERER_H
|
||||
#ifdef _WIN32
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
#include "replay/ireplaymovierenderer.h"
|
||||
#include "replay/rendermovieparams.h"
|
||||
#include "movieobjects/timeutils.h"
|
||||
#include "fmtstr.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
class CReplay;
|
||||
class CReplayPerformance;
|
||||
class IQuickTimeMovieMaker;
|
||||
class CReplayRenderOverlay;
|
||||
class IVideoRecorder;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
class CReplayRenderer : public IReplayMovieRenderer
|
||||
{
|
||||
public:
|
||||
CReplayRenderer( CReplayRenderOverlay *pOverlay );
|
||||
~CReplayRenderer();
|
||||
|
||||
const CReplayPerformance *GetPerformance() const;
|
||||
const char *GetMovieFilename() const;
|
||||
static int GetNumMotionBlurTimeSteps( int nQuality );
|
||||
|
||||
//
|
||||
// IReplayMovieRenderer interface
|
||||
//
|
||||
virtual bool SetupRenderer( RenderMovieParams_t ¶ms, IReplayMovie *pMovie );
|
||||
virtual void ShutdownRenderer();
|
||||
virtual void RenderVideo();
|
||||
virtual void RenderAudio( unsigned char *pBuffer, int nSize, int nNumSamples );
|
||||
|
||||
virtual void SetAudioSyncFrame( bool isSync = false );
|
||||
virtual bool IsAudioSyncFrame();
|
||||
virtual float GetRecordingFrameDuration();
|
||||
|
||||
|
||||
private:
|
||||
bool IsDepthOfFieldEnabled() const;
|
||||
bool IsAntialiasingEnabled() const;
|
||||
bool IsHDR() const;
|
||||
bool IsMotionBlurEnabled() const;
|
||||
int GetMotionBlurQuality() const;
|
||||
int GetDepthOfFieldQuality() const;
|
||||
int NumMotionBlurTimeSteps() const;
|
||||
float GetFramerate() const;
|
||||
void ComputeSampleCounts( int *pNSamplesPerTimeStep, int *pNTotalSamples ) const;
|
||||
float GetViewModelFOVOffset();
|
||||
void SetupDOFMatrixSkewView( const Vector &pos, const QAngle &angles, int nSample, CViewSetup& viewSetup );
|
||||
void BeginRenderingSample( int nSample, int x, int y, int nWidth, int nHeight, float fTonemapScale );
|
||||
void EndRendering();
|
||||
void SetupSampleView( int x, int y, int w, int h, int nSample, CViewSetup& viewSetup );
|
||||
void InitBuffers( const RenderMovieParams_t ¶ms );
|
||||
void DrawResolvingQuad( int nWidth, int nHeight );
|
||||
float GetRenderLength( const CReplay *pReplay );
|
||||
void CompositeAndLayoffFrame( int nFrame );
|
||||
void RenderLayoffFrame( DmeTime_t time, int nCurSample, int nNumTotalSamples );
|
||||
void ResolveSamples( int nSample, DmeTime_t frametime, int x, int y, int nWidth, int nHeight, bool bShowUser, float flBloomScale );
|
||||
void LayoffFrame( int nFrame );
|
||||
double GetShutterSpeed() const;
|
||||
void ClearToBlack( CTextureReference &buf, int x, int y, int nWidth, int nHeight );
|
||||
bool SetupJitterTable();
|
||||
void GetViewSetup( CViewSetup &viewsetup );
|
||||
|
||||
bool m_bIsAudioSyncFrame;
|
||||
|
||||
const Vector2D *m_pJitterTable;
|
||||
int m_nNumJitterSamples;
|
||||
IVideoRecorder *m_pMovieMaker;
|
||||
bool m_bCacheFullSceneState;
|
||||
BGRA8888_t *m_pLayoffBuf;
|
||||
IReplayMovie *m_pMovie;
|
||||
RenderMovieParams_t m_RenderParams;
|
||||
CTextureReference m_AccumBuffSample;
|
||||
CTextureReference m_LayoffResult;
|
||||
CTextureReference m_AccumBuffPingPong[2]; // Buffers and materials for ping-pong accumulation buffer
|
||||
CMaterialReference m_FourSampleResolveMatRef;
|
||||
bool m_bForceCheapDoF;
|
||||
bool m_bShutterClosed;
|
||||
int m_nCurrentPingPong;
|
||||
int m_nFrame;
|
||||
|
||||
ConVar *m_pViewmodelFov;
|
||||
ConVar *m_pDefaultFov;
|
||||
|
||||
int m_nTimeStep;
|
||||
int m_nCurSample;
|
||||
DmeTime_t m_curSampleTime;
|
||||
|
||||
int m_iTgaFrame;
|
||||
CFmtStr m_fmtTgaRenderDirName;
|
||||
|
||||
CReplayRenderOverlay *m_pRenderOverlay;
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
#endif // REPLAYRENDERER_H
|
||||
Reference in New Issue
Block a user