diff options
| author | Ted Gould <ted@gould.cx> | 2007-10-30 19:28:31 +0000 |
|---|---|---|
| committer | gouldtj <gouldtj@users.sourceforge.net> | 2007-10-30 19:28:31 +0000 |
| commit | cabb72a8c874cf939150e02af804a1c781cd0b17 (patch) | |
| tree | da8834a6d8e32e2c631f1b29b835c3ac76f72a59 /src/extension/internal | |
| parent | r16676@shi: ted | 2007-10-12 21:09:50 -0700 (diff) | |
| download | inkscape-cabb72a8c874cf939150e02af804a1c781cd0b17.tar.gz inkscape-cabb72a8c874cf939150e02af804a1c781cd0b17.zip | |
r16677@shi: ted | 2007-10-17 19:31:04 -0700
Creating and adding interfaces for a document based cache that an effect can define. This removes the effect from
having to know if the document has changed, and keep track of that. This allows them to optimize their performance
when doing things like live effects.
(bzr r3977)
Diffstat (limited to 'src/extension/internal')
| -rw-r--r-- | src/extension/internal/bitmap/imagemagick.cpp | 8 | ||||
| -rw-r--r-- | src/extension/internal/bitmap/imagemagick.h | 12 | ||||
| -rw-r--r-- | src/extension/internal/bluredge.cpp | 4 | ||||
| -rw-r--r-- | src/extension/internal/bluredge.h | 4 | ||||
| -rw-r--r-- | src/extension/internal/grid.cpp | 4 | ||||
| -rw-r--r-- | src/extension/internal/grid.h | 4 |
6 files changed, 22 insertions, 14 deletions
diff --git a/src/extension/internal/bitmap/imagemagick.cpp b/src/extension/internal/bitmap/imagemagick.cpp index a6c30a587..ddb7a0145 100644 --- a/src/extension/internal/bitmap/imagemagick.cpp +++ b/src/extension/internal/bitmap/imagemagick.cpp @@ -41,12 +41,13 @@ ImageMagick::load(Inkscape::Extension::Extension *module) return TRUE; } +/* void ImageMagick::commitDocument(void) { _loaded = FALSE; } -/*void +void ImageMagick::cancelDocument(void) { for (int i = 0; i < _imageCount; i++) { _nodes[i]->setAttribute("xlink:href", _originals[i], true); @@ -76,9 +77,10 @@ ImageMagick::readImage(const char *xlink, Magick::Image *image) } void -ImageMagick::effect (Inkscape::Extension::Effect *module, Inkscape::UI::View::View *document) +ImageMagick::effect (Inkscape::Extension::Effect *module, Inkscape::UI::View::View *document, Inkscape::Extension::Implementation::ImplementationDocumentCache * docCache) { refreshParameters(module); + _loaded = FALSE; if (!_loaded) { @@ -177,7 +179,7 @@ ImageMagick::effect (Inkscape::Extension::Effect *module, Inkscape::UI::View::Vi Uses AutoGUI for creating the GUI. */ Gtk::Widget * -ImageMagick::prefs_effect(Inkscape::Extension::Effect *module, Inkscape::UI::View::View * view, sigc::signal<void> * changeSignal) +ImageMagick::prefs_effect(Inkscape::Extension::Effect *module, Inkscape::UI::View::View * view, sigc::signal<void> * changeSignal, Inkscape::Extension::Implementation::ImplementationDocumentCache * docCache) { SPDocument * current_document = view->doc(); diff --git a/src/extension/internal/bitmap/imagemagick.h b/src/extension/internal/bitmap/imagemagick.h index 4afdcfbb4..3060ddd33 100644 --- a/src/extension/internal/bitmap/imagemagick.h +++ b/src/extension/internal/bitmap/imagemagick.h @@ -18,6 +18,12 @@ namespace Extension { namespace Internal { namespace Bitmap { +class ImageMagickDocCache: public Inkscape::Extension::Implementation::ImplementationDocumentCache { +public: + ImageMagickDocCache(SPDocument * doc) : Inkscape::Extension::Implementation::ImplementationDocumentCache(doc) { }; + ~ImageMagickDocCache ( ) { }; +}; + class ImageMagick : public Inkscape::Extension::Implementation::Implementation { private: @@ -36,13 +42,13 @@ public: virtual void refreshParameters(Inkscape::Extension::Effect *module) { }; bool load(Inkscape::Extension::Extension *module); - void commitDocument(void); + /*void commitDocument(void);*/ /*void cancelDocument(void);*/ void readImage(char const *xlink, Magick::Image *image); - void effect(Inkscape::Extension::Effect *module, Inkscape::UI::View::View *document); + void effect(Inkscape::Extension::Effect *module, Inkscape::UI::View::View *document, Inkscape::Extension::Implementation::ImplementationDocumentCache * docCache); - Gtk::Widget* prefs_effect(Inkscape::Extension::Effect *module, Inkscape::UI::View::View * view, sigc::signal<void> * changeSignal); + Gtk::Widget* prefs_effect(Inkscape::Extension::Effect *module, Inkscape::UI::View::View * view, sigc::signal<void> * changeSignal, Inkscape::Extension::Implementation::ImplementationDocumentCache * docCache); }; }; /* namespace Bitmap */ diff --git a/src/extension/internal/bluredge.cpp b/src/extension/internal/bluredge.cpp index aa1f3ece3..5c64d982a 100644 --- a/src/extension/internal/bluredge.cpp +++ b/src/extension/internal/bluredge.cpp @@ -51,7 +51,7 @@ BlurEdge::load (Inkscape::Extension::Extension *module) \param document What should be edited. */ void -BlurEdge::effect (Inkscape::Extension::Effect *module, Inkscape::UI::View::View *document) +BlurEdge::effect (Inkscape::Extension::Effect *module, Inkscape::UI::View::View *document, Inkscape::Extension::Implementation::ImplementationDocumentCache * docCache) { Inkscape::Selection * selection = ((SPDesktop *)document)->selection; @@ -117,7 +117,7 @@ BlurEdge::effect (Inkscape::Extension::Effect *module, Inkscape::UI::View::View } Gtk::Widget * -BlurEdge::prefs_effect(Inkscape::Extension::Effect * module, Inkscape::UI::View::View * view, sigc::signal<void> * changeSignal) +BlurEdge::prefs_effect(Inkscape::Extension::Effect * module, Inkscape::UI::View::View * view, sigc::signal<void> * changeSignal, Inkscape::Extension::Implementation::ImplementationDocumentCache * docCache) { return module->autogui(NULL, NULL, changeSignal); } diff --git a/src/extension/internal/bluredge.h b/src/extension/internal/bluredge.h index d97e73c9a..48e30c054 100644 --- a/src/extension/internal/bluredge.h +++ b/src/extension/internal/bluredge.h @@ -21,8 +21,8 @@ class BlurEdge : public Inkscape::Extension::Implementation::Implementation { public: bool load(Inkscape::Extension::Extension *module); - void effect(Inkscape::Extension::Effect *module, Inkscape::UI::View::View *document); - Gtk::Widget * prefs_effect(Inkscape::Extension::Effect * module, Inkscape::UI::View::View * view, sigc::signal<void> * changeSignal); + void effect(Inkscape::Extension::Effect *module, Inkscape::UI::View::View *document, Inkscape::Extension::Implementation::ImplementationDocumentCache * docCache); + Gtk::Widget * prefs_effect(Inkscape::Extension::Effect * module, Inkscape::UI::View::View * view, sigc::signal<void> * changeSignal, Inkscape::Extension::Implementation::ImplementationDocumentCache * docCache); static void init (void); }; diff --git a/src/extension/internal/grid.cpp b/src/extension/internal/grid.cpp index 1957813e5..6937cdcc9 100644 --- a/src/extension/internal/grid.cpp +++ b/src/extension/internal/grid.cpp @@ -74,7 +74,7 @@ Glib::ustring build_lines(int axis, NR::Rect bounding_area, \param document What should be edited. */ void -Grid::effect (Inkscape::Extension::Effect *module, Inkscape::UI::View::View *document) +Grid::effect (Inkscape::Extension::Effect *module, Inkscape::UI::View::View *document, Inkscape::Extension::Implementation::ImplementationDocumentCache * docCache) { Inkscape::Selection * selection = ((SPDesktop *)document)->selection; @@ -169,7 +169,7 @@ PrefAdjustment::val_changed (void) Uses AutoGUI for creating the GUI. */ Gtk::Widget * -Grid::prefs_effect(Inkscape::Extension::Effect *module, Inkscape::UI::View::View * view, sigc::signal<void> * changeSignal) +Grid::prefs_effect(Inkscape::Extension::Effect *module, Inkscape::UI::View::View * view, sigc::signal<void> * changeSignal, Inkscape::Extension::Implementation::ImplementationDocumentCache * docCache) { SPDocument * current_document = view->doc(); diff --git a/src/extension/internal/grid.h b/src/extension/internal/grid.h index c4a97aeba..1f37b1441 100644 --- a/src/extension/internal/grid.h +++ b/src/extension/internal/grid.h @@ -21,8 +21,8 @@ class Grid : public Inkscape::Extension::Implementation::Implementation { public: bool load(Inkscape::Extension::Extension *module); - void effect(Inkscape::Extension::Effect *module, Inkscape::UI::View::View *document); - Gtk::Widget * prefs_effect(Inkscape::Extension::Effect *module, Inkscape::UI::View::View * view, sigc::signal<void> * changeSignal); + void effect(Inkscape::Extension::Effect *module, Inkscape::UI::View::View *document, Inkscape::Extension::Implementation::ImplementationDocumentCache * docCache); + Gtk::Widget * prefs_effect(Inkscape::Extension::Effect *module, Inkscape::UI::View::View * view, sigc::signal<void> * changeSignal, Inkscape::Extension::Implementation::ImplementationDocumentCache * docCache); static void init (void); }; |
