Custom ViewRender: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
(Created page with 'If ever you need to work with CViewRender, say for applying a post-process effect, this is a way of deriving it so that you keep your own code contained and do not have to ed…')
 
No edit summary
 
Line 17: Line 17:


static C_SDKViewRender g_ViewRender;
static C_SDKViewRender g_ViewRender;
//=================================================================================


C_SDKViewRender::C_SDKViewRender() {
C_SDKViewRender::C_SDKViewRender() {

Latest revision as of 09:33, 21 April 2011

If ever you need to work with CViewRender, say for applying a post-process effect, this is a way of deriving it so that you keep your own code contained and do not have to edit Valve's code.

Create SDKViewRender.cpp and insert the following:

#include "cbase.h"
#include "viewrender.h"
#include "view_scene.h"
// memdbgon must be the last include file in a .cpp file!!!
#include "tier0/memdbgon.h"

class C_SDKViewRender : public CViewRender {
	DECLARE_CLASS(C_SDKViewRender, CViewRender);
public:
	C_SDKViewRender::C_SDKViewRender();

	virtual void RenderView(const CViewSetup &view, int nClearFlags, int whatToDraw);
};

static C_SDKViewRender g_ViewRender;

//=================================================================================

C_SDKViewRender::C_SDKViewRender() {
	if (!view) {
		view = (IViewRender *)&g_ViewRender;
	}
}

void C_SDKViewRender::RenderView(const CViewSetup &view, int nClearFlags, int whatToDraw) {
	BaseClass::RenderView(view, nClearFlags, whatToDraw);
	//Your code could go here.
}