0ad/source/renderer/PlayerRenderer.h
NoMonkey 0b903415dd Player models now render shadows.
Viewing rectangle now moves with the camera on the mini-map and shows
it's FOV correctly.  Currently it is a little out of place and possibly
out of scale as well.

This was SVN commit r1872.
2005-01-30 06:27:07 +00:00

50 lines
1.3 KiB
C++

/***************************************************************************************
AUTHOR: John M. Mena
EMAIL: JohnMMena@hotmail.com
FILE: CConsole.h
CREATED: 1/23/05
COMPLETED: NULL
DESCRIPTION: Handles rendering all of the player objects.
The structure was inherited from Rich Cross' Transparency Renderer.
****************************************************************************************/
#ifndef __PLAYERRENDERER_H
#define __PLAYERRENDERER_H
#include <vector>
class CModel;
class CPlayerRenderer
{
public:
struct SObject {
// the transparent model
CModel* m_Model;
// sqrd distance from camera to centre of nearest triangle
float m_Dist;
};
public:
// add object to render in deferred transparency pass
void Add(CModel* model);
// render all deferred objects
void Render();
// render shadows from all deferred objects
void RenderShadows();
// empty object list
void Clear();
private:
// render given streams on all objects
void RenderObjectsStreams(u32 streamflags, bool iscolorpass=false, u32 mflags=0);
// setup the second pass for the player color
void SetupColorRenderStates();
// list of transparent objects to render
std::vector<SObject> m_Objects;
};
extern CPlayerRenderer g_PlayerRenderer;
#endif