AllegroVisitor.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. /***************************************************************************
  2. AllegroVisitor.h - description
  3. -------------------
  4. begin : Fri Jun 7 2002
  5. copyright : (C) 2002 by Henrik Enqvist IB (GPL)
  6. email : henqvist@excite.com
  7. ***************************************************************************/
  8. #ifndef ALLEGROVISITOR_H
  9. #define ALLEGROVISITOR_H
  10. #ifndef PRIVATE_H
  11. #error Must include Private.h before AllegroVisitor.h
  12. #endif
  13. #if EM_USE_ALLEGRO
  14. #include <allegro.h>
  15. #endif
  16. #include "Visitor.h"
  17. #define EM_ALLEGRO_GCOL_TEX 0
  18. #define EM_ALLEGRO_GCOL_TEX_TRANS 2
  19. #define EM_ALLEGRO_CLEAN 4
  20. class Group;
  21. class Shape3D;
  22. #if EM_DEBUG
  23. extern int em_poly;
  24. extern float em_poly_m;
  25. #endif
  26. /** @author Henrik Enqvist */
  27. class AllegroVisitor : public Visitor {
  28. protected:
  29. AllegroVisitor();
  30. public:
  31. ~AllegroVisitor();
  32. static AllegroVisitor * getInstance();
  33. void visit(Group* g);
  34. void empty();
  35. int getMode() { return m_iMode; };
  36. void setMode(int m) { m_iMode = m; };
  37. private:
  38. void visit(Shape3D* s, Group* g);
  39. static AllegroVisitor * p_AllegroVisitor;
  40. int m_iMode;
  41. #if EM_USE_ALLEGRO
  42. V3D_f alleg_vtx[256];
  43. V3D_f * alleg_vtx_p[256];
  44. V3D_f alleg_clip[256];
  45. V3D_f * alleg_clip_p[256];
  46. V3D_f alleg_tmp[256];
  47. V3D_f * alleg_tmp_p[256];
  48. int int_tmp[256];
  49. #endif
  50. };
  51. #endif // ALLEGROVISITOR_H