This source file includes following definitions.
- create
- effectName
- determineAbsolutePaintRect
- applySoftware
- externalRepresentation
#include "config.h"
#include "platform/graphics/filters/SourceGraphic.h"
#include "platform/graphics/GraphicsContext.h"
#include "platform/text/TextStream.h"
#include "wtf/StdLibExtras.h"
#include "wtf/text/WTFString.h"
namespace WebCore {
PassRefPtr<SourceGraphic> SourceGraphic::create(Filter* filter)
{
return adoptRef(new SourceGraphic(filter));
}
const AtomicString& SourceGraphic::effectName()
{
DEFINE_STATIC_LOCAL(const AtomicString, s_effectName, ("SourceGraphic", AtomicString::ConstructFromLiteral));
return s_effectName;
}
FloatRect SourceGraphic::determineAbsolutePaintRect(const FloatRect& requestedRect)
{
FloatRect srcRect = filter()->sourceImageRect();
srcRect.intersect(requestedRect);
addAbsolutePaintRect(srcRect);
return srcRect;
}
void SourceGraphic::applySoftware()
{
ImageBuffer* resultImage = createImageBufferResult();
Filter* filter = this->filter();
if (!resultImage || !filter->sourceImage())
return;
IntRect srcRect = filter->sourceImageRect();
resultImage->context()->drawImageBuffer(
filter->sourceImage(),
IntPoint(srcRect.location() - absolutePaintRect().location()));
}
TextStream& SourceGraphic::externalRepresentation(TextStream& ts, int indent) const
{
writeIndent(ts, indent);
ts << "[SourceGraphic]\n";
return ts;
}
}