finish #1512 and adjust tests to use new parameter
This commit is contained in:
parent
abf8102021
commit
798b101f0c
5 changed files with 17 additions and 4 deletions
|
@ -30,6 +30,7 @@
|
|||
|
||||
// boost
|
||||
#include <boost/shared_ptr.hpp>
|
||||
#include <boost/optional.hpp>
|
||||
|
||||
namespace mapnik
|
||||
{
|
||||
|
|
|
@ -98,9 +98,20 @@ void agg_renderer<T>::process(raster_symbolizer const& sym,
|
|||
filter_radius);
|
||||
}
|
||||
}
|
||||
// handle whether to premultiply the source
|
||||
// data before compositing
|
||||
// first, default to what the data reports
|
||||
bool premultiply_source = !source->premultiplied_alpha_;
|
||||
// the, allow the user to override
|
||||
boost::optional<bool> is_premultiplied = sym.premultiplied();
|
||||
if (is_premultiplied)
|
||||
{
|
||||
if (*is_premultiplied) premultiply_source = false;
|
||||
else premultiply_source = true;
|
||||
}
|
||||
composite(current_buffer_->data(), target.data_,
|
||||
sym.comp_op(), sym.get_opacity(),
|
||||
start_x, start_y, !source->premultiplied_alpha_);
|
||||
start_x, start_y, premultiply_source);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -55,7 +55,8 @@ raster_symbolizer::raster_symbolizer(raster_symbolizer const& rhs)
|
|||
opacity_(rhs.opacity_),
|
||||
colorizer_(rhs.colorizer_),
|
||||
filter_factor_(rhs.filter_factor_),
|
||||
mesh_size_(rhs.mesh_size_) {}
|
||||
mesh_size_(rhs.mesh_size_),
|
||||
premultiplied_(rhs.premultiplied_) {}
|
||||
|
||||
std::string const& raster_symbolizer::get_mode() const
|
||||
{
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
<Style name="white">
|
||||
<Rule>
|
||||
<RasterSymbolizer opacity="1" scaling="bilinear" comp-op="src-over"/>
|
||||
<RasterSymbolizer />
|
||||
</Rule>
|
||||
</Style>
|
||||
<Layer name="white"
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
<Style name="white">
|
||||
<Rule>
|
||||
<RasterSymbolizer opacity="1" scaling="bilinear" comp-op="src-over"/>
|
||||
<RasterSymbolizer premultiplied="false"/>
|
||||
</Rule>
|
||||
</Style>
|
||||
<Layer name="white"
|
||||
|
|
Loading…
Add table
Reference in a new issue