Some reorganisation of the abf directories.
[fail.git] / scenegraph / renderbucket.h
blobd4541a352bdb85a00f290f6316a52a9609c8b29a
1 #ifndef AWFUL_SCENEGRAPH_RENDERBUCKET_H_
2 #define AWFUL_SCENEGRAPH_RENDERBUCKET_H_
4 #include "common.h"
5 #include "material.h"
6 #include "geometry.h"
7 #include <list>
9 namespace sluggish
11 class RenderBucket : public std::list< std::pair< ConstPointer< Frame >, ConstPointer< PrimArray > > >
13 public:
14 RenderBucket( const Material* pMaterial_ ) :
15 m_pMaterial( pMaterial_ )
19 // TODO: perhaps group renderprims using same frame together ?
20 void render() const
22 m_pMaterial->setup();
24 const_iterator it;
25 for( it = begin(); it != end(); ++it )
27 it->first->setup();
28 it->second->render();
32 bool operator==( const RenderBucket& _Bucket ) const
34 return *m_pMaterial == *_Bucket.m_pMaterial;
37 bool operator==( const Material& _Mat ) const
39 return *m_pMaterial == _Mat;
42 bool operator<( const RenderBucket& _Bucket ) const
44 return *m_pMaterial < *_Bucket.m_pMaterial;
47 private:
48 ConstPointer< Material > m_pMaterial;
52 #endif