summaryrefslogtreecommitdiffstats
path: root/src/extension/internal
diff options
context:
space:
mode:
authorTed Gould <ted@gould.cx>2007-10-30 19:28:31 +0000
committergouldtj <gouldtj@users.sourceforge.net>2007-10-30 19:28:31 +0000
commitcabb72a8c874cf939150e02af804a1c781cd0b17 (patch)
treeda8834a6d8e32e2c631f1b29b835c3ac76f72a59 /src/extension/internal
parentr16676@shi: ted | 2007-10-12 21:09:50 -0700 (diff)
downloadinkscape-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.cpp8
-rw-r--r--src/extension/internal/bitmap/imagemagick.h12
-rw-r--r--src/extension/internal/bluredge.cpp4
-rw-r--r--src/extension/internal/bluredge.h4
-rw-r--r--src/extension/internal/grid.cpp4
-rw-r--r--src/extension/internal/grid.h4
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);
};