BALL  1.4.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
glDisplayList.h
Go to the documentation of this file.
1 // -*- Mode: C++; tab-width: 2; -*-
2 // vi: set ts=2:
3 //
4 // $Id: glDisplayList.h,v 1.8.16.1 2007/03/25 21:26:14 oliver Exp $
5 
6 #ifndef BALL_VIEW_RENDERING_GLDISPLAYLIST_H
7 #define BALL_VIEW_RENDERING_GLDISPLAYLIST_H
8 
9 #ifndef BALL_COMMON_H
10 # include <BALL/common.h>
11 #endif
12 
13 #include <QtOpenGL/qgl.h>
14 
15 namespace BALL
16 {
17  namespace VIEW
18  {
19 
32 {
33  public:
34 
36 
37 
40 
45  typedef unsigned long GLList;
46 
48 
51 
56  static const GLList DISPLAYLIST_NOT_DEFINED;
57 
59 
62 
68  class BALL_VIEW_EXPORT NestedDisplayList: public Exception::GeneralException
69  {
70  public:
71 
72  NestedDisplayList(const char* file, int line) ;
73  };
74 
81  {
82  public:
83 
84  NoDisplayListAvailable(const char* file, int line);
85  };
86 
93  {
94  public:
95 
96  DisplayListRedeclaration(const char* file, int line);
97  };
98 
100 
103 
111  GLDisplayList();
112 
114 
117 
121  virtual ~GLDisplayList();
122 
126  virtual void clear();
127 
129 
132 
144  void startDefinition()
146 
151  void endDefinition();
152 
161  void draw();
162 
173  void useCompileMode();
174 
186  void useCompileAndExecuteMode();
187 
189 
192 
197  bool isCompileMode() const;
198 
203  bool isCompileAndExecuteMode() const;
204 
206 
212  virtual bool isValid() const
213  { return GL_list_ != 0; }
214 
221  virtual void dump(std::ostream& s = std::cout, Size depth = 0) const;
222 
224 
225  private:
226 
227  /* compile switch */
228  bool compile_;
229 
230  /* display list */
232 };
233 
234 # ifndef BALL_NO_INLINE_FUNCTIONS
235 # include <BALL/VIEW/RENDERING/glDisplayList.iC>
236 # endif
237 
238  } // namespace VIEW
239 } // namespace BALL
240 
241 #endif // BALL_VIEW_RENDERING_GLDISPLAYLIST_H