]> git.xonotic.org Git - xonotic/netradiant.git/blobdiff - contrib/bobtoolz/DVisDrawer.h
reformat code! now the code is only ugly on the *inside*
[xonotic/netradiant.git] / contrib / bobtoolz / DVisDrawer.h
index 2f9ac315543d154fd5794d14e8addc4570b3e5af..11b5d215c3554a43607f82f4ed0f4cf75a56fe7c 100644 (file)
@@ -1,58 +1,66 @@
 /*
-BobToolz plugin for GtkRadiant
-Copyright (C) 2001 Gordon Biggans
+   BobToolz plugin for GtkRadiant
+   Copyright (C) 2001 Gordon Biggans
 
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2.1 of the License, or (at your option) any later version.
+   This library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
 
-This library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Lesser General Public License for more details.
+   This library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
 
-You should have received a copy of the GNU Lesser General Public
-License along with this library; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-*/
+   You should have received a copy of the GNU Lesser General Public
+   License along with this library; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
 
 // DBobView.h: interface for the DBobView class.
 //
 //////////////////////////////////////////////////////////////////////
 
-#if !defined(AFX_VISDRAWER_H__6E36062A_EF0B_11D4_ACF7_004095A18133__INCLUDED_)
+#if !defined( AFX_VISDRAWER_H__6E36062A_EF0B_11D4_ACF7_004095A18133__INCLUDED_ )
 #define AFX_VISDRAWER_H__6E36062A_EF0B_11D4_ACF7_004095A18133__INCLUDED_
 
-#include "DWinding.h"
-
 #if _MSC_VER > 1000
 
 #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();
+    DVisDrawer();
+
+    virtual ~DVisDrawer();
 
 protected:
-       list<DWinding*>* m_list;
-       int refCount;
+    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 ClearPoints();
+
+    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_)