cliprect.h

Go to the documentation of this file.
00001 
00007 #ifndef CLIPRECT_H
00008 #define CLIPRECT_H
00009 #ifndef RECT_H
00010 #include "rect.h"
00011 #endif
00012 
00028 typedef struct ClipRect
00029 {
00030     Rect    bounds;     
00031     size_t  maxDirty;   
00032     Rect*   dirty;      
00033     size_t  cDirty;     
00034 } ClipRect;
00035 void ClipRect_init( ClipRect* self, Rect* dirty, size_t cDirty, const Rect* bounds );
00036 void ClipRect_add( ClipRect* self, const Rect* r );
00037 void ClipRect_remove( ClipRect* self, const Rect* r );
00038 Rect ClipRect_union( const ClipRect* self );
00039 void ClipRect_merge( ClipRect* self, const ClipRect* other );
00040 void ClipRect_copy( ClipRect* self, const ClipRect* other );
00041 #define ClipRect_empty(self)    (0 == (self)->cDirty)
00042 #define ClipRect_clear(self)    { (self)->cDirty = 0; }
00043 
00049 #define ClipRect_foreach( instance, iterator )\
00050     pointer_foreach_const( Rect, (instance)->dirty, (instance)->cDirty, iterator )
00051 
00057 #define ClipRect_foreach_mutable( instance, iterator )\
00058     Rect* iterator = (instance)->dirty;\
00059     size_t iterator##_curr;\
00060     for( iterator##_curr = 0; iterator##_curr < (instance)->cDirty; ++iterator##_curr, ++iterator )
00061 
00062 #endif /* CLIPRECT_H */

Generated on Fri Jan 2 15:28:34 2009 for Squat by  doxygen 1.5.6