index 13ce1afe20fff919619db5fc2b9d8ac4d2f97826..2272c3ae78dbd80b3aaffddf703eff7adf6f4997 100644 (file)
* Author:
* Niko Kiirala <niko@kiirala.com>
*
- * 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();
*/
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.
/** 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;
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);