#ifndef THGLUTRENDERER
#define THGLUTRENDERER
#ifdef WIN32
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#endif
#include <GL/glut.h>
#include <ThCore.h>
#include <ThEngine.h>
#include "ThGlutCamera.h"
namespace Th {
class GlutRenderer : public Renderer
{
DECLARE_RTTI;
DECLARE_IS_DERIVED_FROM
public:
GlutRenderer(int iWidth, int iHeight);
GlutRenderer(int iWidth, int iHeight, const Color& rkBGColor);
virtual void DisplayBackBuffer();
virtual void ClearBuffers();
virtual void RenderPoint(const Vector3& rkPoint);
virtual void RenderLine(const Vector3& rkStart, const Vector3& rkEnd);
virtual void SetBackgroundColor(const Color& rkBackgroundColor);
virtual void RenderSphere(const Vector3& rfCenter, const Real& rfRadius);
//Render Leaf types
virtual void Render(const PointMesh* pkPointMesh);
virtual void Render(const MD2Object* pkMD2Object);
//Renderstates setup
virtual void SetZBufferState(ZBufferState* pkState);
virtual void SetTextureState(TextureState* pkState);
private:
virtual void PlaceInWorld(const Geometry* pkObject);
};
}
#endif //THGLUTRENDERER