protected:
SkImageFilter(int inputCount, SkImageFilter** inputs);
- // The ... represents inputCount SkImageFilter pointers, upon which this
- // constructor will call SkSafeRef(). This is the same behaviour as
- // the SkImageFilter(int, SkImageFilter**) constructor above.
- explicit SkImageFilter(int inputCount, ...);
+ // Convenience constructor for 1-input filters.
+ explicit SkImageFilter(SkImageFilter* input);
+
+ // Convenience constructor for 2-input filters.
+ SkImageFilter(SkImageFilter* input1, SkImageFilter* input2);
virtual ~SkImageFilter();
class SK_API SkComposeImageFilter : public SkImageFilter {
public:
- SkComposeImageFilter(SkImageFilter* outer, SkImageFilter* inner) : INHERITED(2, outer, inner) {}
+ SkComposeImageFilter(SkImageFilter* outer, SkImageFilter* inner) : INHERITED(outer, inner) {}
virtual ~SkComposeImageFilter();
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkComposeImageFilter)
public:
SkMergeImageFilter(SkImageFilter* first, SkImageFilter* second,
SkXfermode::Mode = SkXfermode::kSrcOver_Mode);
- SkMergeImageFilter(SkImageFilter* const filters[], int count,
+ SkMergeImageFilter(SkImageFilter* filters[], int count,
const SkXfermode::Mode modes[] = NULL);
virtual ~SkMergeImageFilter();
#include "SkBitmap.h"
#include "SkFlattenableBuffers.h"
#include "SkRect.h"
-#include "stdarg.h"
SK_DEFINE_INST_COUNT(SkImageFilter)
}
}
-SkImageFilter::SkImageFilter(int inputCount, ...)
- : fInputCount(inputCount), fInputs(new SkImageFilter*[inputCount]) {
- va_list ap;
- va_start(ap, inputCount);
- for (int i = 0; i < inputCount; ++i) {
- fInputs[i] = va_arg(ap, SkImageFilter*);
- SkSafeRef(fInputs[i]);
- }
- va_end(ap);
+SkImageFilter::SkImageFilter(SkImageFilter* input)
+ : fInputCount(1), fInputs(new SkImageFilter*[1]) {
+ fInputs[0] = input;
+ SkSafeRef(fInputs[0]);
+}
+
+SkImageFilter::SkImageFilter(SkImageFilter* input1, SkImageFilter* input2)
+ : fInputCount(2), fInputs(new SkImageFilter*[2]) {
+ fInputs[0] = input1;
+ fInputs[1] = input2;
+ SkSafeRef(fInputs[0]);
+ SkSafeRef(fInputs[1]);
}
SkImageFilter::~SkImageFilter() {
///////////////////////////////////////////////////////////////////////////////
SkBlendImageFilter::SkBlendImageFilter(SkBlendImageFilter::Mode mode, SkImageFilter* background, SkImageFilter* foreground)
- : INHERITED(2, background, foreground), fMode(mode)
+ : INHERITED(background, foreground), fMode(mode)
{
}
#include "SkGrPixelRef.h"
#endif
-SkSingleInputImageFilter::SkSingleInputImageFilter(SkImageFilter* input) : INHERITED(1, input) {
+SkSingleInputImageFilter::SkSingleInputImageFilter(SkImageFilter* input) : INHERITED(input) {
}
SkSingleInputImageFilter::~SkSingleInputImageFilter() {
}
SkMergeImageFilter::SkMergeImageFilter(SkImageFilter* first, SkImageFilter* second,
- SkXfermode::Mode mode) : INHERITED(2, first, second) {
+ SkXfermode::Mode mode) : INHERITED(first, second) {
if (SkXfermode::kSrcOver_Mode != mode) {
SkXfermode::Mode modes[] = { mode, mode };
this->initModes(modes);
}
}
-SkMergeImageFilter::SkMergeImageFilter(SkImageFilter* const filters[], int count,
+SkMergeImageFilter::SkMergeImageFilter(SkImageFilter* filters[], int count,
const SkXfermode::Mode modes[]) : INHERITED(count, filters) {
this->initModes(modes);
}