X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fdisplay%2Fnr-filter-slot.h;h=2272c3ae78dbd80b3aaffddf703eff7adf6f4997;hb=9857ba6e1d24d9769ef3454fb6826934dc83349b;hp=13ce1afe20fff919619db5fc2b9d8ac4d2f97826;hpb=cfb5fa826062314dac912b3627f932aab8250988;p=inkscape.git diff --git a/src/display/nr-filter-slot.h b/src/display/nr-filter-slot.h index 13ce1afe2..2272c3ae7 100644 --- a/src/display/nr-filter-slot.h +++ b/src/display/nr-filter-slot.h @@ -9,21 +9,28 @@ * Author: * Niko Kiirala * - * Copyright (C) 2006 Niko Kiirala + * Copyright (C) 2006,2007 Niko Kiirala * * Released under GNU GPL, read the file 'COPYING' for more information */ #include "libnr/nr-pixblock.h" +#include "display/nr-filter-units.h" + +struct NRArenaItem; namespace NR { class FilterSlot { public: - /** Creates a new FilterSlot object, with two slots. */ - FilterSlot(); - /** Creates a new FilterSlot object, with specified amount of slots */ - FilterSlot(int slots); + /** Creates a new FilterSlot object. + * First parameter specifies the amount of slots this SilterSlot + * should reserve beforehand. If a negative number is given, + * two slots will be reserved. + * Second parameter specifies the arena item, which should be used + * for background accesses from filters. + */ + FilterSlot(int slots, NRArenaItem const *item); /** Destroys the FilterSlot object and all its contents */ ~FilterSlot(); @@ -38,6 +45,14 @@ public: */ NRPixBlock *get(int slot); + /** Gets the final result from this filter. + * The result is fetched from the specified slot, see description of + * method get for valid values. The pixblock 'result' will be modified + * to contain the result image, ready to be used in the rest of rendering + * pipeline + */ + void get_final(int slot, NRPixBlock *result); + /** Sets or re-sets the pixblock associated with given slot. * If there was a pixblock already assigned with this slot, * that pixblock is destroyed. @@ -51,6 +66,12 @@ public: /** Returns the number of slots in use. */ int get_slot_count(); + /** arenaitem getter method*/ + NRArenaItem const* get_arenaitem(); + + /** Sets the unit system to be used for the internal images. */ + void set_units(FilterUnits const &units); + private: NRPixBlock **_slot; int *_slot_number; @@ -58,7 +79,11 @@ private: int _last_out; - /** Returns the table index of given slot. If that slot dows not exist, + NRArenaItem const *_arena_item; + + FilterUnits units; + + /** Returns the table index of given slot. If that slot does not exist, * it is created. Table index can be used to read the correct * pixblock from _slot */ int _get_index(int slot);