smoothen rendering of x-fades
[ardour.git] / libs / canvas / canvas / types.h
index 33bb92ca58e77eb43ccb907b71da957ad3afd4fd..2800ccc91be392d34be1b912864c786fa2df8204 100644 (file)
@@ -27,6 +27,8 @@
 
 #include <cairomm/refptr.h>
 
+#include "canvas/visibility.h"
+
 namespace Cairo {
        struct Context;
 }
@@ -38,9 +40,9 @@ typedef double Coord;
 typedef double Distance;
 typedef uint32_t Color;
 
-extern Coord const COORD_MAX;
+extern LIBCANVAS_API Coord const COORD_MAX;
 
-struct Duple
+struct LIBCANVAS_API Duple
 {
        Duple ()
                : x (0)
@@ -59,14 +61,15 @@ struct Duple
 };
 
 
-extern Duple operator- (Duple const &);
-extern Duple operator+ (Duple const &, Duple const &);
-extern bool operator== (Duple const &, Duple const &);
-extern Duple operator- (Duple const &, Duple const &);
-extern Duple operator/ (Duple const &, double);
-extern std::ostream & operator<< (std::ostream &, Duple const &);
+extern LIBCANVAS_API Duple operator- (Duple const &);
+extern LIBCANVAS_API Duple operator+ (Duple const &, Duple const &);
+extern LIBCANVAS_API bool operator== (Duple const &, Duple const &);
+extern LIBCANVAS_API bool operator!= (Duple const &, Duple const &);
+extern LIBCANVAS_API Duple operator- (Duple const &, Duple const &);
+extern LIBCANVAS_API Duple operator/ (Duple const &, double);
+extern LIBCANVAS_API std::ostream & operator<< (std::ostream &, Duple const &);
 
-struct Rect
+struct LIBCANVAS_API Rect
 {
        Rect ()
                : x0 (0)
@@ -93,9 +96,7 @@ struct Rect
        Rect expand (Distance) const;
        bool contains (Duple) const;
        Rect fix () const;
-
-        Rect convert_to_device (Cairo::RefPtr<Cairo::Context>) const;
-        Rect convert_to_user (Cairo::RefPtr<Cairo::Context>) const;
+       bool empty() const { return (x0 == x1 && y0 == y1); }
 
        Distance width () const {
                return x1 - x0;
@@ -106,7 +107,9 @@ struct Rect
        }
 };
 
-extern std::ostream & operator<< (std::ostream &, Rect const &);
+extern LIBCANVAS_API bool operator!= (Rect const &, Rect const &);
+
+extern LIBCANVAS_API std::ostream & operator<< (std::ostream &, Rect const &);
 
 typedef std::vector<Duple> Points;