#include "config.h"
#include "SourceGraphic.h"
#include "Filter.h"
#include "GraphicsContext.h"
#include "TextStream.h"
#include <wtf/NeverDestroyed.h>
#include <wtf/StdLibExtras.h>
#include <wtf/text/WTFString.h>
namespace WebCore {
Ref<SourceGraphic> SourceGraphic::create(Filter& filter)
{
return adoptRef(*new SourceGraphic(filter));
}
const AtomicString& SourceGraphic::effectName()
{
static NeverDestroyed<const AtomicString> s_effectName("SourceGraphic", AtomicString::ConstructFromLiteral);
return s_effectName;
}
void SourceGraphic::determineAbsolutePaintRect()
{
Filter& filter = this->filter();
FloatRect paintRect = filter.sourceImageRect();
paintRect.scale(filter.filterResolution().width(), filter.filterResolution().height());
setAbsolutePaintRect(enclosingIntRect(paintRect));
}
void SourceGraphic::platformApplySoftware()
{
Filter& filter = this->filter();
ImageBuffer* resultImage = createImageBufferResult();
ImageBuffer* sourceImage = filter.sourceImage();
if (!resultImage || !sourceImage)
return;
resultImage->context().drawImageBuffer(*sourceImage, IntPoint());
}
void SourceGraphic::dump()
{
}
TextStream& SourceGraphic::externalRepresentation(TextStream& ts, int indent) const
{
writeIndent(ts, indent);
ts << "[SourceGraphic]\n";
return ts;
}
}