]> de.git.xonotic.org Git - xonotic/netradiant.git/blobdiff - contrib/bobtoolz/DVisDrawer.h
refactored plugin api; refactored callback library; added signals library
[xonotic/netradiant.git] / contrib / bobtoolz / DVisDrawer.h
index d09c36fcbbcb2d4a2ac2347b0a1af88fe06a5fcf..83a80cb16dbc03263a96a7bcbd1c72c69010b7f2 100644 (file)
@@ -29,28 +29,34 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 #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_)