Eneboo - Documentación para desarrolladores
Clases | 'defines' | 'typedefs' | Funciones
Referencia del Archivo src/qt/src/kernel/qregion_x11.cpp
#include "qregion.h"
#include "qpointarray.h"
#include "qbuffer.h"
#include "qimage.h"
#include "qbitmap.h"
#include "qt_x11_p.h"
#include <stdlib.h>
#include <limits.h>

Clases

struct  QRegionPrivate
struct  _POINTBLOCK
struct  BRESINFO
struct  _EdgeTableEntry
struct  _ScanLineList
struct  EdgeTable
struct  _ScanLineListBlock
struct  BOX
struct  _XRegion

'defines'

#define RectangleOut   0
#define RectangleIn   1
#define RectanglePart   2
#define EvenOddRule   0
#define WindingRule   1
#define _XREGION_H
#define MAX(a, b)   (((a) > (b)) ? (a) : (b))
#define MIN(a, b)   (((a) < (b)) ? (a) : (b))
#define EXTENTCHECK(r1, r2)
#define EXTENTS(r, idRect)
#define MEMCHECK(reg, rect, firstrect)
#define EMPTY_REGION(pReg)   pReg->numRects = 0
#define REGION_NOT_EMPTY(pReg)   pReg->numRects
#define NUMPTSTOBUFFER   200
#define MERGERECT(r)
#define BRESINITPGON(dy, x1, x2, xStart, d, m, m1, incr1, incr2)
#define BRESINCRPGON(d, minval, m, m1, incr1, incr2)
#define BRESINITPGONSTRUCT(dmaj, min1, min2, bres)
#define BRESINCRPGONSTRUCT(bres)   BRESINCRPGON(bres.d, bres.minor_axis, bres.m, bres.m1, bres.incr1, bres.incr2)
#define CLOCKWISE   1
#define COUNTERCLOCKWISE   -1
#define SLLSPERBLOCK   25
#define EVALUATEEDGEWINDING(pAET, pPrevAET, y, fixWAET)
#define EVALUATEEDGEEVENODD(pAET, pPrevAET, y)
#define LARGE_COORDINATE   1000000
#define SMALL_COORDINATE   -LARGE_COORDINATE
#define AddSpan

'typedefs'

typedef struct _POINTBLOCK POINTBLOCK
typedef void(* voidProcp )(...)
typedef struct _EdgeTableEntry EdgeTableEntry
typedef struct _ScanLineList ScanLineList
typedef struct _ScanLineListBlock ScanLineListBlock

Funciones

void qt_setCoords (QRect *r, int xp1, int yp1, int xp2, int yp2)
QRegionPrivateqt_bitmapToRegion (const QBitmap &bitmap)

Documentación de los 'defines'

#define _XREGION_H
#define AddSpan
Valor:
{ \
            qt_setCoords( &xr, prev1, y, x-1, y ); \
            UnionRectWithRegion( &xr, region, region ); \
        }
#define BRESINCRPGON (   d,
  minval,
  m,
  m1,
  incr1,
  incr2 
)
Valor:
{ \
    if (m1 > 0) { \
        if (d > 0) { \
            minval += m1; \
            d += incr1; \
        } \
        else { \
            minval += m; \
            d += incr2; \
        } \
    } else {\
        if (d >= 0) { \
            minval += m1; \
            d += incr1; \
        } \
        else { \
            minval += m; \
            d += incr2; \
        } \
    } \
}
#define BRESINCRPGONSTRUCT (   bres)    BRESINCRPGON(bres.d, bres.minor_axis, bres.m, bres.m1, bres.incr1, bres.incr2)
#define BRESINITPGON (   dy,
  x1,
  x2,
  xStart,
  d,
  m,
  m1,
  incr1,
  incr2 
)
Valor:
{ \
    int dx;      /* local storage */ \
\
    /* \
     *  if the edge is horizontal, then it is ignored \
     *  and assumed not to be processed.  Otherwise, do this stuff. \
     */ \
    if ((dy) != 0) { \
        xStart = (x1); \
        dx = (x2) - xStart; \
        if (dx < 0) { \
            m = dx / (dy); \
            m1 = m - 1; \
            incr1 = -2 * dx + 2 * (dy) * m1; \
            incr2 = -2 * dx + 2 * (dy) * m; \
            d = 2 * m * (dy) - 2 * dx - 2 * (dy); \
        } else { \
            m = dx / (dy); \
            m1 = m + 1; \
            incr1 = 2 * dx - 2 * (dy) * m1; \
            incr2 = 2 * dx - 2 * (dy) * m; \
            d = -2 * m * (dy) + 2 * dx; \
        } \
    } \
}
#define BRESINITPGONSTRUCT (   dmaj,
  min1,
  min2,
  bres 
)
Valor:
BRESINITPGON(dmaj, min1, min2, bres.minor_axis, bres.d, \
                     bres.m, bres.m1, bres.incr1, bres.incr2)
#define CLOCKWISE   1
#define COUNTERCLOCKWISE   -1
#define EMPTY_REGION (   pReg)    pReg->numRects = 0
#define EVALUATEEDGEEVENODD (   pAET,
  pPrevAET,
 
)
Valor:
{ \
   if (pAET->ymax == y) {          /* leaving this edge */ \
      pPrevAET->next = pAET->next; \
      pAET = pPrevAET->next; \
      if (pAET) \
         pAET->back = pPrevAET; \
   } \
   else { \
      BRESINCRPGONSTRUCT(pAET->bres) \
      pPrevAET = pAET; \
      pAET = pAET->next; \
   } \
}
#define EVALUATEEDGEWINDING (   pAET,
  pPrevAET,
  y,
  fixWAET 
)
Valor:
{ \
   if (pAET->ymax == y) {          /* leaving this edge */ \
      pPrevAET->next = pAET->next; \
      pAET = pPrevAET->next; \
      fixWAET = 1; \
      if (pAET) \
         pAET->back = pPrevAET; \
   } \
   else { \
      BRESINCRPGONSTRUCT(pAET->bres) \
      pPrevAET = pAET; \
      pAET = pAET->next; \
   } \
}
#define EvenOddRule   0
#define EXTENTCHECK (   r1,
  r2 
)
Valor:
((r1)->right() >= (r2)->left() && \
         (r1)->left() <= (r2)->right() && \
         (r1)->bottom() >= (r2)->top() && \
         (r1)->top() <= (r2)->bottom())
#define EXTENTS (   r,
  idRect 
)
Valor:
{\
            if((r)->left() < (idRect)->extents.left())\
              (idRect)->extents.setLeft( (r)->left() );\
            if((r)->top() < (idRect)->extents.top())\
              (idRect)->extents.setTop( (r)->top() );\
            if((r)->right() > (idRect)->extents.right())\
              (idRect)->extents.setRight( (r)->right() );\
            if((r)->bottom() > (idRect)->extents.bottom())\
              (idRect)->extents.setBottom( (r)->bottom() );\
        }
#define LARGE_COORDINATE   1000000
#define MAX (   a,
  b 
)    (((a) > (b)) ? (a) : (b))
#define MEMCHECK (   reg,
  rect,
  firstrect 
)
Valor:
{\
        if ((reg)->numRects >= (int)((reg)->rects.size()-1)){\
          firstrect.resize(firstrect.size() * 2); \
          (rect) = (firstrect).data() + (reg)->numRects;\
        }\
      }
#define MERGERECT (   r)
Valor:
if ((pReg->numRects != 0) &&  \
        (pNextRect[-1].top() == y1) &&  \
        (pNextRect[-1].bottom() == y2) &&  \
        (pNextRect[-1].right() >= r->left()-1)) { \
        if (pNextRect[-1].right() < r->right()) { \
            pNextRect[-1].setRight( r->right() );  \
            Q_ASSERT(pNextRect[-1].left() <= pNextRect[-1].right()); \
        }  \
    } else { \
        MEMCHECK(pReg, pNextRect, pReg->rects)  \
        qt_setCoords( pNextRect, r->left(), y1, r->right(), y2 ); \
        pReg->numRects++;  \
        pNextRect++;  \
    }  \
    r++;
#define MIN (   a,
  b 
)    (((a) < (b)) ? (a) : (b))
#define NUMPTSTOBUFFER   200
#define RectangleIn   1
#define RectangleOut   0
#define RectanglePart   2
#define REGION_NOT_EMPTY (   pReg)    pReg->numRects
#define SLLSPERBLOCK   25
#define SMALL_COORDINATE   -LARGE_COORDINATE
#define WindingRule   1

Documentación de los 'typedefs'

typedef struct _POINTBLOCK POINTBLOCK
typedef struct _ScanLineList ScanLineList
typedef void(* voidProcp)(...)

Documentación de las funciones

QRegionPrivate* qt_bitmapToRegion ( const QBitmap bitmap)
void qt_setCoords ( QRect r,
int  xp1,
int  yp1,
int  xp2,
int  yp2 
) [inline]
 Todo Clases Namespaces Archivos Funciones Variables 'typedefs' Enumeraciones Valores de enumeraciones Propiedades Amigas 'defines'