haiku/headers/private/interface/RegionSupport.h
Stefano Ceccherini 59cbc87ad8 RegionSupport accepts, as parameters, references to BRegions (consts when possible) instead of pointers. Note: this is not a functional change
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12937 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-03 08:34:08 +00:00

44 lines
1.6 KiB
C++

// This file is distributed under the OpenBeOS license
#ifndef __REGION_SUPPORT_H
#define __REGION_SUPPORT_H
struct clipping_rect;
class BRegion;
class BRegion::Support {
public:
static void ZeroRegion(BRegion &region);
static void ClearRegion(BRegion &region);
static void CopyRegion(const BRegion &source, BRegion &dest);
static void AndRegion(const BRegion &first, const BRegion &second, BRegion &dest);
static void OrRegion(const BRegion &first, const BRegion &second, BRegion &dest);
static void SubRegion(const BRegion &first, const BRegion &second, BRegion &dest);
private:
static void CleanupRegion(BRegion &region);
static void CleanupRegionVertical(BRegion &region);
static void CleanupRegionHorizontal(BRegion &region);
static void SortRects(clipping_rect *rects, long count);
static void SortTrans(long *lptr1, long *lptr2, long count);
static void CopyRegionMore(const BRegion &, BRegion &, long);
static void AndRegionComplex(const BRegion &, const BRegion &, BRegion &);
static void AndRegion1ToN(const BRegion &, const BRegion &, BRegion &);
static void AppendRegion(const BRegion &, const BRegion &, BRegion &);
static void OrRegionComplex(const BRegion &, const BRegion &, BRegion &);
static void OrRegion1ToN(const BRegion &, const BRegion &, BRegion &);
static void OrRegionNoX(const BRegion &, const BRegion &, BRegion &);
static void ROr(long, long, const BRegion &, const BRegion &,
BRegion &, long *, long *);
static void SubRegionComplex(const BRegion &, const BRegion &, BRegion &);
static void RSub(long, long, const BRegion &, const BRegion &,
BRegion &, long *, long *);
};
#endif // __REGION_SUPPORT_H