#pragma once
#endif // _MSC_VER > 1000
-class DVisDrawer :
- public IGL2DWindow,
- public IGL3DWindow
+#include <list>
+#include "renderable.h"
+#include "irender.h"
+
+#include "DWinding.h"
+
+class DVisDrawer : public Renderable, public OpenGLRenderable
{
+ Shader* m_shader_solid;
+ Shader* m_shader_wireframe;
public:
DVisDrawer();
virtual ~DVisDrawer();
protected:
- list<DWinding*>* m_list;
+ std::list<DWinding*>* m_list;
int refCount;
public:
void ClearPoints();
- void SetList(list<DWinding*>* pointList);
- void UnRegister();
- void Register();
- void Draw3D();
- void Draw2D(VIEWTYPE vt);
- void IncRef() { refCount++; }
- void DecRef() { refCount--; if (refCount <= 0) delete this; }
-
- bool m_bHooked;
+ void SetList(std::list<DWinding*>* pointList);
+
+ void render(RenderStateFlags state) const;
+ void renderSolid(Renderer& renderer, const VolumeTest& volume) const;
+ void renderWireframe(Renderer& renderer, const VolumeTest& volume) const;
+
+ void constructShaders();
+ void destroyShaders();
+
};
#endif // !defined(AFX_VISDRAWER_H__6E36062A_EF0B_11D4_ACF7_004095A18133__INCLUDED_)