51 lines
1.5 KiB
C
51 lines
1.5 KiB
C
|
//===== Copyright <20> 2013-2013, Valve Corporation, All rights reserved. ======//
|
|||
|
//
|
|||
|
// Purpose: Class to help with rendering CMDLs & CMergedMDLs to textures.
|
|||
|
//
|
|||
|
//===========================================================================//
|
|||
|
|
|||
|
|
|||
|
#ifndef RENDER_TO_RT_HELPER_H
|
|||
|
#define RENDER_TO_RT_HELPER_H
|
|||
|
|
|||
|
#if defined( _WIN32 )
|
|||
|
#pragma once
|
|||
|
#endif
|
|||
|
|
|||
|
#include "utllinkedlist.h"
|
|||
|
#include "irendertorthelperobject.h"
|
|||
|
|
|||
|
//-----------------------------------------------------------------------------
|
|||
|
// Forward declarations
|
|||
|
//-----------------------------------------------------------------------------
|
|||
|
class IVTFTexture;
|
|||
|
class ITexture;
|
|||
|
class CThreadEvent;
|
|||
|
|
|||
|
class CRenderToRTHelper : public IRenderToRTHelper
|
|||
|
{
|
|||
|
public:
|
|||
|
CRenderToRTHelper();
|
|||
|
virtual ~CRenderToRTHelper();
|
|||
|
|
|||
|
// Methods of IRenderToRTHelper
|
|||
|
virtual bool Init();
|
|||
|
virtual void Shutdown();
|
|||
|
virtual RenderToRTData_t *CreateRenderToRTData( IRenderToRTHelperObject *pObject, IVTFTexture *pResultVTF );
|
|||
|
virtual void StartRenderToRT( RenderToRTData_t *pRendertoRTData );
|
|||
|
virtual void DestroyRenderToRTData( RenderToRTData_t *pRendertoRTData );
|
|||
|
virtual bool Process();
|
|||
|
|
|||
|
void LookAt( Camera_t &camera, const Vector &vecCenter, float flRadius, QAngle cameraAngles, Vector cameraOffset );
|
|||
|
|
|||
|
private:
|
|||
|
CUtlLinkedList< RenderToRTData_t * > m_objectsToRender;
|
|||
|
RenderToRTData_t *m_pCurrentObjectToRender;
|
|||
|
MaterialLightingState_t m_LightingState;
|
|||
|
|
|||
|
CThreadEvent *m_pPixelsReadEvent;
|
|||
|
ITexture *m_pRenderTarget;
|
|||
|
};
|
|||
|
|
|||
|
#endif // RENDER_TO_RT_HELPER_H
|