more inlining

SVN revision: 3488
This commit is contained in:
Tom Gilbert 2000-09-16 00:38:10 +00:00
parent 5552e7e064
commit 6cedec71a8
2 changed files with 61 additions and 80 deletions

View File

@ -1901,72 +1901,6 @@ __imlib_draw_ellipse_clipped(ImlibImage * im, int xc, int yc, int aa, int bb,
}
void
__imlib_draw_set_point(ImlibImage * im, int x, int y, DATA8 r, DATA8 g,
DATA8 b, DATA8 a, ImlibOp op)
{
DATA32 *p;
int tmp;
if (XY_IN_RECT(x, y, 0, 0, im->w, im->h))
{
p = &(im->data[(im->w * y) + x]);
switch (op)
{
case OP_RESHADE:
BLEND_RE(r, g, b, a, p);
break;
case OP_SUBTRACT:
BLEND_SUB(r, g, b, a, p);
break;
case OP_ADD:
BLEND_ADD(r, g, b, a, p);
break;
case OP_COPY:
BLEND(r, g, b, a, p);
break;
default:
break;
}
}
}
void
__imlib_draw_set_point_clipped(ImlibImage * im, int x, int y, int clip_xmin,
int clip_xmax, int clip_ymin, int clip_ymax,
DATA8 r, DATA8 g, DATA8 b, DATA8 a, ImlibOp op)
{
DATA32 *p;
int tmp;
if (XY_IN_RECT(x, y, 0, 0, im->w, im->h))
{
if (XY_IN_RECT
(x, y, clip_xmin, clip_ymin, clip_xmax - clip_xmin,
clip_ymax - clip_ymin))
{
p = &(im->data[(im->w * y) + x]);
switch (op)
{
case OP_RESHADE:
BLEND_RE(r, g, b, a, p);
break;
case OP_SUBTRACT:
BLEND_SUB(r, g, b, a, p);
break;
case OP_ADD:
BLEND_ADD(r, g, b, a, p);
break;
case OP_COPY:
BLEND(r, g, b, a, p);
break;
default:
break;
}
}
}
}
static void
edge(edgeRec * table, ImlibPoint * pt1, ImlibPoint * pt2)
{
@ -2003,9 +1937,8 @@ span(ImlibImage * im, int y, edgeRec * pt1, edgeRec * pt2, DATA8 r, DATA8 g,
ix1 = pt1->x;
ix2 = pt2->x;
if (ix1 == ix2)
{
return;
}
do
{
p = &(im->data[(im->w * y) + ix1]);

View File

@ -30,10 +30,65 @@
(s1_y != s2_y) ? (p_y <= MAX(s1_y, s2_y) && p_y >= MIN(s1_y, s2_y)) : (p_x <= MAX(s1_x, s2_x) && p_x >= MIN(s1_x, s2_x))
#define SWAP(a,b) {int _tmp_; _tmp_ = a; a = b; b = _tmp_;}
#define __imlib_point_on_segment(p_x, p_y, s1_x, s1_y, s2_x, s2_y) \
__imlib_segments_intersect(p_x, p_y, p_x, p_y, s1_x, s1_y, s2_x, s2_y)
#define __imlib_draw_set_point(im, x, y, r, g, b, a, op) \
{ \
DATA32 *p; int tmp; \
if (XY_IN_RECT((x), (y), 0, 0, im->w, im->h)) { \
p = &(im->data[(im->w * (y)) + (x)]); \
switch (op) { \
case OP_RESHADE: \
BLEND_RE(r, g, b, a, p); \
break; \
case OP_SUBTRACT: \
BLEND_SUB(r, g, b, a, p); \
break; \
case OP_ADD: \
BLEND_ADD(r, g, b, a, p); \
break; \
case OP_COPY: \
BLEND(r, g, b, a, p); \
break; \
default: \
break; \
} \
} \
}
#define __imlib_draw_set_point_clipped(im, x, y, clip_xmin, clip_xmax, clip_ymin, clip_ymax, r, g, b, a, op) \
{ DATA32 *p; int tmp; \
if (XY_IN_RECT((x), (y), 0, 0, im->w, im->h)) \
{ \
if (XY_IN_RECT \
((x), (y), clip_xmin, clip_ymin, clip_xmax - clip_xmin, \
clip_ymax - clip_ymin)) \
{ \
p = &(im->data[(im->w * (y)) + (x)]); \
switch (op) \
{ \
case OP_RESHADE: \
BLEND_RE(r, g, b, a, p); \
break; \
case OP_SUBTRACT: \
BLEND_SUB(r, g, b, a, p); \
break; \
case OP_ADD: \
BLEND_ADD(r, g, b, a, p); \
break; \
case OP_COPY: \
BLEND(r, g, b, a, p); \
break; \
default: \
break; \
} \
} \
} \
}
typedef struct _edgerec
{
int x;
@ -121,12 +176,6 @@ void __imlib_draw_polygon_clipped(ImlibImage * im, ImlibPoly poly,
void __imlib_polygon_get_bounds(ImlibPoly poly, int *px1, int *py1, int *px2,
int *py2);
void __imlib_draw_set_point(ImlibImage * im, int x, int y, DATA8 r, DATA8 g,
DATA8 b, DATA8 a, ImlibOp op);
void __imlib_draw_set_point_clipped(ImlibImage * im, int x, int y,
int clip_xmin, int clip_xmax,
int clip_ymin, int clip_ymax, DATA8 r,
DATA8 g, DATA8 b, DATA8 a, ImlibOp op);
void __imlib_draw_ellipse(ImlibImage * im, int xc, int yc, int aa, int bb,
DATA8 r, DATA8 g, DATA8 b, DATA8 a, ImlibOp op);
void __imlib_draw_ellipse_clipped(ImlibImage * im, int xc, int yc, int aa,
@ -137,16 +186,15 @@ void __imlib_draw_polygon_filled(ImlibImage * im, ImlibPoly poly,
int clip_xmin, int clip_xmax, int clip_ymin,
int clip_ymax, DATA8 r, DATA8 g, DATA8 b,
DATA8 a, ImlibOp op);
void __imlib_fill_ellipse(ImlibImage * im, int xc, int yc, int aa,
int bb, int clip_xmin, int clip_xmax,
int clip_ymin, int clip_ymax, DATA8 r,
DATA8 g, DATA8 b, DATA8 a, ImlibOp op);
void __imlib_fill_ellipse(ImlibImage * im, int xc, int yc, int aa, int bb,
int clip_xmin, int clip_xmax, int clip_ymin,
int clip_ymax, DATA8 r, DATA8 g, DATA8 b, DATA8 a,
ImlibOp op);
unsigned char __imlib_polygon_contains_point(ImlibPoly poly, int x, int y);
unsigned char __imlib_segments_intersect(int r1_x, int r1_y, int r2_x,
int r2_y, int s1_x, int s1_y,
int s2_x, int s2_y);
double __imlib_point_delta_from_line(int p_x, int p_y, int s1_x, int s1_y,
int s2_x, int s2_y);
void __spanlist_clip(edgeRec * table1, edgeRec * table2, int *sy, int *ey,
int xmin, int xmax, int ymin, int ymax);