diff --git a/src/color-profile.h b/src/color-profile.h
index 76e25d0655085c8946b6420d3ae13d7a6f734613..e1dd298bd82a9519552ca1a24d3dc033dc24452e 100644 (file)
--- a/src/color-profile.h
+++ b/src/color-profile.h
#include <glib/gtypes.h>
#include <sp-object.h>
+#include <glibmm/ustring.h>
#if ENABLE_LCMS
#include <lcms.h>
#endif // ENABLE_LCMS
RENDERING_INTENT_ABSOLUTE_COLORIMETRIC = 5
};
+/// The SPColorProfile vtable.
+struct ColorProfileClass {
+ SPObjectClass parent_class;
+};
+
/** Color Profile. */
struct ColorProfile : public SPObject {
+ static GType getType();
+ static void classInit( ColorProfileClass *klass );
+
+ static std::list<Glib::ustring> getBaseProfileDirs();
+ static std::list<Glib::ustring> getProfileFiles();
+#if ENABLE_LCMS
+ static cmsHPROFILE getSRGBProfile();
+ static cmsHPROFILE getNULLProfile();
+
+ icColorSpaceSignature getColorSpace() const {return _profileSpace;}
+ icProfileClassSignature getProfileClass() const {return _profileClass;}
+ cmsHTRANSFORM getTransfToSRGB8();
+ cmsHTRANSFORM getTransfFromSRGB8();
+ cmsHTRANSFORM getTransfGamutCheck();
+ bool GamutCheck(SPColor color);
+
+#endif // ENABLE_LCMS
+
gchar* href;
gchar* local;
gchar* name;
#if ENABLE_LCMS
cmsHPROFILE profHandle;
#endif // ENABLE_LCMS
-};
-/// The SPColorProfile vtable.
-struct ColorProfileClass {
- SPObjectClass parent_class;
+private:
+ static void init( ColorProfile *cprof );
+
+ static void release( SPObject *object );
+ static void build( SPObject *object, SPDocument *document, Inkscape::XML::Node *repr );
+ static void set( SPObject *object, unsigned key, gchar const *value );
+ static Inkscape::XML::Node *write( SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags );
+#if ENABLE_LCMS
+ static DWORD _getInputFormat( icColorSpaceSignature space );
+ void _clearProfile();
+
+ static cmsHPROFILE _sRGBProf;
+ static cmsHPROFILE _NullProf;
+
+ icProfileClassSignature _profileClass;
+ icColorSpaceSignature _profileSpace;
+ cmsHTRANSFORM _transf;
+ cmsHTRANSFORM _revTransf;
+ cmsHTRANSFORM _gamutTransf;
+#endif // ENABLE_LCMS
};
} // namespace Inkscape
fill-column:99
End:
*/
-// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :