use alpha value when drawing simplerect outline
git-svn-id: svn://localhost/ardour2/branches/3.0@9053 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
3225b24854
commit
9498b3bfe4
@ -531,7 +531,6 @@ static void
|
|||||||
gnome_canvas_simplerect_update (GnomeCanvasItem *item, double *affine, ArtSVP *clip_path, int flags)
|
gnome_canvas_simplerect_update (GnomeCanvasItem *item, double *affine, ArtSVP *clip_path, int flags)
|
||||||
{
|
{
|
||||||
GnomeCanvasSimpleRect *simplerect;
|
GnomeCanvasSimpleRect *simplerect;
|
||||||
unsigned char foo;
|
|
||||||
|
|
||||||
simplerect = GNOME_CANVAS_SIMPLERECT (item);
|
simplerect = GNOME_CANVAS_SIMPLERECT (item);
|
||||||
|
|
||||||
@ -550,7 +549,7 @@ gnome_canvas_simplerect_update (GnomeCanvasItem *item, double *affine, ArtSVP *c
|
|||||||
}
|
}
|
||||||
|
|
||||||
UINT_TO_RGBA (simplerect->fill_color, &simplerect->fill_r, &simplerect->fill_g, &simplerect->fill_b, &simplerect->fill_a);
|
UINT_TO_RGBA (simplerect->fill_color, &simplerect->fill_r, &simplerect->fill_g, &simplerect->fill_b, &simplerect->fill_a);
|
||||||
UINT_TO_RGBA (simplerect->outline_color, &simplerect->outline_r, &simplerect->outline_g, &simplerect->outline_b, &foo);
|
UINT_TO_RGBA (simplerect->outline_color, &simplerect->outline_r, &simplerect->outline_g, &simplerect->outline_b, &simplerect->outline_a);
|
||||||
}
|
}
|
||||||
|
|
||||||
// this can be useful for debugging/understanding how the canvas redraws
|
// this can be useful for debugging/understanding how the canvas redraws
|
||||||
@ -627,26 +626,28 @@ gnome_canvas_simplerect_render (GnomeCanvasItem *item,
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (simplerect->outline_a > 0) {
|
||||||
for (i = 0; i < simplerect->outline_pixels; ++i) {
|
for (i = 0; i < simplerect->outline_pixels; ++i) {
|
||||||
|
|
||||||
if (simplerect->outline_what & 0x1) {
|
if (simplerect->outline_what & 0x1) {
|
||||||
if (begin == simplerect->bbox_ulx) {
|
if (begin == simplerect->bbox_ulx) {
|
||||||
PAINT_VERT(buf, simplerect->outline_r, simplerect->outline_g, simplerect->outline_b, begin + i, sy, ey);
|
PAINT_VERTA(buf, simplerect->outline_r, simplerect->outline_g, simplerect->outline_b, simplerect->outline_a, begin + i, sy, ey);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (simplerect->outline_what & 0x2) {
|
if (simplerect->outline_what & 0x2) {
|
||||||
if (end == (simplerect->bbox_lrx - 1)) {
|
if (end == (simplerect->bbox_lrx - 1)) {
|
||||||
PAINT_VERT(buf, simplerect->outline_r, simplerect->outline_g, simplerect->outline_b, end - i, sy, ey + 1);
|
PAINT_VERTA(buf, simplerect->outline_r, simplerect->outline_g, simplerect->outline_b, simplerect->outline_a, end - i, sy, ey + 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (simplerect->outline_what & 0x4) {
|
if (simplerect->outline_what & 0x4) {
|
||||||
PAINT_HORIZ(buf, simplerect->outline_r, simplerect->outline_g, simplerect->outline_b, begin, end, sy+i);
|
PAINT_HORIZA(buf, simplerect->outline_r, simplerect->outline_g, simplerect->outline_b, simplerect->outline_a, begin, end, sy+i);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (simplerect->outline_what & 0x8) {
|
if (simplerect->outline_what & 0x8) {
|
||||||
PAINT_HORIZ(buf, simplerect->outline_r, simplerect->outline_g, simplerect->outline_b, begin, end + 1, ey-i);
|
PAINT_HORIZA(buf, simplerect->outline_r, simplerect->outline_g, simplerect->outline_b, simplerect->outline_a, begin, end + 1, ey-i);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -660,7 +661,7 @@ gnome_canvas_simplerect_render (GnomeCanvasItem *item,
|
|||||||
GnomeCanvasSimpleRect *simplerect;
|
GnomeCanvasSimpleRect *simplerect;
|
||||||
int end, begin;
|
int end, begin;
|
||||||
int ey, sy;
|
int ey, sy;
|
||||||
unsigned int i;
|
int i;
|
||||||
|
|
||||||
simplerect = GNOME_CANVAS_SIMPLERECT (item);
|
simplerect = GNOME_CANVAS_SIMPLERECT (item);
|
||||||
|
|
||||||
@ -704,26 +705,28 @@ gnome_canvas_simplerect_render (GnomeCanvasItem *item,
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < simplerect->outline_pixels; ++i) {
|
if (simplerect->outline_a) {
|
||||||
|
for (i = 0; i < (int) simplerect->outline_pixels; ++i) {
|
||||||
|
|
||||||
if (simplerect->outline_what & 0x1) {
|
if (simplerect->outline_what & 0x1) {
|
||||||
if (begin == simplerect->bbox_ulx) {
|
if (begin == simplerect->bbox_ulx) {
|
||||||
PAINT_VERT(buf, simplerect->outline_r, simplerect->outline_g, simplerect->outline_b, begin + i, sy, ey);
|
PAINT_VERTA(buf, simplerect->outline_r, simplerect->outline_g, simplerect->outline_b, simplerect->outline_a, begin + i, sy, ey);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (simplerect->outline_what & 0x2) {
|
if (simplerect->outline_what & 0x2) {
|
||||||
if (end == (simplerect->bbox_lrx - 1)) {
|
if (end == (simplerect->bbox_lrx - 1)) {
|
||||||
PAINT_VERT(buf, simplerect->outline_r, simplerect->outline_g, simplerect->outline_b, end - i, sy, ey + 1);
|
PAINT_VERTA(buf, simplerect->outline_r, simplerect->outline_g, simplerect->outline_b, simplerect->outline_a, end - i, sy, ey + 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (simplerect->outline_what & 0x4) {
|
if (simplerect->outline_what & 0x4) {
|
||||||
PAINT_HORIZ(buf, simplerect->outline_r, simplerect->outline_g, simplerect->outline_b, begin, end, sy+i);
|
PAINT_HORIZA(buf, simplerect->outline_r, simplerect->outline_g, simplerect->outline_b, simplerect->outline_a, begin, end, sy+i);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (simplerect->outline_what & 0x8) {
|
if (simplerect->outline_what & 0x8) {
|
||||||
PAINT_HORIZ(buf, simplerect->outline_r, simplerect->outline_g, simplerect->outline_b, begin, end + 1, ey-i);
|
PAINT_HORIZA(buf, simplerect->outline_r, simplerect->outline_g, simplerect->outline_b, simplerect->outline_a, begin, end + 1, ey-i);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -55,7 +55,7 @@ struct _GnomeCanvasSimpleRect
|
|||||||
/* cached values set during update/used during render */
|
/* cached values set during update/used during render */
|
||||||
|
|
||||||
unsigned char fill_r, fill_b, fill_g, fill_a;
|
unsigned char fill_r, fill_b, fill_g, fill_a;
|
||||||
unsigned char outline_r, outline_b, outline_g;
|
unsigned char outline_r, outline_b, outline_g, outline_a;
|
||||||
unsigned char outline_what;
|
unsigned char outline_what;
|
||||||
gint32 bbox_ulx, bbox_uly;
|
gint32 bbox_ulx, bbox_uly;
|
||||||
gint32 bbox_lrx, bbox_lry;
|
gint32 bbox_lrx, bbox_lry;
|
||||||
|
Loading…
Reference in New Issue
Block a user