FilterOperations.h [plain text]
#ifndef FilterOperations_h
#define FilterOperations_h
#if ENABLE(CSS_FILTERS)
#include "FilterOperation.h"
#include "IntRectExtent.h"
#include <wtf/RefPtr.h>
#include <wtf/Vector.h>
namespace WebCore {
typedef IntRectExtent FilterOutsets;
class FilterOperations {
WTF_MAKE_FAST_ALLOCATED;
public:
FilterOperations();
FilterOperations(const FilterOperations& other) { *this = other; }
FilterOperations& operator=(const FilterOperations&);
bool operator==(const FilterOperations&) const;
bool operator!=(const FilterOperations& o) const
{
return !(*this == o);
}
void clear()
{
m_operations.clear();
}
Vector<RefPtr<FilterOperation>>& operations() { return m_operations; }
const Vector<RefPtr<FilterOperation>>& operations() const { return m_operations; }
bool isEmpty() const { return !m_operations.size(); }
size_t size() const { return m_operations.size(); }
const FilterOperation* at(size_t index) const { return index < m_operations.size() ? m_operations.at(index).get() : 0; }
bool operationsMatch(const FilterOperations&) const;
bool hasOutsets() const;
FilterOutsets outsets() const;
bool hasFilterThatAffectsOpacity() const;
bool hasFilterThatMovesPixels() const;
bool hasReferenceFilter() const;
private:
Vector<RefPtr<FilterOperation>> m_operations;
};
}
#endif // ENABLE(CSS_FILTERS)
#endif // FilterOperations_h