summaryrefslogtreecommitdiffstats
path: root/src/libnr
diff options
context:
space:
mode:
authorJon A. Cruz <jon@joncruz.org>2008-08-03 07:37:06 +0000
committerjoncruz <joncruz@users.sourceforge.net>2008-08-03 07:37:06 +0000
commit4f99bb24de6643f57c6075c18bb0b441b4ce0c23 (patch)
tree8d9486c4b0aa563fc13438e4c543e235a3a0954f /src/libnr
parentFixed const-correctness (diff)
downloadinkscape-4f99bb24de6643f57c6075c18bb0b441b4ce0c23.tar.gz
inkscape-4f99bb24de6643f57c6075c18bb0b441b4ce0c23.zip
Minor cleanup work on macros
(bzr r6546)
Diffstat (limited to 'src/libnr')
-rw-r--r--src/libnr/nr-blit.cpp6
-rw-r--r--src/libnr/nr-macros.h2
-rw-r--r--src/libnr/nr-pixblock-pattern.cpp2
-rw-r--r--src/libnr/nr-rect-l.cpp2
-rw-r--r--src/libnr/nr-rect.cpp4
-rw-r--r--src/libnr/nr-rect.h16
6 files changed, 22 insertions, 10 deletions
diff --git a/src/libnr/nr-blit.cpp b/src/libnr/nr-blit.cpp
index b25f0e2a7..144caa597 100644
--- a/src/libnr/nr-blit.cpp
+++ b/src/libnr/nr-blit.cpp
@@ -52,7 +52,7 @@ nr_blit_pixblock_pixblock_alpha (NRPixBlock *d, NRPixBlock *s, unsigned int alph
nr_rect_l_intersect (&clip, &d->area, &s->area);
- if (nr_rect_l_test_empty (&clip)) return;
+ if (nr_rect_l_test_empty(clip)) return;
/* Pointers */
dbpp = NR_PIXBLOCK_BPP (d);
@@ -153,7 +153,7 @@ nr_blit_pixblock_pixblock_mask (NRPixBlock *d, NRPixBlock *s, NRPixBlock *m)
nr_rect_l_intersect (&clip, &d->area, &s->area);
nr_rect_l_intersect (&clip, &clip, &m->area);
- if (nr_rect_l_test_empty (&clip)) return;
+ if (nr_rect_l_test_empty(clip)) return;
/* Pointers */
dbpp = NR_PIXBLOCK_BPP (d);
@@ -228,7 +228,7 @@ nr_blit_pixblock_mask_rgba32 (NRPixBlock *d, NRPixBlock *m, unsigned long rgba)
if (m->mode != NR_PIXBLOCK_MODE_A8) return;
- if (!nr_rect_l_test_intersect (&d->area, &m->area)) return;
+ if (!nr_rect_l_test_intersect(d->area, m->area)) return;
nr_rect_l_intersect (&clip, &d->area, &m->area);
diff --git a/src/libnr/nr-macros.h b/src/libnr/nr-macros.h
index e0d3dabfb..0e0307916 100644
--- a/src/libnr/nr-macros.h
+++ b/src/libnr/nr-macros.h
@@ -48,7 +48,9 @@
// Todo: move these into nr-matrix.h
#define NR_RECT_DFLS_TEST_EMPTY(a) (((a)->x0 >= (a)->x1) || ((a)->y0 >= (a)->y1))
+#define NR_RECT_DFLS_TEST_EMPTY_REF(a) (((a).x0 >= (a).x1) || ((a).y0 >= (a).y1))
#define NR_RECT_DFLS_TEST_INTERSECT(a,b) (((a)->x0 < (b)->x1) && ((a)->x1 > (b)->x0) && ((a)->y0 < (b)->y1) && ((a)->y1 > (b)->y0))
+#define NR_RECT_DFLS_TEST_INTERSECT_REF(a,b) (((a).x0 < (b).x1) && ((a).x1 > (b).x0) && ((a).y0 < (b).y1) && ((a).y1 > (b).y0))
#define NR_RECT_DF_POINT_DF_TEST_INSIDE(r,p) (((p)->x >= (r)->x0) && ((p)->x < (r)->x1) && ((p)->y >= (r)->y0) && ((p)->y < (r)->y1))
#define NR_RECT_LS_POINT_LS_TEST_INSIDE(r,p) (((p)->x >= (r)->x0) && ((p)->x < (r)->x1) && ((p)->y >= (r)->y0) && ((p)->y < (r)->y1))
#define NR_RECT_LS_TEST_INSIDE(r,x,y) ((x >= (r)->x0) && (x < (r)->x1) && (y >= (r)->y0) && (y < (r)->y1))
diff --git a/src/libnr/nr-pixblock-pattern.cpp b/src/libnr/nr-pixblock-pattern.cpp
index 771786584..aa3246297 100644
--- a/src/libnr/nr-pixblock-pattern.cpp
+++ b/src/libnr/nr-pixblock-pattern.cpp
@@ -28,7 +28,7 @@ nr_pixblock_render_gray_noise (NRPixBlock *pb, NRPixBlock *mask)
if (mask) {
if (mask->empty) return;
nr_rect_l_intersect (&clip, &pb->area, &mask->area);
- if (nr_rect_l_test_empty (&clip)) return;
+ if (nr_rect_l_test_empty(clip)) return;
} else {
clip = pb->area;
}
diff --git a/src/libnr/nr-rect-l.cpp b/src/libnr/nr-rect-l.cpp
index 3b00acd03..fa3c687c5 100644
--- a/src/libnr/nr-rect-l.cpp
+++ b/src/libnr/nr-rect-l.cpp
@@ -1,7 +1,7 @@
#include <libnr/nr-rect-l.h>
NR::Maybe<NR::Rect> NRRectL::upgrade() const {
- if (nr_rect_l_test_empty(this)) {
+ if (nr_rect_l_test_empty_ptr(this)) {
return NR::Nothing();
} else {
return NR::Rect(NR::Point(x0, y0), NR::Point(x1, y1));
diff --git a/src/libnr/nr-rect.cpp b/src/libnr/nr-rect.cpp
index a1c8c93b2..04d93ae04 100644
--- a/src/libnr/nr-rect.cpp
+++ b/src/libnr/nr-rect.cpp
@@ -29,7 +29,7 @@ NRRect::NRRect(NR::Maybe<NR::Rect> const &rect) {
}
NR::Maybe<NR::Rect> NRRect::upgrade() const {
- if (nr_rect_d_test_empty(this)) {
+ if (nr_rect_d_test_empty_ptr(this)) {
return NR::Nothing();
} else {
return NR::Rect(NR::Point(x0, y0), NR::Point(x1, y1));
@@ -204,7 +204,7 @@ nr_rect_d_matrix_transform(NRRect *d, NRRect const *const s, NR::Matrix const &m
using NR::X;
using NR::Y;
- if (nr_rect_d_test_empty(s)) {
+ if (nr_rect_d_test_empty_ptr(s)) {
nr_rect_d_set_empty(d);
} else {
NR::Point const c00(NR::Point(s->x0, s->y0) * m);
diff --git a/src/libnr/nr-rect.h b/src/libnr/nr-rect.h
index c61083b4b..da1299b2b 100644
--- a/src/libnr/nr-rect.h
+++ b/src/libnr/nr-rect.h
@@ -268,15 +268,25 @@ struct NRRect {
#define nr_rect_l_set_empty(r) (*(r) = NR_RECT_L_EMPTY)
/** "Empty" here includes the case of zero width or zero height. */
-#define nr_rect_d_test_empty(r) ((r) && NR_RECT_DFLS_TEST_EMPTY(r))
-#define nr_rect_l_test_empty(r) ((r) && NR_RECT_DFLS_TEST_EMPTY(r))
+// TODO convert to static overloaded functions (pointer and ref) once performance can be tested:
+#define nr_rect_d_test_empty_ptr(r) ((r) && NR_RECT_DFLS_TEST_EMPTY(r))
+#define nr_rect_d_test_empty(r) NR_RECT_DFLS_TEST_EMPTY_REF(r)
+
+// TODO convert to static overloaded functions (pointer and ref) once performance can be tested:
+#define nr_rect_l_test_empty_ptr(r) ((r) && NR_RECT_DFLS_TEST_EMPTY(r))
+#define nr_rect_l_test_empty(r) NR_RECT_DFLS_TEST_EMPTY_REF(r)
#define nr_rect_d_test_intersect(r0,r1) \
(!nr_rect_d_test_empty(r0) && !nr_rect_d_test_empty(r1) && \
!((r0) && (r1) && !NR_RECT_DFLS_TEST_INTERSECT(r0, r1)))
+
+// TODO convert to static overloaded functions (pointer and ref) once performance can be tested:
+#define nr_rect_l_test_intersect_ptr(r0,r1) \
+ (!nr_rect_l_test_empty_ptr(r0) && !nr_rect_l_test_empty_ptr(r1) && \
+ !((r0) && (r1) && !NR_RECT_DFLS_TEST_INTERSECT(r0, r1)))
#define nr_rect_l_test_intersect(r0,r1) \
(!nr_rect_l_test_empty(r0) && !nr_rect_l_test_empty(r1) && \
- !((r0) && (r1) && !NR_RECT_DFLS_TEST_INTERSECT(r0, r1)))
+ !(!NR_RECT_DFLS_TEST_INTERSECT_REF(r0, r1)))
#define nr_rect_d_point_d_test_inside(r,p) ((p) && (!(r) || (!NR_RECT_DF_TEST_EMPTY(r) && NR_RECT_DF_POINT_DF_TEST_INSIDE(r,p))))
#define nr_rect_l_point_l_test_inside(r,p) ((p) && (!(r) || (!NR_RECT_DFLS_TEST_EMPTY(r) && NR_RECT_LS_POINT_LS_TEST_INSIDE(r,p))))